Fehler mit PlayerInteractEvent

Dieses Thema im Forum "Programmierung" wurde erstellt von GermanCrazyCraft, 5. Mai 2014.

  1. GermanCrazyCraft
    Offline

    GermanCrazyCraft

    Registriert seit:
    25. Februar 2013
    Beiträge:
    19
    Ort:
    Bayern
    Minecraft:
    Nico2705
    Hallo liebe Community;
    ich will ein PlayerInteractEvent abfangen, was auch klappt aber immer wenn ich nur in die Luft schlage kommt ne Fehler meldung:

    Code:
    Code (Text):
    1. package de.bagpack;
    2.  
    3. import org.bukkit.Material;
    4. import org.bukkit.Sound;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.EventPriority;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.block.Action;
    10. import org.bukkit.event.player.PlayerInteractEvent;
    11.  
    12. public class UseBagPack implements Listener {
    13.    
    14.     @EventHandler(priority = EventPriority.LOW)
    15.     public void PlayerClick(PlayerInteractEvent e){
    16.        
    17.         Action action = e.getAction();
    18.         Player p = e.getPlayer();
    19.        
    20.         if(action.equals(Action.RIGHT_CLICK_AIR)){
    21.             if(p.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§3Rucksack") && (p.getItemInHand().getType() == Material.ENDER_CHEST)){
    22.                 p.playSound(p.getLocation(), Sound.HORSE_SADDLE, 10, 1);
    23.                 p.openInventory(p.getEnderChest());
    24.                 return;
    25.             }
    26.         }
    27.     }
    28. }
    Fehler:

    Code (Text):
    1. [14:48:57 ERROR]: Could not pass event PlayerInteractEvent to RPGAPI2014 v0.2
    2. org.bukkit.event.EventException
    3. >       at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    4. >       at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    5. >       at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    6. >       at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:471) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    7. >       at org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:195) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    8. >       at org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:165) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    9. >       at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:604) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    10. >       at net.minecraft.server.v1_7_R1.PacketPlayInBlockPlace.a(SourceFile:60) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    11. >       at net.minecraft.server.v1_7_R1.PacketPlayInBlockPlace.handle(SourceFile:9) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    12. >       at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    13. >       at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    14. >       at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    15. >       at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    16. >       at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    17. >       at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    18. >       at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    19. Caused by: java.lang.NullPointerException
    20. >       at de.bagpack.UseBagPack.PlayerClick(UseBagPack.java:21) ~[?:?]
    21. >       at sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source) ~[?:?]
    22. >       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_51]
    23. >       at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_51]
    24. >       at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:318) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    25. >       ... 15 more
    26.  
    Kann mir bitte wer helfen? Über Verbesserungsvorschläge wäre ich sehr erfreut!
    Danke im Vorraus :)
    Mfg Nico
     
    #1
  2. games6471
    Offline

    games6471

    Bist du dir sicher, dass der Spieler auch ein Item in der Hand hält?
     
    #2
  3. GermanCrazyCraft
    Offline

    GermanCrazyCraft

    Registriert seit:
    25. Februar 2013
    Beiträge:
    19
    Ort:
    Bayern
    Minecraft:
    Nico2705
    Die Meldung kommt nur, wenn er ein anderes Item als die Ender-Chest in der hand hat.
     
    #3
  4. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Du musst testen, ob der ItemStack auch ItemMeta hat (hasItemMeta()), bevor du auf dieses die Methode getDisplayName() aufrufst.
     
    #4
  5. Howha
    Offline

    Howha

    Registriert seit:
    10. April 2013
    Beiträge:
    42
    Minecraft:
    Howha
    Außerdem noch prüfen, ob der Spieler überhaupt ein Item in der Hand hat und ob dieses einen Displaynamen hat.
     
    #5
  6. GermanCrazyCraft
    Offline

    GermanCrazyCraft

    Registriert seit:
    25. Februar 2013
    Beiträge:
    19
    Ort:
    Bayern
    Minecraft:
    Nico2705
    Oke danke :D
     
    #6
  7. McPlayHD
    Offline

    McPlayHD

    Registriert seit:
    13. August 2013
    Beiträge:
    6
    Minecraft:
    McPlayHD
    und verwende doch mal das:
    Code (Text):
    1. if((e.getAction() == Action.RIGHT_CLICK_AIR) {
     
    #7