9
0
mirror of https://github.com/Samsuik/Sakura.git synced 2025-12-22 16:29:16 +00:00
Files
SakuraMC/patches/server/0072-Entity-tracking-range-modifier.patch
Samsuik 0b8d6923d9 Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@cb2ab7d Remove string dupe exploit setting (#11670)
PaperMC/Paper@5f6a796 deprecate adventure key() methods where applicable
PaperMC/Paper@78fd8f9 Copy items when constructing ClientboundSetCursorItemPacket
PaperMC/Paper@0cc7bd4 Use Player view distance for PlayerNaturallySpawnCreaturesEvent
PaperMC/Paper@da9d110 Remove chunk save reattempt patch
PaperMC/Paper@9953384 [ci skip] leaf
PaperMC/Paper@64828f3 Clean up thread pool usage (#11681)
PaperMC/Paper@5ab6789 Copy dispatcher root children before passing it into async tree building
PaperMC/Paper@47f2071 Deprecate ChatVisibility#UNKNOWN (#11683)
PaperMC/Paper@9039c39 Add back discard policy
PaperMC/Paper@27e4ddc Fix item_model adapter, rename internal classes
2024-11-30 22:37:34 +00:00

58 lines
3.4 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Samsuik <kfian294ma4@gmail.com>
Date: Tue, 18 Jun 2024 13:34:55 +0100
Subject: [PATCH] Entity tracking range modifier
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 54bfe3dfda0e023cc3d25ddcf1fe366a6cf50c90..0b9783c473585aed6a63f870e66a1809d00c0aee 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1326,7 +1326,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
double vec3d_dz = player.getZ() - this.entity.getZ();
// Paper end - remove allocation of Vec3D here
int i = ChunkMap.this.getPlayerViewDistance(player);
- double d0 = (double) Math.min(this.getEffectiveRange(), i * 16);
+ // Sakura start - entity tracking range modifier
+ double visibleRange = (double) this.getEffectiveRange() * player.trackingRangeModifier;
+ double d0 = (double) Math.min(visibleRange, i * 16);
+ // Sakura end - entity tracking range modifier
double d1 = vec3d_dx * vec3d_dx + vec3d_dz * vec3d_dz; // Paper
double d2 = d0 * d0;
// Paper start - Configurable entity tracking range by Y
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index ac8308be5b200237aa61a21404e558f245356546..c9c39cbdf7e0ff715630fc98712db0f202362eb5 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -360,6 +360,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
}
// Paper end - rewrite chunk system
public final me.samsuik.sakura.player.visibility.PlayerVisibilitySettings visibilitySettings = new me.samsuik.sakura.player.visibility.PlayerVisibilitySettings(); // Sakura - client visibility settings
+ public double trackingRangeModifier = 1.0; // Sakura - entity tracking range modifier
public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) {
super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index ab38f0913b7adf3593c5d0b5a65441afefeeffbc..de2c9dcaf3b481ef4762598a7df0968a67d2d41a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3039,6 +3039,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return (this.getHandle().requestedViewDistance() == 0) ? Bukkit.getViewDistance() : this.getHandle().requestedViewDistance();
}
+ // Sakura start - entity tracking range modifier
+ @Override
+ public double getTrackingRangeModifier() {
+ return this.getHandle().trackingRangeModifier * 100.0;
+ }
+
+ @Override
+ public void setTrackingRangeModifier(double mod) {
+ this.getHandle().trackingRangeModifier = mod / 100.0;
+ }
+ // Sakura end - entity tracking range modifier
+
// Paper start
@Override
public java.util.Locale locale() {