From 8b1ae7641dc8e60e3b0761cfbb67d4e19384fc72 Mon Sep 17 00:00:00 2001 From: Lexi Date: Thu, 23 Jun 2022 14:41:54 -0400 Subject: [PATCH] Add HangingFrame Tick API --- .../api/0011-Add-HangingFrame-Tick-API.patch | 33 +++++++++++++ .../0015-Add-HangingFrame-Tick-API.patch | 48 +++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 patches/api/0011-Add-HangingFrame-Tick-API.patch create mode 100644 patches/server/0015-Add-HangingFrame-Tick-API.patch diff --git a/patches/api/0011-Add-HangingFrame-Tick-API.patch b/patches/api/0011-Add-HangingFrame-Tick-API.patch new file mode 100644 index 0000000..552ebb1 --- /dev/null +++ b/patches/api/0011-Add-HangingFrame-Tick-API.patch @@ -0,0 +1,33 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lexi +Date: Thu, 23 Jun 2022 14:41:24 -0400 +Subject: [PATCH] Add HangingFrame Tick API + + +diff --git a/src/main/java/org/bukkit/entity/Hanging.java b/src/main/java/org/bukkit/entity/Hanging.java +index 2f07efac03f4d12fd2ae9a340d34cf92a90b6cfa..a16d681d5338fdb2a974a2c67dcc015594b8e271 100644 +--- a/src/main/java/org/bukkit/entity/Hanging.java ++++ b/src/main/java/org/bukkit/entity/Hanging.java +@@ -20,4 +20,22 @@ public interface Hanging extends Entity, Attachable { + * attach to in order to face the given direction. + */ + public boolean setFacingDirection(@NotNull BlockFace face, boolean force); ++ ++ // Parchment start ++ /** ++ * Determines whether the hanging entity is allowed to tick. ++ * Ticking is used to validate the hanging entity's placement. ++ * ++ * @return True if the entity is allowed to tick. ++ */ ++ public boolean canTick(); ++ ++ /** ++ * Sets whether the hanging entity is allowed to tick. ++ * Ticking is used to validate the hanging entity's placement. ++ * ++ * @param tick True if the entity is allowed to tick. ++ */ ++ public void setCanTick(boolean tick); ++ // Parchment end + } diff --git a/patches/server/0015-Add-HangingFrame-Tick-API.patch b/patches/server/0015-Add-HangingFrame-Tick-API.patch new file mode 100644 index 0000000..62caef8 --- /dev/null +++ b/patches/server/0015-Add-HangingFrame-Tick-API.patch @@ -0,0 +1,48 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lexi +Date: Thu, 23 Jun 2022 14:41:24 -0400 +Subject: [PATCH] Add HangingFrame Tick API + + +diff --git a/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java b/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java +index 334a47b5e0d205c57dfcbb17168cbd3f21d15606..1ffc318c12cde935aea58d6d1efff53818893bf9 100644 +--- a/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java ++++ b/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java +@@ -41,6 +41,7 @@ public abstract class HangingEntity extends Entity { + private int checkInterval; { this.checkInterval = this.getId() % this.level.spigotConfig.hangingTickFrequency; } // Paper + public BlockPos pos; + protected Direction direction; ++ public boolean tick = true; // Parchment + + protected HangingEntity(EntityType type, Level world) { + super(type, world); +@@ -116,7 +117,7 @@ public abstract class HangingEntity extends Entity { + + @Override + public void tick() { +- if (!this.level.isClientSide) { ++ if (tick && !this.level.isClientSide) { // Parchment + this.checkOutOfWorld(); + if (this.checkInterval++ == this.level.spigotConfig.hangingTickFrequency) { // Spigot + this.checkInterval = 0; +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java +index 62e11bf104b8d39ac73883e2a5d207e5f7393253..639bd33ae91ed818bda29fed776adb8c169458d7 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java +@@ -72,4 +72,16 @@ public class CraftHanging extends CraftEntity implements Hanging { + public EntityType getType() { + return EntityType.UNKNOWN; + } ++ ++ // Parchment start ++ @Override ++ public boolean canTick() { ++ return this.getHandle().tick; ++ } ++ ++ @Override ++ public void setCanTick(boolean tick) { ++ this.getHandle().tick = tick; ++ } ++ // Parchment end + }