Discord

  • Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot Could not pass event PlayerInteractEvent

JustnSkill

Minecrafter
Mitglied seit
30 Juni 2019
Beiträge
11
Der Error:

Could not pass event PlayerInteractEvent to VestaMC-Lobby v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:228) [spigot.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:195) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerInteractManager.a(PlayerInteractManager.java:107) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:623) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInBlockDig.a(SourceFile:40) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInBlockDig.a(SourceFile:10) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-db6de12-18fbb24]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_131]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_131]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-db6de12-18fbb24]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
Caused by: java.lang.NullPointerException
at at.justnskill.listener.InteractListener.onInteract(InteractListener.java:15) ~[?:?]
at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
... 18 more

Der Code:
package at.justnskill.listener;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent;

import at.justnskill.main.Main;

public class InteractListener implements Listener {

@EventHandler
public static void onInteract(PlayerInteractEvent e) {
Player p = (Player) e.getPlayer();
if(e.getItem().hasItemMeta() && e.getItem() != null) {


if(e.getItem().getItemMeta().getDisplayName().equals("§4Navigator")) {
p.openInventory(Main.inventory);
e.setCancelled(true);
}
}
}
}

Kann mir da jemand weiterhelfen? Funktionieren tut es, aber der Fehler stört mich.
 

Kroseida

Schafhirte
Mitglied seit
28 September 2015
Beiträge
103
Alter
21
Minecraft
Kroseida
at.justnskill.listener.InteractListener.onInteract(InteractListener.java:15) ~[?:?]

Irgendwas an der Stelle ist null.
Debuggen sollte dir helfen.
 

SirYwell

Vorarbeiter
Osterei Experte
Mitglied seit
30 Juni 2017
Beiträge
269
Alter
20
Minecraft
SirYwell
Zum einen könntest du sowas auch als Codeblock einfügen, dann stehen Zeilen dran und man kann den Code auch lesen.
Zu deinem Problem:
e.getItem().hasItemMeta() && e.getItem() != null eine vernünftige IDE würde dir sofort sagen, dass hier etwas faul ist. Logische Ausdrücke werden von links nach rechts abgearbeitet, so wie man auch liest. Wenn e.getItem() also null ist, würde die zweite Bedingung das zwar entsprechend abfangen, aber da die erste Bedingung zuerst ausgewertet wird, bekommst du halt die NPE um die Ohren geschmissen. Aber wie gesagt, eine nicht allzu schlechte IDE zeigt dir das sogar an.
 

Kroseida

Schafhirte
Mitglied seit
28 September 2015
Beiträge
103
Alter
21
Minecraft
Kroseida
@SirYwell lass die Leute sowas lieber selber via debuggen raus finden.
Ansonsten werden sie nie kapieren was genau ihr Fehler ist.
 

SirYwell

Vorarbeiter
Osterei Experte
Mitglied seit
30 Juni 2017
Beiträge
269
Alter
20
Minecraft
SirYwell
@SirYwell lass die Leute sowas lieber selber via debuggen raus finden.
Ansonsten werden sie nie kapieren was genau ihr Fehler ist.
Sowas muss man nicht mit debuggen rausfinden, man muss nur wissen, wie die Sprache funktioniert. Wenn, dann hilft es noch, die Fehlermeldung genauer zu erklären, aber der logische Fehler ist ja an sich offensichtlich, wenn man weiß, was passiert.
 

Kroseida

Schafhirte
Mitglied seit
28 September 2015
Beiträge
103
Alter
21
Minecraft
Kroseida
Debuggen ist an der Stelle simpel gesagt einfach das du dir alle Variablen ausgibst.
Ergo - du versuchst am besten mal jede Variable welche "null" sein könnte auszugeben und schaust mal was dein Ergebnis ist.
 
Oben