mirror of
https://github.com/LeavesMC/Leaves.git
synced 2026-01-06 15:51:33 +00:00
Make fakeplayer load more chunk
This commit is contained in:
@@ -99,10 +99,10 @@ index a73c79e57f51a6ab0f0d0b37fa6c87ff9bd69325..4b8d05838bd70a2932a36a5919436861
|
|||||||
MinecraftServer.getServer().server.getCommandMap().register(entry.getKey(), "Leaves", entry.getValue());
|
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
|
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
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..ff7c96e48e266813598e0bd06fe9fc50587aa181
|
index 0000000000000000000000000000000000000000..ebea5607956b1328f928d905e4f35424e5c21546
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/top/leavesmc/leaves/bot/Bot.java
|
+++ b/src/main/java/top/leavesmc/leaves/bot/Bot.java
|
||||||
@@ -0,0 +1,471 @@
|
@@ -0,0 +1,473 @@
|
||||||
+package top.leavesmc.leaves.bot;
|
+package top.leavesmc.leaves.bot;
|
||||||
+
|
+
|
||||||
+import com.mojang.authlib.GameProfile;
|
+import com.mojang.authlib.GameProfile;
|
||||||
@@ -120,6 +120,7 @@ index 0000000000000000000000000000000000000000..ff7c96e48e266813598e0bd06fe9fc50
|
|||||||
+import net.minecraft.network.syncher.EntityDataAccessor;
|
+import net.minecraft.network.syncher.EntityDataAccessor;
|
||||||
+import net.minecraft.network.syncher.EntityDataSerializers;
|
+import net.minecraft.network.syncher.EntityDataSerializers;
|
||||||
+import net.minecraft.server.MinecraftServer;
|
+import net.minecraft.server.MinecraftServer;
|
||||||
|
+import net.minecraft.server.dedicated.DedicatedServer;
|
||||||
+import net.minecraft.server.level.ServerLevel;
|
+import net.minecraft.server.level.ServerLevel;
|
||||||
+import net.minecraft.server.level.ServerPlayer;
|
+import net.minecraft.server.level.ServerPlayer;
|
||||||
+import net.minecraft.server.level.TicketType;
|
+import net.minecraft.server.level.TicketType;
|
||||||
@@ -299,8 +300,9 @@ index 0000000000000000000000000000000000000000..ff7c96e48e266813598e0bd06fe9fc50
|
|||||||
+
|
+
|
||||||
+ private void loadChunks() {
|
+ private void loadChunks() {
|
||||||
+ ServerLevel world = (ServerLevel) level;
|
+ ServerLevel world = (ServerLevel) level;
|
||||||
+ for (int i = chunkPosition().x - 1; i <= chunkPosition().x + 1; i++) {
|
+ int view = ((DedicatedServer) server).settings.getProperties().viewDistance - 1;
|
||||||
+ for (int j = chunkPosition().z - 1; j <= chunkPosition().z + 1; j++) {
|
+ 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();
|
+ ChunkPos chunk = world.getChunk(i, j).getPos();
|
||||||
+ world.chunkSource.chunkMap.distanceManager.addTicket(TicketType.PLAYER, chunk, 31, chunk);
|
+ world.chunkSource.chunkMap.distanceManager.addTicket(TicketType.PLAYER, chunk, 31, chunk);
|
||||||
+ }
|
+ }
|
||||||
|
|||||||
@@ -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
|
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
|
--- a/src/main/java/top/leavesmc/leaves/bot/Bot.java
|
||||||
+++ b/src/main/java/top/leavesmc/leaves/bot/Bot.java
|
+++ b/src/main/java/top/leavesmc/leaves/bot/Bot.java
|
||||||
@@ -1,9 +1,12 @@
|
@@ -1,9 +1,12 @@
|
||||||
@@ -54,7 +54,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95
|
|||||||
import net.minecraft.network.syncher.EntityDataAccessor;
|
import net.minecraft.network.syncher.EntityDataAccessor;
|
||||||
import net.minecraft.network.syncher.EntityDataSerializers;
|
import net.minecraft.network.syncher.EntityDataSerializers;
|
||||||
import net.minecraft.server.MinecraftServer;
|
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.ServerGamePacketListenerImpl;
|
||||||
import net.minecraft.server.network.ServerPlayerConnection;
|
import net.minecraft.server.network.ServerPlayerConnection;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
@@ -68,7 +68,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95
|
|||||||
import net.minecraft.world.level.ChunkPos;
|
import net.minecraft.world.level.ChunkPos;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.chunk.LevelChunk;
|
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.block.Block;
|
||||||
import org.bukkit.craftbukkit.CraftWorld;
|
import org.bukkit.craftbukkit.CraftWorld;
|
||||||
import org.bukkit.craftbukkit.entity.CraftPlayer;
|
import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||||
@@ -89,7 +89,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
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 velocity;
|
||||||
private Vector oldVelocity;
|
private Vector oldVelocity;
|
||||||
@@ -111,7 +111,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95
|
|||||||
|
|
||||||
private static final Set<Bot> bots = new HashSet<>();
|
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.entityData.set(new EntityDataAccessor<>(16, EntityDataSerializers.INT), 0xFF);
|
||||||
|
|
||||||
this.velocity = new Vector(0, 0, 0);
|
this.velocity = new Vector(0, 0, 0);
|
||||||
@@ -124,7 +124,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95
|
|||||||
this.removeOnDeath = true;
|
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
|
// die check end
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -168,10 +195,6 @@ public class Bot extends ServerPlayer {
|
@@ -169,10 +196,6 @@ public class Bot extends ServerPlayer {
|
||||||
return groundTicks != 0;
|
return groundTicks != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,7 +153,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95
|
|||||||
public static boolean solidAt(Location loc) {
|
public static boolean solidAt(Location loc) {
|
||||||
Block block = loc.getBlock();
|
Block block = loc.getBlock();
|
||||||
BoundingBox box = block.getBoundingBox();
|
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() {
|
public void tick() {
|
||||||
loadChunks(); // Load chunks
|
loadChunks(); // Load chunks
|
||||||
super.tick();
|
super.tick();
|
||||||
@@ -182,7 +182,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95
|
|||||||
|
|
||||||
if (checkGround()) {
|
if (checkGround()) {
|
||||||
if (groundTicks < 5) groundTicks++;
|
if (groundTicks < 5) groundTicks++;
|
||||||
@@ -290,7 +325,83 @@ public class Bot extends ServerPlayer {
|
@@ -292,7 +327,83 @@ public class Bot extends ServerPlayer {
|
||||||
|
|
||||||
checkOutOfWorld();
|
checkOutOfWorld();
|
||||||
|
|
||||||
@@ -266,7 +266,7 @@ index ff7c96e48e266813598e0bd06fe9fc50587aa181..13d3a24fc43e7f00d2c6cb0252a3ab95
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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() {
|
public Location getLocation() {
|
||||||
return getBukkitPlayer().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()));
|
this.move(MoverType.SELF, new Vec3(velocity.getX(), y, velocity.getZ()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user