• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot Wie beschreibe ich einen p.getKiller?

Mugiwara

Minecrafter
Registriert
1 April 2020
Beiträge
2
Diamanten
300
Ich möchte überprüfen wenn ein der Killer einen Namen hat, dann soll die erste Nachricht ausgegeben werden, wenn nicht dann die andere Nachricht. Das Problem ist ich weiß nicht wie man so einen p.getKiller beschreiben soll,
Java:
if(p.getKiller().???) {
for(Player all : Bukkit.getOnlinePlayers()) {
       all.sendMessage("§d§l"+ p.getName() + " §7wurde von §d§l" + p.getKiller().getName() + " §7getötet(test5)" );
      }
       } else {
for(Player all : Bukkit.getOnlinePlayers()) {
        all.sendMessage("§d§l"+ p.getName() + " §7ist gestorben(test6)" );
        }
                    }
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Ich geh mal davon aus, dass die eigentliche Frage lautet:
Weshalb wirft Zeile 3 dieses Codeausschnitts eine NullPointerException?
bzw
Was muss ich überprüfen, um in Zeile 3 keine NullPointerException zu bekommen?

Dazu muss man einfach bisschen Java können und die Javadocs von Bukkit lesen. getKiller ist eine Methode in LivingEntity. Wenn du den Link anklickst, siehst du, dass da @Nullable dransteht. Das bedeutet einfach, dass der von dieser Methode zurückgegebene Wert null sein kann. Das ist zum Beispiel der Fall, wenn der Spieler von einem Monster getötet wird, von einer Klippe springt oder in Lava badet.

Der Killer hat genau dann einen Namen, wenn er existiert. Zeile 1 sollte also einfach die Bedingung p.getKiller() != null prüfen.
 
Oben