From f7020b0387d8453100063c1e1253c372fa97bf93 Mon Sep 17 00:00:00 2001 From: booky10 Date: Thu, 26 Oct 2023 21:15:29 +0200 Subject: [PATCH] Work around worldborder collision issues --- ...-around-worldborder-collision-issues.patch | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 patches/server/0016-Work-around-worldborder-collision-issues.patch diff --git a/patches/server/0016-Work-around-worldborder-collision-issues.patch b/patches/server/0016-Work-around-worldborder-collision-issues.patch new file mode 100644 index 0000000..1dcbe85 --- /dev/null +++ b/patches/server/0016-Work-around-worldborder-collision-issues.patch @@ -0,0 +1,52 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: booky10 +Date: Thu, 26 Oct 2023 21:15:06 +0200 +Subject: [PATCH] Work around worldborder collision issues + + +diff --git a/src/main/java/net/minecraft/world/level/border/WorldBorder.java b/src/main/java/net/minecraft/world/level/border/WorldBorder.java +index 204f008dc36212e696fba781fede88044b2f735a..05af61f8e6987f714b349282c1887414caeb987c 100644 +--- a/src/main/java/net/minecraft/world/level/border/WorldBorder.java ++++ b/src/main/java/net/minecraft/world/level/border/WorldBorder.java +@@ -377,10 +377,10 @@ public class WorldBorder { + } + + private void updateBox() { +- this.minX = Mth.clamp(WorldBorder.this.getCenterX() - this.size / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize); +- this.minZ = Mth.clamp(WorldBorder.this.getCenterZ() - this.size / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize); +- this.maxX = Mth.clamp(WorldBorder.this.getCenterX() + this.size / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize); +- this.maxZ = Mth.clamp(WorldBorder.this.getCenterZ() + this.size / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize); ++ this.minX = Mth.floor(Mth.clamp(WorldBorder.this.getCenterX() - this.size / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize)) - 0.01d; // CloudPlane ++ this.minZ = Mth.floor(Mth.clamp(WorldBorder.this.getCenterZ() - this.size / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize)) - 0.01d; // CloudPlane ++ this.maxX = Mth.ceil(Mth.clamp(WorldBorder.this.getCenterX() + this.size / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize)) + 0.01d; // CloudPlane ++ this.maxZ = Mth.ceil(Mth.clamp(WorldBorder.this.getCenterZ() + this.size / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize)) + 0.01d; // CloudPlane + this.shape = Shapes.join(Shapes.INFINITY, Shapes.box(Math.floor(this.getMinX()), Double.NEGATIVE_INFINITY, Math.floor(this.getMinZ()), Math.ceil(this.getMaxX()), Double.POSITIVE_INFINITY, Math.ceil(this.getMaxZ())), BooleanOp.ONLY_FIRST); + } + +@@ -452,22 +452,22 @@ public class WorldBorder { + + @Override + public double getMinX() { +- return Mth.clamp(WorldBorder.this.getCenterX() - this.getSize() / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize); ++ return Mth.floor(Mth.clamp(WorldBorder.this.getCenterX() - this.getSize() / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize)) - 0.01d; // CloudPlane + } + + @Override + public double getMinZ() { +- return Mth.clamp(WorldBorder.this.getCenterZ() - this.getSize() / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize); ++ return Mth.floor(Mth.clamp(WorldBorder.this.getCenterZ() - this.getSize() / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize)) - 0.01d; // CloudPlane + } + + @Override + public double getMaxX() { +- return Mth.clamp(WorldBorder.this.getCenterX() + this.getSize() / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize); ++ return Mth.ceil(Mth.clamp(WorldBorder.this.getCenterX() + this.getSize() / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize)) + 0.01d; // CloudPlane + } + + @Override + public double getMaxZ() { +- return Mth.clamp(WorldBorder.this.getCenterZ() + this.getSize() / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize); ++ return Mth.ceil(Mth.clamp(WorldBorder.this.getCenterZ() + this.getSize() / 2.0D, (double) (-WorldBorder.this.absoluteMaxSize), (double) WorldBorder.this.absoluteMaxSize)) + 0.01d; // CloudPlane + } + + @Override