修改无人机最大距离的实现方式
This commit is contained in:
parent
5846c2017c
commit
88dc8d574d
2 changed files with 7 additions and 20 deletions
|
@ -11,7 +11,6 @@ import net.mcreator.target.tools.SoundTool;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.server.level.DistanceManager;
|
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
|
@ -26,11 +25,8 @@ import net.minecraftforge.event.TickEvent;
|
||||||
import net.minecraftforge.event.entity.player.PlayerEvent;
|
import net.minecraftforge.event.entity.player.PlayerEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import net.minecraftforge.fml.util.ObfuscationReflectionHelper;
|
|
||||||
import net.minecraftforge.network.PacketDistributor;
|
import net.minecraftforge.network.PacketDistributor;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
|
|
||||||
@Mod.EventBusSubscriber
|
@Mod.EventBusSubscriber
|
||||||
public class PlayerEventHandler {
|
public class PlayerEventHandler {
|
||||||
|
|
||||||
|
@ -460,17 +456,11 @@ public class PlayerEventHandler {
|
||||||
|
|
||||||
private static void handleSimulationDistance(Player player) {
|
private static void handleSimulationDistance(Player player) {
|
||||||
if (player.level() instanceof ServerLevel serverLevel && player instanceof ServerPlayer serverPlayer) {
|
if (player.level() instanceof ServerLevel serverLevel && player instanceof ServerPlayer serverPlayer) {
|
||||||
int maxDistance;
|
var distanceManager = serverLevel.getChunkSource().chunkMap.getDistanceManager();
|
||||||
Class<?> clazz = DistanceManager.class;
|
var playerTicketManager = distanceManager.playerTicketManager;
|
||||||
try {
|
int maxDistance = playerTicketManager.viewDistance;
|
||||||
Field field = ObfuscationReflectionHelper.findField(clazz, "simulationDistance");
|
|
||||||
field.setAccessible(true);
|
|
||||||
maxDistance = field.getInt(serverLevel.getChunkSource().chunkMap.getDistanceManager());
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
maxDistance = 16;
|
|
||||||
}
|
|
||||||
TargetMod.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> serverPlayer), new SimulationDistanceMessage(maxDistance));
|
TargetMod.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> serverPlayer), new SimulationDistanceMessage(maxDistance));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
|
public net.minecraft.server.level.DistanceManager f_140764_ # playerTicketManager
|
||||||
|
public net.minecraft.server.level.DistanceManager$PlayerTicketTracker f_140905_ # viewDistance
|
||||||
public net.minecraft.client.renderer.ItemInHandRenderer f_109302_ # mainHandHeight
|
public net.minecraft.server.level.DistanceManager$PlayerTicketTracker
|
||||||
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
|
|
Loading…
Add table
Reference in a new issue