TuxGamer Posted July 7, 2013 Share Posted July 7, 2013 Hallo, ich schreibe gerade ein (mehr oder weniger) einfaches Bogenschießplugin, bei dem man nach Durchlaufen einer jeden Arena Karmapunkte für andere Spiele bekommt. Allerdings bekomme ich dauernd NullPointerExceptions, deren Grund ich nicht finde. [Datei im Anhang, weil der Syntax Highlighter hier nicht soo toll ist] Es handelt sich um den PlayerInteractEvent, der Fehler ist auf Zeile 85: @EventHandler public void onInteract (PlayerInteractEvent event) { if (event.getAction() == Action.RIGHT_CLICK_BLOCK && event.getClickedBlock().getTypeId() == 68) { if (HotPlayers.contains(event.getPlayer().getName())) { event.getPlayer().sendMessage(MessagePrefix + " ?cDu bist in einer Warteschleife. Verlasse sie erst."); } else { Sign s = (Sign) event.getClickedBlock().getState(); if (s.getLine(0).equals("?3[Ballerbude]")) { Player pla = event.getPlayer(); String pln = pla.getName(); switch (s.getLine(1)) { case "?oEinfach": // Einfach if (easy1.equals("")) { easy1 = pln; pla.teleport(new Location(Welt, 563, 95, 308)); HotPlayers += pln; preparePlayer(pla); } else { if (easy2.equals("")) { easy2 = pln; pla.teleport(new Location(Welt, 554, 95, 304)); HotPlayers += pln; } else { if (easy3.equals("")) { easy3 = pln; pla.teleport(new Location(Welt, 562, 95, 307)); HotPlayers += pln; } else { pla.sendMessage(MessagePrefix + " ?cAlle Arenen sind leider belegt."); } } } break; case "?oMedium": // Medium if (med1.equals("")) { med1 = pln; pla.teleport(new Location(Welt, 646, 95, 211)); HotPlayers += pln; } else { if (med2.equals("")) { med2 = pln; pla.teleport(new Location(Welt, 679, 95, 212)); HotPlayers += pln; } else { if (med3.equals("")) { med3 = pln; pla.teleport(new Location(Welt, 614, 95, 213)); HotPlayers += pln; } else { pla.sendMessage(MessagePrefix + " ?cAlle Arenen sind leider belegt."); } } } break; case "?oSchwer": // Hard if (hard1.equals("")) { hard1 = pln; pla.teleport(new Location(Welt, 645, 84, 381)); HotPlayers += pln; } else { if (hard2.equals("")) { hard2 = pln; pla.teleport(new Location(Welt, 616, 83, 405)); HotPlayers += pln; } else { if (hard3.equals("")) { hard3 = pln; pla.teleport(new Location(Welt, 675, 83, 405)); HotPlayers += pln; } else { pla.sendMessage(MessagePrefix + " ?cAlle Arenen sind leider belegt."); } } } break; case "?oHardcore": // Hardcore / Insane if (ins1.equals("")) { ins1 = pln; pla.teleport(new Location(Welt, 645, 84, 381)); HotPlayers += pln; } else { if (ins2.equals("")) { ins2 = pln; pla.teleport(new Location(Welt, 616, 83, 405)); HotPlayers += pln; } else { if (ins3.equals("")) { ins3 = pln; pla.teleport(new Location(Welt, 675, 83, 405)); HotPlayers += pln; } else { pla.sendMessage(MessagePrefix + " ?cAlle Arenen sind leider belegt."); } } } break; } updateSigns(); } } } } Link to comment Share on other sites More sharing options...
Biber Posted July 7, 2013 Share Posted July 7, 2013 Tja leider kann ich kein CommandHelper... Oder Java... oder was das halt ist... Link to comment Share on other sites More sharing options...
TuxGamer Posted July 7, 2013 Author Share Posted July 7, 2013 Ist Java CommandHelper hab ich gesprengt, der ist nicht mehr in der Lage, diese Mengen von Code zu verarbeiten Link to comment Share on other sites More sharing options...
Arkanus Posted July 7, 2013 Share Posted July 7, 2013 Hast du die Variable 'Welt' global deklariert und ihr einen Wert zugewiesen? Link to comment Share on other sites More sharing options...
TuxGamer Posted July 7, 2013 Author Share Posted July 7, 2013 (edited) Danke für die Antowort erstmal (: Ja, das habe ich. Syntax- und Kompilierfehler gibt es keine. PS/EDIT: Ist global definiert, und einen Wert hat sie auch Edited July 7, 2013 by TuxGamer Link to comment Share on other sites More sharing options...
Arkanus Posted July 7, 2013 Share Posted July 7, 2013 Kann eigentlich ja nur an dem Player liegen, an der Variable "Welt" oder es konnte keine neue Location erstellt werden. Frage mal im Programm ab: System.out.println(pla.toString());System.out.println(Welt.toString());System.out.println(new Location(Welt, 646, 95, 211).toString()); Wenn eins davon null ist, löst das die NullPointerException aus. Link to comment Share on other sites More sharing options...
TuxGamer Posted July 7, 2013 Author Share Posted July 7, 2013 Ok, ich werde es mal weiter versuchen. Danke für die Hilfe, ich editier dann später mal den Beitrag Link to comment Share on other sites More sharing options...
idk.cpp Posted July 7, 2013 Share Posted July 7, 2013 Hab ich den Stacktrace übersehen oder hast du keinen geposted? Der ist sehr nützlich für die Problembehebung,,, Link to comment Share on other sites More sharing options...
Arkanus Posted July 7, 2013 Share Posted July 7, 2013 Es handelt sich um den PlayerInteractEvent, der Fehler ist auf Zeile 85 Viel mehr sagt dir der Stacktrace auch nicht. Er gibt nur Auskunft über Ort des Fehlers, Thread und Ablauf-Geschichte. TuxGamer hat hier eig schon alles gesagt: Exceptionart und Ort Link to comment Share on other sites More sharing options...
TuxGamer Posted July 8, 2013 Author Share Posted July 8, 2013 Ich denk, dass ich dass jetz mal ganz neu programmieren werde. Aber danke für die Hilfe , werde gerne wieder drauf zurück kommen. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now