Commits

Cynthia Yantis authored and md_5 committed 3d53d261f8d
#801: Add EntityArmorChangeEvent
No tags

nms-patches/net/minecraft/world/entity/monster/EntitySkeletonAbstract.patch

Modified
1 1 --- a/net/minecraft/world/entity/monster/EntitySkeletonAbstract.java
2 2 +++ b/net/minecraft/world/entity/monster/EntitySkeletonAbstract.java
3 -@@ -195,8 +195,19 @@
3 +@@ -45,6 +45,11 @@
4 + import net.minecraft.world.level.block.Blocks;
5 + import net.minecraft.world.level.block.state.IBlockData;
6 +
7 ++// CraftBukkit start
8 ++import org.bukkit.craftbukkit.event.CraftEventFactory;
9 ++import org.bukkit.event.entity.EntityArmorChangeEvent;
10 ++// CraftBukkit end
11 ++
12 + public abstract class EntitySkeletonAbstract extends EntityMonster implements IRangedEntity {
13 +
14 + private final PathfinderGoalBowShoot<EntitySkeletonAbstract> bowGoal = new PathfinderGoalBowShoot<>(this, 1.0D, 20, 15.0F);
15 +@@ -108,6 +113,7 @@
16 + if (itemstack.f()) {
17 + itemstack.setDamage(itemstack.getDamage() + this.random.nextInt(2));
18 + if (itemstack.getDamage() >= itemstack.i()) {
19 ++ CraftEventFactory.callEntityEquipArmorEvent(this, itemstack, ItemStack.EMPTY, EntityArmorChangeEvent.ChangeReason.BREAK, EnumItemSlot.HEAD); // CraftBukkit
20 + this.broadcastItemBreak(EnumItemSlot.HEAD);
21 + this.setSlot(EnumItemSlot.HEAD, ItemStack.EMPTY);
22 + }
23 +@@ -195,8 +201,19 @@
4 24 double d3 = Math.sqrt(d0 * d0 + d2 * d2);
5 25
6 26 entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, (float) (14 - this.level.getDifficulty().a() * 4));
7 27 + // CraftBukkit start
8 28 + org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getItemInMainHand(), null, entityarrow, net.minecraft.world.EnumHand.MAIN_HAND, 0.8F, true);
9 29 + if (event.isCancelled()) {
10 30 + event.getProjectile().remove();
11 31 + return;
12 32 + }
13 33 +

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut