aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0870-Added-EntityToggleSitEvent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0870-Added-EntityToggleSitEvent.patch')
-rw-r--r--patches/server/0870-Added-EntityToggleSitEvent.patch100
1 files changed, 100 insertions, 0 deletions
diff --git a/patches/server/0870-Added-EntityToggleSitEvent.patch b/patches/server/0870-Added-EntityToggleSitEvent.patch
new file mode 100644
index 0000000000..31eaca5429
--- /dev/null
+++ b/patches/server/0870-Added-EntityToggleSitEvent.patch
@@ -0,0 +1,100 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: KyGuy2002 <IEatBeans#1165>
+Date: Fri, 11 Mar 2022 15:33:10 +0000
+Subject: [PATCH] Added EntityToggleSitEvent
+
+
+diff --git a/src/main/java/net/minecraft/world/entity/TamableAnimal.java b/src/main/java/net/minecraft/world/entity/TamableAnimal.java
+index 9fb11df7131f400e6e631146c32efccea83adf56..1282911b97292cde30dff83de756bc91bf319cb2 100644
+--- a/src/main/java/net/minecraft/world/entity/TamableAnimal.java
++++ b/src/main/java/net/minecraft/world/entity/TamableAnimal.java
+@@ -67,7 +67,7 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity {
+ }
+
+ this.orderedToSit = nbt.getBoolean("Sitting");
+- this.setInSittingPose(this.orderedToSit);
++ this.setInSittingPose(this.orderedToSit, false); // Paper - Don't fire event
+ }
+
+ @Override
+@@ -125,6 +125,12 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity {
+ }
+
+ public void setInSittingPose(boolean inSittingPose) {
++ // Paper start
++ this.setInSittingPose(inSittingPose, true);
++ }
++ public void setInSittingPose(boolean inSittingPose, boolean callEvent) {
++ // Paper end
++ if (callEvent && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), inSittingPose).callEvent()) return; // Paper start - call EntityToggleSitEvent
+ byte b = this.entityData.get(DATA_FLAGS_ID);
+ if (inSittingPose) {
+ this.entityData.set(DATA_FLAGS_ID, (byte)(b | 1));
+diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
+index e21bf5b02a4d9e6e23ffd42a1da8a3a5f2ac05db..9e2af80c6a87f5849710266149cbca8cabfad4f8 100644
+--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
++++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
+@@ -433,7 +433,7 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
+
+ this.setSleeping(nbt.getBoolean("Sleeping"));
+ this.setVariant(Fox.Type.byName(nbt.getString("Type")));
+- this.setSitting(nbt.getBoolean("Sitting"));
++ this.setSitting(nbt.getBoolean("Sitting"), false); // Paper
+ this.setIsCrouching(nbt.getBoolean("Crouching"));
+ if (this.level() instanceof ServerLevel) {
+ this.setTargetGoals();
+@@ -446,6 +446,12 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
+ }
+
+ public void setSitting(boolean sitting) {
++ this.setSitting(sitting, true);
++ }
++ // Paper start
++ public void setSitting(boolean sitting, boolean fireEvent) {
++ if (fireEvent && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), sitting).callEvent()) return;
++ // Paper end
+ this.setFlag(1, sitting);
+ }
+
+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 130761afcaa6723e0a9d9a518f1b526c344484b4..683cc5f9f066d554383fcd30e3654ac06ec76510 100644
+--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
++++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
+@@ -138,6 +138,7 @@ public class Panda extends Animal {
+ }
+
+ public void sit(boolean sitting) {
++ if (!new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), sitting).callEvent()) return; // Paper start - call EntityToggleSitEvent
+ this.setFlag(8, sitting);
+ }
+
+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 faf3e31f23d71bbc345bf98d4240490ac4677843..1d9427da270edb447a2c8e031c4f05fe5d39603b 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
+@@ -556,7 +556,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
+ }
+
+ public void sitDown() {
+- if (!this.isCamelSitting()) {
++ if (!this.isCamelSitting() && new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), true).callEvent()) { // Paper
+ this.playSound(SoundEvents.CAMEL_SIT, 1.0F, this.getVoicePitch());
+ this.setPose(Pose.SITTING);
+ this.gameEvent(GameEvent.ENTITY_ACTION);
+@@ -565,7 +565,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
+ }
+
+ public void standUp() {
+- if (this.isCamelSitting()) {
++ if (this.isCamelSitting() && new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), false).callEvent()) { // Paper
+ this.playSound(SoundEvents.CAMEL_STAND, 1.0F, this.getVoicePitch());
+ this.setPose(Pose.STANDING);
+ this.gameEvent(GameEvent.ENTITY_ACTION);
+@@ -574,6 +574,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
+ }
+
+ public void standUpInstantly() {
++ if (this.isCamelSitting() && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), false).callEvent()) return; // Paper
+ this.setPose(Pose.STANDING);
+ this.gameEvent(GameEvent.ENTITY_ACTION);
+ this.resetLastPoseChangeTickToFullStand(this.level().getGameTime());