9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-27 02:49:10 +00:00

feat: bot resume autosave

This commit is contained in:
MC_XiaoHei
2025-10-12 14:18:08 +08:00
parent 5070018b1b
commit 543cadc548
5 changed files with 23 additions and 15 deletions

View File

@@ -203,7 +203,7 @@ index 72e593966e66e27064030f5486f68a905885da1f..2682f6debf14ed3040a78b02d820e949
playerList.op(nameAndId);
i++;
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index ecdb937f08a437a1d2398e49ca835071015844f2..fdda4acec6186c5a0290f3d9895cbcec782b8629 100644
index ecdb937f08a437a1d2398e49ca835071015844f2..813ce64907b57f8452027ca65e44d9cecd2e0130 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -255,6 +255,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -218,7 +218,7 @@ index ecdb937f08a437a1d2398e49ca835071015844f2..fdda4acec6186c5a0290f3d9895cbcec
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
org.leavesmc.leaves.LeavesConfig.init((java.io.File) options.valueOf("leaves-settings")); // Leaves - Server Config
+ this.getBotList().loadBotInfo(); // Leaves - load resident bot info
+ this.getBotList().loadResumeBotInfo(); // Leaves - load resident bot info
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics // Leaves - down
@@ -397,7 +397,7 @@ index 4888e84144c76edddee1a51dab3b05bc0f484c83..bba9101149c1b582fe261280fe4f6613
// Paper start - utility method for common conversion back to the game profile
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 03ae88e05414a2e46d096e52039faabaf14d2b7f..cf362c3c8b3018378173c7bf25e29fcb398a517a 100644
index 03ae88e05414a2e46d096e52039faabaf14d2b7f..8ee83a9f17ce729ea6144d9227cc2c45b1270139 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -240,6 +240,19 @@ public abstract class PlayerList {
@@ -408,7 +408,7 @@ index 03ae88e05414a2e46d096e52039faabaf14d2b7f..cf362c3c8b3018378173c7bf25e29fcb
+ if (org.leavesmc.leaves.LeavesConfig.modify.fakeplayer.enable) {
+ org.leavesmc.leaves.bot.ServerBot bot = this.server.getBotList().getBotByName(player.getScoreboardName());
+ if (bot != null) {
+ this.server.getBotList().removeBot(bot, org.leavesmc.leaves.event.bot.BotRemoveEvent.RemoveReason.INTERNAL, player.getBukkitEntity(), false);
+ this.server.getBotList().removeBot(bot, org.leavesmc.leaves.event.bot.BotRemoveEvent.RemoveReason.INTERNAL, player.getBukkitEntity(), false, false);
+ }
+ this.server.getBotList().bots.forEach(bot1 -> {
+ bot1.sendPlayerInfo(player);
@@ -467,7 +467,15 @@ index 03ae88e05414a2e46d096e52039faabaf14d2b7f..cf362c3c8b3018378173c7bf25e29fcb
}
public void broadcast(@Nullable Player except, double x, double y, double z, double radius, ResourceKey<Level> dimension, Packet<?> packet) {
@@ -1278,7 +1309,13 @@ public abstract class PlayerList {
@@ -1008,6 +1039,7 @@ public abstract class PlayerList {
}
// Paper end - Incremental chunk and player saving
}
+ org.leavesmc.leaves.bot.BotList.INSTANCE.saveAllResumeBots(); // Leaves - resident fakeplayer
return null; }); // Paper - ensure main
}
@@ -1278,7 +1310,13 @@ public abstract class PlayerList {
@Nullable
public ServerPlayer getPlayer(UUID playerUUID) {
@@ -775,4 +783,4 @@ index bef794c3f58c41d910aa0bcc63fbdeea7225fddf..a601da588e6973cc5b87d3e3eeba49b5
+ public LevelResource(String id) { // Leaves - private -> public
this.id = id;
}

View File

@@ -106,7 +106,7 @@ index 88447fc2108126ccfad2fb7eb79ac94537f132d3..1bca4150c63da064bd2d1ee8f504f2eb
private static final String PREFIX = "data:image/png;base64,";
public static final Codec<ServerStatus.Favicon> CODEC = Codec.STRING.comapFlatMap(string -> {
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index fdda4acec6186c5a0290f3d9895cbcec782b8629..d49f84c17e624c4023b678df07ec812124278db3 100644
index 813ce64907b57f8452027ca65e44d9cecd2e0130..677ad1a39e76efc98fc3b953ad66b329184612e0 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -782,7 +782,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -148,10 +148,10 @@ index adb26ae4dfd5dc111cc55000b71c15f95239b090..20b9dfe68dfbcd5bb999ee4ec0500bdf
if (packet == null || this.processedDisconnect) { // Spigot
return;
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index cf362c3c8b3018378173c7bf25e29fcb398a517a..f951ea1c6c2b63cc6b7f330cd3100adb507f8e54 100644
index 8ee83a9f17ce729ea6144d9227cc2c45b1270139..23e58f03b04a85611d1b4bb0e5f009a94f2fa57d 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -1237,7 +1237,7 @@ public abstract class PlayerList {
@@ -1238,7 +1238,7 @@ public abstract class PlayerList {
}
public boolean verifyChatTrusted(PlayerChatMessage message) {

View File

@@ -315,7 +315,7 @@ index 93dc94ec1e4e93af7ceea21fb01d35ae65b40b92..c72d272c6d48d12bda8ee99fafee5d27
if (new org.bukkit.event.player.PlayerGameModeChangeEvent(this.getBukkitEntity(), org.bukkit.GameMode.getByValue(this.server.getDefaultGameType().getId()), org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.DEFAULT_GAMEMODE, null).callEvent()) {
this.gameMode.setGameModeForPlayer(this.server.getForcedGameType(), GameType.DEFAULT_MODE);
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 248c08b4f1dc6cf47ac311d5872ae56485e3b425..19c8b1a728c28ed6e325b0b5e3d4aec764b74f0b 100644
index 39098ec97660f5b7f951efcfd90d3a355e27b945..b4fe935660bf4c0456412926a9c892498282859a 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -125,6 +125,7 @@ public abstract class PlayerList {
@@ -391,7 +391,7 @@ index 248c08b4f1dc6cf47ac311d5872ae56485e3b425..19c8b1a728c28ed6e325b0b5e3d4aec7
+ if (org.leavesmc.leaves.LeavesConfig.modify.fakeplayer.enable) {
+ org.leavesmc.leaves.bot.ServerBot bot = this.server.getBotList().getBotByName(player.getScoreboardName());
+ if (bot != null) {
+ this.server.getBotList().removeBot(bot, org.leavesmc.leaves.event.bot.BotRemoveEvent.RemoveReason.INTERNAL, player.getBukkitEntity(), false);
+ this.server.getBotList().removeBot(bot, org.leavesmc.leaves.event.bot.BotRemoveEvent.RemoveReason.INTERNAL, player.getBukkitEntity(), false, false);
+ }
+ this.server.getBotList().bots.forEach(bot1 -> {
+ bot1.sendPlayerInfo(player);

View File

@@ -39,13 +39,13 @@ index 30b681bc234eac8dc44ce3bf6e228171f5a71a7a..e7a4a977cd1dcdbdeb163016ff30346b
String awtException = io.papermc.paper.util.ServerEnvironment.awtDependencyCheck();
if (awtException != null) {
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index 97b95b07d378c2159d123f918f80d7f86bcaed7a..132a0d9e6a1e4792f87ba92731d1e53b6b01b548 100644
index 677ad1a39e76efc98fc3b953ad66b329184612e0..51400ef2db6e93bfa032108f72687cddfc60c88e 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -280,6 +280,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
org.leavesmc.leaves.LeavesConfig.init((java.io.File) options.valueOf("leaves-settings")); // Leaves - Server Config
this.getBotList().loadBotInfo(); // Leaves - load resident bot info
this.getBotList().loadResumeBotInfo(); // Leaves - load resident bot info
+ org.leavesmc.leaves.util.ServerI18nUtil.init(); // Leaves I18n
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics // Leaves - down

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Xaero Map Protocol
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 6fb2170c777ca0ac333f9663beb43644120cc9d6..65005673cbda87e6d581ae61586c03eaa4d20164 100644
index 5775b4bf6377d2e39707cb259b4228f03b19cafc..f89bf5b325a1077e42321e117be445b8a11f9ecb 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -1247,6 +1247,7 @@ public abstract class PlayerList {
@@ -1248,6 +1248,7 @@ public abstract class PlayerList {
player.connection.send(new ClientboundInitializeBorderPacket(worldBorder));
player.connection.send(new ClientboundSetTimePacket(level.getGameTime(), level.getDayTime(), level.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)));
player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(level.getRespawnData()));