Помогите Null Pointer в Gui

Статус
Закрыто для дальнейших ответов.

Fenix78563

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Blc_Dragon
Дорого времени суток, форумчане.

Выкидывает NullPointer
Java:
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.Plugin.GUI.onInventoryClick(GUI.java:133) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
    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

Проблемная строка тут
Java:
meta.setLore(lore);

Я так понимаю, что я присваиваю пустой ячейке какой то lore и это выдает ошибку, но проблема в том, что у меня стоит проверка на пустую вещь, и ячейка ее почему то не проходит

Java:
if (e.getCurrentItem() == null) {
                    return;
                }

В чем может быть проблема?
 
Ссылка meta есть null, я думаю.Попробуй добавить проверку e.getCurrentItem().hasItemMeta();
 
x2 Сперва создай мету.
создана.

Ссылка meta есть null, я думаю.Попробуй добавить проверку e.getCurrentItem().hasItemMeta();
Это конечно помогло, но фишка в том, что он выполняет действия которые стоят под return => он считает пустые ячейки как не пустые, и в итоге он продолжает работать и выдавать и выдавать различные сообщения, даже при клике по пустым ячейкам
 
создана.


Это конечно помогло, но фишка в том, что он выполняет действия которые стоят под return => он считает пустые ячейки как не пустые, и в итоге он продолжает работать и выдавать и выдавать различные сообщения, даже при клике по пустым ячейкам
Ты проверял ItemStack на null, а не ItemMeta.
 
Последнее редактирование:
если я кликаю по пустой ячейке, и у меня есть код
Java:
if (e.getCurrentItem() == null) {
                   return;
               }

то как он вообще дойдет до строки с itemmeta
Ну, если бы ты предоставил код, то я бы сказал точно, что произошло.А так...Может быть несколько вариантов.
 
Из меня ванта не очень, просто посмотри декомпилятором строку GUI.java:133 и узнаешь где бублик вылетел.
смотрите внимательнее мое первое сообщение.


Ну, если бы ты предоставил код, то я бы сказал точно, что произошло.А так...Может быть несколько вариантов.

Я в общем то уже и разобрался, у меня там почему то лежит не пустая вещь, а воздух. Поэтому он не проходил проверку на пустоту => не получал команду return и выполнял код дальше.
 
Фулл коде плеаз
А зачем?Проверку не проходило из-за того, что пустой слот это не null а Material.AIR, соотв. и return не происходил.А потом он пытался получить с этого мету, а получить мету с пустого слота немного затруднительно, из-за чего и вылетала ошибка.Проблема уже решена.
 
А зачем?Проверку не проходило из-за того, что пустой слот это не null а Material.AIR, соотв. и return не происходил.
В одних версиях пустой слот - Material.AIR, а в других - null.
Такая же путанница с событиями.

Я, правда, не понимаю, почему ТС не хочет предоставить full код...
 
В одних версиях пустой слот - Material.AIR, а в других - null.
Такая же путанница с событиями.

Я, правда, не понимаю, почему ТС не хочет предоставить full код...
Чтобы палками не били
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх