diff --git a/patches/server/0010-Add-fakeplayer-support.patch b/patches/server/0010-Add-fakeplayer-support.patch index f1236b9b..148539d9 100644 --- a/patches/server/0010-Add-fakeplayer-support.patch +++ b/patches/server/0010-Add-fakeplayer-support.patch @@ -67,7 +67,7 @@ index f7959fe8d5247504dd79a18010470d98781c7cfe..a77dc509dd65d4e49315b16902063d08 AdvancementProgress advancementprogress = this.getOrStartProgress(advancement); boolean flag1 = advancementprogress.isDone(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index cd08f9b16c065be8f0eacaeba51d3e72d332daf9..c9616d519c01749dc30c8331af184a5e90273142 100644 +index 7a0c1ba40156df69bbbf36d96bed0950130d2351..8285d83edeb70c4a368ead68dadd0b4861a7f6a3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1,6 +1,7 @@ @@ -232,10 +232,10 @@ index a73c79e57f51a6ab0f0d0b37fa6c87ff9bd69325..4b8d05838bd70a2932a36a5919436861 MinecraftServer.getServer().server.getCommandMap().register(entry.getKey(), "Leaves", entry.getValue()); diff --git a/src/main/java/top/leavesmc/leaves/bot/Bot.java b/src/main/java/top/leavesmc/leaves/bot/Bot.java new file mode 100644 -index 0000000000000000000000000000000000000000..97b8cb057c139af76684088bdde71d96e95ada81 +index 0000000000000000000000000000000000000000..18bd3b869a9ebd7cdef8da8c46d4da749b6fa3da --- /dev/null +++ b/src/main/java/top/leavesmc/leaves/bot/Bot.java -@@ -0,0 +1,472 @@ +@@ -0,0 +1,471 @@ +package top.leavesmc.leaves.bot; + +import com.mojang.authlib.GameProfile; @@ -255,12 +255,14 @@ index 0000000000000000000000000000000000000000..97b8cb057c139af76684088bdde71d96 +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; ++import net.minecraft.server.level.TicketType; +import net.minecraft.server.network.ServerGamePacketListenerImpl; +import net.minecraft.server.network.ServerPlayerConnection; +import net.minecraft.util.Mth; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.MoverType; ++import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.chunk.LevelChunk; +import net.minecraft.world.phys.AABB; @@ -429,14 +431,11 @@ index 0000000000000000000000000000000000000000..97b8cb057c139af76684088bdde71d96 + } + + private void loadChunks() { -+ Level world = level; ++ ServerLevel world = (ServerLevel) level; + for (int i = chunkPosition().x - 1; i <= chunkPosition().x + 1; i++) { + for (int j = chunkPosition().z - 1; j <= chunkPosition().z + 1; j++) { -+ LevelChunk chunk = world.getChunk(i, j); -+ -+ if (!chunk.loaded) { -+ chunk.loaded = true; -+ } ++ ChunkPos chunk = world.getChunk(i, j).getPos(); ++ world.chunkSource.chunkMap.distanceManager.addTicketAtLevel(TicketType.PLAYER, chunk, 31, chunk); + } + } + } diff --git a/patches/server/0011-Add-fakeplayer-action-support.patch b/patches/server/0011-Add-fakeplayer-action-support.patch index 663817f3..fb15e841 100644 --- a/patches/server/0011-Add-fakeplayer-action-support.patch +++ b/patches/server/0011-Add-fakeplayer-action-support.patch @@ -30,7 +30,7 @@ index 4b8d05838bd70a2932a36a5919436861b8e41c0b..def8ab8bf0537e648751b200de016071 } diff --git a/src/main/java/top/leavesmc/leaves/bot/Bot.java b/src/main/java/top/leavesmc/leaves/bot/Bot.java -index 97b8cb057c139af76684088bdde71d96e95ada81..e07c7e204044916de223edf62e3e88e7465b257d 100644 +index 18bd3b869a9ebd7cdef8da8c46d4da749b6fa3da..71619f750819ab213b1cae23873eb60f0acb37d7 100644 --- a/src/main/java/top/leavesmc/leaves/bot/Bot.java +++ b/src/main/java/top/leavesmc/leaves/bot/Bot.java @@ -1,9 +1,12 @@ @@ -54,7 +54,7 @@ index 97b8cb057c139af76684088bdde71d96e95ada81..e07c7e204044916de223edf62e3e88e7 import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.server.MinecraftServer; -@@ -20,9 +24,13 @@ import net.minecraft.server.level.ServerPlayer; +@@ -21,9 +25,13 @@ import net.minecraft.server.level.TicketType; import net.minecraft.server.network.ServerGamePacketListenerImpl; import net.minecraft.server.network.ServerPlayerConnection; import net.minecraft.util.Mth; @@ -65,10 +65,10 @@ index 97b8cb057c139af76684088bdde71d96e95ada81..e07c7e204044916de223edf62e3e88e7 +import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.MoverType; +import net.minecraft.world.entity.item.ItemEntity; + import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.chunk.LevelChunk; - import net.minecraft.world.phys.AABB; -@@ -35,14 +43,20 @@ import org.bukkit.World; +@@ -37,14 +45,20 @@ import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.craftbukkit.CraftWorld; import org.bukkit.craftbukkit.entity.CraftPlayer; @@ -89,7 +89,7 @@ index 97b8cb057c139af76684088bdde71d96e95ada81..e07c7e204044916de223edf62e3e88e7 import java.util.Objects; import java.util.Set; import java.util.UUID; -@@ -51,12 +65,17 @@ public class Bot extends ServerPlayer { +@@ -53,12 +67,17 @@ public class Bot extends ServerPlayer { private Vector velocity; private Vector oldVelocity; @@ -111,7 +111,7 @@ index 97b8cb057c139af76684088bdde71d96e95ada81..e07c7e204044916de223edf62e3e88e7 private static final Set bots = new HashSet<>(); -@@ -65,9 +84,12 @@ public class Bot extends ServerPlayer { +@@ -67,9 +86,12 @@ public class Bot extends ServerPlayer { this.entityData.set(new EntityDataAccessor<>(16, EntityDataSerializers.INT), 0xFF); this.velocity = new Vector(0, 0, 0); @@ -124,7 +124,7 @@ index 97b8cb057c139af76684088bdde71d96e95ada81..e07c7e204044916de223edf62e3e88e7 this.removeOnDeath = true; } -@@ -153,12 +175,17 @@ public class Bot extends ServerPlayer { +@@ -155,12 +177,17 @@ public class Bot extends ServerPlayer { } } @@ -142,7 +142,7 @@ index 97b8cb057c139af76684088bdde71d96e95ada81..e07c7e204044916de223edf62e3e88e7 // die check end @Override -@@ -166,10 +193,6 @@ public class Bot extends ServerPlayer { +@@ -168,10 +195,6 @@ public class Bot extends ServerPlayer { return groundTicks != 0; } @@ -153,15 +153,7 @@ index 97b8cb057c139af76684088bdde71d96e95ada81..e07c7e204044916de223edf62e3e88e7 public static boolean solidAt(Location loc) { Block block = loc.getBlock(); BoundingBox box = block.getBoundingBox(); -@@ -195,7 +218,6 @@ public class Bot extends ServerPlayer { - for (int i = chunkPosition().x - 1; i <= chunkPosition().x + 1; i++) { - for (int j = chunkPosition().z - 1; j <= chunkPosition().z + 1; j++) { - LevelChunk chunk = world.getChunk(i, j); -- - if (!chunk.loaded) { - chunk.loaded = true; - } -@@ -258,12 +280,24 @@ public class Bot extends ServerPlayer { +@@ -257,12 +280,24 @@ public class Bot extends ServerPlayer { public void tick() { loadChunks(); // Load chunks super.tick(); @@ -190,7 +182,7 @@ index 97b8cb057c139af76684088bdde71d96e95ada81..e07c7e204044916de223edf62e3e88e7 if (checkGround()) { if (groundTicks < 5) groundTicks++; -@@ -291,7 +325,83 @@ public class Bot extends ServerPlayer { +@@ -290,7 +325,83 @@ public class Bot extends ServerPlayer { checkOutOfWorld(); @@ -274,7 +266,7 @@ index 97b8cb057c139af76684088bdde71d96e95ada81..e07c7e204044916de223edf62e3e88e7 } @Override -@@ -324,21 +434,6 @@ public class Bot extends ServerPlayer { +@@ -323,21 +434,6 @@ public class Bot extends ServerPlayer { } } @@ -296,7 +288,7 @@ index 97b8cb057c139af76684088bdde71d96e95ada81..e07c7e204044916de223edf62e3e88e7 public Location getLocation() { return getBukkitPlayer().getLocation(); } -@@ -430,6 +525,68 @@ public class Bot extends ServerPlayer { +@@ -429,6 +525,68 @@ public class Bot extends ServerPlayer { this.move(MoverType.SELF, new Vec3(velocity.getX(), y, velocity.getZ())); }