【发布时间】:2021-02-14 02:53:26
【问题描述】:
当你以某种方式被杀时,我正在尝试制作自定义的死亡信息。当你被 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 语句对实体没有选择性。
【问题讨论】: