9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-29 03:49:21 +00:00

fix reduce chunk source updates position check and mark experimental

This commit is contained in:
hayanesuru
2025-07-06 00:41:59 +09:00
parent becff2ac20
commit ee45897239
2 changed files with 14 additions and 17 deletions

View File

@@ -5,24 +5,15 @@ Subject: [PATCH] Reduce PlayerChunk Updates
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 983f2b1c12d2e64c099ba7c717b9d2bc7f1770ce..6dc940aa6ee513e5c87b6058ccaa90bba91bade9 100644
index 7c12d65849a975aedfb94fc135bad7071908a02b..d6078ccf648c77717291e784200f952633fbbacf 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1457,6 +1457,8 @@ public class ServerGamePacketListenerImpl
this.resetPosition();
}
+ final net.minecraft.world.level.ChunkPos playerStartChunkPosition = this.player.chunkPosition(); // Leaf - Reduce PlayerChunk Updates
+
if (this.player.hasClientLoaded()) {
float f = Mth.wrapDegrees(packet.getYRot(this.player.getYRot())); final float toYaw = f; // Paper - OBFHELPER
float f1 = Mth.wrapDegrees(packet.getXRot(this.player.getXRot())); final float toPitch = f1; // Paper - OBFHELPER
@@ -1734,7 +1736,7 @@ public class ServerGamePacketListenerImpl
@@ -1734,7 +1734,7 @@ public class ServerGamePacketListenerImpl
&& !isFallFlying
&& !isAutoSpinAttack
&& this.noBlocksAround(this.player);
- this.player.level().getChunkSource().move(this.player);
+ if (!org.dreeam.leaf.config.modules.opt.ReduceChunkSourceUpdates.enabled || this.player.level() != serverLevel || this.player.chunkPosition() == playerStartChunkPosition) this.player.level().getChunkSource().move(this.player); // Leaf - Reduce PlayerChunk Updates
+ if (!org.dreeam.leaf.config.modules.opt.ReduceChunkSourceUpdates.enabled || this.player.getLastSectionPos().asLong() != net.minecraft.core.SectionPos.asLong(this.player.blockPosition())) this.player.level().getChunkSource().move(this.player); // Leaf - Reduce PlayerChunk Updates
Vec3 vec3 = new Vec3(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z);
this.player.setOnGroundWithMovement(packet.isOnGround(), packet.horizontalCollision(), vec3);
this.player.doCheckFallDamage(vec3.x, vec3.y, vec3.z, packet.isOnGround());

View File

@@ -2,6 +2,7 @@ package org.dreeam.leaf.config.modules.opt;
import org.dreeam.leaf.config.ConfigModules;
import org.dreeam.leaf.config.EnumConfigCategory;
import org.dreeam.leaf.config.annotations.Experimental;
public class ReduceChunkSourceUpdates extends ConfigModules {
@@ -9,15 +10,20 @@ public class ReduceChunkSourceUpdates extends ConfigModules {
return EnumConfigCategory.PERF.getBaseKeyName() + ".reduce-chunk-source-updates";
}
@Experimental
public static boolean enabled = false;
@Override
public void onLoaded() {
enabled = config.getBoolean(getBasePath() + ".enabled", enabled,
config.pickStringRegionBased(
"Reduces chunk source updates on inter-chunk player moves.",
"减少玩家跨区块移动时的区块源更新。"
)
config.addCommentRegionBased(getBasePath(), """
*** Experimental Feature ***
Reduces chunk source updates on inter-chunk player moves.""", """
*** 实验性功能 ***
减少玩家跨区块移动时的区块源更新."""
);
enabled = config.getBoolean(getBasePath() + ".force-enabled", enabled);
if (config.getBoolean(getBasePath() + ".enabled", enabled)) {
LOGGER.warn("Disabled reduce-chunk-source-updates due to its experimental");
}
}
}