Помогите Как скопировать дефолтный конфиг в папку плагина?

_MCMaster_

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
DragOn4ik
Здратути. Мне нужно скопировать дефолтный конфиг(из jar) в папку с плагином, для этого я использую saveDefaultConfig() в onEnable(). После чего делаю так:
Код:
FileConfiguration config = getConfig();
String notPermission = config.getString("general.notPermission").replace("&", "\u00a7");
Но при загрузке плагина получаю ошибку:
Код:
2018-07-28 09:24:24 [SEVERE] Could not load 'plugins/EvilTroll.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.<init>(CraftServer.java:217)     
at net.minecraft.server.v1_5_R3.PlayerList.<init>(PlayerList.java:55)     
at net.minecraft.server.v1_5_R3.DedicatedPlayerList.<init>(SourceFile:11)     
at net.minecraft.server.v1_5_R3.DedicatedServer.init(DedicatedServer.java:106)     
at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:382)     
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.eviltroll.Main.<init>(Main.java:20)     
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)     
... 9 more
Как я понимаю, ошибка в том, что конфига не существует, но я же сохранил его с помощью saveDefaultConfig()...
general:
^^notPermission: "&cНедостаточно прав"
#^^ - это 2 пробела, просто редактор RuBukkit удаляет там пробелы
Как убрать эту ошибку?
 
Здратути. Мне нужно скопировать дефолтный конфиг(из jar) в папку с плагином, для этого я использую saveDefaultConfig() в onEnable(). После чего делаю так:
Код:
FileConfiguration config = getConfig();
String notPermission = config.getString("general.notPermission").replace("&", "\u00a7");
Но при загрузке плагина получаю ошибку:
Код:
2018-07-28 09:24:24 [SEVERE] Could not load 'plugins/EvilTroll.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.<init>(CraftServer.java:217)    
at net.minecraft.server.v1_5_R3.PlayerList.<init>(PlayerList.java:55)    
at net.minecraft.server.v1_5_R3.DedicatedPlayerList.<init>(SourceFile:11)    
at net.minecraft.server.v1_5_R3.DedicatedServer.init(DedicatedServer.java:106)    
at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:382)    
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.eviltroll.Main.<init>(Main.java:20)    
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)    
... 9 more
Как я понимаю, ошибка в том, что конфига не существует, но я же сохранил его с помощью saveDefaultConfig()...
general:
^^notPermission: "&cНедостаточно прав"
#^^ - это 2 пробела, просто редактор RuBukkit удаляет там пробелы
Как убрать эту ошибку?
config.yml находится в папке src???
 
Ещё один вопрос: Как из конфига взять значение float? У меня в Bukkit API есть только getFloatList(), а мне нужно именно getFloat()
 
Ещё один вопрос: Как из конфига взять значение float? У меня в Bukkit API есть только getFloatList(), а мне нужно именно getFloat()
Можно использовать config.get(path); и затем закастить это к float.
 
Хорошо, я вот про это:
у меня в конфиге есть explosionPower: 4F
config.getDouble будет работать?
 
Так как преобразовать 4F(float) в double ?
Код:
(double) Float.parseFloat(config.getString(...));
Еще работает попроще метод:
Код:
Double.parseDouble(config.getString(...));
Но ты можешь попробовать и сразу config.getDouble(), там же вроде тот же парсинг будет происходить и скорее всего будет работать и так.
 
Назад
Верх