event.getPlayer(); funktioniert beim deathlistener nicht warum?
hallo ich habe den auftrag ein minecraft plugin zu coden dass spieler bannt wenn sie sterben aber wenn ich in dem playerdeathevent listener event.getPlayer() aufrufe kommt es immer zu einem fehler... bei zb playermoveevent usw geht es immer ich habe alle klassen importiert warum ?
3 Antworten
Bei sowas kuckste am besten einfach in der Doku nach: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/entity/PlayerDeathEvent.html
getPlayer() ist - wie du schon festgestellt hast - nicht vorhanden. Stattdessen findet man da aber folgendes:
Player | getEntity() | Returns the Entity involved in this event
Beim PlayerDeathEvent muss man also .getEntity() anstatt .getPlayer() machen.
Ah, hab's gefunden, hier:
Bukkit.getBanList(Banlist.Type.NAME).addBan(player.getName(), reason, expires, source);
geht nicht ich bekomm es nicht hin trotzdem danke
Dann machst du was falsch, so macht man das nämlich
Ist irgendwas rot markiert? Oder irgendeine Fehlermeldung beim Ausführen?
Das mit player.getname glaube ich.. auf jeden fall geht esnicht
player.getName()
geht auf alle Fälle...
addBan(String target, String reason, Date expires, String source)
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/BanList.html
Wenn etwas rot unterstichen ist, geh mit der Maus drüber, dann steht da wieso.
Wenn etwas nicht geht musst du halt rausfinden wieso..
Das liegt ganz einfach daran, dass es auf dem PlayerDeathEvent keine Methode getPlayer() gibt. Schau mal hier: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/entity/PlayerDeathEvent.html
getEntity returnt actually einen Player. Da muss man nix mehr casten.
If event.getEntity instance of Player -> Player player = (Player) event.getEntity
dann kann ich den spieler nicht bannen