SPIGOT-758: Capture head drops from charged creeper kills

This commit is contained in:
Thinkofdeath
2015-04-13 11:47:47 +01:00
parent 889a5eca6e
commit 85cf593df9
4 changed files with 99 additions and 19 deletions

View File

@@ -1,5 +1,5 @@
--- /home/matt/mc-dev-private//net/minecraft/server/EntitySkeleton.java 2015-02-26 22:40:22.683608138 +0000
+++ src/main/java/net/minecraft/server/EntitySkeleton.java 2015-02-26 22:40:22.687608138 +0000
--- /home/matt/mc-dev-private//net/minecraft/server/EntitySkeleton.java 2015-04-13 11:47:19.083986875 +0100
+++ src/main/java/net/minecraft/server/EntitySkeleton.java 2015-04-13 11:47:19.083986875 +0100
@@ -2,6 +2,8 @@
import java.util.Calendar;
@@ -25,7 +25,43 @@
}
}
}
@@ -224,11 +233,30 @@
@@ -112,7 +121,7 @@
}
public void die(DamageSource damagesource) {
- super.die(damagesource);
+ // super.die(damagesource); // CraftBukkit
if (damagesource.i() instanceof EntityArrow && damagesource.getEntity() instanceof EntityHuman) {
EntityHuman entityhuman = (EntityHuman) damagesource.getEntity();
double d0 = entityhuman.locX - this.locX;
@@ -123,16 +132,25 @@
}
} else if (damagesource.getEntity() instanceof EntityCreeper && ((EntityCreeper) damagesource.getEntity()).isPowered() && ((EntityCreeper) damagesource.getEntity()).cp()) {
((EntityCreeper) damagesource.getEntity()).cq();
- this.a(new ItemStack(Items.SKULL, 1, this.getSkeletonType() == 1 ? 1 : 0), 0.0F);
+ // CraftBukkit start
+ // this.a(new ItemStack(Items.SKULL, 1, this.getSkeletonType() == 1 ? 1 : 0), 0.0F);
+ headDrop = new ItemStack(Items.SKULL, 1, this.getSkeletonType() == 1 ? 1 : 0);
+ // CraftBukkit end
+
}
+ super.die(damagesource); // CraftBukkit - moved from above
+
}
+ /* CraftBukkit start
protected Item getLoot() {
return Items.ARROW;
}
+ // CraftBukkit end */
protected void dropDeathLoot(boolean flag, int i) {
+ super.dropDeathLoot(flag, i); // CraftBukkit
int j;
int k;
@@ -224,11 +242,30 @@
}
if (EnchantmentManager.getEnchantmentLevel(Enchantment.ARROW_FIRE.id, this.bA()) > 0 || this.getSkeletonType() == 1) {