diff --git a/paper-server/patches/sources/net/minecraft/server/level/ServerPlayer.java.patch b/paper-server/patches/sources/net/minecraft/server/level/ServerPlayer.java.patch index 83043bcd1fe2..732f8f015bb3 100644 --- a/paper-server/patches/sources/net/minecraft/server/level/ServerPlayer.java.patch +++ b/paper-server/patches/sources/net/minecraft/server/level/ServerPlayer.java.patch @@ -713,6 +713,22 @@ } public boolean isReceivingWaypoints() { +@@ -1025,6 +_,15 @@ + } + } + ++ if (attribute.is(Attributes.WAYPOINT_TRANSMIT_RANGE)) { ++ ServerWaypointManager waypointManager = this.level().getWaypointManager(); ++ if (this.getAttributes().getValue(attribute) > 0.0) { ++ waypointManager.trackWaypoint(this); ++ } else { ++ waypointManager.untrackWaypoint(this); ++ } ++ } ++ + super.onAttributeUpdated(attribute); + } + @@ -1042,14 +_,16 @@ && (flag || blockState.getValue(RespawnAnchorBlock.CHARGE) > 0) && RespawnAnchorBlock.canSetSpawn(level, blockPos)) { diff --git a/paper-server/patches/sources/net/minecraft/server/waypoints/ServerWaypointManager.java.patch b/paper-server/patches/sources/net/minecraft/server/waypoints/ServerWaypointManager.java.patch new file mode 100644 index 000000000000..0212f88b3704 --- /dev/null +++ b/paper-server/patches/sources/net/minecraft/server/waypoints/ServerWaypointManager.java.patch @@ -0,0 +1,21 @@ +--- a/net/minecraft/server/waypoints/ServerWaypointManager.java ++++ b/net/minecraft/server/waypoints/ServerWaypointManager.java +@@ -58,10 +_,6 @@ + for (WaypointTransmitter waypointTransmitter : this.waypoints) { + this.createConnection(player, waypointTransmitter); + } +- +- if (player.isTransmittingWaypoint()) { +- this.trackWaypoint((WaypointTransmitter)player); +- } + } + + public void updatePlayer(ServerPlayer player) { +@@ -82,7 +_,6 @@ + connection.disconnect(); + return true; + }); +- this.untrackWaypoint((WaypointTransmitter)player); + this.players.remove(player); + } +