mirror of
https://github.com/LeavesMC/Leaves.git
synced 2025-12-19 14:59:32 +00:00
Fix fakeplayer load chunk bug
This commit is contained in:
@@ -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);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
|
||||
@@ -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<Bot> 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()));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user