Помогите Многоуровневый конфиг

  • Автор темы Автор темы SLywnow
  • Дата начала Дата начала

SLywnow

Участник
Пользователь
Баллы
36
Имя в Minecraft
_Boris3000_
Как сделать многоуровневый конфиг по типу
Код:
test:
  test1:
     - lol
     - lol2
  test2
     - prom
Как создавать листы в конфиге понимаю, но не понимаю как делать такую ступенчитость?
И еще вопрос: как считывать не string с конфига, а например ItemStack?
Я только начал изучать Bukkit API и Java, так что не кидайтесь тапками =)
 
А что, такое правда нормально сериализуется и десериализувется? =) Я правда, не знаю. Думал, надо какие-то интерфейсы на класс навешивать, конструктор делать какой-нибудь особый.
 
2й вариант.

Java:
package EntFix;

import java.util.ArrayList;
import java.util.List;

public class test {
    List<String> test1 = new ArrayList<String>();
    List<String> test2 = new ArrayList<String>();

    test() {
    }

    public void addTest1(String test) {
        test1.add(test);
    }

    public void addTest2(String test) {
        test2.add(test);
    }

    public void removeTest1(String test) {
        test1.remove(test);
    }

    public void removeTest2(String test) {
        test2.remove(test);
    }

    public List<String> getTest1() {
        return test1;
    }

    public List<String> getTest2() {
        return test2;
    }

    public String toString() {
        return "{test1="+test1+", test2="+test2+"}";
    }
}

testcode
Java:
        test t = new test();
        t.addTest1("lol");
        t.addTest1("lol2");
        t.addTest2("pron");
        this.getConfig().set("test", t);
        t = (test) this.getConfig().get("test");
Может и не завестись. Повторю, есть ConfigurationSection.
 
@Dereku и @alexandrage Вы все услажнили. Требовалось просто вынуть из конфига список. Вы мало того его список, начали создовать по новой. Еще и section() какую то придумали. Когда все намного проще было, Зачем вы услажнили?
 
@Dereku и @alexandrage Вы все услажнили. Требовалось просто вынуть из конфига список. Вы мало того его список, начали создовать по новой. Еще и section() какую то придумали. Когда все намного проще было, Зачем вы услажнили?
Полагаю, вместе с ТС, нам придётся и тебя учить, верно?

У кого-нибудь поблизости есть учебник русского языка? Тресните им по голове @Derik.
 
@Dereku и @alexandrage Вы все услажнили. Требовалось просто вынуть из конфига список. Вы мало того его список, начали создовать по новой. Еще и section() какую то придумали. Когда все намного проще было, Зачем вы услажнили?
Я ничего не придумывал. Я даже ничего не писал толком - только написал про ConfigurationSection. Но ты же отличился:
HashMap map = getConfig().getListString("test.test1");
map[0] == lol;
map[1] == lol2;
Мало того, что ты сравниваешь строки (потому что getListString) с помощью '==', так ты приравнял хэшмапу к массиву. К массиву, жеванный торт.
String[] test = detConfig().detList("test.test1");
А тут ты 'g' заменил на 'd'. Но это можно приравнять к очепятке. Но ты снова пытаешься приравнять лист к массиву. У тебя любовь к массивам?

Именно поэтому я начинаю писать вам двоим (привет, DonDays) - Хватит давать вредные советы. Если вы не шарите в java - не пытайтесь давать советы, в которых вы не уверены.
 
Здравствуйте, я бы хотел попросить у вас помощи, ибо у меня возникла проблема с конфигами, мне нужно сделать так, чтобы я мог продолжать цикл уровней, я хочу добавлять уровни прям в конфиг, но у меня конфиг слетает и записывает ток 1 число, спасибо. мой код:
Java:
case EXP_BOTTLE:
    if (LevelUtils.getlevel(p) == Main.instance.getConfigManager().maincfg.getInt("Levels.lvl")) {
        if (BlockUtils.getBlock(p) >= Main.instance.getConfigManager().maincfg.getInt("Levels.blocks")) {
            LevelUtils.setlevel(p, LevelUtils.levelup(p));
            p.sendMessage("§7[§6Level§7]: §aвы повысили уровень");
            Main.instance.getConfigManager().infocfg.set("Levels." + p.getName(), LevelUtils.getlevel(p));
            Main.instance.getConfigManager().savelevel();
        } else {
            p.sendMessage(
                    "§7[§6Level§7]: " + (Main.instance.getConfigManager().maincfg.getInt("Levels.blocks")
                            - BlockUtils.getBlock(p)));
        }
    }
Во первых, не работай с конфигами в слушателях. Это как минимум не удобно.
Во вторых, ты пытаешься получить int в пути 'Levels.lvl' вместо того, чтобы узнать существует ли число 'x' в ноде 'Levels.lvl'
В третьих, некропостить - плохо.
 
Во первых, не работай с конфигами в слушателях. Это как минимум не удобно.
Во вторых, ты пытаешься получить int в пути 'Levels.lvl' вместо того, чтобы узнать существует ли число 'x' в ноде 'Levels.lvl'
В третьих, некропостить - плохо.
Уже сделал 🙂 Но есть еще 1 вопрос, написал вам в вк)
 
Назад
Верх