Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем SLywnow, 2 окт 2016.

  1. Автор темы
    SLywnow

    SLywnow Новичок Пользователь

    Баллы:
    11
    Имя в Minecraft:
    _Boris3000_
    Как сделать многоуровневый конфиг по типу
    Код:
    test:
      test1:
         - lol
         - lol2
      test2
         - prom
    Как создавать листы в конфиге понимаю, но не понимаю как делать такую ступенчитость?
    И еще вопрос: как считывать не string с конфига, а например ItemStack?
    Я только начал изучать Bukkit API и Java, так что не кидайтесь тапками =)
     
  2. Хостинг MineCraft
    <
  3. _AndreyBarna_

    _AndreyBarna_ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    MainDRY
    getConfig().getString("test.test1")
     
  4. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Ему не это нужно
     
  5. Автор темы
    SLywnow

    SLywnow Новичок Пользователь

    Баллы:
    11
    Имя в Minecraft:
    _Boris3000_
    В том числе это, но это я знал, я пока решил проблему так: начал чекать значение внутри настройки, если равно null то и значения нет
     
  6. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    HashMap.
     
    Последнее редактирование: 4 окт 2016
  7. CoolBoy

    CoolBoy Активный участник Пользователь

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    ConfigurationSection.
     
  8. Derik

    Derik Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Derik
    HashMap map = getConfig().getListString("test.test1");
    map[0] == lol;
    map[1] == lol2;

    как то так.

    Только lol и lol2 Надо в конфиге заключить в 'одинарные ковычки' , чтобы преоброзовать их в String.[DOUBLEPOST=1475559597,1475558335][/DOUBLEPOST]Ты можеш записать ItemStack в конфиг. Но прочитать как ItemStack не сможеш. Ты сможеш вынемать из конфига...
    getString("строку");
    getInt("число"):
    getList("массив строк");
    всё

    Если скажем ты в конфиг добавишь ItemStack();
    config.add(new ItemStack(Material.DIAMOND_SWORD));
    config.save();

    Тебе добавит в конфиг дохрена строк, чисел, и массивов строк.
    И вынемать ты сможеш их только по отдельности, а не сразу весь ItemStack();
     
    Последнее редактирование: 4 окт 2016
  9. CoolBoy

    CoolBoy Активный участник Пользователь

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Можно и записать итемстак и достать его. Достаточно свой метод написать.
     
  10. Derik

    Derik Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Derik
    Можно и насрать на потолок, Достаточно свой метод написать.))[DOUBLEPOST=1475563837,1475563176][/DOUBLEPOST]Всеравно я в этом методе буду оброщатся, и возрощать строки, числа, и массивы строк.
     
  11. Автор темы
    SLywnow

    SLywnow Новичок Пользователь

    Баллы:
    11
    Имя в Minecraft:
    _Boris3000_
    Насчет ItemStack спасибо, кстати, вот это будет значить что item это бедрок или нет new ItemStack(7)?
    А вот с ListString это не то, это то я умею, мне нужно понять какие подкотигории есть у test и получить test1 и test2
     
  12. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    [​IMG]
     
  13. Derik

    Derik Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Derik
    У тебя test1 и test2 Это массивы строк. Соответствено что бы понять, какие есть подкотегории (подкатегорий нету, есть список значений), Надо вернуть этот массив и потом его читать.
    Код:
    String[] test = detConfig().detList("test.test1");
    
    Теперь в массиве test у нас есть два значения.
    с индексами
    0 = lol
    и
    1 = lol2
    Чтобы их прочитать, узнаем длину массива
    Код:
    test.size();
    
    И запускаем цикл который выведет все значения из массива.
    Код:
    for(int i = 0; i < test.size; i++){
    System.out.print(test[i]);
    }
    
     
    Последнее редактирование: 4 окт 2016
  14. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    @Dereku, пожалуйста ... ОСТАНОВИ ЕГО!!!
     
    Последнее редактирование: 4 окт 2016
  15. Derik

    Derik Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Derik
    Блин наверно List<String> я хотел написать.
     
  16. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    То есть
    тебя не удивило?
     
  17. Derik

    Derik Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Derik
    И так и так может работать будет. Как правильно сделать фиг знает.
     
  18. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Короче как то так.

    Код:
            HashMap<String, List<String>> map = new HashMap<String, List<String>>();
            List<String> test1 = new ArrayList<String>();
            test1.add("lol");
            test1.add("lol2");
            List<String> test2 = new ArrayList<String>();
            test2.add("prom");
            map.put("test1", test1);
            map.put("test2", test2);
            this.getConfig().set("test", map);
            map = (HashMap<String, List<String>>) this.getConfig().get("test");
     
  19. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Не, не так.[DOUBLEPOST=1475594240,1475594202][/DOUBLEPOST]
    Его уже не остановить. Снежный ком останавливается только тогда, когда его что-то разбивает.
     
  20. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ну примерно.[DOUBLEPOST=1475594460][/DOUBLEPOST]
    P.s и ты меня зря поправил. Работает же.
     
  21. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Для этого есть ConfigurationSection.[DOUBLEPOST=1475594498,1475594461][/DOUBLEPOST]
    Да, оно работает, спорить не буду. Но это околоокольные пути, о которых лучше не писать новичку.
     

Поделиться этой страницей