Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Novichock, 6 июл 2016.

  1. Автор темы
    Novichock

    Novichock Активный участник Пользователь

    Баллы:
    76
    Skype:
    pavel.batalov1
    Имею вот такой конфиг:
    Код:
    tasks:
      task1:
        kill: ZOMBIE
        count: '5'
        reward: '100'
      task2:
        kill: ZOMBIE
        count: '5'
        reward: '100'
      task3:
        break: DIAMOND_ORE
        count: '-70'
        reward: '250'
    
    Возможно ли как-то удалить ключ "task2" вместе с его содержимым,не используя циклы?
     
  2. Хостинг MineCraft
    <
  3. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    set("tasks.task2", null)
     
  4. Автор темы
    Novichock

    Novichock Активный участник Пользователь

    Баллы:
    76
    Skype:
    pavel.batalov1
    Появилась ошибка в консоле:
    Код:
    [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
    
     
  5. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    at ru.Novichock.DailyTasks.EvListen.onBreak(EvListen.java:70) ~[?:?][DOUBLEPOST=1467806903,1467806867][/DOUBLEPOST]СорЭ, курсы Хогвардса с удаленным чтением кода я только начал...
     
  6. Автор темы
    Novichock

    Novichock Активный участник Пользователь

    Баллы:
    76
    Skype:
    pavel.batalov1
    вот этот евент:
    Код:
        @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();}
                    }
                }
            }
        }
    [DOUBLEPOST=1467807130,1467807049][/DOUBLEPOST]Ошибка пропадает когда закоменчиваю 10 строку.
     
  7. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
     
  8. Автор темы
    Novichock

    Novichock Активный участник Пользователь

    Баллы:
    76
    Skype:
    pavel.batalov1
    Что-то здесь не так?Если что я count обновляю до 5 для проверки.[DOUBLEPOST=1467809925,1467808542][/DOUBLEPOST]Ошибку сам нашёл,я после того как удалил ключ,пытался из него считать кое-какие переменные из-за чего и появилась ошибка.
     

Поделиться этой страницей