aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0841-Add-Sign-getInteractableSideFor.patch
diff options
context:
space:
mode:
authorNassim Jahnke <[email protected]>2024-06-16 12:56:00 +0200
committerNassim Jahnke <[email protected]>2024-06-16 12:56:00 +0200
commitdc684c60d16f66ea84467ec8e253f2a36a17a7c8 (patch)
treee516f1bd4bfbdb37a5aeee42384aade111eca3e1 /patches/server/0841-Add-Sign-getInteractableSideFor.patch
parent752f957e12e4ceb8b7d2043a4a7dbce786b7b98f (diff)
downloadPaper-dc684c60d16f66ea84467ec8e253f2a36a17a7c8.tar.gz
Paper-dc684c60d16f66ea84467ec8e253f2a36a17a7c8.zip
Remove bad server.scheduleOnMain disconnect calls from old patches
The new behavior of disconnect to block the current thread until the disconnect succeeded is better than throwing it off to happen at some point
Diffstat (limited to 'patches/server/0841-Add-Sign-getInteractableSideFor.patch')
-rw-r--r--patches/server/0841-Add-Sign-getInteractableSideFor.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/patches/server/0841-Add-Sign-getInteractableSideFor.patch b/patches/server/0841-Add-Sign-getInteractableSideFor.patch
new file mode 100644
index 0000000000..2833829ce4
--- /dev/null
+++ b/patches/server/0841-Add-Sign-getInteractableSideFor.patch
@@ -0,0 +1,49 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+Date: Fri, 23 Jun 2023 12:16:28 -0700
+Subject: [PATCH] Add Sign#getInteractableSideFor
+
+
+diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
+index bfe8029852385875af4ebe73c63e688f61042021..a28be7a332659be655f419d969e0c64e659b6c21 100644
+--- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
++++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
+@@ -68,12 +68,17 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C
+ }
+
+ public boolean isFacingFrontText(net.minecraft.world.entity.player.Player player) {
++ // Paper start - Add Sign#getInteractableSideFor
++ return this.isFacingFrontText(player.getX(), player.getZ());
++ }
++ public boolean isFacingFrontText(double x, double z) {
++ // Paper end - Add Sign#getInteractableSideFor
+ Block block = this.getBlockState().getBlock();
+
+ if (block instanceof SignBlock blocksign) {
+ Vec3 vec3d = blocksign.getSignHitboxCenterPosition(this.getBlockState());
+- double d0 = player.getX() - ((double) this.getBlockPos().getX() + vec3d.x);
+- double d1 = player.getZ() - ((double) this.getBlockPos().getZ() + vec3d.z);
++ double d0 = x - ((double) this.getBlockPos().getX() + vec3d.x); // Paper - Add Sign#getInteractableSideFor
++ double d1 = z - ((double) this.getBlockPos().getZ() + vec3d.z); // Paper - Add Sign#getInteractableSideFor
+ float f = blocksign.getYRotationDegrees(this.getBlockState());
+ float f1 = (float) (Mth.atan2(d1, d0) * 57.2957763671875D) - 90.0F;
+
+diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java
+index 8303343ecca91076839f4436d6b3a3bf4739c2fd..cefbb015a77b9e3cab56e5ed4fe35fba91641632 100644
+--- a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java
++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java
+@@ -198,6 +198,14 @@ public class CraftSign<T extends SignBlockEntity> extends CraftBlockEntityState<
+ }
+ // Paper end
+
++ // Paper start - side facing API
++ @Override
++ public Side getInteractableSideFor(final double x, final double z) {
++ this.requirePlaced();
++ return this.getSnapshot().isFacingFrontText(x, z) ? Side.FRONT : Side.BACK;
++ }
++ // Paper end
++
+ public static Component[] sanitizeLines(String[] lines) {
+ Component[] components = new Component[4];
+