aboutsummaryrefslogtreecommitdiffhomepage
path: root/patch-remap/og/net/minecraft/world/entity/animal/EntityFox.patch
diff options
context:
space:
mode:
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.patch69
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);
+ }
+