Помогите [РЕШЕНО] Как заполнить файл конфигурации координатами блоков?

Статус
Закрыто для дальнейших ответов.
Java:
    ArrayList<Block> a = new ArrayList<Block>();
    @Override
    public void onEnable() {
        this.saveDefaultConfig();
        c = getConfig();
        for (String b : c.getConfigurationSection("blocks").getKeys(false)) {
            a.add(Bukkit.getWorld("blocks."+b+"world").getBlockAt(c.getInt("blocks."+b+"x"), c.getInt("blocks."+b+"y"), c.getInt("blocks."+b+"z")));
        }
    }
    private void addToList(Block b) {
        a.add(b);
    }
    public void onDisable() {
        for (String b : c.getConfigurationSection("blocks").getKeys(false)) {
            c.set("blocks."+b, null);
        }
        for (int i=0;i<a.size();i++) {
            Block b = a.get(i);
            String w = b.getWorld().getName();
            int x = b.getX();
            int y = b.getY();
            int z = b.getZ();
            c.set("blocks."+i+".world", w);
            c.set("blocks."+i+".x", x);
            c.set("blocks."+i+".y", y);
            c.set("blocks."+i+".z", z);
            saveConfig();
        }
    }
потом работай с ArrayList.
Т.е. при старте программы мы подгружаем все данные в ArrayList из конфига, ~работаем~ , после чего сохраняем всё в конфиг и всё. Я вас правильно понял?
 
При первом запуске бьёт ошибку сервер, файлик то пустой, ему не из чего подгружать. Ни секции, нечего другого в него не записано.

java.lang.NullPointerException http://joxi.ru/krDDBdQf0vLwBr
at me.pluginname.Main.onEnable(Main.java:71) ~[?:?]
Мне нравится логика этого парня.:good:
Надеюсь это был не сарказм. xD
 
Ладно, обошли. Но при сохранении тоже самое, он не может получить секции куда производить запись.
Сейчас попробую установить её при создании конфига.
Java:
if (testConfig.getConfigurationSection("bloks") == null) { 
}
 
При первом запуске бьёт ошибку сервер, файлик то пустой, ему не из чего подгружать. Ни секции, нечего другого в него не записано.

java.lang.NullPointerException http://joxi.ru/krDDBdQf0vLwBr
at me.pluginname.Main.onEnable(Main.java:71) ~[?:?]

Надеюсь это был не сарказм. xD
Ну так добавь какойнибудь левый блок в конфиг вручную. Или добавь проверку isSection() или там где getKeys - isEmpty()
 
Ну так добавь какойнибудь левый блок в конфиг вручную. Или добавь проверку isSection() или там где getKeys - isEmpty()
Чёт эт, не понятное дело.
Вроде файлик не пустой, проверка есть.

Java:
        if (!ChekingBlocksConfig.getRoot().isConfigurationSection("blocks")) {
            ChekingBlocksConfig.createSection("blocks");

        }

        saveFileTeamSpawns();
        saveFileTeamList();
        saveFileChekingBlocks();

        for (String _block : ChekingBlocksConfig.getConfigurationSection("blocks").getKeys(false)) {

            api.ListCheckingBlocks.add(Bukkit.getWorld("blocks." + _block + "world").getBlockAt(ChekingBlocksConfig.getInt("blocks." + _block + "x"), ChekingBlocksConfig.getInt("blocks." + _block + "y"), ChekingBlocksConfig.getInt("blocks." + _block + "z")));
        }

Как бы старая проблема выше вернулась. Файлик не пустой (проверка есть перед чтением), даже 2 блока внесено, но всё равно кидает исключение.

Java:
[I]java.lang.NullPointerException
        at me.meplugin.Main.onEnable(Main.java:77) ~[?:?][/I]
http://joxi.ru/xAe0KPosYjPMR2
 
Ну а догадаться сложно чтоли? С конфигами чтоли не работал?
 
Неа, не помогло, я для проверки попытался добавить сюда http://joxi.ru/Dr8EBbYikXPD1m ещё точки, но нет, тоже не помогло.
Ну а догадаться сложно чтоли? С конфигами чтоли не работал?
Дык, я как дней 6 всего начал плагины писать)
Считай учусь только, первый конфиг оформлял с гайда, там почти нечего и не правил.
 
Наврятли там точки нужны.
А конфиг должен так выглядеть.
blocks:
..0:
....x: 1
....y: 5
....z: 4
..1:
....x: 5
....y: 4
....z: 7

Точки это пробелы.
 
Ну хорошо. Попробуй убрать при запуске добавление блоков в лист. Добавь в лист пару блоков. И стопни сервер. И будет нужный конфиг.
 
Ну хорошо. Попробуй убрать при запуске добавление блоков в лист. Добавь в лист пару блоков. И стопни сервер. И будет нужный конфиг.
Сделал, но конфиг не чем не отличается от предыдущего...
 
Ну значит при запуске гдето ошибка. У тебя arraylist случаем не null?
Java:
ArrayList<Block> ListCheckingBlocks = new ArrayList<>();
Как объявляется она в другом классе, но этот класс создаётся до заполнения из конфига.
Но не думаю, что это причина проблемы, ибо запись в конфиг происходит нормально.
 
А почему ты используешь api.list.add?
А не просто list.add?
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх