From dbf47ce159c0125fd37ecf0438abc5ab39b2ffdf Mon Sep 17 00:00:00 2001 From: OmerBenGera Date: Fri, 11 Mar 2022 20:22:30 +0200 Subject: [PATCH] Fixed issues with placing blocks next to the loaders (No solution in 1.7) (#37) --- .../wildloaders/nms/ChunkLoaderNPC_v1_12_R1.java | 10 ++++++++++ .../wildloaders/nms/ChunkLoaderNPC_v1_16_R3.java | 10 ++++++++++ .../wildloaders/nms/ChunkLoaderNPC_v1_17_R1.java | 10 ++++++++++ .../wildloaders/nms/ChunkLoaderNPC_v1_18_R1.java | 10 ++++++++++ .../wildloaders/nms/ChunkLoaderNPC_v1_18_R2.java | 10 ++++++++++ .../wildloaders/nms/ChunkLoaderNPC_v1_8_R3.java | 10 ++++++++++ 6 files changed, 60 insertions(+) diff --git a/v1_12_R1/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_12_R1.java b/v1_12_R1/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_12_R1.java index 8a9a177..abf2ec5 100644 --- a/v1_12_R1/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_12_R1.java +++ b/v1_12_R1/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_12_R1.java @@ -4,6 +4,7 @@ import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC; import com.bgsoftware.wildloaders.handlers.NPCHandler; import com.bgsoftware.wildloaders.npc.DummyChannel; import com.mojang.authlib.GameProfile; +import net.minecraft.server.v1_12_R1.AxisAlignedBB; import net.minecraft.server.v1_12_R1.DamageSource; import net.minecraft.server.v1_12_R1.EntityPlayer; import net.minecraft.server.v1_12_R1.EnumGamemode; @@ -32,6 +33,8 @@ import java.util.UUID; public final class ChunkLoaderNPC_v1_12_R1 extends EntityPlayer implements ChunkLoaderNPC { + private static final AxisAlignedBB EMPTY_BOUND = new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D); + public ChunkLoaderNPC_v1_12_R1(Location location, UUID uuid){ super(((CraftServer) Bukkit.getServer()).getServer(), ((CraftWorld) location.getWorld()).getHandle(), @@ -48,6 +51,8 @@ public final class ChunkLoaderNPC_v1_12_R1 extends EntityPlayer implements Chunk world.players.add(this); ((WorldServer) world).getPlayerChunkMap().addPlayer(this); + + super.a(EMPTY_BOUND); } @Override @@ -55,6 +60,11 @@ public final class ChunkLoaderNPC_v1_12_R1 extends EntityPlayer implements Chunk return super.getUniqueID(); } + @Override + public AxisAlignedBB getBoundingBox() { + return EMPTY_BOUND; + } + @Override public void die() { super.die(); diff --git a/v1_16_R3/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_16_R3.java b/v1_16_R3/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_16_R3.java index b4e6b3d..57d4302 100644 --- a/v1_16_R3/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_16_R3.java +++ b/v1_16_R3/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_16_R3.java @@ -4,6 +4,7 @@ import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC; import com.bgsoftware.wildloaders.handlers.NPCHandler; import com.bgsoftware.wildloaders.npc.DummyChannel; import com.mojang.authlib.GameProfile; +import net.minecraft.server.v1_16_R3.AxisAlignedBB; import net.minecraft.server.v1_16_R3.Chunk; import net.minecraft.server.v1_16_R3.EntityPlayer; import net.minecraft.server.v1_16_R3.EnumGamemode; @@ -32,6 +33,8 @@ import java.util.UUID; public final class ChunkLoaderNPC_v1_16_R3 extends EntityPlayer implements ChunkLoaderNPC { + private static final AxisAlignedBB EMPTY_BOUND = new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D); + private boolean dieCall = false; public ChunkLoaderNPC_v1_16_R3(Location location, UUID uuid) { @@ -51,6 +54,8 @@ public final class ChunkLoaderNPC_v1_16_R3 extends EntityPlayer implements Chunk setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); ((WorldServer) world).addPlayerJoin(this); + + super.a(EMPTY_BOUND); } @Override @@ -58,6 +63,11 @@ public final class ChunkLoaderNPC_v1_16_R3 extends EntityPlayer implements Chunk return super.getUniqueID(); } + @Override + public AxisAlignedBB getBoundingBox() { + return EMPTY_BOUND; + } + @Override public void die() { if (!dieCall) { diff --git a/v1_17_R1/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_17_R1.java b/v1_17_R1/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_17_R1.java index f5fd11e..6a27250 100644 --- a/v1_17_R1/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_17_R1.java +++ b/v1_17_R1/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_17_R1.java @@ -22,6 +22,7 @@ import net.minecraft.server.level.WorldServer; import net.minecraft.server.network.PlayerConnection; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.EnumGamemode; +import net.minecraft.world.phys.AxisAlignedBB; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_17_R1.CraftWorld; @@ -29,6 +30,8 @@ import java.util.UUID; public final class ChunkLoaderNPC_v1_17_R1 extends EntityPlayer implements ChunkLoaderNPC { + private static final AxisAlignedBB EMPTY_BOUND = new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D); + private static final ReflectMethod SET_GAMEMODE = new ReflectMethod<>(PlayerInteractManager.class, 1, EnumGamemode.class, EnumGamemode.class); @@ -49,6 +52,8 @@ public final class ChunkLoaderNPC_v1_17_R1 extends EntityPlayer implements Chunk setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); ((WorldServer) getWorld()).addPlayerJoin(this); + + super.a(EMPTY_BOUND); } @Override @@ -56,6 +61,11 @@ public final class ChunkLoaderNPC_v1_17_R1 extends EntityPlayer implements Chunk return super.getUniqueID(); } + @Override + public AxisAlignedBB cs() { + return EMPTY_BOUND; + } + @Override public void a(Entity.RemovalReason removalReason) { if(!dieCall) { diff --git a/v1_18_R1/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_18_R1.java b/v1_18_R1/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_18_R1.java index f11bb16..9ce2899 100644 --- a/v1_18_R1/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_18_R1.java +++ b/v1_18_R1/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_18_R1.java @@ -19,6 +19,7 @@ import net.minecraft.server.level.EntityPlayer; import net.minecraft.server.level.WorldServer; import net.minecraft.server.network.PlayerConnection; import net.minecraft.world.level.EnumGamemode; +import net.minecraft.world.phys.AxisAlignedBB; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_18_R1.CraftWorld; @@ -28,6 +29,8 @@ import static com.bgsoftware.wildloaders.nms.NMSMappings_v1_18_R1.*; public final class ChunkLoaderNPC_v1_18_R1 extends EntityPlayer implements ChunkLoaderNPC { + private static final AxisAlignedBB EMPTY_BOUND = new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D); + private boolean dieCall = false; public ChunkLoaderNPC_v1_18_R1(MinecraftServer minecraftServer, Location location, UUID uuid){ @@ -45,6 +48,8 @@ public final class ChunkLoaderNPC_v1_18_R1 extends EntityPlayer implements Chunk setLocation(this, location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); addPlayerJoin(getWorldServer(this), this); + + super.a(EMPTY_BOUND); } @Override @@ -57,6 +62,11 @@ public final class ChunkLoaderNPC_v1_18_R1 extends EntityPlayer implements Chunk ah(); } + @Override + public AxisAlignedBB cx() { + return EMPTY_BOUND; + } + @Override public void a(RemovalReason removalReason) { if(!dieCall) { diff --git a/v1_18_R2/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_18_R2.java b/v1_18_R2/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_18_R2.java index 3a03455..842734f 100644 --- a/v1_18_R2/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_18_R2.java +++ b/v1_18_R2/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_18_R2.java @@ -19,6 +19,7 @@ import net.minecraft.server.level.EntityPlayer; import net.minecraft.server.level.WorldServer; import net.minecraft.server.network.PlayerConnection; import net.minecraft.world.level.EnumGamemode; +import net.minecraft.world.phys.AxisAlignedBB; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_18_R2.CraftWorld; @@ -28,6 +29,8 @@ import static com.bgsoftware.wildloaders.nms.NMSMappings_v1_18_R2.*; public final class ChunkLoaderNPC_v1_18_R2 extends EntityPlayer implements ChunkLoaderNPC { + private static final AxisAlignedBB EMPTY_BOUND = new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D); + private boolean dieCall = false; public ChunkLoaderNPC_v1_18_R2(MinecraftServer minecraftServer, Location location, UUID uuid){ @@ -45,6 +48,8 @@ public final class ChunkLoaderNPC_v1_18_R2 extends EntityPlayer implements Chunk setLocation(this, location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); addPlayerJoin(getWorldServer(this), this); + + super.a(EMPTY_BOUND); } @Override @@ -57,6 +62,11 @@ public final class ChunkLoaderNPC_v1_18_R2 extends EntityPlayer implements Chunk ah(); } + @Override + public AxisAlignedBB cx() { + return EMPTY_BOUND; + } + @Override public void a(RemovalReason removalReason) { if(!dieCall) { diff --git a/v1_8_R3/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_8_R3.java b/v1_8_R3/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_8_R3.java index bf9071c..d3e15ac 100644 --- a/v1_8_R3/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_8_R3.java +++ b/v1_8_R3/src/main/java/com/bgsoftware/wildloaders/nms/ChunkLoaderNPC_v1_8_R3.java @@ -4,6 +4,7 @@ import com.bgsoftware.wildloaders.api.npc.ChunkLoaderNPC; import com.bgsoftware.wildloaders.handlers.NPCHandler; import com.bgsoftware.wildloaders.npc.DummyChannel; import com.mojang.authlib.GameProfile; +import net.minecraft.server.v1_8_R3.AxisAlignedBB; import net.minecraft.server.v1_8_R3.DamageSource; import net.minecraft.server.v1_8_R3.EntityPlayer; import net.minecraft.server.v1_8_R3.EnumProtocolDirection; @@ -32,6 +33,8 @@ import java.util.UUID; public final class ChunkLoaderNPC_v1_8_R3 extends EntityPlayer implements ChunkLoaderNPC { + private static final AxisAlignedBB EMPTY_BOUND = new AxisAlignedBB(0D, 0D, 0D, 0D, 0D, 0D); + public ChunkLoaderNPC_v1_8_R3(Location location, UUID uuid){ super(((CraftServer) Bukkit.getServer()).getServer(), ((CraftWorld) location.getWorld()).getHandle(), @@ -56,6 +59,8 @@ public final class ChunkLoaderNPC_v1_8_R3 extends EntityPlayer implements ChunkL world.players.add(this); ((WorldServer) world).getPlayerChunkMap().addPlayer(this); + + super.a(EMPTY_BOUND); } @Override @@ -63,6 +68,11 @@ public final class ChunkLoaderNPC_v1_8_R3 extends EntityPlayer implements ChunkL return super.getUniqueID(); } + @Override + public AxisAlignedBB getBoundingBox() { + return EMPTY_BOUND; + } + @Override public void die() { super.die();