Jump to content

NullPointerException of epicness!


TuxGamer

Empfohlene Beiträge

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B