Помогите Не меняются переменные в строке

Статус
Закрыто для дальнейших ответов.

WayderTM

Активный участник
Баллы
61
Имя в Minecraft
WayderTM
Здравствуйте, пишу свой плагин и у меня появилась проблемы с переменными по типу %chototam%
Они заменяются, но после повторной попытки не хочет меняться на новые данные

Вот участок кода:


Код:
public void giveSpawner(Player player , EntityType mob, int lvl, int amount) {
        int value = plugin.getConfig().getInt("Settings.value");
        
        if(!plugin.getConfig().getConfigurationSection("data").contains(player.getName())) {
            plugin.getConfig().createSection("data." + player.getName());
            value++;
            plugin.getConfig().createSection("data." + player.getName() + "." + plugin.getConfig().getInt("Settings.value"));
            plugin.getConfig().addDefault("data." + player.getName() + "." + Integer.toString(plugin.getConfig().getInt("Settings.value")) + ".spawnerlvl", lvl);
            plugin.getConfig().addDefault("data." + player.getName() + "." + Integer.toString(plugin.getConfig().getInt("Settings.value")) + ".spawnermob", mob.toString());
            plugin.getConfig().set("Settings.value", value);
            plugin.saveConfig();
        }
        else {
            value++;
            plugin.getConfig().createSection("data." + player.getName() + "." + plugin.getConfig().getInt("Settings.value"));
            plugin.getConfig().set("data." + player.getName() + "." + Integer.toString(plugin.getConfig().getInt("Settings.value")) + ".spawnerlvl", lvl);
            plugin.getConfig().set("data." + player.getName() + "." + Integer.toString(plugin.getConfig().getInt("Settings.value")) + ".spawnermob", mob.toString());
            plugin.getConfig().set("Settings.value", value);
            plugin.saveConfig();
        }
        spawnerlore.replaceAll((str) -> str.replace('&', '§').replace("%value%", Integer.toString(plugin.getConfig().getInt("Settings.value"))).replace("%lvl%", Integer.toString(lvl).replace("%mob%", mob.toString())));
        Inventory inv = player.getInventory();
        ItemStack item = ItemUtil.createSpawner(spawnerTitle.replace("%player%", player.getName()), spawnerlore, amount);
        //.replaceAll("%value%", Integer.toString(value))
        inv.addItem(item);
        
    }

После выдачи спавнера %value% меняется на 1 например и после повторной выдачи value становиться 2, но %value% ставит 1. После перезапуска уже нормально меняется на 2. В чем может быть проблема?

Вот если надо главный класс: https://pastebin.com/KyfjcmQR
 
Тебе нужно повторно получить гетером.
Тоесть мне нужно получить value через:
Код:
public int getValue() {
        return value;
    }
и потом опять прописать после строки замены:
Код:
spawnerlore.replaceAll((str) -> str.replace('&', '§').replace("%value%", Integer.toString(getValue()));
Я так понял?
 
Тоесть мне нужно получить value через:
Код:
public int getValue() {
        return value;
    }
и потом опять прописать после строки замены:
Код:
spawnerlore.replaceAll((str) -> str.replace('&', '§').replace("%value%", Integer.toString(getValue()));
Я так понял?
Где то тут наверное plugin.getConfig().getInt("Settings.value") от сюда получаешь же?
 
Где то тут наверное plugin.getConfig().getInt("Settings.value") от сюда получаешь же?
Сделал так и вывел в чат getValue() и меняется, но в lore я не могу второй раз заменить ибо оно уже стало цифрой и нет больше %value%
 
Решил проблему тем что переместил получение лора с конфига не в enable а в метод и заработало. Спасибо за помощь
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх