ServerPlugin Fehlermeldung

Dieses Thema im Forum "Programmierung" wurde erstellt von MasterMax_, 12. Februar 2016.

  1. MasterMax_
    Offline

    MasterMax_

    Registriert seit:
    12. Februar 2016
    Beiträge:
    2
    Hey, ich habe ein Lobby-Plugin geschrieben, bei dem man sich mit einem Navigator zu verschiedenen Warps tpn kann. Schön und gut, aber das teleporten über den Navigator funktioniert nicht, obwohl es gehen sollte. Wenn ich nur /warp [Warp-Name] eingebe, werde ich teleportiert. Hier die Fehlermeldung, wobei ich nciht weiß, ob diese überhaupt mit dem Warp zusammenhängt:

    Code (Text):
    1.  
    2. [19:51:08 ERROR]: Could not pass event PlayerInteractEvent to LobbySystem v0.1
    3. org.bukkit.event.EventException
    4.         at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    5. va:310) ~[spigot_server.jar:git-Spigot-db6de12-18fbb24]
    6.         at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    7. a:62) ~[spigot_server.jar:git-Spigot-db6de12-18fbb24]
    8.         at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    9. ava:502) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
    10.         at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    11. ava:487) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
    12.         at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInte
    13. ractEvent(CraftEventFactory.java:228) [spigot_server.jar:git-Spigot-db6de12-18fb
    14. b24]
    15.         at net.minecraft.server.v1_8_R3.PlayerInteractManager.interact(PlayerInt
    16. eractManager.java:463) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
    17.         at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java
    18. :759) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
    19.         at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlo
    20. ckPlace.java:52) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
    21.         at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlo
    22. ckPlace.java:1) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
    23.         at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:1
    24. 3) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
    25.         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
    26. 1) [?:1.8.0_25]
    27.         at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_25]
    28.  
    29.         at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot_ser
    30. ver.jar:git-Spigot-db6de12-18fbb24]
    31.         at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:7
    32. 15) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
    33.         at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:3
    34. 74) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
    35.         at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:6
    36. 54) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
    37.         at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java
    38. :557) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
    39.         at java.lang.Thread.run(Thread.java:745) [?:1.8.0_25]
    40. Caused by: java.lang.NullPointerException
    41.         at de.cynux.listeners.listener_Navigation.onOpenNav(listener_Navigation.
    42. java:35) ~[?:?]
    43.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0
    44. _25]
    45.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    46. java:62) ~[?:1.8.0_25]
    47.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    48. sorImpl.java:43) ~[?:1.8.0_25]
    49.         at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_25]
    50.         at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    51. va:306) ~[spigot_server.jar:git-Spigot-db6de12-18fbb24]
    52.         ... 17 more
     
    #1
  2. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    In der Klasse listener_Navigation Zeile 35 versucht du irgendwas mit einem Objekt zu machen, das nicht existiert.
     
    #2
  3. skcxck
    Offline

    skcxck

    Registriert seit:
    9. November 2013
    Beiträge:
    12
    Ort:
    Frankfurt am Main
    Minecraft:
    skcxck
    @MasterMax_ poste bitte deinen Quelltext mittels Hastebin und teile uns den Link mit.
    Falls dir die Diagnostik des Problems nicht weiter hilft, können wir dir über diese Handhabung weiterhelfen.
     
    #3
  4. MasterMax_
    Offline

    MasterMax_

    Registriert seit:
    12. Februar 2016
    Beiträge:
    2
    #4
  5. skcxck
    Offline

    skcxck

    Registriert seit:
    9. November 2013
    Beiträge:
    12
    Ort:
    Frankfurt am Main
    Minecraft:
    skcxck
    @MasterMax_ versuche den Fehler chronologisch auszuschließen.
    NullPointerException bedeutet, das ein Objekt/Variable sich in einem quasi leeren Zustand befindet und versucht wird zu nutzen.
    Demnach lässt sich der Fehler durch Abfragen "ist das Objekt null?" schnell finden.

    Hinweis:
    Code (Text):
    1. Player p = (Player) e.getPlayer();
    Du brauchst den Spieler nicht in ein Spielerobjekt casten, wenn bereits ein entsprechendes Objekt vorliegt.

    Also:
    Code (Text):
    1. Player p = e.getPlayer();
    Möglicherweise könnte das dein Problem lösen, andernfalls gehe wie oben beschrieben vor.
     
    #5
  6. UnityGaming
    Offline

    UnityGaming

    Registriert seit:
    25. Oktober 2015
    Beiträge:
    89
    Ort:
    Hohenfels
    Minecraft:
    FastFelix771
    Du prüfst beim InventoryClickEvent nicht ob das Item null oder dessen Material AIR ist. Beides kann sehr leicht eintreten und zu NPEs führen!
    Code (Text):
    1. if(e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR) return;
    Am Besten am Anfang der Methode abfragen und das wäre gegessen. Sowas passiert den meisten Anfängern bei diesem Event. ;)

    Ganz nebenbei bemerkt... dein Code ist zu 80% nonsens, aber Jedem das Seine! :)

    EDIT:
    Wenn ich mich recht entsinne ist der DisplayName auch nicht immer existent.
    Dafür gibt es "hasDisplayName()" oder du machst dort auch einen not-null check.
     
    #6
    jensIO gefällt das.