下面列出了怎么用org.bukkit.event.entity.EntityDamageByBlockEvent的API类实例代码及写法,或者点击链接到github查看源代码。
@EventHandler(priority = EventPriority.LOWEST)
public void onEntityDamage(EntityDamageByBlockEvent event) {
if (event.getCause() == DamageCause.SUFFOCATION || event.getCause() == DamageCause.DROWNING) {
return;
}
GDTimings.ENTITY_DAMAGE_EVENT.startTiming();
if (protectEntity(event, event.getDamager() == null ? event.getCause() : event.getDamager(), event.getEntity())) {
event.setCancelled(true);
}
GDTimings.ENTITY_DAMAGE_EVENT.stopTiming();
}
public DamageInfo resolveDamage(EntityDamageEvent damageEvent) {
if (damageEvent instanceof EntityDamageByEntityEvent) {
return resolveDamage((EntityDamageByEntityEvent) damageEvent);
} else if (damageEvent instanceof EntityDamageByBlockEvent) {
return resolveDamage((EntityDamageByBlockEvent) damageEvent);
} else {
return resolveDamage(damageEvent.getCause(), damageEvent.getEntity());
}
}
default DamageInfo resolveDamage(EntityDamageEvent damageEvent) {
if(damageEvent instanceof EntityDamageByEntityEvent) {
return resolveDamage((EntityDamageByEntityEvent) damageEvent);
} else if(damageEvent instanceof EntityDamageByBlockEvent) {
return resolveDamage((EntityDamageByBlockEvent) damageEvent);
} else {
return resolveDamage(damageEvent.getCause(), damageEvent.getEntity());
}
}
public DamageInfo resolveDamage(EntityDamageByBlockEvent damageEvent) {
return resolveDamage(damageEvent.getCause(), damageEvent.getEntity(), damageEvent.getDamager());
}
default DamageInfo resolveDamage(EntityDamageByBlockEvent damageEvent) {
return resolveDamage(damageEvent.getCause(), damageEvent.getEntity(), damageEvent.getDamager());
}