diff --git a/gradle.properties b/gradle.properties index b653fed..13cc0cf 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = me.earthme.luminol version=1.21.4-R0.1-SNAPSHOT mcVersion=1.21.4 -foliaRef=bb12eee2bdc68452dd643dd6e4efe8ecf68df3ce +foliaRef=80ab57dcbe5fa96cc2f7fe34ecba94162d8dd5e9 org.gradle.configuration-cache=true org.gradle.caching=true diff --git a/luminol-server/minecraft-patches/features/0029-Purpur-Use-alternative-keep-alive.patch b/luminol-server/minecraft-patches/features/0029-Purpur-Use-alternative-keep-alive.patch index 59d4ea7..d6eefda 100644 --- a/luminol-server/minecraft-patches/features/0029-Purpur-Use-alternative-keep-alive.patch +++ b/luminol-server/minecraft-patches/features/0029-Purpur-Use-alternative-keep-alive.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Purpur Use alternative keep alive diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index c739f2cf3590d5aab2391d95f6ea9a5cc4a2e599..1629e32c893fea4e14b3fbc4da5d454da985cd92 100644 +index f7f89695f40e4aff39d324e6a7948a8a3a8c04b3..bceef2e8cd9a84ca32f17085839dff0232f2ee31 100644 --- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -41,6 +41,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -33,7 +33,7 @@ index c739f2cf3590d5aab2391d95f6ea9a5cc4a2e599..1629e32c893fea4e14b3fbc4da5d454d if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) { int i = (int)(Util.getMillis() - this.keepAliveTime); this.latency = (this.latency * 3 + i) / 4; -@@ -251,7 +262,22 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -255,7 +266,22 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack // Paper start - give clients a longer time to respond to pings as per pre 1.12.2 timings // This should effectively place the keepalive handling back to "as it was" before 1.12.2 final long elapsedTime = millis - this.keepAliveTime; @@ -57,7 +57,7 @@ index c739f2cf3590d5aab2391d95f6ea9a5cc4a2e599..1629e32c893fea4e14b3fbc4da5d454d if (this.keepAlivePending) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected this.disconnect(TIMEOUT_DISCONNECTION_MESSAGE, org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause -@@ -264,6 +290,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -268,6 +294,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack this.send(new ClientboundKeepAlivePacket(this.keepAliveChallenge)); } } diff --git a/luminol-server/minecraft-patches/features/0052-Correct-isWatched-method-in-ScheduledTaskThreadPool.patch b/luminol-server/minecraft-patches/features/0052-Correct-isWatched-method-in-ScheduledTaskThreadPool.patch new file mode 100644 index 0000000..dc82df5 --- /dev/null +++ b/luminol-server/minecraft-patches/features/0052-Correct-isWatched-method-in-ScheduledTaskThreadPool.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: MrHua269 +Date: Fri, 4 Apr 2025 08:17:32 +0800 +Subject: [PATCH] Correct isWatched method in ScheduledTaskThreadPool + + +diff --git a/io/papermc/paper/threadedregions/ScheduledTaskThreadPool.java b/io/papermc/paper/threadedregions/ScheduledTaskThreadPool.java +index 5c591b0d6eac45d6094ce44bf62ad976bf995e66..287d8b929d1c0802705a7ff276e4146682203061 100644 +--- a/io/papermc/paper/threadedregions/ScheduledTaskThreadPool.java ++++ b/io/papermc/paper/threadedregions/ScheduledTaskThreadPool.java +@@ -1229,7 +1229,7 @@ public final class ScheduledTaskThreadPool { + } + + public boolean isWatched() { +- return (boolean)TAKEN_HANDLE.getVolatile(this); ++ return (boolean)WATCHED_HANDLE.getVolatile(this); // Luminol - Try fixing scheduling call issue + } + + public long getLastTaskNotify() { diff --git a/luminol-server/paper-patches/features/0004-Add-tpsbar-with-chunkhot-membar-and-region-bar.patch b/luminol-server/paper-patches/features/0004-Add-tpsbar-with-chunkhot-membar-and-region-bar.patch index abf42c1..806ae54 100644 --- a/luminol-server/paper-patches/features/0004-Add-tpsbar-with-chunkhot-membar-and-region-bar.patch +++ b/luminol-server/paper-patches/features/0004-Add-tpsbar-with-chunkhot-membar-and-region-bar.patch @@ -22,10 +22,10 @@ index de8b9048c8395c05b8688bc9d984b8ad680f15b3..f42692cd4f0154705c3d5b030d281cfc + // KioCG end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c53de765b624071cb4cd3fa69b5df4de5b95bf3b..5137f6a68c216ff0daefa8ceec41026669338797 100644 +index 512ef437119041b33b62ef4675bdd1b27fd9a403..628211a282ef0553a0229b6cadacd2727d967873 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2447,6 +2447,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2442,6 +2442,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { handle.expToDrop = data.getInt("expToDrop"); handle.keepLevel = data.getBoolean("keepLevel"); } @@ -41,7 +41,7 @@ index c53de765b624071cb4cd3fa69b5df4de5b95bf3b..5137f6a68c216ff0daefa8ceec410266 } } -@@ -2468,6 +2477,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2463,6 +2472,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { data.putLong("lastPlayed", System.currentTimeMillis()); data.putString("lastKnownName", handle.getScoreboardName()); @@ -57,7 +57,7 @@ index c53de765b624071cb4cd3fa69b5df4de5b95bf3b..5137f6a68c216ff0daefa8ceec410266 // Paper start - persist for use in offline save data if (!nbttagcompound.contains("Paper")) { nbttagcompound.put("Paper", new CompoundTag()); -@@ -3677,4 +3695,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3672,4 +3690,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void setSimplifyContainerDesyncCheck(final boolean simplifyContainerDesyncCheck) { this.simplifyContainerDesyncCheck = simplifyContainerDesyncCheck; } diff --git a/luminol-server/paper-patches/features/0008-SparklyPaper-Optimize-canSee-checks.patch b/luminol-server/paper-patches/features/0008-SparklyPaper-Optimize-canSee-checks.patch index 97623a6..42667d8 100644 --- a/luminol-server/paper-patches/features/0008-SparklyPaper-Optimize-canSee-checks.patch +++ b/luminol-server/paper-patches/features/0008-SparklyPaper-Optimize-canSee-checks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] SparklyPaper Optimize canSee checks diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5137f6a68c216ff0daefa8ceec41026669338797..b8c5943e46d75241836d0a0f69caf1587b799d38 100644 +index 628211a282ef0553a0229b6cadacd2727d967873..583c2acc6d620b4411c65c2b285d323d7c9c1b98 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -215,7 +215,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -210,7 +210,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private boolean hasPlayedBefore = false; private final ConversationTracker conversationTracker = new ConversationTracker(); private final Set channels = new HashSet(); @@ -17,7 +17,7 @@ index 5137f6a68c216ff0daefa8ceec41026669338797..b8c5943e46d75241836d0a0f69caf158 private final Set unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player private static final WeakHashMap> pluginWeakReferences = new WeakHashMap<>(); private int hash = 0; -@@ -2311,9 +2311,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2306,9 +2306,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean canSee(org.bukkit.entity.Entity entity) {