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

Помогите GUI Срет в консоль

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

Статус темы:
Закрыта.
  1. Автор темы
    Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    В классе gui использую такое событие.
    Код:
    @EventHandler
        public void onInventoryClick (InventoryClickEvent e) {
            File mm = new File(plugin.getDataFolder() + File.separator + "main.yml");
            menu = YamlConfiguration.loadConfiguration(mm);
            Player p = (Player) e.getWhoClicked();
            if (e.getClickedInventory().getName().equalsIgnoreCase(genString.genName(menu.getString("Name")))) {   
                e.setCancelled(true);
                if (e.getSlot() == 0) {
                    //          
                }
            }
        }
    
    При клике мимо любого инвентаря (т.е. в область вне окошка с инвентарем), при чем не важно, инвентарь моего плагина, или же любой другой (кроме инвентаря игрока), он засирает консоль ошибкой
    Код:
    [Server thread/ERROR]: Could not pass event InventoryClickEvent to GuiShopRecoded v0.1
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[server.jar:git-Spigot-90f61bc-6053c5c]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[server.jar:git-Spigot-90f61bc-6053c5c]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [server.jar:git-Spigot-90f61bc-6053c5c]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [server.jar:git-Spigot-90f61bc-6053c5c]
        at net.minecraft.server.v1_10_R1.PlayerConnection.a(PlayerConnection.java:1854) [server.jar:git-Spigot-90f61bc-6053c5c]
        at net.minecraft.server.v1_10_R1.PacketPlayInWindowClick.a(SourceFile:33) [server.jar:git-Spigot-90f61bc-6053c5c]
        at net.minecraft.server.v1_10_R1.PacketPlayInWindowClick.a(SourceFile:10) [server.jar:git-Spigot-90f61bc-6053c5c]
        at net.minecraft.server.v1_10_R1.PlayerConnectionUtils$1.run(SourceFile:13) [server.jar:git-Spigot-90f61bc-6053c5c]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_101]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_101]
        at net.minecraft.server.v1_10_R1.SystemUtils.a(SourceFile:45) [server.jar:git-Spigot-90f61bc-6053c5c]
        at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:732) [server.jar:git-Spigot-90f61bc-6053c5c]
        at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:400) [server.jar:git-Spigot-90f61bc-6053c5c]
        at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:668) [server.jar:git-Spigot-90f61bc-6053c5c]
        at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:567) [server.jar:git-Spigot-90f61bc-6053c5c]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
    Caused by: java.lang.NullPointerException
        at ru.blc.GuiShop.GUI.onInventoryClick(GUI.java:52) ~[?:?]
        at sun.reflect.GeneratedMethodAccessor116.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[server.jar:git-Spigot-90f61bc-6053c5c]
        ... 15 more
    
    
     
  2. Хостинг MineCraft
    <
  3. Exception_Prototype

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

    Баллы:
    46
    Действительно. Как же он будет получать требуем тобой слот, если ты не попал по слоту? Какой тогда будет слот? Правильно! null! А что мы делаем с null ? Дальше надеюсь поймёшь.
     
  4. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    +1 NullPointerException
     
  5. Exception_Prototype

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

    Баллы:
    46
    Типо поддерживаешь или я что-то не правильно написал?
     
  6. Lilian_solo

    Lilian_solo Новичок Пользователь Заблокирован

    Баллы:
    21
    Имя в Minecraft:
    CoreKolas
    Поддерживает, понятно же -_-
     
  7. Автор темы
    Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Попытался прикрутить else if (e.getSlot() == null), эклипс обматерил, сказал что нехорший человек, и что нормальные люди так не делают.

    Т.к. я тупой, скажите пожалуйста как делают нормальные люди?
     
  8. Lilian_solo

    Lilian_solo Новичок Пользователь Заблокирован

    Баллы:
    21
    Имя в Minecraft:
    CoreKolas
    Код:
    if (e.getInventory() != null && e.getInventory().getName().equalsIgnoreCase("gui")) {
                final Player p = (Player)e.getWhoClicked();
                e.setCancelled(true);
                if (e.getCurrentItem() == null) {
                    return;
                }
                if (e.getCurrentItem().getType().equals(Material.EXP_BOTTLE)) {
                            p.closeInventory();
                            p.sendMessage(ChatColor.GREEN + "Всё работает(дожно)");
    //или другое действие
     
  9. Автор темы
    Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Спасибо, пашет
     
  10. Mr_RoboMan

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

    Баллы:
    123
    Зачем добавлять final там, где он не нужен?
     
  11. Lilian_solo

    Lilian_solo Новичок Пользователь Заблокирован

    Баллы:
    21
    Имя в Minecraft:
    CoreKolas
    Сам хз.
    Красивее так =)
    И код всё равно будет такой же, как и без final.[DOUBLEPOST=1480258582,1480258318][/DOUBLEPOST]Тему клосе c=
     
  12. Sonicxd2

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

    Баллы:
    76
    Оптимизация где ты?
     
  13. Автор темы
    Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    был бухой, копировал криво. т.к. использую дополнительные менеджеры буфер обмен, то он так вставилось. в реале я не дибил что бы при каждом клике подключать конфиг заново
     
Статус темы:
Закрыта.

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