aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0961-Fix-several-issues-with-EntityBreedEvent.patch
diff options
context:
space:
mode:
authormaxcom1 <[email protected]>2024-03-23 22:26:17 +0100
committerGitHub <[email protected]>2024-03-23 17:26:17 -0400
commitb6001403e9703cadaa6e8c8558e732b91c3c6d6e (patch)
treea8c57bbc334a8ad48d4ad2b43db335667b142bee /patches/server/0961-Fix-several-issues-with-EntityBreedEvent.patch
parent9ec7dfcbc41c6e625de0050b6997160a75df9f44 (diff)
downloadPaper-b6001403e9703cadaa6e8c8558e732b91c3c6d6e.tar.gz
Paper-b6001403e9703cadaa6e8c8558e732b91c3c6d6e.zip
Add methods to change entity physics (#10334)
Diffstat (limited to 'patches/server/0961-Fix-several-issues-with-EntityBreedEvent.patch')
-rw-r--r--patches/server/0961-Fix-several-issues-with-EntityBreedEvent.patch118
1 files changed, 0 insertions, 118 deletions
diff --git a/patches/server/0961-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0961-Fix-several-issues-with-EntityBreedEvent.patch
deleted file mode 100644
index e7f91ee16c..0000000000
--- a/patches/server/0961-Fix-several-issues-with-EntityBreedEvent.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jake Potrebic <[email protected]>
-Date: Thu, 15 Dec 2022 00:14:44 -0800
-Subject: [PATCH] Fix several issues with EntityBreedEvent
-
-Upstream did not account for different hands when storing
-the breed item for later use in the event. Also they only
-stored a reference to the stack, not a copy so if the stack
-changed after love mode was started, the breed item in the event
-also changed. Also in several places, the breed item was stored after
-it was decreased by one to consume the item.
-
-diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java
-index 907ed82fea71254d6624eda878e2668cd26422a7..081d1e38b7b1f286e138b0981aaa760e58761215 100644
---- a/src/main/java/net/minecraft/world/entity/animal/Animal.java
-+++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java
-@@ -152,8 +152,9 @@ public abstract class Animal extends AgeableMob {
- int i = this.getAge();
-
- if (!this.level().isClientSide && i == 0 && this.canFallInLove()) {
-+ final ItemStack breedCopy = itemstack.copy(); // Paper - Fix EntityBreedEvent copying
- this.usePlayerItem(player, hand, itemstack);
-- this.setInLove(player);
-+ this.setInLove(player, breedCopy); // Paper - Fix EntityBreedEvent copying
- return InteractionResult.SUCCESS;
- }
-
-@@ -182,10 +183,18 @@ public abstract class Animal extends AgeableMob {
- return this.inLove <= 0;
- }
-
-+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - Fix EntityBreedEvent copying
- public void setInLove(@Nullable Player player) {
-+ // Paper start - Fix EntityBreedEvent copying
-+ this.setInLove(player, null);
-+ }
-+ public void setInLove(@Nullable Player player, @Nullable ItemStack breedItemCopy) {
-+ if (breedItemCopy != null) this.breedItem = breedItemCopy;
-+ // Paper end - Fix EntityBreedEvent copying
- // CraftBukkit start
- EntityEnterLoveModeEvent entityEnterLoveModeEvent = CraftEventFactory.callEntityEnterLoveModeEvent(player, this, 600);
- if (entityEnterLoveModeEvent.isCancelled()) {
-+ this.breedItem = null; // Paper - Fix EntityBreedEvent copying; clear if cancelled
- return;
- }
- this.inLove = entityEnterLoveModeEvent.getTicksInLove();
-@@ -193,7 +202,7 @@ public abstract class Animal extends AgeableMob {
- if (player != null) {
- this.loveCause = player.getUUID();
- }
-- this.breedItem = player.getInventory().getSelected(); // CraftBukkit
-+ // Paper - Fix EntityBreedEvent copying; set breed item in better place
-
- this.level().broadcastEntityEvent(this, (byte) 18);
- }
-diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
-index 0297e234f17c6157cfff79420b9eeaf4e0e2c3ab..d683c49fdf2d1e5b0f2620641f9c241e82f96825 100644
---- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
-+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
-@@ -650,8 +650,9 @@ public class Panda extends Animal {
- this.usePlayerItem(player, hand, itemstack);
- this.ageUp((int) ((float) (-this.getAge() / 20) * 0.1F), true);
- } else if (!this.level().isClientSide && this.getAge() == 0 && this.canFallInLove()) {
-+ final ItemStack breedCopy = itemstack.copy(); // Paper - Fix EntityBreedEvent copying
- this.usePlayerItem(player, hand, itemstack);
-- this.setInLove(player);
-+ this.setInLove(player, breedCopy); // Paper - Fix EntityBreedEvent copying
- } else {
- if (this.level().isClientSide || this.isSitting() || this.isInWater()) {
- return InteractionResult.PASS;
-diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
-index 7860331b640fe48d1f2357d9f8e2e40c682b3620..84ae19bf9bddd2b6ee4737577d8836d59be028c2 100644
---- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
-+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
-@@ -398,7 +398,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
- boolean flag1 = this.isTamed() && this.getAge() == 0 && this.canFallInLove();
-
- if (flag1) {
-- this.setInLove(player);
-+ this.setInLove(player, item.copy()); // Paper - Fix EntityBreedEvent copying
- }
-
- boolean flag2 = this.isBaby();
-diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
-index 94dd97662ba07689fbfa16ef5c7d99fe12ce83de..815eb15086976b8f9e03bf8182d9ed50aec14720 100644
---- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
-+++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
-@@ -513,7 +513,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
- b0 = 5;
- if (!this.level().isClientSide && this.isTamed() && this.getAge() == 0 && !this.isInLove()) {
- flag = true;
-- this.setInLove(player);
-+ this.setInLove(player, item.copy()); // Paper - Fix EntityBreedEvent copying
- }
- } else if (item.is(Items.GOLDEN_APPLE) || item.is(Items.ENCHANTED_GOLDEN_APPLE)) {
- f = 10.0F;
-@@ -521,7 +521,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
- b0 = 10;
- if (!this.level().isClientSide && this.isTamed() && this.getAge() == 0 && !this.isInLove()) {
- flag = true;
-- this.setInLove(player);
-+ this.setInLove(player, item.copy()); // Paper - Fix EntityBreedEvent copying
- }
- }
-
-diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
-index 9b5b894d43f25566ab9c3698705e978ab823a0d2..6623674136b0f865d5b3d7a10d3bf05793b82f87 100644
---- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
-+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
-@@ -191,7 +191,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
- f = 10.0F;
- if (this.isTamed() && this.getAge() == 0 && this.canFallInLove()) {
- flag = true;
-- this.setInLove(player);
-+ this.setInLove(player, item.copy()); // Paper - Fix EntityBreedEvent copying
- }
- }
-