• 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 PlayerInteractListener Fehler

G

Gelöschtes Mitglied 195971

Guest
Hallo,

immer, wenn ich einen Block setze oder abbaue, erhalte ich die folgende Fehlermeldung:
Code:
[22:18:30 ERROR]: Could not pass event PlayerInteractEvent to Lobby v1.0.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(Unknown Source) [?:1.8.0_201]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_201]
        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(Unknown Source) [?:1.8.0_201]
Caused by: java.lang.NullPointerException
        at eu.teamforum.lobby.listener.PlayerInteractListener.onPlayerInteract(PlayerInteractListener.java:31) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_201]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_201]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        ... 18 more

Ich bin durch das Internet nicht fündig geworden und bitte deshalb hier um Hilfe.
Desweiteren habe ich schon sämtliche Returns bzw. Else-Abfragen ausprobiert, doch ich weiß einfach nicht weiter.

Mein Code:
Java:
package eu.teamforum.lobby.listener;

import eu.teamforum.lobby.events.ToggleEvent;
import eu.teamforum.lobby.main.Main;
import eu.teamforum.lobby.utils.ItemBuilder;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;

public class PlayerInteractListener implements Listener {

    @EventHandler
    public void onPlayerInteract(PlayerInteractEvent e) {

        Player p = e.getPlayer();

        if (e.getItem() == null) {
            return;
        }

        if ((e.getItem().getItemMeta().getDisplayName().equals(Main.getInstance().getCfg().getItemStack("Verify.Item").getItemMeta().getDisplayName())) && ((e.getAction().equals(Action.RIGHT_CLICK_AIR.RIGHT_CLICK_AIR)) || (e.getAction().equals(Action.RIGHT_CLICK_BLOCK)))) {
            e.setCancelled(true);
            Bukkit.getPluginManager().callEvent(new ToggleEvent(p));
            p.performCommand("link");
        }

        if ((e.getItem().getItemMeta().getDisplayName().equals(Main.getInstance().getCfg().getItemStack("Unverify.Item").getItemMeta().getDisplayName())) && ((e.getAction().equals(Action.RIGHT_CLICK_AIR.RIGHT_CLICK_AIR)) || (e.getAction().equals(Action.RIGHT_CLICK_BLOCK)))) {
            e.setCancelled(true);
            Bukkit.getPluginManager().callEvent(new ToggleEvent(p));
            p.performCommand("unlink");
        }

        if (p.hasPermission("lobby.settings")) {

            if ((e.getItem().getItemMeta().getDisplayName().equals(Main.getInstance().getCfg().getItemStack("Settings.Item").getItemMeta().getDisplayName())) && ((e.getAction().equals(Action.RIGHT_CLICK_AIR.RIGHT_CLICK_AIR)) || (e.getAction().equals(Action.RIGHT_CLICK_BLOCK)))) {
                e.setCancelled(true);
                Bukkit.getPluginManager().callEvent(new ToggleEvent(p));
                Main.invsettings = p.getServer().createInventory(null, 9, "§4§lEinstellungen");

                // Fly-Item //
                if(p.hasPermission("lobby.fly")) {

                    if(p.getAllowFlight()) {
                        ItemStack item1 = new ItemBuilder(Material.FEATHER, 1).setName("§dFlugmodus").addLoreLine("§aAktiviert").setUnbreakable(true).build();
                        Main.invsettings.setItem(0, item1);
                    }
                    if(!p.getAllowFlight()) {
                        ItemStack item2 = new ItemBuilder(Material.FEATHER, 1).setName("§dFlugmodus").addLoreLine("§cDeaktiviert").setUnbreakable(true).build();
                        Main.invsettings.setItem(0, item2);
                    }
                
                }
                // Fly-Item Ende//


                // Build-Item //
                if(p.hasPermission("lobby.build")) {
                    
                    if(p.getGameMode().equals(GameMode.CREATIVE)) {
                        ItemStack item4 = new ItemBuilder(Material.GOLD_PICKAXE, 1).setName("§2Baumodus").addLoreLine("§aAktiviert").setUnbreakable(true).build();
                        Main.invsettings.setItem(1, item4);
                    }
                    if(p.getGameMode().equals(GameMode.ADVENTURE)) {
                        ItemStack item5 = new ItemBuilder(Material.GOLD_PICKAXE, 1).setName("§2Baumodus").addLoreLine("§cDeaktiviert").setUnbreakable(true).build();
                        Main.invsettings.setItem(1, item5);
                    }
                }

                if(p.getGameMode().equals(GameMode.CREATIVE)) {
                    e.setCancelled(false);
                }
                // Build-Item Ende//

                // TP-Item //
                if(p.hasPermission("lobby.teleport")) {

                    ItemStack item6 = new ItemBuilder(Material.COMPASS, 1).setName("§6Teleport").setUnbreakable(true).build();
                    Main.invsettings.setItem(2, item6);

                }
                // TP-Item Ende//


                ItemStack item3 = new ItemBuilder(Material.BARRIER, 1).setName("§cInventar schließen").setUnbreakable(true).build();
                Main.invsettings.setItem(8, item3);

                p.openInventory(Main.invsettings);
            }
        }
    }
}


Ich bitte um Hilfe.
Wahrscheinlich ist die Lösung so einfach, doch ich komme nicht darauf. ;)

Vielen Dank im voraus,
Joooonathan
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Das mit der ItemMeta wäre eine Möglichkeit. Weil der Stack kann vom Typ AIR sein, für den die ItemMeta dann null ist.

Die Exception sagt jedenfalls sehr klar aus, dass du in Zeile 31 versuchst, auf eine Methode oder ein Feld einer Instanz zuzugreifen, die null ist. Dein Quellcode passt nur leider nicht zur Exception, so dass man raten muss, welche Zeile es bei dir sein könnte.

So könnte z.B. Main.getInstance().getCfg().getItemStack("Verify.Item") potentiell null zurückliefern.
 
Oben