ServerPlugin Weshalb NullPointerException?

Dieses Thema im Forum "Programmierung" wurde erstellt von combo, 19. Oktober 2014.

  1. combo
    Offline

    combo

    Registriert seit:
    16. Juli 2012
    Beiträge:
    160
    Minecraft:
    combo5
    Hallo,
    ich bin momentan daran ein Arena System zu schreiben!
    Es klappt auch alles soweit jedoch kommt ein Fehler im RespawnEvent wenn ich eine Array List abfrage ob ein Spieler in dieser ist.
    Ich hoffe ihr könnt mir Helfen den Fehler zu finden.
    Code:
    Code (Text):
    1.  
    2. //Array's Blau und Rot sind Player Array's
    3.     @EventHandler
    4.     public void onRespawn(PlayerRespawnEvent e) {
    5.     Player s = Bukkit.getPlayer(e.getPlayer().getUniqueId());
    6.     Location l = null;
    7.     if(DTMSystem.blau.contains(s)) { // Zeile 149 <Fehler
    8.     double x = DTMSystem.config.getDouble(DTMSystem.currentarena + ".Blau" + ".X");
    9.     double y = DTMSystem.config.getDouble(DTMSystem.currentarena + ".Blau" + ".Y");
    10.     double z = DTMSystem.config.getDouble(DTMSystem.currentarena + ".Blau" + ".Z");
    11.     float yaw = DTMSystem.config.getInt(DTMSystem.currentarena + ".Blau" + ".Yaw");
    12.     l = new Location(s.getWorld(),x,y,z,yaw,0);
    13.     } else if(DTMSystem.rot.contains(s)){
    14.     double x = DTMSystem.config.getDouble(DTMSystem.currentarena + ".Rot" + ".X");
    15.     double y = DTMSystem.config.getDouble(DTMSystem.currentarena + ".Rot" + ".Y");
    16.     double z = DTMSystem.config.getDouble(DTMSystem.currentarena + ".Rot" + ".Z");
    17.     float yaw = DTMSystem.config.getInt(DTMSystem.currentarena + ".Rot" + ".Yaw");
    18.     l = new Location(s.getWorld(),x,y,z,yaw,0);
    19.     } else {
    20.     l = DTMSystem.spawnlocation(s);
    21.     }
    22.     e.setRespawnLocation(l);
    23.     }
    24.  

    Der Fehler:

    Code (Text):
    1.  
    2. [19:20:09 ERROR]: Could not pass event PlayerRespawnEvent to DTMSystem v1.0
    3. org.bukkit.event.EventException
    4.         at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    5. va:302) ~[spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    6.         at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    7. a:62) ~[spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    8.         at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    9. ava:509) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    10.         at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    11. ava:494) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    12.         at net.minecraft.server.v1_7_R4.PlayerList.moveToWorld(PlayerList.java:5
    13. 08) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    14.         at net.minecraft.server.v1_7_R4.PlayerList.moveToWorld(PlayerList.java:4
    15. 47) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    16.         at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java
    17. :1239) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    18.         at net.minecraft.server.v1_7_R4.PacketPlayInClientCommand.a(SourceFile:5
    19. 0) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    20.         at net.minecraft.server.v1_7_R4.PacketPlayInClientCommand.handle(SourceF
    21. ile:8) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    22.         at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186
    23. ) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    24.         at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java
    25. :81) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    26.         at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:7
    27. 34) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    28.         at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:2
    29. 89) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    30.         at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:5
    31. 84) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    32.         at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java
    33. :490) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    34.         at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:6
    35. 28) [spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    36. Caused by: java.lang.NullPointerException
    37.         at de.combo.DTMEvents.onRespawn(DTMEvents.java:149) ~[?:?]
    38.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0
    39. _13]
    40.         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0
    41. _13]
    42.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    43. .7.0_13]
    44.         at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_13]
    45.         at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    46. va:298) ~[spigot1652.jar:git-Spigot-1.7.9-R0.2-205-g2c31986]
    47.         ... 15 more
    48.  
    49.  
    Mfg combo
     
    #1
  2. skyshiny99
    Offline

    skyshiny99

    Registriert seit:
    2. Oktober 2012
    Beiträge:
    32
    Mir fällt da nur eine Möglichkeit ein; und zwar sind die ArrayListen gleich null oder nicht definiert. Anders kann bei einer ArrayList keine NullPointerException durch die contains-Methode kommen (siehe Javadocs).
     
    #2
  3. Bl4ckSkull666
    Offline

    Bl4ckSkull666

    Registriert seit:
    11. September 2014
    Beiträge:
    10
    Minecraft:
    Bl4ckSkull666
    Schreib mal bitte Zeile 130 bis 170 aus der DTMEvents.java, und makiere Zeile 149 dabei, Danke.
     
    #3
  4. skyshiny99
    Offline

    skyshiny99

    Registriert seit:
    2. Oktober 2012
    Beiträge:
    32
    Das hat damit nix zu tun; der Fehler liegt nur in der Methode onRespawn, und die wurde komplett angegeben.
     
    #4
  5. MrPyro13
    Offline

    MrPyro13

    Registriert seit:
    29. April 2013
    Beiträge:
    829
    Minecraft:
    MrPyro13
    Hallo,
    Lass dir doch einfach mal deine Arraylisten bzw. deren Länge ausgeben, dann weißt du, ob die ArrayListen null sind.
     
    #5
  6. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Oder poste deine KOMPLETTE Klasse auf http://pastebin.com/. Da kann man wenigstens die Zeilenangaben sehen UND sieht direkt alles und muss nicht nach jedem Codeschnipsel fragen.
     
    #6
  7. combo
    Offline

    combo

    Registriert seit:
    16. Juli 2012
    Beiträge:
    160
    Minecraft:
    combo5
    Wenn ich jetzt im ReSpawn Event auslesen lasse ob die ArrayList 0 ist Schickt er mir genauso eine NPE jedoch kommt als Antwort das wenn ich z.b. Team Rot bin die länge der ArrayList-Rot auch 1 ist.
     
    #7
  8. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Poste doch einfach deinen verdammten Code! Ist das so schwierig?
     
    #8
  9. Bl4ckSkull666
    Offline

    Bl4ckSkull666

    Registriert seit:
    11. September 2014
    Beiträge:
    10
    Minecraft:
    Bl4ckSkull666
    Der fehler liegt in ZEILE 149
    Code (Text):
    1. Caused by: java.lang.NullPointerException
    2.         at de.combo.DTMEvents.onRespawn(DTMEvents.java:149) ~[?:?]
    Also Poste bitte die bereits erwähnten Zeilen oder verzichte auf die Hilfe. *grml*
     
    #9
  10. combo
    Offline

    combo

    Registriert seit:
    16. Juli 2012
    Beiträge:
    160
    Minecraft:
    combo5
    Die Zeile die meinst ist in meinem Ersten Beitrag eingezeichnet! Bitte genau Lesen.
     
    #10
  11. Bl4ckSkull666
    Offline

    Bl4ckSkull666

    Registriert seit:
    11. September 2014
    Beiträge:
    10
    Minecraft:
    Bl4ckSkull666
    Dann überarbeite dein
    DTMSystem Class. und greif nicht von extern in die list ein.Sprich ändere es um in
    Code (Text):
    1. DTMSystem.getBlueTeam().isInTeam(s)
    Und vorallem leg die List direkt fest und mach diese zu Final in der DTMSystem
     
    #11