From 054e2ca094e41a67d42a89d129c2b7ebb79ac57e Mon Sep 17 00:00:00 2001 From: violetc <58360096+s-yh-china@users.noreply.github.com> Date: Sun, 6 Mar 2022 18:10:53 +0800 Subject: [PATCH] Make fakeplayer load more chunk --- .../server/0010-Add-fakeplayer-support.patch | 10 +++++---- .../0011-Add-fakeplayer-action-support.patch | 22 +++++++++---------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/patches/server/0010-Add-fakeplayer-support.patch b/patches/server/0010-Add-fakeplayer-support.patch index f78d774d..673fc8d5 100644 --- a/patches/server/0010-Add-fakeplayer-support.patch +++ b/patches/server/0010-Add-fakeplayer-support.patch @@ -99,10 +99,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..ff7c96e48e266813598e0bd06fe9fc50587aa181 +index 0000000000000000000000000000000000000000..ebea5607956b1328f928d905e4f35424e5c21546 --- /dev/null +++ b/src/main/java/top/leavesmc/leaves/bot/Bot.java -@@ -0,0 +1,471 @@ +@@ -0,0 +1,473 @@ +package top.leavesmc.leaves.bot; + +import com.mojang.authlib.GameProfile; @@ -120,6 +120,7 @@ index 0000000000000000000000000000000000000000..ff7c96e48e266813598e0bd06fe9fc50 +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.server.MinecraftServer; ++import net.minecraft.server.dedicated.DedicatedServer; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.level.TicketType; @@ -299,8 +300,9 @@ index 0000000000000000000000000000000000000000..ff7c96e48e266813598e0bd06fe9fc50 + + private void loadChunks() { + 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++) { ++ int view = ((DedicatedServer) server).settings.getProperties().viewDistance - 1; ++ for (int i = chunkPosition().x - view; i <= chunkPosition().x + view; i++) { ++ for (int j = chunkPosition().z - view; j <= chunkPosition().z + view; j++) { + ChunkPos chunk = world.getChunk(i, j).getPos(); + world.chunkSource.chunkMap.distanceManager.addTicket(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 262aba78..c2bdfddd 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 ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab955eb62202 100644 +index ebea5607956b1328f928d905e4f35424e5c21546..77713ce098be75aab5ebbeabc324298ded4392f5 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 ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95 import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.server.MinecraftServer; -@@ -21,9 +25,13 @@ import net.minecraft.server.level.TicketType; +@@ -22,9 +26,13 @@ import net.minecraft.server.level.TicketType; import net.minecraft.server.network.ServerGamePacketListenerImpl; import net.minecraft.server.network.ServerPlayerConnection; import net.minecraft.util.Mth; @@ -68,7 +68,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95 import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.chunk.LevelChunk; -@@ -37,14 +45,20 @@ import org.bukkit.World; +@@ -38,14 +46,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 ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95 import java.util.Objects; import java.util.Set; import java.util.UUID; -@@ -53,12 +67,17 @@ public class Bot extends ServerPlayer { +@@ -54,12 +68,17 @@ public class Bot extends ServerPlayer { private Vector velocity; private Vector oldVelocity; @@ -111,7 +111,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95 private static final Set bots = new HashSet<>(); -@@ -67,9 +86,12 @@ public class Bot extends ServerPlayer { +@@ -68,9 +87,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 ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95 this.removeOnDeath = true; } -@@ -155,12 +177,17 @@ public class Bot extends ServerPlayer { +@@ -156,12 +178,17 @@ public class Bot extends ServerPlayer { } } @@ -142,7 +142,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95 // die check end @Override -@@ -168,10 +195,6 @@ public class Bot extends ServerPlayer { +@@ -169,10 +196,6 @@ public class Bot extends ServerPlayer { return groundTicks != 0; } @@ -153,7 +153,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95 public static boolean solidAt(Location loc) { Block block = loc.getBlock(); BoundingBox box = block.getBoundingBox(); -@@ -257,12 +280,24 @@ public class Bot extends ServerPlayer { +@@ -259,12 +282,24 @@ public class Bot extends ServerPlayer { public void tick() { loadChunks(); // Load chunks super.tick(); @@ -182,7 +182,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95 if (checkGround()) { if (groundTicks < 5) groundTicks++; -@@ -290,7 +325,83 @@ public class Bot extends ServerPlayer { +@@ -292,7 +327,83 @@ public class Bot extends ServerPlayer { checkOutOfWorld(); @@ -266,7 +266,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95 } @Override -@@ -323,21 +434,6 @@ public class Bot extends ServerPlayer { +@@ -325,21 +436,6 @@ public class Bot extends ServerPlayer { } } @@ -288,7 +288,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95 public Location getLocation() { return getBukkitPlayer().getLocation(); } -@@ -429,6 +525,68 @@ public class Bot extends ServerPlayer { +@@ -431,6 +527,68 @@ public class Bot extends ServerPlayer { this.move(MoverType.SELF, new Vec3(velocity.getX(), y, velocity.getZ())); }