diff --git a/gradle.properties b/gradle.properties index a4e99bdf..f20d01be 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group=org.leavesmc.leaves version=1.21-R0.1-SNAPSHOT mcVersion=1.21 -paperRef=0246a9da86a923e68d079eeceaeabdf750ee630d +paperRef=df3b6544f74be73c8882b97c43d39022340f2d74 preVersion=false updatingMinecraft=false org.gradle.jvmargs=-Xmx2G diff --git a/patches/server/0001-Build-changes.patch b/patches/server/0001-Build-changes.patch index 497c446c..2cfe4994 100644 --- a/patches/server/0001-Build-changes.patch +++ b/patches/server/0001-Build-changes.patch @@ -184,10 +184,10 @@ index 790bad0494454ca12ee152e3de6da3da634d9b20..c060857cb0551fff8f5033553b887f3a private static final String BUILD_DEV = "DEV"; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9325d6f95165a7cee00d7de736af723681cc16b4..b5a216dbf3f73c32ac4e930a694527dc13df0b5d 100644 +index 23ddd26af762c1cd7fb3920669abb96b3213ab37..5be09db47028094ea52889f3c74b6a928278346f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1243,7 +1243,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements ServerInfo, ChunkIOErrorReporter, CommandSource, AutoCloseable, ca.spottedleaf.moonrise.patches.chunk_system.server.ChunkSystemMinecraftServer { // Paper - rewrite chunk system private static MinecraftServer SERVER; // Paper -@@ -1038,7 +1033,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { entityplayer.connection.suspendFlushing(); }); @@ -892,7 +892,7 @@ index b5a216dbf3f73c32ac4e930a694527dc13df0b5d..e5dd0fdcf0e54b9d972880b336fea46d // Paper start - Folia scheduler API ((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick(); getAllLevels().forEach(level -> { -@@ -1740,21 +1728,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { if (!entity.isRemoved()) { if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed -@@ -783,8 +772,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -740,8 +729,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } } }); @@ -1205,7 +1205,7 @@ index 2766ec28f028c0bd672009928bf64c1a6e5d07d6..6944c6af9bee702be8a1b52e251a18f8 gameprofilerfiller.pop(); this.tickBlockEntities(); } -@@ -945,12 +932,10 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -902,12 +889,10 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } // Paper - Option to disable ice and snow gameprofilerfiller.popPush("tickBlocks"); @@ -1218,7 +1218,7 @@ index 2766ec28f028c0bd672009928bf64c1a6e5d07d6..6944c6af9bee702be8a1b52e251a18f8 gameprofilerfiller.pop(); } -@@ -1262,9 +1247,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1219,9 +1204,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. currentlyTickingEntity.lazySet(entity); } // Paper end - log detailed entity tick information @@ -1228,7 +1228,7 @@ index 2766ec28f028c0bd672009928bf64c1a6e5d07d6..6944c6af9bee702be8a1b52e251a18f8 /*if (!org.spigotmc.ActivationRange.checkIfActive(entity)) { // Paper - comment out - EAR 2, reimplement below entity.tickCount++; timer = entity.getType().inactiveTickTimer.startTiming(); try { // Paper - timings -@@ -1273,11 +1256,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1230,11 +1213,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. return; }*/ // Paper - comment out EAR 2 // Spigot end @@ -1240,7 +1240,7 @@ index 2766ec28f028c0bd672009928bf64c1a6e5d07d6..6944c6af9bee702be8a1b52e251a18f8 entity.setOldPosAndRot(); ProfilerFiller gameprofilerfiller = this.getProfiler(); -@@ -1287,12 +1266,10 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1244,12 +1223,10 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. }); gameprofilerfiller.incrementCounter("tickNonPassenger"); if (isActive) { // Paper - EAR 2 @@ -1253,7 +1253,7 @@ index 2766ec28f028c0bd672009928bf64c1a6e5d07d6..6944c6af9bee702be8a1b52e251a18f8 Iterator iterator = entity.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1315,8 +1292,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1272,8 +1249,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. if (passenger instanceof Player || this.entityTickList.contains(passenger)) { // Paper - EAR 2 final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger); @@ -1262,7 +1262,7 @@ index 2766ec28f028c0bd672009928bf64c1a6e5d07d6..6944c6af9bee702be8a1b52e251a18f8 // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; -@@ -1345,8 +1320,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1302,8 +1277,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. this.tickPassenger(passenger, entity2); } @@ -1271,7 +1271,7 @@ index 2766ec28f028c0bd672009928bf64c1a6e5d07d6..6944c6af9bee702be8a1b52e251a18f8 } } else { passenger.stopRiding(); -@@ -1366,24 +1339,23 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1323,24 +1296,23 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); } @@ -1309,7 +1309,7 @@ index 2766ec28f028c0bd672009928bf64c1a6e5d07d6..6944c6af9bee702be8a1b52e251a18f8 } // Paper end - Incremental chunk and player saving -@@ -1397,7 +1369,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1354,7 +1326,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. if (!savingDisabled) { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit @@ -1317,7 +1317,7 @@ index 2766ec28f028c0bd672009928bf64c1a6e5d07d6..6944c6af9bee702be8a1b52e251a18f8 if (progressListener != null) { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } -@@ -1407,12 +1378,8 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -1364,12 +1335,8 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. progressListener.progressStage(Component.translatable("menu.savingChunks")); } diff --git a/patches/server/0007-Leaves-Protocol-Core.patch b/patches/server/0007-Leaves-Protocol-Core.patch index 665b22d1..3f4a5b29 100644 --- a/patches/server/0007-Leaves-Protocol-Core.patch +++ b/patches/server/0007-Leaves-Protocol-Core.patch @@ -47,10 +47,10 @@ index 1967c43ee3a12e63365cc40ee6565307e2fd73cf..6e376d0db5321d8e9b6e0b54617ffd17 assert isValidPath(path); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e5dd0fdcf0e54b9d972880b336fea46d396a56e4..bac0a69424c0370055c2a0ebfbf711c5e8a3db4c 100644 +index 0d362b80044f05e3c6cae9d0f3ab9af6349b5fed..7ce0fb36690e12f3f36c9a43e45ac71814be8e69 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1807,6 +1807,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> set = (Set) playerAdvancements.criterionData.get(this); // Paper - fix AdvancementDataPlayer leak if (set != null && !set.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index bac0a69424c0370055c2a0ebfbf711c5e8a3db4c..e50fa6eb2716785fcfeab935e3e6c5b97eb5eae5 100644 +index 7ce0fb36690e12f3f36c9a43e45ac71814be8e69..a625473805fcde57f3987f3d788efb36fa89073e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -745,6 +745,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> optional = PoiTypes.forState(oldBlock); -@@ -2538,6 +2546,11 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -2495,6 +2503,11 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. // ServerLevel.this.getChunkSource().addEntity(entity); // Paper - ignore and warn about illegal addEntity calls instead of crashing server; moved down below valid=true if (entity instanceof ServerPlayer entityplayer) { ServerLevel.this.players.add(entityplayer); @@ -133,7 +133,7 @@ index 71f1b5eb1d2b3d9fb0436c842b479c30976be3f6..0a89705b7a363ecab1a86107351364ca ServerLevel.this.updateSleepingPlayerList(); } -@@ -2615,6 +2628,11 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -2572,6 +2585,11 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. ServerLevel.this.getChunkSource().removeEntity(entity); if (entity instanceof ServerPlayer entityplayer) { ServerLevel.this.players.remove(entityplayer); diff --git a/patches/server/0024-Config-to-disable-method-profiler.patch b/patches/server/0024-Config-to-disable-method-profiler.patch index e39d7264..2750108b 100644 --- a/patches/server/0024-Config-to-disable-method-profiler.patch +++ b/patches/server/0024-Config-to-disable-method-profiler.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Config to disable method profiler This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e50fa6eb2716785fcfeab935e3e6c5b97eb5eae5..a0e4e96addc467c6816ebb42263d5ddd1e2e8ff3 100644 +index a625473805fcde57f3987f3d788efb36fa89073e..0f07ee9d947235fc91f7d450d746f056a9b9e13a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2555,6 +2555,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= i) { return (List) object; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d45c979b37b157482f7ad04b4fe2b2d26f1581f0..8d07bfa8709bb1d522672df739ea8c794c4cfe05 100644 +index 9e5e89aa5220dcfa278931bc891b055ae4ef0ad8..49e5749d838883a9a292c283daba136b9629b8eb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1689,7 +1689,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop !playerList.isOp(player.getGameProfile())) .map(player -> player.getGameProfile().getName()), diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1b33ac2eaa4d938f8e930fb2bfcc7169f10f851f..fc9c4711495136c564ad0da3de314811256df4a1 100644 +index 64b63fe65f12d21e589c946c76e54f8f9fc8aeef..04d8c32316814d31e4216215c4c84cc7f6cbb884 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2565,7 +2565,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -2522,7 +2522,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. if (entity instanceof ServerPlayer entityplayer) { ServerLevel.this.players.add(entityplayer); // Leaves start - skip @@ -159,7 +159,7 @@ index 1b33ac2eaa4d938f8e930fb2bfcc7169f10f851f..fc9c4711495136c564ad0da3de314811 ServerLevel.this.realPlayers.add(entityplayer); } // Leaves end - skip -@@ -2647,7 +2647,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -2604,7 +2604,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. if (entity instanceof ServerPlayer entityplayer) { ServerLevel.this.players.remove(entityplayer); // Leaves start - skip @@ -425,7 +425,7 @@ index 47a3ba54cb0ffbbe6713f19db6f9396e5b75c89a..325b429b6030bccd1f22fbf488a9a076 + // Leaves end - replay mod api } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index a007beca6c00bce4514889935b1762a37826c75a..02881fdb1a3c96466618149c288094b755eafb4d 100644 +index 9c3df47ae65289c27a1d63ac06ca41c074ff374e..01d902e9fbf029fcd8aa21e541e54785fab2fe91 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -95,6 +95,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0114-Servux-Protocol.patch b/patches/server/0114-Servux-Protocol.patch index a5274b4e..889a12ad 100644 --- a/patches/server/0114-Servux-Protocol.patch +++ b/patches/server/0114-Servux-Protocol.patch @@ -22,10 +22,10 @@ index ab18bbf87dfc1455ed185a5152dad6d236565ecc..227c89f7d58cdcfad762f1f11e1f8720 } throw new IllegalStateException(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index fc9c4711495136c564ad0da3de314811256df4a1..0138c39c6c0b2c1f3526f9b4ff30d132d95a4e6f 100644 +index 04d8c32316814d31e4216215c4c84cc7f6cbb884..87a1e9df0b5adc5e3e417b972a33a819dcca3d5a 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2050,6 +2050,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. +@@ -2007,6 +2007,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. } this.lastSpawnChunkRadius = i; diff --git a/patches/server/0119-Fast-resume.patch b/patches/server/0119-Fast-resume.patch index 7d574507..37dcd90c 100644 --- a/patches/server/0119-Fast-resume.patch +++ b/patches/server/0119-Fast-resume.patch @@ -59,10 +59,10 @@ index 58d3d1a47e9f2423c467bb329c2d5f4b58a8b5ef..ea1ffe6b5e49ccf2b472829ed97e977b return this.removeTicketAtLevel(type, CoordinateUtils.getChunkKey(chunkPos), level, identifier); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8d07bfa8709bb1d522672df739ea8c794c4cfe05..3842333958a2e62f8c84261fdbd297bbbb0c745a 100644 +index 49e5749d838883a9a292c283daba136b9629b8eb..ca0badf478777d840ddf730e2684f76d9cc596a9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -747,6 +747,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop>> TYPE_TOKEN = new TypeToken<>() { diff --git a/src/main/java/io/papermc/paper/plugin/provider/configuration/PaperPluginMeta.java b/src/main/java/io/papermc/paper/plugin/provider/configuration/PaperPluginMeta.java -index c685871155c8dff1d57ff151d7a5ec70350e5390..e911f320610fdb09382231548002b4fe0eb2c211 100644 +index d3b3a8baca013909fa9c6204d964d7d7efeb2719..cdde16a4999fbf56c334c65e23d995b7a3604518 100644 --- a/src/main/java/io/papermc/paper/plugin/provider/configuration/PaperPluginMeta.java +++ b/src/main/java/io/papermc/paper/plugin/provider/configuration/PaperPluginMeta.java @@ -55,7 +55,7 @@ public class PaperPluginMeta implements PluginMeta { @@ -125,7 +125,7 @@ index 8d0da6e46d4eb5eb05c3144510c4ef083559d0ec..72a69ed1d4cdeecd25bfa4fddc3ecc2b private final String config; private final PluginTypeFactory factory; diff --git a/src/main/java/io/papermc/paper/plugin/provider/type/paper/PaperPluginParent.java b/src/main/java/io/papermc/paper/plugin/provider/type/paper/PaperPluginParent.java -index f2bc4d0b55d4c9877a442529e0b144656497dae6..b43872d65d7d59348bd09f7f1439b51871e60196 100644 +index 55a6898e95704cddafda1ca5dc0951c7102fe10b..ebde8a79143a5e314d5054f2d125d276eaa1e734 100644 --- a/src/main/java/io/papermc/paper/plugin/provider/type/paper/PaperPluginParent.java +++ b/src/main/java/io/papermc/paper/plugin/provider/type/paper/PaperPluginParent.java @@ -27,6 +27,7 @@ import java.util.jar.JarFile; @@ -137,7 +137,7 @@ index f2bc4d0b55d4c9877a442529e0b144656497dae6..b43872d65d7d59348bd09f7f1439b518 private final JarFile jarFile; private final PaperPluginMeta description; diff --git a/src/main/java/io/papermc/paper/pluginremap/PluginRemapper.java b/src/main/java/io/papermc/paper/pluginremap/PluginRemapper.java -index 265c636abfd63f9ba0b0f0198867a10401c14da1..0e2487490537034c875c132d94bb4f012084d85f 100644 +index 28857d0c9b53f2068d51b8f09ef40df7a2b97502..b4d2d7280237a9ad7df095e26773e01211201b84 100644 --- a/src/main/java/io/papermc/paper/pluginremap/PluginRemapper.java +++ b/src/main/java/io/papermc/paper/pluginremap/PluginRemapper.java @@ -333,7 +333,13 @@ public final class PluginRemapper { @@ -154,7 +154,7 @@ index 265c636abfd63f9ba0b0f0198867a10401c14da1..0e2487490537034c875c132d94bb4f01 + } // Leaves end - leaves plugins } } catch (final IOException ex) { - throw new RuntimeException("Failed to open plugin jar " + inputFile, ex); + return CompletableFuture.failedFuture(new RuntimeException("Failed to open plugin jar " + inputFile, ex)); diff --git a/src/main/java/org/leavesmc/leaves/plugin/provider/LeavesPluginProviderFactory.java b/src/main/java/org/leavesmc/leaves/plugin/provider/LeavesPluginProviderFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..35fe2f6a1785d525a46c4bc4d61c5043a056daef