Помогите Ошибка в работе с конфигом

Статус
Закрыто для дальнейших ответов.

_MCMaster_

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
DragOn4ik
Hi 🙂
При загрузке плагина получаю ошибку на вот этой строке:
PHP:
FileConfiguration config = getConfig();
Ошибка:
Код:
[SEVERE] Could not load 'plugins/stats.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.IllegalArgumentException: File cannot be null
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:182)     
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)     
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)     
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugins(CraftServer.java:239)     
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.reload(CraftServer.java:603)     
at org.bukkit.Bukkit.reload(Bukkit.java:275)     
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)     
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)     
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:523)     
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchServerCommand(CraftServer.java:512)     
at net.minecraft.server.v1_5_R3.DedicatedServer.an(DedicatedServer.java:262)     
at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:227)     
at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477)     
at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410)     
at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573) 
Caused by: java.lang.IllegalArgumentException: File cannot be null     
at org.apache.commons.lang.Validate.notNull(Validate.java:203)     
at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:170)     
at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117)     
at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)     
at com.dragon4ik.stats.Main.<init>(Main.java:17)     
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)     
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)     
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)     
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)     
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:178)     
... 14 more
Конфиг копирую так:
PHP:
config.options().copyDefaults(true);
Ошибка не пропадает при ручном создании конфига в папке stats.
 
1.5.2 (конечно же, динозавр 😁) Просто плагин друг сделать попросил, а он на 1.5.2 почему-то...
Я что-то думал что 1.7.10
Вот тут решил затестить. Вместо обьекта config использовал getConfig()
Получилась такая ошибка:
2018-07-31 13:58:30 [SEVERE] Cannot load plugins/Test/config.yml org.bukkit.configuration.InvalidConfigurationException: Top level is not a Map.
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:57)
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:138)
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:105)
at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:175)
at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117)
at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)
at test.Main.onEnable(Main.java:8)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugin(CraftServer.java:282)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.enablePlugins(CraftServer.java:264)
at net.minecraft.server.v1_5_R3.MinecraftServer.j(MinecraftServer.java:304)
at net.minecraft.server.v1_5_R3.MinecraftServer.e(MinecraftServer.java:283)
at net.minecraft.server.v1_5_R3.MinecraftServer.a(MinecraftServer.java:243)
at net.minecraft.server.v1_5_R3.DedicatedServer.init(DedicatedServer.java:151)
at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:382)
at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
2018-07-31 13:58:30 [SEVERE] Cannot load configuration from stream org.bukkit.configuration.InvalidConfigurationException: Top level is not a Map.
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:57)
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:138)
at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:202)
at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:121)
at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)
at test.Main.onEnable(Main.java:8)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugin(CraftServer.java:282)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.enablePlugins(CraftServer.java:264)
at net.minecraft.server.v1_5_R3.MinecraftServer.j(MinecraftServer.java:304)
at net.minecraft.server.v1_5_R3.MinecraftServer.e(MinecraftServer.java:283)
at net.minecraft.server.v1_5_R3.MinecraftServer.a(MinecraftServer.java:243)
at net.minecraft.server.v1_5_R3.DedicatedServer.init(DedicatedServer.java:151)
at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:382)
at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
Конфиг дай
 
test = "baskg"
уупс... забыл что не =, а :
Сейчас поправлю, и скажу результ
 
Всё, поправил.
Результат:
Ошибки нет.
Значит, ошибка в FileConfiguration config = getConfig() ????
 
Это одна ошибка. А вторая, про FileConfiguration config = getConfig() никуда не исчезла после исправления конфига...
Другие плагины нормально работают? Посмотри как в них. Ошибка где-то у тебя.
 
Ну ты ж кодишь, значит код читать умеешь.
Бери декомпилятор и смотри в ядре вот этот стак трейс:
Код:
Caused by: java.lang.IllegalArgumentException: File cannot be null   
at org.apache.commons.lang.Validate.notNull(Validate.java:203)   
at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:170)   
at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117)   
at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)   
at com.dragon4ik.stats.Main.<init>(Main.java:17)
И выясняй почему файл там null.
Декомпилировать опен сурс код, гениус
 
Декомпилировать опен сурс код, гениус
Ну как бы при просмотре декомпилированного кода быстрее по методам скакать. Мне к примеру намного проще чего то таким образом узнать, причем сразу есть и не опенсурс код, и патчи х тчи уже применены.

Да, минус - строки со стактрейса не совпадают. Но по следующему вызову в большинстве случаев можно найти цель, а на вершине - по контексту ошибки. В крайних случаях обращаюсь к исходникам.
 
Последнее редактирование:
Ну как бы при просмотре декомпилированного кода быстрее по методам скакать. Мне к примеру намного проще чего то таким образом узнать, причем сразу есть и не опенсурс код, и патчи х тчи уже применены.

Да, минус - строки со стактрейса не совпадают. Но по следующему вызову в большинстве случаев можно найти цель, а на вершине - по контексту ошибки. В крайних случаях обращаюсь к исходникам.
А собрать через buildtools и в идеи сразу смотреть со всеми ее фичами это не быстрее чтоли? И да, хз что ты за декомпил юзаешь, но во всех нормальных декомпиляторах присутствуют строки от стак трейса
 
И да, хз что ты за декомпил юзаешь, но во всех нормальных декомпиляторах присутствуют строки от стак трейса
Через байт код разве что смотреть.
А так ты сам знаешь, комментарии в исходниках, другой стиль показа кода уже может сместить реальную строчку на порядок. Декомпиляция же не дает точных исходников.
 
У чувака просто руки кривыве. Зачем его учить декомпилировать сервер? Совсем обкуренные собрались?
org.bukkit.plugin.InvalidPluginException: java.lang.IllegalArgumentException: File cannot be null.
 
У чувака просто руки кривыве. Зачем его учить декомпилировать сервер? Совсем обкуренные собрались?
org.bukkit.plugin.InvalidPluginException: java.lang.IllegalArgumentException: File cannot be null.
Ну как я заметил, то во первых ошибка возникает на баккитовском методе, а во вторых он говорит, что ни ручное создание файла конфига, ни через saveDefaultConfig() не помогает. Откуда тогда NPE может взяться из getConfig()?

Все плагины отлично работают.
Можешь скинуть свое ядро особенное? Или как минимум классы из стак трейса.
 
Через байт код разве что смотреть.
А так ты сам знаешь, комментарии в исходниках, другой стиль показа кода уже может сместить реальную строчку на порядок. Декомпиляция же не дает точных исходников.
В байт коде строки остаются, и во всях декомпиляторах тоже есть кнопочка для показа строк для дебага. Ну и как я уже сказал, собирайте через билд тулс и смотрите в идеи код
 
В байт коде строки остаются, и во всях декомпиляторах тоже есть кнопочка для показа строк для дебага. Ну и как я уже сказал, собирайте через билд тулс и смотрите в идеи код
Черт, даже не замечал никогда ту галочку с дебаг строчками, теперь все еще проще, +1 в копилку опыта (деградации)
@_MCMaster_ Ну что там?
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх