summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/net/minecraft/server/EntityDamageSourceIndirect.java6
-rw-r--r--src/main/java/net/minecraft/server/EntityHuman.java4
2 files changed, 8 insertions, 2 deletions
diff --git a/src/main/java/net/minecraft/server/EntityDamageSourceIndirect.java b/src/main/java/net/minecraft/server/EntityDamageSourceIndirect.java
index 38daa5f6..9d5496c1 100644
--- a/src/main/java/net/minecraft/server/EntityDamageSourceIndirect.java
+++ b/src/main/java/net/minecraft/server/EntityDamageSourceIndirect.java
@@ -17,6 +17,10 @@ public class EntityDamageSourceIndirect extends EntityDamageSource {
// CraftBukkit start
String source = (this.n == null) ? "Herobrine" : this.n.ad();
return LocaleI18n.a("death." + this.m, new Object[] { entityhuman.name, source});
+ }
+
+ public Entity getProximateDamageSource() {
+ return super.getEntity();
// CraftBukkit end
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 29297677..24221ada 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -587,7 +587,9 @@ public abstract class EntityHuman extends EntityLiving {
// also damage the player in this way. For example, EntitySlime.
// We handle projectiles in their individual classes!
- if (!(entity.getBukkitEntity() instanceof Projectile)) {
+ boolean isProjectile = damagesource instanceof EntityDamageSourceIndirect && ((EntityDamageSourceIndirect) damagesource).getProximateDamageSource().getBukkitEntity() instanceof Projectile;
+
+ if (!isProjectile) {
org.bukkit.entity.Entity damager = ((Entity) entity1).getBukkitEntity();
org.bukkit.entity.Entity damagee = this.getBukkitEntity();