Jump to content

Empfohlene Beiträge

Geschrieben

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();                }            }        }    }
Geschrieben (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 von TuxGamer
Geschrieben

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.

Geschrieben

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

Geschrieben

Ich denk, dass ich dass jetz mal ganz neu programmieren werde. Aber danke für die Hilfe XD, werde gerne wieder drauf zurück kommen.

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