Помогите Удаление ключа из конфига.

Novichock

Активный участник
Пользователь
Баллы
76
Имею вот такой конфиг:
Код:
tasks:
  task1:
    kill: ZOMBIE
    count: '5'
    reward: '100'
  task2:
    kill: ZOMBIE
    count: '5'
    reward: '100'
  task3:
    break: DIAMOND_ORE
    count: '-70'
    reward: '250'
Возможно ли как-то удалить ключ "task2" вместе с его содержимым,не используя циклы?
 
Появилась ошибка в консоле:
Код:
[16:50:18] [Server thread/ERROR]: Could not pass event BlockBreakEvent to DailyTasks v0.1
org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:509) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:494) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.PlayerInteractManager.breakBlock(PlayerInteractManager.java:264) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.PlayerInteractManager.dig(PlayerInteractManager.java:118) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:552) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.PacketPlayInBlockDig.a(PacketPlayInBlockDig.java:41) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.PacketPlayInBlockDig.handle(PacketPlayInBlockDig.java:65) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
Caused by: java.lang.NumberFormatException: null
    at java.lang.Integer.parseInt(Unknown Source) ~[?:1.8.0_91]
    at java.lang.Integer.valueOf(Unknown Source) ~[?:1.8.0_91]
    at ru.Novichock.DailyTasks.EvListen.onBreak(EvListen.java:70) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_91]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_91]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_91]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_91]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) ~[craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    ... 15 more
 
Появилась ошибка в консоле:
Код:
[16:50:18] [Server thread/ERROR]: Could not pass event BlockBreakEvent to DailyTasks v0.1
org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:509) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:494) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.PlayerInteractManager.breakBlock(PlayerInteractManager.java:264) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.PlayerInteractManager.dig(PlayerInteractManager.java:118) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:552) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.PacketPlayInBlockDig.a(PacketPlayInBlockDig.java:41) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.PacketPlayInBlockDig.handle(PacketPlayInBlockDig.java:65) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
Caused by: java.lang.NumberFormatException: null
    at java.lang.Integer.parseInt(Unknown Source) ~[?:1.8.0_91]
    at java.lang.Integer.valueOf(Unknown Source) ~[?:1.8.0_91]
    at ru.Novichock.DailyTasks.EvListen.onBreak(EvListen.java:70) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_91]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_91]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_91]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_91]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) ~[craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    ... 15 more
at ru.Novichock.DailyTasks.EvListen.onBreak(EvListen.java:70) ~[?:?]
СорЭ, курсы Хогвардса с удаленным чтением кода я только начал...
 
вот этот евент:
Код:
    @EventHandler
    public void onBreak(BlockBreakEvent e){
        File datap = new File(plugin.getDataFolder() + File.separator + "player_data"+ File.separator+e.getPlayer().getName()+".yml");
        YamlConfiguration config = YamlConfiguration.loadConfiguration(datap);
        for(String key : config.getConfigurationSection("tasks").getKeys(false)){
            if(config.contains("tasks."+key+".break")){
                if(Material.getMaterial(config.getString("tasks."+key+".break"))==e.getBlock().getType()){
                    config.set("tasks."+key+".count", String.valueOf((Integer.valueOf(config.getString("tasks."+key+".count"))-1)));
                     if((Integer.valueOf(config.getString("tasks."+key+".count")))==0){
                         config.set("tasks."+key, null);
                         try {
                            Economy.setMoney(e.getPlayer().getName(), Economy.getMoney(e.getPlayer().getName())+Integer.valueOf(config.getString("tasks."+key+".reward")));
                        } catch (NoLoanPermittedException e1) {
                            e1.printStackTrace();
                        } catch (UserDoesNotExistException e1) {
                            e1.printStackTrace();
                        }
                     }
                    try {
                        config.save(datap);
                        } catch (IOException e1) {e1.printStackTrace();}
                }
            }
        }
    }

Ошибка пропадает когда закоменчиваю 10 строку.
 
config.getString("tasks."+key+".break")
config.set("tasks."+key+".count",
config.getString("tasks."+key+".count"))-1)));
config.getString("tasks."+key+".count")))==0){
config.set("tasks."+key, null);
Имею вот такой конфиг:
Код:
tasks:
  task1:
    kill: ZOMBIE
    count: '5'
    reward: '100'
  task2:
    kill: ZOMBIE
    count: '5'
    reward: '100'
  task3:
    break: DIAMOND_ORE
    count: '-70'
    reward: '250'
 
Что-то здесь не так?Если что я count обновляю до 5 для проверки.
Ошибку сам нашёл,я после того как удалил ключ,пытался из него считать кое-какие переменные из-за чего и появилась ошибка.
 
Назад
Верх