diff options
Diffstat (limited to 'patch-remap/og/net/minecraft/world/entity/animal/EntityFox.patch')
-rw-r--r-- | patch-remap/og/net/minecraft/world/entity/animal/EntityFox.patch | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/patch-remap/og/net/minecraft/world/entity/animal/EntityFox.patch b/patch-remap/og/net/minecraft/world/entity/animal/EntityFox.patch new file mode 100644 index 0000000000..ec69250917 --- /dev/null +++ b/patch-remap/og/net/minecraft/world/entity/animal/EntityFox.patch @@ -0,0 +1,69 @@ +--- a/net/minecraft/world/entity/animal/EntityFox.java ++++ b/net/minecraft/world/entity/animal/EntityFox.java +@@ -523,7 +523,8 @@ + protected void pickUpItem(EntityItem entityitem) { + ItemStack itemstack = entityitem.getItem(); + +- if (this.canHoldItem(itemstack)) { ++ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(this, entityitem, itemstack.getCount() - 1, !this.canHoldItem(itemstack)).isCancelled()) { // CraftBukkit - call EntityPickupItemEvent ++ itemstack = entityitem.getItem(); // CraftBukkit - update ItemStack from event + int i = itemstack.getCount(); + + if (i > 1) { +@@ -883,6 +884,16 @@ + if (entityplayer1 != null && entityplayer != entityplayer1) { + entityfox.addTrustedUUID(entityplayer1.getUUID()); + } ++ // CraftBukkit start - call EntityBreedEvent ++ entityfox.setAge(-24000); ++ entityfox.moveTo(this.animal.getX(), this.animal.getY(), this.animal.getZ(), 0.0F, 0.0F); ++ int experience = this.animal.getRandom().nextInt(7) + 1; ++ org.bukkit.event.entity.EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(entityfox, animal, partner, entityplayer, this.animal.breedItem, experience); ++ if (entityBreedEvent.isCancelled()) { ++ return; ++ } ++ experience = entityBreedEvent.getExperience(); ++ // CraftBukkit end + + if (entityplayer2 != null) { + entityplayer2.awardStat(StatisticList.ANIMALS_BRED); +@@ -893,12 +904,14 @@ + this.partner.setAge(6000); + this.animal.resetLove(); + this.partner.resetLove(); +- entityfox.setAge(-24000); +- entityfox.moveTo(this.animal.getX(), this.animal.getY(), this.animal.getZ(), 0.0F, 0.0F); +- worldserver.addFreshEntityWithPassengers(entityfox); ++ worldserver.addFreshEntityWithPassengers(entityfox, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason + this.level.broadcastEntityEvent(this.animal, (byte) 18); + if (this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { +- this.level.addFreshEntity(new EntityExperienceOrb(this.level, this.animal.getX(), this.animal.getY(), this.animal.getZ(), this.animal.getRandom().nextInt(7) + 1)); ++ // CraftBukkit start - use event experience ++ if (experience > 0) { ++ this.level.addFreshEntity(new EntityExperienceOrb(this.level, this.animal.getX(), this.animal.getY(), this.animal.getZ(), experience)); ++ } ++ // CraftBukkit end + } + + } +@@ -1294,6 +1307,11 @@ + int i = (Integer) iblockdata.getValue(BlockSweetBerryBush.AGE); + + iblockdata.setValue(BlockSweetBerryBush.AGE, 1); ++ // CraftBukkit start - call EntityChangeBlockEvent ++ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(EntityFox.this, this.blockPos, iblockdata.setValue(BlockSweetBerryBush.AGE, 1))) { ++ return; ++ } ++ // CraftBukkit end + int j = 1 + EntityFox.this.level().random.nextInt(2) + (i == 3 ? 1 : 0); + ItemStack itemstack = EntityFox.this.getItemBySlot(EnumItemSlot.MAINHAND); + +@@ -1451,7 +1469,7 @@ + private EntityLiving trustedLastHurt; + private int timestamp; + +- public a(Class oclass, boolean flag, boolean flag1, @Nullable Predicate predicate) { ++ public a(Class oclass, boolean flag, boolean flag1, @Nullable Predicate<EntityLiving> predicate) { // CraftBukkit - decompile error + super(EntityFox.this, oclass, 10, flag, flag1, predicate); + } + |