TuxGamer Geschrieben 7. Juli 2013 Geschrieben 7. Juli 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(); } } } }
Biber Geschrieben 7. Juli 2013 Geschrieben 7. Juli 2013 Tja leider kann ich kein CommandHelper... Oder Java... oder was das halt ist...
TuxGamer Geschrieben 7. Juli 2013 Autor Geschrieben 7. Juli 2013 Ist Java CommandHelper hab ich gesprengt, der ist nicht mehr in der Lage, diese Mengen von Code zu verarbeiten
Arkanus Geschrieben 7. Juli 2013 Geschrieben 7. Juli 2013 Hast du die Variable 'Welt' global deklariert und ihr einen Wert zugewiesen?
TuxGamer Geschrieben 7. Juli 2013 Autor Geschrieben 7. Juli 2013 (bearbeitet) 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 bearbeitet 7. Juli 2013 von TuxGamer
Arkanus Geschrieben 7. Juli 2013 Geschrieben 7. Juli 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.
TuxGamer Geschrieben 7. Juli 2013 Autor Geschrieben 7. Juli 2013 Ok, ich werde es mal weiter versuchen. Danke für die Hilfe, ich editier dann später mal den Beitrag
idk.cpp Geschrieben 7. Juli 2013 Geschrieben 7. Juli 2013 Hab ich den Stacktrace übersehen oder hast du keinen geposted? Der ist sehr nützlich für die Problembehebung,,,
Arkanus Geschrieben 7. Juli 2013 Geschrieben 7. Juli 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
TuxGamer Geschrieben 8. Juli 2013 Autor Geschrieben 8. Juli 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden