mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-20 07:19:33 +00:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@9e7f6c3 Fixup and deprecate player profiles in ping event (#10880) PaperMC/Paper@5914f60 Update AbstractArrow item method implementations for 1.20.6 (#10885) PaperMC/Paper@3889ffb Fix Player#sendBlockUpdate (#10855) PaperMC/Paper@af7f0c4 Fix ItemMeta#removeEnchantments (#10886) PaperMC/Paper@43484eb Add back RecipeIterator fixes patch (#10887) PaperMC/Paper@fe7043e Configurable damage tick when blocking with shield (#10877) PaperMC/Paper@122c9d3 Fix NPE in V3808 PaperMC/Paper@e41d44f Fix `hasFiredAsync` parameter when `AsyncPlayerSendCommandsEvent` is called (#10896) PaperMC/Paper@20f5165 Backport `LivingEntity#canUseEquipmentSlot` API (#11013) PaperMC/Paper@6e71f41 Updated Upstream (CraftBukkit/Spigot)
58 lines
3.4 KiB
Diff
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 7a88a81400705a8a1fb234e50528818b7cadc5d6..33b88cf239eed6af6ea03ab6bbeb133aa6443af1 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
|
@@ -1445,7 +1445,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;
|
|
boolean flag = d1 <= d2 && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z);
|
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
index bed136477493365d62d1b82e8f7802513a394991..a2ab2691c1727ec30c22c0a6e5a6b78da556df19 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
@@ -346,6 +346,7 @@ public class ServerPlayer extends Player {
|
|
// Paper start - optimise chunk tick iteration
|
|
public double lastEntitySpawnRadiusSquared = -1.0;
|
|
// Paper end - optimise chunk tick iteration
|
|
+ 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 549d4c45d072e95b741ceb79779cd8fac65bf185..bafd9e135a38d78e7a040c744afe46a3cc96bc52 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -2999,6 +2999,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() {
|