From 88dc8d574de94b1181c880e642b94b821e6c331c Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Thu, 25 Jul 2024 20:49:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A0=E4=BA=BA=E6=9C=BA?= =?UTF-8?q?=E6=9C=80=E5=A4=A7=E8=B7=9D=E7=A6=BB=E7=9A=84=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../target/event/PlayerEventHandler.java | 18 ++++-------------- .../resources/META-INF/accesstransformer.cfg | 9 +++------ 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/src/main/java/net/mcreator/target/event/PlayerEventHandler.java b/src/main/java/net/mcreator/target/event/PlayerEventHandler.java index 6a27b3f58..fc125aabe 100644 --- a/src/main/java/net/mcreator/target/event/PlayerEventHandler.java +++ b/src/main/java/net/mcreator/target/event/PlayerEventHandler.java @@ -11,7 +11,6 @@ import net.mcreator.target.tools.SoundTool; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.server.level.DistanceManager; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; @@ -26,11 +25,8 @@ import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.util.ObfuscationReflectionHelper; import net.minecraftforge.network.PacketDistributor; -import java.lang.reflect.Field; - @Mod.EventBusSubscriber public class PlayerEventHandler { @@ -460,17 +456,11 @@ public class PlayerEventHandler { private static void handleSimulationDistance(Player player) { if (player.level() instanceof ServerLevel serverLevel && player instanceof ServerPlayer serverPlayer) { - int maxDistance; - Class clazz = DistanceManager.class; - try { - Field field = ObfuscationReflectionHelper.findField(clazz, "simulationDistance"); - field.setAccessible(true); - maxDistance = field.getInt(serverLevel.getChunkSource().chunkMap.getDistanceManager()); - } catch (IllegalAccessException e) { - maxDistance = 16; - } + var distanceManager = serverLevel.getChunkSource().chunkMap.getDistanceManager(); + var playerTicketManager = distanceManager.playerTicketManager; + int maxDistance = playerTicketManager.viewDistance; + TargetMod.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> serverPlayer), new SimulationDistanceMessage(maxDistance)); } - } } diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 69bef4de3..ee4636f2b 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -1,6 +1,3 @@ - - -public net.minecraft.client.renderer.ItemInHandRenderer f_109302_ # mainHandHeight -public net.minecraft.client.renderer.ItemInHandRenderer f_109303_ # oMainHandHeight -public net.minecraft.client.renderer.ItemInHandRenderer f_109304_ # offHandHeight -public net.minecraft.client.renderer.ItemInHandRenderer f_109305_ # oOffHandHeight +public net.minecraft.server.level.DistanceManager f_140764_ # playerTicketManager +public net.minecraft.server.level.DistanceManager$PlayerTicketTracker f_140905_ # viewDistance +public net.minecraft.server.level.DistanceManager$PlayerTicketTracker \ No newline at end of file