9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-28 11:29:12 +00:00

Make fakeplayer load more chunk

This commit is contained in:
violetc
2022-03-06 18:10:53 +08:00
parent 59fc31cbbc
commit 054e2ca094
2 changed files with 17 additions and 15 deletions

View File

@@ -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);
+ }

View File

@@ -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<Bot> 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()));
}