From de1a32bb1630146498373f5fc569435b6e3971af Mon Sep 17 00:00:00 2001 From: EvilSeph Date: Sat, 10 Dec 2011 15:44:58 -0500 Subject: Fixed spiders not respecting the EntityDeathEvent. This fixes BUKKIT-275. --- .../java/net/minecraft/server/EntitySpider.java | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java index 206ee185..8a2b9d92 100644 --- a/src/main/java/net/minecraft/server/EntitySpider.java +++ b/src/main/java/net/minecraft/server/EntitySpider.java @@ -1,8 +1,11 @@ package net.minecraft.server; // CraftBukkit start +import java.util.List; + import org.bukkit.craftbukkit.entity.CraftEntity; import org.bukkit.event.entity.EntityTargetEvent; +import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit end public class EntitySpider extends EntityMonster { @@ -113,10 +116,25 @@ public class EntitySpider extends EntityMonster { } protected void dropDeathLoot(boolean flag, int i) { - super.dropDeathLoot(flag, i); + // CraftBukkit start - whole method; adapted from super.dropDeathLoot. + List loot = new java.util.ArrayList(); + + int k = this.random.nextInt(3); + + if (i > 0) { + k += this.random.nextInt(i + 1); + } + + if (k > 0) { + loot.add(new org.bukkit.inventory.ItemStack(Item.STRING.id, k)); + } + if (flag && (this.random.nextInt(3) == 0 || this.random.nextInt(1 + i) > 0)) { - this.b(Item.SPIDER_EYE.id, 1); + loot.add(new org.bukkit.inventory.ItemStack(Item.SPIDER_EYE.id, 1)); } + + CraftEventFactory.callEntityDeathEvent(this, loot); // raise event even for those times when the entity does not drop loot + // CraftBukkit end } public boolean r() { -- cgit v1.2.3