下面列出了org.bukkit.entity.Entity#getFallDistance ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public @Nullable FallInfo resolveDamage(EntityDamageEvent.DamageCause damageType, Entity victim, @Nullable PhysicalInfo damager) {
FallState fall = getFall(victim);
if(fall != null) {
switch(damageType) {
case VOID: fall.to = FallInfo.To.VOID; break;
case FALL: fall.to = FallInfo.To.GROUND; break;
case LAVA: fall.to = FallInfo.To.LAVA; break;
case FIRE_TICK:
if(fall.isInLava) {
fall.to = FallInfo.To.LAVA;
} else {
return null;
}
break;
default: return null;
}
return fall;
} else {
switch(damageType) {
case FALL:
return new GenericFallInfo(FallInfo.To.GROUND, victim.getLocation(), victim.getFallDistance());
case VOID:
return new GenericFallInfo(FallInfo.To.VOID, victim.getLocation(), victim.getFallDistance());
}
return null;
}
}
@Override
public @Nullable FallInfo resolveDamage(
EntityDamageEvent.DamageCause damageType, Entity victim, @Nullable PhysicalInfo damager) {
FallState fall = getFall(victim);
if (fall != null) {
switch (damageType) {
case VOID:
fall.to = FallInfo.To.VOID;
break;
case FALL:
fall.to = FallInfo.To.GROUND;
break;
case LAVA:
fall.to = FallInfo.To.LAVA;
break;
case FIRE_TICK:
if (fall.isInLava) {
fall.to = FallInfo.To.LAVA;
} else {
return null;
}
break;
default:
return null;
}
return fall;
} else {
switch (damageType) {
case FALL:
return new GenericFallInfo(
FallInfo.To.GROUND, victim.getLocation(), victim.getFallDistance());
case VOID:
return new GenericFallInfo(
FallInfo.To.VOID, victim.getLocation(), victim.getFallDistance());
}
return null;
}
}