diff --git a/gradle.properties b/gradle.properties index 6234e47d9..3f810c3bc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.21-R0.1-SNAPSHOT mcVersion = 1.21 -paperCommit = a7f66333625febf891e5126bbd432707d38d1b1c +paperCommit = b4b820851f5291c467b1a9590750a10ec67af4f6 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0015-ItemStack-convenience-methods.patch b/patches/api/0015-ItemStack-convenience-methods.patch index 0d3405100..07bb034f9 100644 --- a/patches/api/0015-ItemStack-convenience-methods.patch +++ b/patches/api/0015-ItemStack-convenience-methods.patch @@ -50,7 +50,7 @@ index 54704da43cf9c429f3914f0580246dde99aa93c0..e1a677cfde05aba487a09e34e170fea6 + // Purpur end } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java -index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..e77842896654088cedc19822a99361778336057a 100644 +index f603b5b6ba80af919f415322583a8345a5b1358a..5fd6ec735ff88e66c0ff0359f5838fe49fb24d08 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java @@ -19,6 +19,17 @@ import org.bukkit.inventory.meta.ItemMeta; @@ -71,7 +71,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..e77842896654088cedc19822a9936177 /** * Represents a stack of items. -@@ -1089,4 +1100,565 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat +@@ -1031,4 +1042,551 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat return Bukkit.getUnsafe().computeTooltipLines(this, tooltipContext, player); } // Paper end - expose itemstack tooltip lines @@ -513,20 +513,6 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..e77842896654088cedc19822a9936177 + } + + /** -+ * Returns a custom tag container capable of storing tags on the object. -+ * -+ * Note that the tags stored on this container are all stored under their -+ * own custom namespace therefore modifying default tags using this -+ * {@link PersistentDataHolder} is impossible. -+ * -+ * @return the persistent metadata container -+ */ -+ @NotNull -+ public PersistentDataContainer getPersistentDataContainer() { -+ return getItemMeta().getPersistentDataContainer(); -+ } -+ -+ /** + * Checks to see if this item has damage + * + * @return true if this has damage diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index 72fca2be0..d48af2fa7 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -184,7 +184,7 @@ index 790bad0494454ca12ee152e3de6da3da634d9b20..a6e5950b5875cafd734300cdfbf58f5d @Override diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java -index 589a8bf75be6ccc59f1e5dd5d8d9afed41c4772d..7eabcb453ef655741c4802d2f574932d6d741631 100644 +index b24265573fdef5d9a964bcd76146f34542c420cf..710477ae27ebc5afdf0012ef0867d05efd293c24 100644 --- a/src/main/java/net/minecraft/CrashReport.java +++ b/src/main/java/net/minecraft/CrashReport.java @@ -32,6 +32,7 @@ public class CrashReport { @@ -254,7 +254,7 @@ index e85b9bb3f9c225d289a4959921970b9963881199..c1e2d3a75b9d4710ab6d8b5c62af4bc1 // (async tasks must live with race-conditions if they attempt to cancel between these few lines of code) } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 8dba6c4a2e1f305cf576e8bfdca5d0c07ab871ae..dcf90f04aec8e703d34357db569141aa3ccae35a 100644 +index d70c5546c8bd6f364fad9b24880b6867efdab644..aa38e21c30ae104e0f775bd29da4a49366d009f8 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -504,7 +504,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -280,10 +280,10 @@ index 774556a62eb240da42e84db4502e2ed43495be17..99597258e8e88cd9e2c901c4ac3ff7fa if (stream != null) { diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index c68256c0c8e131497108f677c6b254c589ce67e2..101d1528d818a1c27080c973df5eee041f1ebc9e 100644 +index b0a3ec17a50f4c302d6a9dd75bf907b01c567209..38a6ffd0e21e29601443ce5b5f66f4f69c4ebde0 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java -@@ -23,7 +23,7 @@ public class WatchdogThread extends Thread +@@ -24,7 +24,7 @@ public class WatchdogThread extends Thread private WatchdogThread(long timeoutTime, boolean restart) { @@ -292,7 +292,7 @@ index c68256c0c8e131497108f677c6b254c589ce67e2..101d1528d818a1c27080c973df5eee04 this.timeoutTime = timeoutTime; this.restart = restart; earlyWarningEvery = Math.min(io.papermc.paper.configuration.GlobalConfiguration.get().watchdog.earlyWarningEvery, timeoutTime); // Paper -@@ -80,14 +80,14 @@ public class WatchdogThread extends Thread +@@ -83,14 +83,14 @@ public class WatchdogThread extends Thread if (isLongTimeout) { // Paper end log.log( Level.SEVERE, "------------------------------" ); @@ -310,7 +310,7 @@ index c68256c0c8e131497108f677c6b254c589ce67e2..101d1528d818a1c27080c973df5eee04 // if ( net.minecraft.world.level.Level.lastPhysicsProblem != null ) { -@@ -109,12 +109,12 @@ public class WatchdogThread extends Thread +@@ -112,12 +112,12 @@ public class WatchdogThread extends Thread // Paper end } else { @@ -325,7 +325,7 @@ index c68256c0c8e131497108f677c6b254c589ce67e2..101d1528d818a1c27080c973df5eee04 ca.spottedleaf.moonrise.patches.chunk_system.scheduling.ChunkTaskScheduler.dumpAllChunkLoadInfo(isLongTimeout); // Paper - rewrite chunk system WatchdogThread.dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE ), log ); log.log( Level.SEVERE, "------------------------------" ); -@@ -129,7 +129,7 @@ public class WatchdogThread extends Thread +@@ -132,7 +132,7 @@ public class WatchdogThread extends Thread WatchdogThread.dumpThread( thread, log ); } } else { diff --git a/patches/server/0002-Purpur-config-files.patch b/patches/server/0002-Purpur-config-files.patch index 42a1dc007..96bd1e3fd 100644 --- a/patches/server/0002-Purpur-config-files.patch +++ b/patches/server/0002-Purpur-config-files.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Purpur config files diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index 6aaed8e8bf8c721fc834da5c76ac72a4c3e92458..308d80ca27aa0edd63fba87343b12b39675462bc 100644 +index 4b002e8b75d117b726b0de274a76d3596fce015b..8cde30544e14f8fc2dac32966ae3c21f8cf3a551 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java -@@ -588,7 +588,7 @@ public class Metrics { +@@ -593,7 +593,7 @@ public class Metrics { boolean logFailedRequests = config.getBoolean("logFailedRequests", false); // Only start Metrics, if it's enabled in the config if (config.getBoolean("enabled", true)) { @@ -17,7 +17,7 @@ index 6aaed8e8bf8c721fc834da5c76ac72a4c3e92458..308d80ca27aa0edd63fba87343b12b39 metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> { String minecraftVersion = Bukkit.getVersion(); -@@ -597,16 +597,8 @@ public class Metrics { +@@ -602,16 +602,8 @@ public class Metrics { })); metrics.addCustomChart(new Metrics.SingleLineChart("players", () -> Bukkit.getOnlinePlayers().size())); @@ -37,7 +37,7 @@ index 6aaed8e8bf8c721fc834da5c76ac72a4c3e92458..308d80ca27aa0edd63fba87343b12b39 metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { Map> map = new HashMap<>(); diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 59d7e8a3d83d3ab7aa28606401bb129ccaeff240..b51850c0368b0fa2c9eb4ca44b9c931eb46478fc 100644 +index 2d344df35d47b4b1ecddf32ccaa4dae41e5f58cb..2f7ed5b38e8930b3a615f160cdf4c5b0ec932a8d 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -310,6 +310,30 @@ public class CommandSourceStack implements ExecutionCommandSource 0; // Paper - BlockPhysicsEvent worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers diff --git a/patches/server/0012-Configurable-server-mod-name.patch b/patches/server/0012-Configurable-server-mod-name.patch index 59f6826f7..163dda76d 100644 --- a/patches/server/0012-Configurable-server-mod-name.patch +++ b/patches/server/0012-Configurable-server-mod-name.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable server mod name diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 32d574d1f52577c67883d99309ff03a9fae123dc..c8616c6c9f555079cb8433da4dd9dcf9e218dc7d 100644 +index bbbd335ccefc197048350b580b407210918bbf21..4c71a0eedb99cf7de16335f6f260689abf4c92c7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1823,7 +1823,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { - AtomicReference atomicreference = new AtomicReference(); -@@ -1186,6 +1187,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop bukkit, RootCommandNode rootcommandnode) { // Paper end - Perf: Async command map building - new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper - Brigadier API + new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, true).callEvent(); // Paper - Brigadier API + if (PlayerCommandSendEvent.getHandlerList().getRegisteredListeners().length > 0) { // Purpur - skip all this crap if there's nothing listening PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit)); event.getPlayer().getServer().getPluginManager().callEvent(event); diff --git a/patches/server/0043-Configurable-TPS-Catchup.patch b/patches/server/0043-Configurable-TPS-Catchup.patch index 5c8616638..4a24d35a8 100644 --- a/patches/server/0043-Configurable-TPS-Catchup.patch +++ b/patches/server/0043-Configurable-TPS-Catchup.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable TPS Catchup diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 0f53f5d5c25f115cf6bc7b0fdd844521a15ccfbd..709611a974f957c101aeba9002b382835208f19b 100644 +index d86bb821814e439fa79e17aec7d70e464f8e1912..753148b495d6623112fa860c9f6cbca9c6c0e986 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1218,6 +1218,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { - AtomicReference atomicreference = new AtomicReference(); -@@ -968,6 +969,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { entityplayer.connection.suspendFlushing(); }); @@ -97,7 +97,7 @@ index 59938afbf2d3add16b6a7f0acdba81806054bbbb..f0a85af9681e30937b60d1325d2b719a // Paper start - Folia scheduler API ((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick(); getAllLevels().forEach(level -> { -@@ -1642,21 +1642,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return false; } : this::haveTime); -@@ -1232,7 +1232,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Purpur @@ -240,7 +240,7 @@ index f0a85af9681e30937b60d1325d2b719ae2b442b4..3df64fa31137116aed8b7993cb82164d try { //worldserver.timings.doTick.startTiming(); // Spigot // Purpur -@@ -1718,17 +1718,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { this.executeBlocking(() -> { this.saveDebugReport(path.resolve("server")); -@@ -2724,40 +2725,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop getEntities(@Nullable Entity except, AABB box, Predicate predicate) { @@ -1857,7 +1857,7 @@ index e94e6cc538094de4ce0fc0f615e6fed8bcdcb828..629f35eda2f31b17025fd9d0e594cdeb // Paper start - rewrite chunk system final List ret = new java.util.ArrayList<>(); -@@ -1251,7 +1251,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -1252,7 +1252,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl public void getEntities(final EntityTypeTest entityTypeTest, final AABB boundingBox, final Predicate predicate, final List into, final int maxCount) { @@ -1866,7 +1866,7 @@ index e94e6cc538094de4ce0fc0f615e6fed8bcdcb828..629f35eda2f31b17025fd9d0e594cdeb if (entityTypeTest instanceof net.minecraft.world.entity.EntityType byType) { if (maxCount != Integer.MAX_VALUE) { -@@ -1546,6 +1546,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl +@@ -1547,6 +1547,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl } public ProfilerFiller getProfiler() { @@ -1897,7 +1897,7 @@ index 2812505185df691e8f08932aa0bba162a7d9db86..35e94c06361795d032f995e8282f8b35 // Paper start - Add mobcaps commands diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index b29e8136f2bf7af0dd37bd030cee67e310de6faa..f84a3d9909542c685672b9cdd5d8125746870665 100644 +index 1a57806714e347ab4efe12f5f7782c2167a439a2..5d67b0fb6e979133d80c852d0c8d9fe02e2f97d2 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -449,11 +449,11 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p @@ -1934,8 +1934,8 @@ index b29e8136f2bf7af0dd37bd030cee67e310de6faa..f84a3d9909542c685672b9cdd5d81257 - gameprofilerfiller.pop(); + //gameprofilerfiller.pop(); } catch (Throwable throwable) { + if (throwable instanceof ThreadDeath) throw throwable; // Paper // Paper start - Prevent block entity and entity crashes - final String msg = String.format("BlockEntity threw exception at %s:%s,%s,%s", LevelChunk.this.getLevel().getWorld().getName(), this.getPos().getX(), this.getPos().getY(), this.getPos().getZ()); diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java index 18bbb3f8f99849333ff4bc020c8ce758a69312a5..404080976208c30e9e95e5bee47c2a749e709a45 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java diff --git a/patches/server/0278-Make-GUI-Great-Again.patch b/patches/server/0278-Make-GUI-Great-Again.patch index e99151e54..710017476 100644 --- a/patches/server/0278-Make-GUI-Great-Again.patch +++ b/patches/server/0278-Make-GUI-Great-Again.patch @@ -96,7 +96,7 @@ index 0000000000000000000000000000000000000000..15a226e3854d731f7724025ea3459c8a + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index d9b299cde538db9bc07a267274551cc9893615db..3e27a6c1d0e36d76d1ecdf52f642935b90d50d73 100644 +index 7966a96e8b7d3aa4b858f578229bae6c8f7714b8..b603f61324c9051b5f4b7a747e92ad1f3baec52e 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -114,6 +114,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -398,11 +398,11 @@ index 0000000000000000000000000000000000000000..d75fb5e77eff27d86135ed7d605dbc25 + } +} diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml -index 637d64da9938e51a97338b9253b43889585c67bb..f9313059b4e3b2d100e66ed8a70d4811dc394031 100644 +index d2a75850af9c6ad2aca66a5f994f1b587d73eac4..a056aa167887abef9e6d531a9edd2cda433567d2 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -2,7 +2,16 @@ - + - diff --git a/patches/server/0290-config-for-startup-commands.patch b/patches/server/0290-config-for-startup-commands.patch index 4a6b6bb61..da4a61f80 100644 --- a/patches/server/0290-config-for-startup-commands.patch +++ b/patches/server/0290-config-for-startup-commands.patch @@ -5,10 +5,10 @@ Subject: [PATCH] config for startup commands diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3df64fa31137116aed8b7993cb82164d8d5172cd..40a4273275822a8b3013807a9dd0716a0c93eaf0 100644 +index f7c8ded17964394a1a10d16128d507aa5660f278..cfa43c14ad1d42e8ba4a28a492dfcb679e05ef10 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1165,6 +1165,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop