diff --git a/NMS/v1_12_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_12_R1/ChunkLoaderNPC.java b/NMS/v1_12_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_12_R1/ChunkLoaderNPC.java index 2077305..aad64d8 100644 --- a/NMS/v1_12_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_12_R1/ChunkLoaderNPC.java +++ b/NMS/v1_12_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_12_R1/ChunkLoaderNPC.java @@ -1,5 +1,7 @@ package com.bgsoftware.wildloaders.nms.v1_12_R1; +import com.bgsoftware.common.reflection.ReflectField; +import com.bgsoftware.common.reflection.ReflectMethod; import com.bgsoftware.wildloaders.handlers.NPCHandler; import com.bgsoftware.wildloaders.npc.DummyChannel; import com.mojang.authlib.GameProfile; @@ -38,6 +40,11 @@ import java.util.UUID; public final class ChunkLoaderNPC extends EntityPlayer implements com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC { + private static final ReflectMethod PLAYER_SET_VIEW_DISTANCE = new ReflectMethod<>( + EntityPlayer.class, "setViewDistance", int.class); + private static final ReflectField PLAYER_AFFECTS_SPAWNING = new ReflectField<>( + EntityPlayer.class, boolean.class, "affectsSpawning"); + private final AxisAlignedBB boundingBox; private final AdvancementDataPlayer advancements; @@ -53,8 +60,15 @@ public final class ChunkLoaderNPC extends EntityPlayer implements com.bgsoftware this.advancements = new DummyPlayerAdvancements(server, this); this.playerInteractManager.setGameMode(EnumGamemode.CREATIVE); + + fallDistance = 0.0F; fauxSleeping = true; + if (PLAYER_SET_VIEW_DISTANCE.isValid()) + PLAYER_SET_VIEW_DISTANCE.invoke(this, 0); + if (PLAYER_AFFECTS_SPAWNING.isValid()) + PLAYER_AFFECTS_SPAWNING.set(this, true); + spawnIn(world); setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); diff --git a/NMS/v1_16_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_16_R3/ChunkLoaderNPC.java b/NMS/v1_16_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_16_R3/ChunkLoaderNPC.java index 109f936..b3462f0 100644 --- a/NMS/v1_16_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_16_R3/ChunkLoaderNPC.java +++ b/NMS/v1_16_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_16_R3/ChunkLoaderNPC.java @@ -40,6 +40,7 @@ import java.util.UUID; public final class ChunkLoaderNPC extends EntityPlayer implements com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC { + private final AxisAlignedBB boundingBox; private final AdvancementDataPlayer advancements; @@ -57,9 +58,16 @@ public final class ChunkLoaderNPC extends EntityPlayer implements com.bgsoftware this.advancements = new DummyPlayerAdvancements(server, this); this.playerInteractManager.setGameMode(EnumGamemode.CREATIVE); - clientViewDistance = 1; + fallDistance = 0.0F; fauxSleeping = true; + clientViewDistance = 0; + + try { + // Paper + affectsSpawning = true; + } catch (Throwable ignored) { + } spawnIn(world); setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); diff --git a/NMS/v1_17/src/main/java/com/bgsoftware/wildloaders/nms/v1_17/npc/ChunkLoaderPlayer.java b/NMS/v1_17/src/main/java/com/bgsoftware/wildloaders/nms/v1_17/npc/ChunkLoaderPlayer.java index 1e1b7e9..78d3c07 100644 --- a/NMS/v1_17/src/main/java/com/bgsoftware/wildloaders/nms/v1_17/npc/ChunkLoaderPlayer.java +++ b/NMS/v1_17/src/main/java/com/bgsoftware/wildloaders/nms/v1_17/npc/ChunkLoaderPlayer.java @@ -56,9 +56,16 @@ public final class ChunkLoaderPlayer extends ServerPlayer { this.advancements = new DummyPlayerAdvancements(minecraftServer, this); SET_GAMEMODE.invoke(this.gameMode, GameType.CREATIVE, null); - clientViewDistance = 1; + fallDistance = 0.0F; fauxSleeping = true; + clientViewDistance = 0; + + try { + // Paper + affectsSpawning = true; + } catch (Throwable ignored) { + } spawnIn(this.serverLevel); moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); diff --git a/NMS/v1_18/src/main/java/com/bgsoftware/wildloaders/nms/v1_18/ChunkLoaderNPCImpl.java b/NMS/v1_18/src/main/java/com/bgsoftware/wildloaders/nms/v1_18/ChunkLoaderNPCImpl.java index f2d9757..5bc1f50 100644 --- a/NMS/v1_18/src/main/java/com/bgsoftware/wildloaders/nms/v1_18/ChunkLoaderNPCImpl.java +++ b/NMS/v1_18/src/main/java/com/bgsoftware/wildloaders/nms/v1_18/ChunkLoaderNPCImpl.java @@ -58,9 +58,16 @@ public final class ChunkLoaderNPCImpl extends ServerPlayer implements ChunkLoade this.advancements = new DummyPlayerAdvancements(minecraftServer, this); SET_GAMEMODE.invoke(this.gameMode, GameType.CREATIVE, null); - clientViewDistance = 1; + fallDistance = 0.0F; fauxSleeping = true; + clientViewDistance = 0; + + try { + // Paper + affectsSpawning = true; + } catch (Throwable ignored) { + } spawnIn(this.serverLevel); moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); diff --git a/NMS/v1_19/src/main/java/com/bgsoftware/wildloaders/nms/v1_19/ChunkLoaderNPCImpl.java b/NMS/v1_19/src/main/java/com/bgsoftware/wildloaders/nms/v1_19/ChunkLoaderNPCImpl.java index e6a2113..c167054 100644 --- a/NMS/v1_19/src/main/java/com/bgsoftware/wildloaders/nms/v1_19/ChunkLoaderNPCImpl.java +++ b/NMS/v1_19/src/main/java/com/bgsoftware/wildloaders/nms/v1_19/ChunkLoaderNPCImpl.java @@ -60,9 +60,16 @@ public final class ChunkLoaderNPCImpl extends ServerPlayer implements ChunkLoade this.advancements = new DummyPlayerAdvancements(minecraftServer, this); SET_GAMEMODE.invoke(this.gameMode, GameType.CREATIVE, null); - clientViewDistance = 1; + fallDistance = 0.0F; fauxSleeping = true; + clientViewDistance = 0; + + try { + // Paper + affectsSpawning = true; + } catch (Throwable ignored) { + } spawnIn(this.serverLevel); moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); diff --git a/NMS/v1_20_1/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_1/ChunkLoaderNPCImpl.java b/NMS/v1_20_1/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_1/ChunkLoaderNPCImpl.java index 74fbbf8..b2de193 100644 --- a/NMS/v1_20_1/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_1/ChunkLoaderNPCImpl.java +++ b/NMS/v1_20_1/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_1/ChunkLoaderNPCImpl.java @@ -60,9 +60,19 @@ public final class ChunkLoaderNPCImpl extends ServerPlayer implements ChunkLoade this.advancements = new DummyPlayerAdvancements(minecraftServer, this); SET_GAMEMODE.invoke(this.gameMode, GameType.CREATIVE, null); - clientViewDistance = 1; + fallDistance = 0.0F; fauxSleeping = true; + clientViewDistance = 0; + + try { + // Paper + setLoadViewDistance(2); + setTickViewDistance(2); + setSendViewDistance(2); + affectsSpawning = true; + } catch (Throwable ignored) { + } spawnIn(this.serverLevel); moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); diff --git a/NMS/v1_20_2/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_2/ChunkLoaderNPCImpl.java b/NMS/v1_20_2/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_2/ChunkLoaderNPCImpl.java index 2b01030..0d57cb4 100644 --- a/NMS/v1_20_2/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_2/ChunkLoaderNPCImpl.java +++ b/NMS/v1_20_2/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_2/ChunkLoaderNPCImpl.java @@ -64,16 +64,19 @@ public final class ChunkLoaderNPCImpl extends ServerPlayer implements ChunkLoade this.advancements = new DummyPlayerAdvancements(minecraftServer, this); SET_GAMEMODE.invoke(this.gameMode, GameType.CREATIVE, null); + + fallDistance = 0.0F; + fauxSleeping = true; + try { setLoadViewDistance(2); setTickViewDistance(2); setSendViewDistance(2); + affectsSpawning = true; } catch (Throwable ignored) { // Doesn't exist on Spigot } - fauxSleeping = true; - spawnIn(this.serverLevel); moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); diff --git a/NMS/v1_20_3/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_3/ChunkLoaderNPCImpl.java b/NMS/v1_20_3/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_3/ChunkLoaderNPCImpl.java index c65ae02..c9cf19e 100644 --- a/NMS/v1_20_3/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_3/ChunkLoaderNPCImpl.java +++ b/NMS/v1_20_3/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_3/ChunkLoaderNPCImpl.java @@ -64,16 +64,19 @@ public final class ChunkLoaderNPCImpl extends ServerPlayer implements ChunkLoade this.advancements = new DummyPlayerAdvancements(minecraftServer, this); SET_GAMEMODE.invoke(this.gameMode, GameType.CREATIVE, null); + + fallDistance = 0.0F; + fauxSleeping = true; + try { setLoadViewDistance(2); setTickViewDistance(2); setSendViewDistance(2); + affectsSpawning = true; } catch (Throwable ignored) { // Doesn't exist on Spigot } - fauxSleeping = true; - spawnIn(this.serverLevel); moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); diff --git a/NMS/v1_20_4/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_4/ChunkLoaderNPCImpl.java b/NMS/v1_20_4/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_4/ChunkLoaderNPCImpl.java index eac163a..138da61 100644 --- a/NMS/v1_20_4/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_4/ChunkLoaderNPCImpl.java +++ b/NMS/v1_20_4/src/main/java/com/bgsoftware/wildloaders/nms/v1_20_4/ChunkLoaderNPCImpl.java @@ -64,16 +64,19 @@ public final class ChunkLoaderNPCImpl extends ServerPlayer implements ChunkLoade this.advancements = new DummyPlayerAdvancements(minecraftServer, this); SET_GAMEMODE.invoke(this.gameMode, GameType.CREATIVE, null); + + fallDistance = 0.0F; + fauxSleeping = true; + try { setLoadViewDistance(2); setTickViewDistance(2); setSendViewDistance(2); + affectsSpawning = true; } catch (Throwable ignored) { // Doesn't exist on Spigot } - fauxSleeping = true; - spawnIn(this.serverLevel); moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); diff --git a/NMS/v1_7_R4/src/main/java/com/bgsoftware/wildloaders/nms/v1_7_R4/ChunkLoaderNPC.java b/NMS/v1_7_R4/src/main/java/com/bgsoftware/wildloaders/nms/v1_7_R4/ChunkLoaderNPC.java index e655489..179d8df 100644 --- a/NMS/v1_7_R4/src/main/java/com/bgsoftware/wildloaders/nms/v1_7_R4/ChunkLoaderNPC.java +++ b/NMS/v1_7_R4/src/main/java/com/bgsoftware/wildloaders/nms/v1_7_R4/ChunkLoaderNPC.java @@ -41,8 +41,8 @@ public final class ChunkLoaderNPC extends EntityPlayer implements com.bgsoftware playerConnection = new DummyPlayerConnection(server, this); playerInteractManager.setGameMode(EnumGamemode.CREATIVE); - fallDistance = 0.0F; + fallDistance = 0.0F; fauxSleeping = true; spawnIn(world); diff --git a/NMS/v1_8_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_8_R3/ChunkLoaderNPC.java b/NMS/v1_8_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_8_R3/ChunkLoaderNPC.java index cedd60a..932d86e 100644 --- a/NMS/v1_8_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_8_R3/ChunkLoaderNPC.java +++ b/NMS/v1_8_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_8_R3/ChunkLoaderNPC.java @@ -48,13 +48,14 @@ public final class ChunkLoaderNPC extends EntityPlayer implements com.bgsoftware playerConnection = new DummyPlayerConnection(server, this); playerInteractManager.setGameMode(WorldSettings.EnumGamemode.CREATIVE); - fallDistance = 0.0F; + fallDistance = 0.0F; fauxSleeping = true; try { // Paper affectsSpawning = true; + viewDistance = 0; } catch (Throwable ignored) { }