Я пытаюсь создать индивидуальные сообщения о смерти, когда вас убивают определенным образом. Мне нужны отдельные сообщения, когда вас взорвет TNT или вас взорвет крипер. Я попытался отладить его и создать крипер и TNT, и в консоли он выводит e.getEntity().getKiller()
как null
в консоли. Если делаю e.getEntity().getKiller().getName()
, выдает ошибку.
вот мой код для отладчика:
package me.Pale_Gray.BetterDeathMessages.deathmessages;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.PlayerDeathEvent;
public class DeathByTnt implements Listener{
@EventHandler
public void onPlayerDeath(PlayerDeathEvent e) {
String msg = e.getDeathMessage();
System.out.println((Player) e.getEntity().getKiller());
if (e.getEntity().getLastDamageCause().getCause().equals(DamageCause.ENTITY_EXPLOSION)) {
msg = ChatColor.translateAlternateColorCodes('&', "&cIt went off with a BANG!");
e.setDeathMessage(msg);
}
}
}
Я прошу сосредоточиться только на System.out.println((Player) e.getEntity().getKiller());
, потому что я знаю, что оператор if не избирательно относится к сущностям.