Jump to content

Recommended Posts

Posted

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();                }            }        }    }
Posted

Ist Java ;)

CommandHelper hab ich gesprengt, der ist nicht mehr in der Lage, diese Mengen von Code zu verarbeiten XD

Posted (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 by TuxGamer
Posted

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.

Posted

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

Posted

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.

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
×
×
  • Create New...
B
B