Hello, I had a problem with config Conf code: Code: void loadConfiguration() { if (this.getConfig().getString("options.general.maxChests") == null) //Main.java:142 this.getConfig().addDefault("options.general.maxChests", 10); if (this.getConfig().getString("options.general.maxWinChests") == null) this.getConfig().addDefault("options.general.maxWinChests", 3); if (this.getConfig().getString("options.general.settedChests") == null) this.getConfig().addDefault("options.general.settedChests", 0); if (this.getConfig().getString("options.general.settedWinChests") == null) this.getConfig().addDefault("options.general.settedWinChests", 0); this.getConfig().options().copyDefaults(true); this.saveConfig(); for (int i=1; this.getConfig().getInt("options.general.settedChests") >= i; i++) { if (this.getConfig().getString("options.loc.Pos" + i + ".x") != null) { World world = Bukkit.getServer().getWorld(this.getConfig().getString("options.loc.Pos" + i + ".world")); int x = (int) this.getConfig().get("options.loc.Pos" + i + ".x"); int y = (int) this.getConfig().get("options.loc.Pos" + i + ".y"); int z = (int) this.getConfig().get("options.loc.Pos" + i + ".z"); Location pos = new Location(world, x, y, z); RandChestItem.pos.add(pos); RandChestItem.p = RandChestItem.p - 1; } } for (int i=1; this.getConfig().getInt("options.general.settedWinChests") >= i; i++) { if (this.getConfig().getString("options.loc.WinPos" + i + ".x") != null) { World world = Bukkit.getServer().getWorld(this.getConfig().getString("options.loc.WinPos" + i + ".world")); int x = (int) this.getConfig().get("options.loc.WinPos" + i + ".x"); int y = (int) this.getConfig().get("options.loc.WinPos" + i + ".y"); int z = (int) this.getConfig().get("options.loc.WinPos" + i + ".z"); Location pos = new Location(world, x, y, z); RandChestItem.poswin.add(pos); RandChestItem.p2 = RandChestItem.p2 - 1; } } } Error: Code: [04:10:16] [Server thread/ERROR]: Could not call method 'public static org.bukkit.Location org.bukkit.Location.deserialize(java.util.Map)' of class org.bukkit.Location for deserialization java.lang.IllegalArgumentException: unknown world at org.bukkit.Location.deserialize(Location.java:631) ~[minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222] at org.bukkit.configuration.serialization.ConfigurationSerialization.deserializeViaMethod(ConfigurationSerialization.java:86) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.configuration.serialization.ConfigurationSerialization.deserialize(ConfigurationSerialization.java:128) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.configuration.serialization.ConfigurationSerialization.deserializeObject(ConfigurationSerialization.java:208) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.configuration.file.YamlConstructor$ConstructCustomObject.construct(YamlConstructor.java:39) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:204) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:193) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:453) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:184) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:434) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.SafeConstructor$ConstructYamlMap.construct(SafeConstructor.java:521) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.configuration.file.YamlConstructor$ConstructCustomObject.construct(YamlConstructor.java:30) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:204) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:193) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:453) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:184) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:434) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.SafeConstructor$ConstructYamlMap.construct(SafeConstructor.java:521) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.configuration.file.YamlConstructor$ConstructCustomObject.construct(YamlConstructor.java:30) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:204) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:193) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:453) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:184) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:434) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.SafeConstructor$ConstructYamlMap.construct(SafeConstructor.java:521) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.configuration.file.YamlConstructor$ConstructCustomObject.construct(YamlConstructor.java:30) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:204) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:193) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:159) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:146) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:524) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.yaml.snakeyaml.Yaml.load(Yaml.java:437) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:163) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:131) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:184) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:159) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:135) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at com.plugin.mayan.Main.loadConfiguration(Main.java:142) [mayan_event_1.0.jar:?] at com.plugin.mayan.Main.onEnable(Main.java:23) [mayan_event_1.0.jar:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:265) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:347) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:410) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.craftbukkit.v1_13_R2.CraftServer.enablePlugin(CraftServer.java:436) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at org.bukkit.craftbukkit.v1_13_R2.CraftServer.enablePlugins(CraftServer.java:350) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at net.minecraft.server.v1_13_R2.MinecraftServer.l(MinecraftServer.java:580) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:542) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:420) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at net.minecraft.server.v1_13_R2.DedicatedServer.init(DedicatedServer.java:294) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:698) [minecraft_server.jar:git-Spigot-1a3504a-84f3da3] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]
Problem 1: Since null isn't a string, instead of getString() use get() Problem 2: Instead of addDeafult() use set() Problem 3: remove this.getConfig().options().copyDefaults(true) I am pretty sure there are more problems, try that and post the code and the problems if needed. @Rekimo
Instead of doing that at all, just create a config.yml in your plugin with the default values then all you need to do is saveDefaultConfig() when the plugin loads and it will populate it if it isn't there. Then when you go to use the values, just pass it default values in case the server admin deleted the key or messed it up in some way. It appears to be ints, so wherever you use options.general.maxChests for example you'd just do getConfig().getInt("options.general.maxChests", 10). Also Location implements ConfigurationSerializable so rather than do your own serialization to the config just write the Location directly. You should also treat any data you get from config as suspect. For instance you are reading your serialized world/x/y/z and creating a Location and using it without verification. For all we know, some idiot admin put worrld instead of world. PS instead of RandChestItem.p = RandChestItem.p - 1; just do RandChestItem.p--;