Помогите Не удаляет строку из листа

  • Автор темы Автор темы swat1x
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

swat1x

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
swat1x
У меня есть список с игроками в yml файле
upload_2021-4-30_21-22-20.png
Мне нужно удалить из него игрока. Уже пробовал перебором по индексам и т.п., но самый рофл в том, что он не удаляет, даже когда я даю конкретный индекс (Файл само собой сохраняю).
Код:
public static void kickPlayerById(Player player, int id) {
        FileConfiguration data = YamlConfiguration.loadConfiguration(file);
        if(data.getConfigurationSection("clans") == null) {
            return;
        }
        List<String> list = data.getStringList("clans."+id+".members");
        int i = 1;
        while(i < list.size()) {
            int index = i - 1;
            if(list.get(index).equalsIgnoreCase(player.getName())) {
                list.remove(0);
                Economy.save(data, file);
            }
            i++;
        }
    }
Economy.save(data, file); это метод сохранения (Заведомо рабочий)
upload_2021-4-30_21-23-5.png
Надпись о том, что якобы что-то изменено - выдаёт, но вот ничего не изменяется
 
Так ты забыл обновленный лист сетнуть в конфиг.
 
И зачем ты каждый раз читаешь конфиг из файла? Держи его в памяти и все. Сохраняй в onDisable
 
И зачем ты каждый раз читаешь конфиг из файла?
Этож не конфиг с надписями, там данные каждый раз изменяются. Поэтому читаю каждый раз, чтобы данные всегда обновлённые доходили
 
Этож не конфиг с надписями, там данные каждый раз изменяются. Поэтому читаю каждый раз, чтобы данные всегда обновлённые доходили
Так они у тебя и так будут обновляться в твоей переменной data
 
Так они у тебя и так будут обновляться в твоей переменной data
Они обновляются, потому что я сохраняю файл. Ему всё равно на изменения, главное что что-то сохранилось, поэтому и кидает это окно. Мне бы узнать как лист обновлённый поставить
 
Они обновляются, потому что я сохраняю файл. Ему всё равно на изменения, главное что что-то сохранилось, поэтому и кидает это окно. Мне бы узнать как лист обновлённый поставить

Вроде так


Код:
config.set("clans."+id+".members", list)

config.save();
config.reload();
 
Код:
public static void kickPlayerById(Player player, int id) {
        FileConfiguration data = YamlConfiguration.loadConfiguration(file);
        if(data.getConfigurationSection("clans") == null) {
            return;
        }
        List<String> list = data.getStringList("clans."+id+".members");
        int i = 1;
        while(i < list.size()) {
            int index = i - 1;
            if(list.get(index).equalsIgnoreCase(player.getName())) {
                list.remove(index);
                data.set("clans."+id+".members", list);
                Economy.save(data, file);
            }
            i++;
        }
    }
Всем спасибо, всё работает. Тема закрыта
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх