Jump to content

NullPointerException of epicness!


TuxGamer
 Share

Recommended Posts

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

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 by TuxGamer
Link to comment
Share on other sites

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...
B
B