下面列出了org.bukkit.event.entity.EntityDamageEvent.DamageCause#CUSTOM 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onDeath2(final PlayerDeathEvent v2) {
final GameMap gameMap = MatchManager.get().getPlayerMap(v2.getEntity());
if (gameMap == null) {
return;
}
final Player player = v2.getEntity();
v2.getEntity().getInventory().clear();
v2.getEntity().getInventory().setArmorContents(null);
DamageCause damageCause = DamageCause.CUSTOM;
if (v2.getEntity().getLastDamageCause() != null) {
damageCause = v2.getEntity().getLastDamageCause().getCause();
}
final DamageCause dCause = damageCause;
v2.setDeathMessage("");
MatchManager.get().playerLeave(player, dCause, false, true, true);
}
/** Apply damage to an entity
* @param e Entity to apply damage to
* @param d Amount of hearts to damage
*/
public static void damage(final Damageable e, final double d) {
if (d < 0) {
heal(e, -d);
return;
}
EntityDamageEvent event = new EntityDamageEvent(e, DamageCause.CUSTOM, d * 2);
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) return;
e.damage(event.getDamage());
}