1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Не читает данные с конфига

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

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

    _Corbi_ Ньюби

    Баллы:
    1
    Здравия желаю!
    Возникла проблема, точнее проблем возникло много, но конкретно разобраться не могу с одной.
    Делаю плагин на четырёхуровнего скупщика для своего сервера. Идея в том, что бы в конфиг добавлять предмет по шаблону:
    CARROT:
    lvl:
    1
    name:
    'Морковка'
    lore:
    'Осталось сдать ещё '
    count:
    1000
    Название на русском, описание (В конце прибавляется коллво предметов, которое осталось сдать), уровень, на котором должен быть предмет и коллво предметов, которое нужно сдать что бы закрыть предмет.
    Этот пул предметов должен быть записан в ArrayList, я сделал отдельный класс, каждый объект которого хранит своё капс имя, не капс имя(ID предмета в майне), уровень, на котором должен появляться предмет, коллво предметов, которое нужно сдать и коллво уже сданных предметов. Ещё есть 5 статических ArrayList'ов : 1 для хранения всего пула предметов, и ещё 4 для хранения предметов каждого из уровней.
    Так вот. при заходе игрока создаётся файлик в который должны записываться 10 рандомных предметов из листа, в котором хранятся предметы 1 уровня (их там штук 18-20), но он кидает ошибку о том, что в параметр метода random.nextInt() должно быть записано число больше нуля, то бишь лист оказывается пустой.
    вот проект на гитхабе:
    https://github.com/Corbonat/BebroQuests/tree/main/src/main/java/corbihack
    вот ссылка на проект в виде rar архива:
    https://drive.google.com/file/d/1wQicAxZPaswrBCHHqbcZqyYy6AlEgoI5/view?usp=sharing
    Класс в котором выдаёт ошибку: Items
     
  2. Автор темы
    _Corbi_

    _Corbi_ Ньюби

    Баллы:
    1
    я вывел блок кода
    PHP:
            FileConfiguration config BebroQuests.getInstants().config;
            for (
    String str config.getStringList("items")) {
                
    Items item = new Items(str);
                if (
    item.lvl == 1lvl1.add(item);
                else if (
    item.lvl == 2lvl2.add(item);
                else if (
    item.lvl == 3lvl3.add(item);
                else if (
    item.lvl == 4lvl4.add(item);

                
    values.add(item);

                
    System.out.println(item.minecraftId " " item.lvl " added");
            }
    из статичного блока в отдельный метод, который вызывается в onEnable(), теперь при запуске вылетает ошибка null
    в строке for (String str : config.getStringList("items")) {
    То бишь конфиг не может найти блок "items", но я не понимаю почему

    вот файл конфига:
    PHP:
    items:
      
    CARROT:
        
    lvl:
          
    1
        name
    :
          
    'Морковка'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      POTATO
    :
        
    lvl:
          
    1
        name
    :
          
    'Картошка'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      KELP
    :
        
    lvl:
          
    1
        name
    :
          
    'Ламинария'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      BEETROOT_SEEDS
    :
        
    lvl:
          
    1
        name
    :
          
    'Семена свёклы'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      WHEAT
    :
        
    lvl:
          
    1
        name
    :
          
    'Пшеница'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      WHEAT_SEEDS
    :
        
    lvl:
          
    1
        name
    :
          
    'Семена пшеницы'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      SWEET_BERRIES
    :
        
    lvl:
          
    1
        name
    :
          
    'Ягоды'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      COCOA_BEANS
    :
        
    lvl:
          
    1
        name
    :
          
    'Какао Бобы'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      BEETROOT
    :
        
    lvl:
          
    1
        name
    :
          
    'Свекла'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      OAK_LEAVES
    :
        
    lvl:
          
    1
        name
    :
          
    'Дубовая листва'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      MELON
    :
        
    lvl:
          
    1
        name
    :
          
    'Арбуз'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      SUGAR_CANE
    :
        
    lvl:
          
    1
        name
    :
          
    'Тростник'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      PUMPKIN
    :
        
    lvl:
          
    1
        name
    :
          
    'Тыква'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      NETHER_WART
    :
        
    lvl:
          
    1
        name
    :
          
    'Адские наросты'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      APPLE
    :
        
    lvl:
          
    1
        name
    :
          
    'Яблоко'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      PUMPKIN_PIE
    :
        
    lvl:
          
    1
        name
    :
          
    'Тыквенный пирог'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      POPPY
    :
        
    lvl:
          
    1
        name
    :
          
    'Мак'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
      SUNFLOWER
    :
        
    lvl:
          
    1
        name
    :
          
    'Подсолнух'
        
    lore:
          
    'Осталось сдать ещё '
        
    count:
          
    1000
     
  3. Автор темы
    _Corbi_

    _Corbi_ Ньюби

    Баллы:
    1
    Попробовал вместо getStringList поставить getList, та же ошибка,
    Код:
    [16:20:23 ERROR]: Error occurred while enabling BebroQuests v1.0-SNAPSHOT (Is it up to date?)
    java.lang.NullPointerException: null
            at corbihack.Items.loadItems(Items.java:24) ~[?:?]
            at corbihack.BebroQuests.onEnable(BebroQuests.java:25) ~[?:?]
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.5.jar:git-Paper-794]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[patched_1.16.5.jar:git-Paper-794]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[patched_1.16.5.jar:git-Paper-794]
            at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:518) ~[patched_1.16.5.jar:git-Paper-794]
            at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:432) ~[patched_1.16.5.jar:git-Paper-794]
            at net.minecraft.server.v1_16_R3.MinecraftServer.loadWorld(MinecraftServer.java:599) ~[patched_1.16.5.jar:git-Paper-794]
            at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:298) ~[patched_1.16.5.jar:git-Paper-794]
            at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1074) ~[patched_1.16.5.jar:git-Paper-794]
            at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-794]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_351]
     
  4. Автор темы
    _Corbi_

    _Corbi_ Ньюби

    Баллы:
    1
    В общем проблему решил, я очень глупо сделал обёртку для конфига и использовал неправильный метод (getList() вместо getConfigurationSelection("path").getKeys(false))
     

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