修改无人机最大距离的实现方式

This commit is contained in:
17146 2024-07-25 20:49:49 +08:00
parent 5846c2017c
commit 88dc8d574d
2 changed files with 7 additions and 20 deletions

View file

@ -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));
}
}
}

View file

@ -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