Вопрос Ошибка в reloadConfig()

Версия Minecraft
1.16.X

ProGiple

Пользователь
Сообщения
80
Решения
1
Привет, форумчане! Пишу я плагин и натыкаюсь на ошибку при запуске:
Код:
[22:14:10 ERROR]: Error occurred while enabling BAirDrop-FlameAddon v1.0.1 (Is it up to date?)
java.lang.NullPointerException: Cannot invoke "Object.toString()" because the return value of "java.util.Map$Entry.getKey()" is null
        at org.bukkit.configuration.file.YamlConfiguration.convertMapsToSections(YamlConfiguration.java:78) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.YamlConfiguration.convertMapsToSections(YamlConfiguration.java:82) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:72) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:160) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:128) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:188) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:157) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.comp.progiple.bairdropflameaddon.BAirDrop_FlameAddon.onEnable(BAirDrop_FlameAddon.java:21) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:518) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:432) ~[patched_1.16.5.jar:git-Purpur-1171]
        at net.minecraft.server.v1_16_R3.MinecraftServer.loadWorld(MinecraftServer.java:596) ~[patched_1.16.5.jar:git-Purpur-1171]
        at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:309) ~[patched_1.16.5.jar:git-Purpur-1171]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1074) ~[patched_1.16.5.jar:git-Purpur-1171]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293) ~[patched_1.16.5.jar:git-Purpur-1171]
        at java.lang.Thread.run(Thread.java:831) [?:?]
Вот код главного класса:
Java:
package org.comp.progiple.bairdropflameaddon;

import lombok.Getter;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import org.comp.progiple.bairdropflameaddon.Runnables.PlayerRunnable;
import org.comp.progiple.bairdropflameaddon.Runnables.Runnable;
import org.comp.progiple.bairdropflameaddon.Utils.Config;
import org.comp.progiple.bairdropflameaddon.Utils.PAPI.Placeholder;

import java.util.Objects;

public final class BAirDrop_FlameAddon extends JavaPlugin {
    @Getter
    public static BAirDrop_FlameAddon plugin;

    @Override
    public void onEnable() {
        plugin = this;
        saveDefaultConfig();
        reloadConfig();

        Command command = new Command();
        Objects.requireNonNull(getCommand("flamedropaddon")).setExecutor(command);
        Objects.requireNonNull(getCommand("flamedropaddon")).setTabCompleter(command);

        long delay = Config.getInt("config.airdropSpawn.time") * 20L;
        Runnable runnable = new Runnable();
        runnable.runTaskTimerAsynchronously(plugin, 0, delay);

        PlayerRunnable playerRunnable = new PlayerRunnable();
        playerRunnable.runTaskTimerAsynchronously(plugin, 0, 24L);

        if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
            new Placeholder().register();
        }
    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }
}
21 строка - reloadConfig(), что и привело меня в ступор, никогда не сталкивался с этим раньше
 
А зачем ты используешь reloadConfig, когда saveDefaultConfig и так загрузит значения и т.д, в командах ты можешь использовать его, но при запуске зачем?
как это не странно, но в плагине должна быть возможность перезагрузки конфига. Интересно же то, что мы получаем значение из конфига в переменной delay, но это выдаёт такую же ошибку, как и с reloadConfig
 
как это не странно, но в плагине должна быть возможность перезагрузки конфига. Интересно же то, что мы получаем значение из конфига в переменной delay, но это выдаёт такую же ошибку, как и с reloadConfig
Чего?!?! Убирай!!! И зачем ты юзаешь Config, если есть getConfig()???
 
Чего?!?! Убирай!!! И зачем ты юзаешь Config, если есть getConfig()???
что чего? Использование config как минимум для меня легче, а не писать по 100 раз plugin.getConfig(). Я спросил конкретно, из-за чего возникает данная ошибка, а не как лучше сделать по вашему мнению.
 
что чего? Использование config как минимум для меня легче, а не писать по 100 раз plugin.getConfig(). Я спросил конкретно, из-за чего возникает данная ошибка, а не как лучше сделать по вашему мнению.
Чего чего. А зачем ты обращаешься два раза к главному классу чтобы получить getConfig() я тебе сказал именно тут getConfig() юзать. А reloadConfig() зачем?! При запуске плагина он сам обновляет конфиг!!!
 
Чего?!?! Убирай!!! И зачем ты юзаешь Config, если есть getConfig()???

Понял вас, беру слова назад, в главном классе это будет рациональнее, сейчас попробую
Объединено

Чего чего. А зачем ты обращаешься два раза к главному классу чтобы получить getConfig() я тебе сказал именно тут getConfig() юзать. А reloadConfig() зачем?! При запуске плагина он сам обновляет конфиг!!!
Нет, при получении данных через getConfig().getInt() вызывает точно такую же ошибку, путь в конфиге правильный
 
Последнее редактирование:
Понял вас, беру слова назад, в главном классе это будет рациональнее, сейчас попробую
Объединено


Нет, при получении данных через getConfig().getInt() вызывает точно такую же ошибку, путь в конфиге правильный
скинь конфиг.
 
YAML:
config:
  delay_command:
    permission: false # нужен пермиссион для игроков? -> flamedropaddon.delay
    refresh: 60 # раз в сколько секунд можно отправлять команду?
  airdropSpawn:
    timeEnabled: true # нужно ли призывать мистик раз в какое-либо время?
    time: 7200 # в секундах
zones:
  ancient-drop:
    - WITHER;20;1 # Эффект;длительность в тиках;уровень
  flame-drop:
    - LAVA;20 # кастомный эффект Lava - просто поджигает на X тиков
скинь конфиг.
 
как это не странно, но в плагине должна быть возможность перезагрузки конфига. Интересно же то, что мы получаем значение из конфига в переменной delay, но это выдаёт такую же ошибку, как и с reloadConfig
getDefaultConfig() и так загружает данные как и reloadConfig, темболее ты два раза пытаешься их загрузить.
 
скинь новый лог ошибки
Код:
[19:52:13 ERROR]: Error occurred while enabling BAirDrop-FlameAddon v1.0.1 (Is it up to date?)
java.lang.NullPointerException: Cannot invoke "Object.toString()" because the return value of "java.util.Map$Entry.getKey()" is null
        at org.bukkit.configuration.file.YamlConfiguration.convertMapsToSections(YamlConfiguration.java:78) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.YamlConfiguration.convertMapsToSections(YamlConfiguration.java:82) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:72) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:160) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:128) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:188) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:157) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:133) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.comp.progiple.bairdropflameaddon.BAirDrop_FlameAddon.onEnable(BAirDrop_FlameAddon.java:25) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:518) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:432) ~[patched_1.16.5.jar:git-Purpur-1171]
        at net.minecraft.server.v1_16_R3.MinecraftServer.loadWorld(MinecraftServer.java:596) ~[patched_1.16.5.jar:git-Purpur-1171]
        at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:309) ~[patched_1.16.5.jar:git-Purpur-1171]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1074) ~[patched_1.16.5.jar:git-Purpur-1171]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293) ~[patched_1.16.5.jar:git-Purpur-1171]
        at java.lang.Thread.run(Thread.java:831) [?:?]
[19:52:13 INFO]: [BAirDrop-FlameAddon] Disabling BAirDrop-FlameAddon v1.0.1
 
Код:
[19:52:13 ERROR]: Error occurred while enabling BAirDrop-FlameAddon v1.0.1 (Is it up to date?)
java.lang.NullPointerException: Cannot invoke "Object.toString()" because the return value of "java.util.Map$Entry.getKey()" is null
        at org.bukkit.configuration.file.YamlConfiguration.convertMapsToSections(YamlConfiguration.java:78) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.YamlConfiguration.convertMapsToSections(YamlConfiguration.java:82) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:72) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:160) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:128) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:188) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:157) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:133) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.comp.progiple.bairdropflameaddon.BAirDrop_FlameAddon.onEnable(BAirDrop_FlameAddon.java:25) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:518) ~[patched_1.16.5.jar:git-Purpur-1171]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:432) ~[patched_1.16.5.jar:git-Purpur-1171]
        at net.minecraft.server.v1_16_R3.MinecraftServer.loadWorld(MinecraftServer.java:596) ~[patched_1.16.5.jar:git-Purpur-1171]
        at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:309) ~[patched_1.16.5.jar:git-Purpur-1171]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1074) ~[patched_1.16.5.jar:git-Purpur-1171]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293) ~[patched_1.16.5.jar:git-Purpur-1171]
        at java.lang.Thread.run(Thread.java:831) [?:?]
[19:52:13 INFO]: [BAirDrop-FlameAddon] Disabling BAirDrop-FlameAddon v1.0.1
Как называется конфиг?
 
Назад
Сверху Снизу