diff options
author | zerg960 <shotzo@gmail.com> | 2012-03-20 20:55:45 -0500 |
---|---|---|
committer | EvilSeph <evilseph@gmail.com> | 2012-03-21 13:24:59 -0400 |
commit | 96c4bb7da641fda5be5c8110fb432c31b50c2aa4 (patch) | |
tree | 9e8857e847b4d1ceb37c0bceab3398b866316efc /src/main/java/net/minecraft/server/EntityPigZombie.java | |
parent | 1c95413f49432104c9c50671b11cf99417d4fcc5 (diff) | |
download | craftbukkit-96c4bb7da641fda5be5c8110fb432c31b50c2aa4.tar craftbukkit-96c4bb7da641fda5be5c8110fb432c31b50c2aa4.tar.gz craftbukkit-96c4bb7da641fda5be5c8110fb432c31b50c2aa4.tar.lz craftbukkit-96c4bb7da641fda5be5c8110fb432c31b50c2aa4.tar.xz craftbukkit-96c4bb7da641fda5be5c8110fb432c31b50c2aa4.zip |
[Bleeding] Account for new rare drops in EntityDeath events. Fixes BUKKIT-1105
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityPigZombie.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityPigZombie.java | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java index 0988afbc..7485b632 100644 --- a/src/main/java/net/minecraft/server/EntityPigZombie.java +++ b/src/main/java/net/minecraft/server/EntityPigZombie.java @@ -120,8 +120,6 @@ public class EntityPigZombie extends EntityZombie { List<org.bukkit.inventory.ItemStack> loot = new java.util.ArrayList<org.bukkit.inventory.ItemStack>(); int j = this.random.nextInt(2 + i); - int k; - if (j > 0) { loot.add(new CraftItemStack(Item.ROTTEN_FLESH.id, j)); } @@ -131,28 +129,45 @@ public class EntityPigZombie extends EntityZombie { if (j > 0) { loot.add(new CraftItemStack(Item.GOLD_NUGGET.id, j)); } + + // Determine rare item drops and add them to the loot + if (this.lastDamageByPlayerTime > 0) { + int k = this.random.nextInt(200) - i; + + if (k < 5) { + ItemStack itemstack = this.b(k <= 0 ? 1 : 0); + if (itemstack != null) { + loot.add(new CraftItemStack(itemstack)); + } + } + } + CraftEventFactory.callEntityDeathEvent(this, loot); // CraftBukkit end } - protected void b(int i) { + // CraftBukkit start - return rare dropped item instead of dropping it + protected ItemStack b(int i) { if (i > 0) { ItemStack itemstack = new ItemStack(Item.GOLD_SWORD); EnchantmentManager.a(this.random, itemstack, 5); - this.a(itemstack, 0.0F); + return itemstack; } else { int j = this.random.nextInt(3); if (j == 0) { - this.b(Item.GOLD_INGOT.id, 1); + return new ItemStack(Item.GOLD_INGOT.id, 1, 0); } else if (j == 1) { - this.b(Item.GOLD_SWORD.id, 1); + return new ItemStack(Item.GOLD_SWORD.id, 1, 0); } else if (j == 2) { - this.b(Item.GOLD_HELMET.id, 1); + return new ItemStack(Item.GOLD_HELMET.id, 1, 0); + } else { + return null; } } } + // CraftBukkit end protected int getLootId() { return Item.ROTTEN_FLESH.id; |