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

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

Discussion in 'Разработка плагинов для новичков' started by SLywnow, Oct 2, 2016.

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

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

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    MainDRY
    getConfig().getString("test.test1")
     
  4. _MediaNik_

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

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

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

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

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    HashMap.
     
    Last edited: Oct 4, 2016
  7. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    ConfigurationSection.
     
  8. Derik

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

    Trophy Points:
    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();
     
    Last edited: Oct 4, 2016
  9. CoolBoy

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

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

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

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

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

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

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    [​IMG]
     
  13. Derik

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

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

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

    Trophy Points:
    123
    Имя в Minecraft:
    Reality_SC
    @Dereku, пожалуйста ... ОСТАНОВИ ЕГО!!!
     
    Last edited: Oct 4, 2016
  15. Derik

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

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

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

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

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

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

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Короче как то так.

    Code:
            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 Старожил

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

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

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

    Dereku Старожил

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

Share This Page