2022-10-23 00:20:52 +02:00
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: KyGuy2002 <IEatBeans#1165>
Date: Fri, 11 Mar 2022 15:33:10 +0000
2024-01-16 12:41:40 +01:00
Subject: [PATCH] Add EntityToggleSitEvent
2022-10-23 00:20:52 +02:00
diff --git a/src/main/java/net/minecraft/world/entity/TamableAnimal.java b/src/main/java/net/minecraft/world/entity/TamableAnimal.java
2024-04-24 23:23:56 +02:00
index ed2514de46d0939259ca4e45a6dc96d7c1dac20d..45284bb0f081377bc5913876c6877a424285c0bb 100644
2022-10-23 00:20:52 +02:00
--- a/src/main/java/net/minecraft/world/entity/TamableAnimal.java
+++ b/src/main/java/net/minecraft/world/entity/TamableAnimal.java
2024-04-24 23:23:56 +02:00
@@ -68,7 +68,7 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity {
2022-10-23 04:55:28 +02:00
}
this.orderedToSit = nbt.getBoolean("Sitting");
- this.setInSittingPose(this.orderedToSit);
2024-01-16 12:41:40 +01:00
+ this.setInSittingPose(this.orderedToSit, false); // Paper - Add EntityToggleSitEvent
2022-10-23 04:55:28 +02:00
}
@Override
2024-04-24 23:23:56 +02:00
@@ -126,6 +126,12 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity {
2022-10-23 00:20:52 +02:00
}
public void setInSittingPose(boolean inSittingPose) {
2024-01-16 12:41:40 +01:00
+ // Paper start - Add EntityToggleSitEvent
2022-10-23 04:55:28 +02:00
+ this.setInSittingPose(inSittingPose, true);
+ }
+ public void setInSittingPose(boolean inSittingPose, boolean callEvent) {
2024-01-16 12:41:40 +01:00
+ if (callEvent && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), inSittingPose).callEvent()) return;
+ // Paper end - Add EntityToggleSitEvent
2022-10-23 00:20:52 +02:00
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
2024-04-24 23:23:56 +02:00
index 1aa5485f2608000e4ac07350d1c537bc9bd92de4..e705449496b1a06270ecbc13f4dce5357479845b 100644
2022-10-23 00:20:52 +02:00
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
2024-04-24 23:23:56 +02:00
@@ -432,7 +432,7 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
2022-10-23 04:55:28 +02:00
this.setSleeping(nbt.getBoolean("Sleeping"));
2022-12-07 23:05:32 +01:00
this.setVariant(Fox.Type.byName(nbt.getString("Type")));
2022-10-23 04:55:28 +02:00
- this.setSitting(nbt.getBoolean("Sitting"));
2024-01-16 12:41:40 +01:00
+ this.setSitting(nbt.getBoolean("Sitting"), false); // Paper - Add EntityToggleSitEvent
2022-10-23 04:55:28 +02:00
this.setIsCrouching(nbt.getBoolean("Crouching"));
2023-06-08 10:47:19 +02:00
if (this.level() instanceof ServerLevel) {
2022-10-23 04:55:28 +02:00
this.setTargetGoals();
2024-04-24 23:23:56 +02:00
@@ -445,6 +445,12 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
2022-10-23 00:20:52 +02:00
}
public void setSitting(boolean sitting) {
2024-01-16 19:27:39 +01:00
+ // Paper start - Add EntityToggleSitEvent
2022-10-23 04:55:28 +02:00
+ this.setSitting(sitting, true);
+ }
+ public void setSitting(boolean sitting, boolean fireEvent) {
+ if (fireEvent && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), sitting).callEvent()) return;
2024-01-16 19:27:39 +01:00
+ // Paper end - Add EntityToggleSitEvent
2022-10-23 00:20:52 +02:00
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
2024-04-24 23:23:56 +02:00
index 83d8a09980c4ab3c7c97b07c3dcdb3d7dab9e1aa..0440fd2d1bb3f87641ad88de6d5ae64617536a6d 100644
2022-10-23 00:20:52 +02:00
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
2024-04-24 23:23:56 +02:00
@@ -144,6 +144,7 @@ public class Panda extends Animal {
2022-10-23 00:20:52 +02:00
}
public void sit(boolean sitting) {
2024-01-16 12:41:40 +01:00
+ if (!new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), sitting).callEvent()) return; // Paper - Add EntityToggleSitEvent
2022-10-23 00:20:52 +02:00
this.setFlag(8, sitting);
}
2023-03-15 15:37:41 +01:00
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
2024-04-27 23:35:53 +02:00
index bc346a6ab6aaa7de363e058d1065fd147b571a57..8ebe18a1abbac81094e6aab19ba76edc0255e3b7 100644
2023-03-15 15:37:41 +01:00
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
2024-04-27 23:35:53 +02:00
@@ -566,7 +566,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
2023-03-15 15:37:41 +01:00
}
public void sitDown() {
- if (!this.isCamelSitting()) {
2024-01-16 12:41:40 +01:00
+ if (!this.isCamelSitting() && new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), true).callEvent()) { // Paper - Add EntityToggleSitEvent
2024-04-24 23:23:56 +02:00
this.makeSound(SoundEvents.CAMEL_SIT);
2023-03-15 15:37:41 +01:00
this.setPose(Pose.SITTING);
2023-09-22 17:51:48 +02:00
this.gameEvent(GameEvent.ENTITY_ACTION);
2024-04-27 23:35:53 +02:00
@@ -575,7 +575,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
2023-03-15 15:37:41 +01:00
}
public void standUp() {
- if (this.isCamelSitting()) {
2024-01-16 12:41:40 +01:00
+ if (this.isCamelSitting() && new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), false).callEvent()) { // Paper - Add EntityToggleSitEvent
2024-04-24 23:23:56 +02:00
this.makeSound(SoundEvents.CAMEL_STAND);
2023-03-15 15:37:41 +01:00
this.setPose(Pose.STANDING);
2023-09-22 17:51:48 +02:00
this.gameEvent(GameEvent.ENTITY_ACTION);
2024-04-27 23:35:53 +02:00
@@ -584,6 +584,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
2023-03-15 15:37:41 +01:00
}
2023-06-08 10:47:19 +02:00
public void standUpInstantly() {
2024-01-16 12:41:40 +01:00
+ if (this.isCamelSitting() && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), false).callEvent()) return; // Paper - Add EntityToggleSitEvent
2023-03-15 15:37:41 +01:00
this.setPose(Pose.STANDING);
2023-09-22 17:51:48 +02:00
this.gameEvent(GameEvent.ENTITY_ACTION);
2023-06-08 10:47:19 +02:00
this.resetLastPoseChangeTickToFullStand(this.level().getGameTime());