mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 07:20:24 +01:00
Make max interaction range configurable (#11164)
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.
This commit is contained in:
parent
7c88512287
commit
fff73fa4c4
2 changed files with 30 additions and 0 deletions
|
@ -0,0 +1,26 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Newwind <support@newwindserver.com>
|
||||
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -0,0 +0,0 @@ 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);
|
|
@ -496,6 +496,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
+import co.aikar.timings.MinecraftTimings;
|
||||
+import com.mojang.logging.LogUtils;
|
||||
+import io.papermc.paper.configuration.constraint.Constraints;
|
||||
+import io.papermc.paper.configuration.type.number.DoubleOr;
|
||||
+import io.papermc.paper.configuration.type.number.IntOr;
|
||||
+import net.kyori.adventure.text.Component;
|
||||
+import net.kyori.adventure.text.format.NamedTextColor;
|
||||
|
@ -800,6 +801,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
+ public boolean useDimensionTypeForCustomSpawners = false;
|
||||
+ public boolean strictAdvancementDimensionCheck = false;
|
||||
+ public IntOr.Default compressionLevel = IntOr.Default.USE_DEFAULT;
|
||||
+ @Comment("Defines the leniency distance added on the server to the interaction range of a player when validating interact packets.")
|
||||
+ public DoubleOr.Default clientInteractionLeniencyDistance = DoubleOr.Default.USE_DEFAULT;
|
||||
+ }
|
||||
+
|
||||
+ public BlockUpdates blockUpdates;
|
||||
|
@ -1050,6 +1053,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
+ .serializers(builder -> builder
|
||||
+ .register(new PacketClassSerializer())
|
||||
+ .register(IntOr.Default.SERIALIZER)
|
||||
+ .register(DoubleOr.Default.SERIALIZER)
|
||||
+ );
|
||||
+ }
|
||||
+
|
||||
|
|
Loading…
Reference in a new issue