aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/1045-Make-interaction-leniency-distance-configurable.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/1045-Make-interaction-leniency-distance-configurable.patch')
-rw-r--r--patches/server/1045-Make-interaction-leniency-distance-configurable.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/patches/server/1045-Make-interaction-leniency-distance-configurable.patch b/patches/server/1045-Make-interaction-leniency-distance-configurable.patch
new file mode 100644
index 0000000000..341e13affd
--- /dev/null
+++ b/patches/server/1045-Make-interaction-leniency-distance-configurable.patch
@@ -0,0 +1,26 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Newwind <[email protected]>
+Date: Thu, 25 Jul 2024 13:00:37 +0200
+Subject: [PATCH] Make interaction leniency distance configurable
+
+The server validates incoming interaction packets by ensuring the player
+sending them is inside their interaction range. For this, the server adds
+a magic value, by default 1.0, to the original interaction range to
+account for latency issues.
+
+This value however may be too low in high latency environments.
+The patch exposes a new configuration option to configure said value.
+
+diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+index 7796e191747be545e744564a2b0b65790f69114d..624b80c796e9c95040d71d1595d11f98e2899cf3 100644
+--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+@@ -2703,7 +2703,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+
+ AABB axisalignedbb = entity.getBoundingBox();
+
+- if (this.player.canInteractWithEntity(axisalignedbb, 1.0D)) {
++ if (this.player.canInteractWithEntity(axisalignedbb, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(1.0D))) { // Paper - configurable lenience value for interact range
+ packet.dispatch(new ServerboundInteractPacket.Handler() {
+ private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit
+ ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand);