diff options
author | feildmaster <admin@feildmaster.com> | 2012-04-15 09:16:43 -0500 |
---|---|---|
committer | feildmaster <admin@feildmaster.com> | 2012-04-15 09:16:43 -0500 |
commit | 748ebae550002da7a0a6a611fcc737f57495f289 (patch) | |
tree | 2690b5f7da5c0b281bd3970b3a125511a8126a98 /src | |
parent | 6307efd2d141db611fef3dc362dcb10548129115 (diff) | |
download | craftbukkit-748ebae550002da7a0a6a611fcc737f57495f289.tar craftbukkit-748ebae550002da7a0a6a611fcc737f57495f289.tar.gz craftbukkit-748ebae550002da7a0a6a611fcc737f57495f289.tar.lz craftbukkit-748ebae550002da7a0a6a611fcc737f57495f289.tar.xz craftbukkit-748ebae550002da7a0a6a611fcc737f57495f289.zip |
Properly call EntityDeathEvent for mobs. Fixes BUKKIT-1519
Diffstat (limited to 'src')
3 files changed, 19 insertions, 3 deletions
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java index 726e5d51..8c279ec7 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -779,7 +779,18 @@ public abstract class EntityLiving extends Entity { if (!this.isBaby()) { this.dropDeathLoot(this.lastDamageByPlayerTime > 0, i); - // CraftBukkit - move rare item drop call to dropDeathLoot + /* CraftBukkit start - move rare item drop call to dropDeathLoot + if (this.lastDamageByPlayerTime > 0) { + int j = this.random.nextInt(200) - i; + + if (j < 5) { + this.b(j <= 0 ? 1 : 0); + } + } + // */ + } else { + CraftEventFactory.callEntityDeathEvent(this); + // CraftBukkit end } } diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java index fefd2b63..4df09bc4 100644 --- a/src/main/java/net/minecraft/server/EntityOcelot.java +++ b/src/main/java/net/minecraft/server/EntityOcelot.java @@ -89,7 +89,7 @@ public class EntityOcelot extends EntityTameableAnimal { } protected int getLootId() { - return 0; // CraftBukkit - Item.LEATHER.id -> 0 + return Item.LEATHER.id; } public boolean a(Entity entity) { @@ -102,7 +102,7 @@ public class EntityOcelot extends EntityTameableAnimal { } protected void dropDeathLoot(boolean flag, int i) { - super.dropDeathLoot(flag, i); // CraftBukkit - Calls EntityDeathEvent + org.bukkit.craftbukkit.event.CraftEventFactory.callEntityDeathEvent(this); // CraftBukkit - Call EntityDeathEvent } public boolean b(EntityHuman entityhuman) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index c1bb8b36..75fdd3f6 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1,6 +1,7 @@ package org.bukkit.craftbukkit.event; import java.net.InetAddress; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -287,6 +288,10 @@ public class CraftEventFactory { return event; } + public static EntityDeathEvent callEntityDeathEvent(EntityLiving victim) { + return callEntityDeathEvent(victim, new ArrayList<org.bukkit.inventory.ItemStack>(0)); + } + public static EntityDeathEvent callEntityDeathEvent(EntityLiving victim, List<org.bukkit.inventory.ItemStack> drops) { CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity(); EntityDeathEvent event = new EntityDeathEvent(entity, drops, victim.getExpReward()); |