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

Помогите решить проблему с InventoryClickEvent

Тема в разделе "[Архив] Помощь", создана пользователем Hilgert, 19 дек 2013.

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

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

    Баллы:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    Здравствуйте, я тут сделал плагин, и у меня появилась проблема, плагин постоянно выводит ошибки такого рода:
    Код:
    22:39:08 [SEVERE] Could not pass event InventoryClickEvent to ***** v1.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:427)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredLi
    stener.java:26)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:479)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:464)
            at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java
    :1189)
            at net.minecraft.server.v1_5_R3.Packet102WindowClick.handle(SourceFile:3
    1)
            at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:187
    )
            at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java
    :109)
            at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35)
            at org.spigotmc.MultiplexingServerConnection.b(MultiplexingServerConnect
    ion.java:72)
            at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:5
    83)
            at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:2
    27)
            at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:4
    72)
            at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java
    :404)
            at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:5
    73)
    Caused by: java.lang.NullPointerException
            at ru.ennosium.hilgert.all.main.onInventoryClick(main.java:81)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            ... 15 more
    Код плагина:
    Код:
    if(e.getCurrentItem() != null){
                    if(e.getInventory().getName().contains("Выберите арену[MobArena]")){
                        e.setCancelled(true);
                    if(e.getCurrentItem().getType() == Material.BONE){
                        ((Player) e.getWhoClicked()).performCommand("ma j default");
                    }else if(e.getCurrentItem().getType() == Material.ROTTEN_FLESH){
                        ((Player) e.getWhoClicked()).performCommand("ma j 2");
                    }else if(e.getCurrentItem().getType() == Material.BOW){
                        ((Player) e.getWhoClicked()).performCommand("ma j 3");
                    }else if(e.getCurrentItem().getType() == Material.WOOD_SWORD){
                        ((Player) e.getWhoClicked()).performCommand("ma j 4");
                    }else if(e.getCurrentItem().getType() == Material.SPIDER_EYE){
                        ((Player) e.getWhoClicked()).performCommand("ma j 5");
                    }
                }
            }
            if(e.getCurrentItem() != null){
                if(e.getInventory().getName().contains("Выберите арену[PvP]")){
                    e.setCancelled(true);
                    if(e.getCurrentItem().getType() == Material.WOOD_SWORD){
                        p.performCommand("warp pvp1");
                    }else
                    if(e.getCurrentItem().getType() == Material.STONE_SWORD){
                        p.performCommand("warp pvp2");
                    }else
                    if(e.getCurrentItem().getType() == Material.IRON_SWORD){
                        p.performCommand("warp pvp3");
                    }else
                    if(e.getCurrentItem().getType() == Material.DIAMOND_SWORD){
                        p.performCommand("warp pvp5");
                    }else
                    if(e.getCurrentItem().getType() == Material.GOLD_SWORD){
                        p.performCommand("warp pvp4");
                    }
                }
            }
                if(e.getCurrentItem().getType() != null){
                    if(e.getInventory().getName().contains("Выберите паркур")){
                        e.setCancelled(true);
                        Material item = e.getCurrentItem().getType();
                            if(item == Material.IRON_INGOT){
                            p.performCommand("parkour 1");
                        }else
                            if(item == Material.GOLD_INGOT){
                                p.performCommand("parkour 2");
                        }else
                            if(item == Material.DIAMOND){
                                p.performCommand("parkour 3");
                        }else
                            if(item == Material.ENDER_PEARL){
                                p.performCommand("parkour");
                            }
                    }
                }
    Буду благодарен за помощь :cool:
     
    Последнее редактирование: 23 дек 2013
  2. Хостинг MineCraft
    <
  3. Автор темы
    Hilgert

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

    Баллы:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    Помогите пожалуйста, ну очень срочно надо =(
     
  4. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Инвентарь не обязан иметь имя.
     
  5. Автор темы
    Hilgert

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

    Баллы:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    Код:
            mobInventory = Bukkit.createInventory(null, 9, ChatColor.RED+"Выберите арену[MobArena]");
            pvpInventory = Bukkit.createInventory(null, 9, ChatColor.BLUE+"Выберите арену[PvP]");
            hInventory = Bukkit.createInventory(null, 9, ChatColor.GOLD+"Выберите паркур");
    [DOUBLEPOST=1387487535,1387487485][/DOUBLEPOST]Дело в том что плагин отлично работает, но вот ошибки...
     
  6. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Клик вообще то срабатывает для всех инвентарей, и инвентарь обычного игрока не обязан иметь имя.
     
  7. Автор темы
    Hilgert

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

    Баллы:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    Я заметил то что ошибка выводится именно когда игрок нажимает куда-то вне рамки инвентаря, я попытался это решить с помощью if(e.getCurrentItem().getType() != null){} но не помогло =(
     
    ПриветОтЛайки нравится это.
  8. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Потому что надо поверять e.getCurrentItem() != null , ибо итем может и не быть уже на этом этапе.
     
    Vedroyder нравится это.
  9. Автор темы
    Hilgert

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

    Баллы:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    Всё равно ошибки =([DOUBLEPOST=1387647184,1387491191][/DOUBLEPOST]ну кто нибудь, знает почему такая проблема? :([DOUBLEPOST=1387814787][/DOUBLEPOST]ап чтоль :(
     
    Последнее редактирование: 20 дек 2013
    I-Am-Black-Overlord нравится это.

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