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/EntitySkeleton.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/EntitySkeleton.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntitySkeleton.java | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/main/java/net/minecraft/server/EntitySkeleton.java b/src/main/java/net/minecraft/server/EntitySkeleton.java index 58a15bde..82b663fa 100644 --- a/src/main/java/net/minecraft/server/EntitySkeleton.java +++ b/src/main/java/net/minecraft/server/EntitySkeleton.java @@ -1,5 +1,10 @@ package net.minecraft.server; +// CraftBukkit start +import org.bukkit.craftbukkit.event.CraftEventFactory; +import org.bukkit.craftbukkit.inventory.CraftItemStack; +// CraftBukkit end + public class EntitySkeleton extends EntityMonster { private static final ItemStack a = new ItemStack(Item.BOW, 1); @@ -93,18 +98,32 @@ public class EntitySkeleton extends EntityMonster { loot.add(new org.bukkit.inventory.ItemStack(org.bukkit.Material.BONE, count)); } - org.bukkit.craftbukkit.event.CraftEventFactory.callEntityDeathEvent(this, loot); + // 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.BOW); EnchantmentManager.a(this.random, itemstack, 5); - this.a(itemstack, 0.0F); + return itemstack; } else { - this.b(Item.BOW.id, 1); + return new ItemStack(Item.BOW.id, 1, 0); } } + // CraftBukkit end } |