geforkt von Mirrors/Paper
Fixed ENTITY_DAMAGE involving slimes (per DHowet)
Dieser Commit ist enthalten in:
Ursprung
51be9e77c6
Commit
c97fa40d2b
@ -357,6 +357,22 @@ public abstract class EntityHuman extends EntityLiving {
|
||||
}
|
||||
}
|
||||
|
||||
// CraftBukkit start - this is here instead of EntityMonster because EntityLiving(s) that aren't monsters
|
||||
// also damage the player in this way. For example, EntitySlime.
|
||||
if (entity instanceof EntityLiving) {
|
||||
CraftServer server = ((WorldServer) this.world).getServer();
|
||||
org.bukkit.entity.Entity damager = entity.getBukkitEntity();
|
||||
org.bukkit.entity.Entity damagee = this.getBukkitEntity();
|
||||
DamageCause damageType = EntityDamageEvent.DamageCause.ENTITY_ATTACK;
|
||||
EntityDamageByEntityEvent event = new EntityDamageByEntityEvent(damager, damagee, damageType, i);
|
||||
server.getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
return i == 0 ? false : super.a(entity, i);
|
||||
}
|
||||
}
|
||||
|
@ -79,8 +79,10 @@ public class EntityMonster extends EntityCreature implements IMonster {
|
||||
protected void a(Entity entity, float f) {
|
||||
if ((double) f < 1.5D && entity.boundingBox.e > this.boundingBox.b && entity.boundingBox.b < this.boundingBox.e) {
|
||||
this.attackTicks = 20;
|
||||
// CraftBukkit start
|
||||
if (entity instanceof EntityLiving) {
|
||||
// CraftBukkit start - this is still duplicated here and EntityHuman because it's possible for an EntityMonster
|
||||
// to damage another EntityMonster, and we want to catch those events.
|
||||
// This does not fire events for slime attacks, as they're not an EntityMonster.
|
||||
if (entity instanceof EntityLiving && !(entity instanceof EntityHuman)) {
|
||||
CraftServer server = ((WorldServer) this.world).getServer();
|
||||
org.bukkit.entity.Entity damager = this.getBukkitEntity();
|
||||
org.bukkit.entity.Entity damagee = (entity == null) ? null : entity.getBukkitEntity();
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren