summaryrefslogtreecommitdiffstats
path: root/nms-patches/EntitySkeletonAbstract.patch
diff options
context:
space:
mode:
authormd_5 <git@md-5.net>2016-11-17 12:41:03 +1100
committermd_5 <git@md-5.net>2016-11-17 12:41:03 +1100
commitc25ddf063a808e3adb749e22017661f403c5fb7e (patch)
treeb2efcff512be12fd3e38cf8c36386148ce6ab4ae /nms-patches/EntitySkeletonAbstract.patch
parent51263e97187a84338f89698eef187284055a682a (diff)
downloadcraftbukkit-c25ddf063a808e3adb749e22017661f403c5fb7e.tar
craftbukkit-c25ddf063a808e3adb749e22017661f403c5fb7e.tar.gz
craftbukkit-c25ddf063a808e3adb749e22017661f403c5fb7e.tar.lz
craftbukkit-c25ddf063a808e3adb749e22017661f403c5fb7e.tar.xz
craftbukkit-c25ddf063a808e3adb749e22017661f403c5fb7e.zip
Update to Minecraft 1.11
Diffstat (limited to 'nms-patches/EntitySkeletonAbstract.patch')
-rw-r--r--nms-patches/EntitySkeletonAbstract.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/nms-patches/EntitySkeletonAbstract.patch b/nms-patches/EntitySkeletonAbstract.patch
new file mode 100644
index 00000000..db96e176
--- /dev/null
+++ b/nms-patches/EntitySkeletonAbstract.patch
@@ -0,0 +1,71 @@
+--- a/net/minecraft/server/EntitySkeletonAbstract.java
++++ b/net/minecraft/server/EntitySkeletonAbstract.java
+@@ -2,12 +2,13 @@
+
+ import java.util.Calendar;
+ import javax.annotation.Nullable;
++import org.bukkit.event.entity.EntityCombustEvent; // CraftBukkit
+
+ public abstract class EntitySkeletonAbstract extends EntityMonster implements IRangedEntity {
+
+ private static final DataWatcherObject<Boolean> a = DataWatcher.a(EntitySkeletonAbstract.class, DataWatcherRegistry.h);
+ private final PathfinderGoalBowShoot b = new PathfinderGoalBowShoot(this, 1.0D, 20, 15.0F);
+- private final PathfinderGoalMeleeAttack c = new PathfinderGoalMeleeAttack(this, 1.2D, flag) {
++ private final PathfinderGoalMeleeAttack c = new PathfinderGoalMeleeAttack(this, 1.2D, false) { // CraftBukkit - decompile error
+ public void d() {
+ super.d();
+ EntitySkeletonAbstract.this.a(false);
+@@ -80,7 +81,14 @@
+ }
+
+ if (flag) {
+- this.setOnFire(8);
++ // CraftBukkit start
++ EntityCombustEvent event = new EntityCombustEvent(this.getBukkitEntity(), 8);
++ this.world.getServer().getPluginManager().callEvent(event);
++
++ if (!event.isCancelled()) {
++ this.setOnFire(event.getDuration());
++ }
++ // CraftBukkit end
+ }
+ }
+ }
+@@ -99,7 +107,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;
+@@ -109,6 +117,7 @@
+ entityhuman.b((Statistic) AchievementList.v);
+ }
+ }
++ super.die(damagesource); // CraftBukkit - moved from above
+
+ }
+
+@@ -166,8 +175,19 @@
+ double d3 = (double) MathHelper.sqrt(d0 * d0 + d2 * d2);
+
+ entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, (float) (14 - this.world.getDifficulty().a() * 4));
++ // CraftBukkit start
++ org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getItemInMainHand(), entityarrow, 0.8F);
++ if (event.isCancelled()) {
++ event.getProjectile().remove();
++ return;
++ }
++
++ if (event.getProjectile() == entityarrow.getBukkitEntity()) {
++ world.addEntity(entityarrow);
++ }
++ // CraftBukkit end
+ this.a(SoundEffects.fV, 1.0F, 1.0F / (this.getRandom().nextFloat() * 0.4F + 0.8F));
+- this.world.addEntity(entityarrow);
++ // this.world.addEntity(entityarrow); // CraftBukkit - moved up
+ }
+
+ protected EntityArrow a(float f) {