Frage von RaceShafter, 20

Wo liegt in Java hier der Fehler?

Ich programmiere gerade ein Bukkit

Plugin in Java.. Und wenn ein Spieler läuft rattert die Konsole ohne Ende folgenden Fehler: www.jakkit.de/error/ausgabe.txt (Dort steht der Error ganze 4 mal, und ich habe mich nur kurz gedreht)

Jemand meinte, es liege an Line 114.. Dort steht das:

(p.getInventory().getHelmet().getType() == Material.GOLD_HELMET)) {

Die ganze IF-Session lautet:

if ((!this.leiterkoenig.contains(p.getName())) &&

(p.getInventory().getHelmet().getType() == Material.GOLD_HELMET)) {

p.getInventory();

p.getInventory().setHelmet(null);

}

Ich bin ratlos.. Ist für Version 1.8 Minecraft

Antwort
von PerfectMuffin, 20

Wenn du keinen Bock hast, die Errologs zu lesen, dann kannst du das Programmieren vergessen.

Im Fehler steht Zeile 114. Es iost eine NullpointerException, also ist ein Nullzugriff über . oder [] das Problem.

Dabei kommen hier p, p.getInventory(), p.getInventory.getHelmet() infrage.

Da p gegeben sein muss und jeder Spieler ein Inventar hat, kommt nur noch p.getInventory().getHelmet() infrage. Der Fehler kommt genau dann, wenn der Spieler keinen Helm auf dem Kopf hat, da du niemals einen Nullcheck machst.

Das war mir auf einen Blick auf den Errorlog völlig offensichtlich und ich habe keinen Schimmer von Bukkit.

Also lern' gefälligst Java bevor du mit deinen zusammengekleisterten Bukkitplugins rumheulst.

Kommentar von RaceShafter ,

Ok, ich werde den Rat beherzigen und Java weiterlernen. Danke für die Hilfe, ich schaue mir das nachher mal an und ändere das ab. Soweit ich verstanden habe, muss ich einen Nullcheck mit einbauen, richtig?

Kommentar von RaceShafter ,

Das erklärt auch, warum der Fehler nicht mehr kommt, wenn ich den Helm aufhabe. Ich dussel..

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten