From a7515a39187a698008ae057d72da9578d346ce1e Mon Sep 17 00:00:00 2001 From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Tue, 25 Mar 2025 03:09:21 -0400 Subject: [PATCH] Updated Upstream (Paper/Gale) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@9f004614 Update a whole lot of deprecated annotations PaperMC/Paper@72f13f8b [ci/skip] Mention API Checks for CONTRIBUTING.md (#12315) PaperMC/Paper@7cc6cb50 Check for trailing input in ItemFactory#createItemStack (#12312) PaperMC/Paper@f49d18df Add get/set customName to Skull block (#12302) PaperMC/Paper@894631f0 Make advancement ordering predictable (#12292) PaperMC/Paper@2aad131e Add config option for command spam whitelist PaperMC/Paper@bb3b7e69 Fix annotation mistakes PaperMC/Paper@058455e4 InventoryView QOL open method (#12282) PaperMC/Paper@f2258582 Fix firework entity not being removed when FireworkExplodeEvent is cancelled (#12268) PaperMC/Paper@7819df10 Add getHeight method to ChunkData (#12311) PaperMC/Paper@37b9ca1f Add flush parameter to World#save (#12330) PaperMC/Paper@515e12ca Check if BUNDLE_CONTENTS is present in InventoryClickEvent (#12321) PaperMC/Paper@5a6ab97b Add config to remove player as vehicle restriction in /ride (#12327) PaperMC/Paper@c467df95 Add ItemStack#copyDataFrom (#12224) Gale Changes: Dreeam-qwq/Gale@d5143ee0 Updated Upstream (Paper) Dreeam-qwq/Gale@63c396e7 Updated Upstream (Paper) Dreeam-qwq/Gale@5c2147b4 Updated Upstream (Paper) Dreeam-qwq/Gale@804ecea0 Rebuild patches --- .github/workflows/auto-update.yml | 3 +- gradle.properties | 2 +- .../features/0002-Leaf-config.patch | 4 +-- .../features/0004-Purpur-API-Changes.patch | 32 +++++++++---------- .../features/0009-Leaves-Replay-Mod-API.patch | 8 ++--- .../0010-Async-structure-locate-api.patch | 4 +-- ...12-Raytrace-AntiXray-SDK-integration.patch | 2 +- ...e-display-index-before-retrieving-it.patch | 1 + ...0007-Purpur-Server-Minecraft-Changes.patch | 12 +++---- ...r-PR-Throttle-failed-spawn-attempts.patch} | 0 ...BlockEntity-ticking-isRemoved-check.patch} | 0 ...8-Raytrace-AntiXray-SDK-integration.patch} | 0 ...timize-addOrUpdateTransientModifier.patch} | 0 ... => 0150-Optimize-ContextMap.create.patch} | 0 ...Micro-optimizations-for-random-tick.patch} | 0 ...n-updateConnectedPlayersWithinRange.patch} | 0 ...53-Remove-streams-on-PlayerDetector.patch} | 0 ...ing.patch => 0154-AsyncBlockFinding.patch} | 0 ...55-Direct-iteration-on-Sensing.tick.patch} | 0 .../0005-Purpur-Server-Paper-Changes.patch | 18 +++++------ .../features/0011-Leaves-Replay-Mod-API.patch | 4 +-- .../0015-Including-5s-in-getTPS.patch | 4 +-- .../features/0024-Multithreaded-Tracker.patch | 4 +-- ...-SparklyPaper-Parallel-world-ticking.patch | 6 ++-- 24 files changed, 53 insertions(+), 51 deletions(-) rename {leaf-server/minecraft-patches/features => leaf-archived-patches/removed/hardfork/server}/0146-Validate-recipe-display-index-before-retrieving-it.patch (96%) rename leaf-server/minecraft-patches/features/{0147-Paper-PR-Throttle-failed-spawn-attempts.patch => 0146-Paper-PR-Throttle-failed-spawn-attempts.patch} (100%) rename leaf-server/minecraft-patches/features/{0148-Improve-BlockEntity-ticking-isRemoved-check.patch => 0147-Improve-BlockEntity-ticking-isRemoved-check.patch} (100%) rename leaf-server/minecraft-patches/features/{0149-Raytrace-AntiXray-SDK-integration.patch => 0148-Raytrace-AntiXray-SDK-integration.patch} (100%) rename leaf-server/minecraft-patches/features/{0150-Optimize-addOrUpdateTransientModifier.patch => 0149-Optimize-addOrUpdateTransientModifier.patch} (100%) rename leaf-server/minecraft-patches/features/{0151-Optimize-ContextMap.create.patch => 0150-Optimize-ContextMap.create.patch} (100%) rename leaf-server/minecraft-patches/features/{0152-Micro-optimizations-for-random-tick.patch => 0151-Micro-optimizations-for-random-tick.patch} (100%) rename leaf-server/minecraft-patches/features/{0153-Remove-streams-on-updateConnectedPlayersWithinRange.patch => 0152-Remove-streams-on-updateConnectedPlayersWithinRange.patch} (100%) rename leaf-server/minecraft-patches/features/{0154-Remove-streams-on-PlayerDetector.patch => 0153-Remove-streams-on-PlayerDetector.patch} (100%) rename leaf-server/minecraft-patches/features/{0155-AsyncBlockFinding.patch => 0154-AsyncBlockFinding.patch} (100%) rename leaf-server/minecraft-patches/features/{0156-Direct-iteration-on-Sensing.tick.patch => 0155-Direct-iteration-on-Sensing.tick.patch} (100%) diff --git a/.github/workflows/auto-update.yml b/.github/workflows/auto-update.yml index 50c8440c..fc4f5bde 100644 --- a/.github/workflows/auto-update.yml +++ b/.github/workflows/auto-update.yml @@ -52,7 +52,7 @@ jobs: - uses: actions/setup-java@main with: distribution: 'zulu' - java-version: '21' + java-version: '21' - name: Running tests before push run: | @@ -61,6 +61,7 @@ jobs: echo "Running tests...." ./gradlew applyAllPatches ./gradlew build -x test + ./gradlew rebuildGalePatches ./gradlew rebuildAllServerPatches fi diff --git a/gradle.properties b/gradle.properties index f15322b6..40a165a2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=cn.dreeam.leaf mcVersion=1.21.4 version=1.21.4-R0.1-SNAPSHOT -galeCommit=d91ed070e0d43a18f64c545559840e35396f65a7 +galeCommit=804ecea02f411f02758d76745742f66112e7b3ed org.gradle.configuration-cache=true org.gradle.caching=true diff --git a/leaf-api/paper-patches/features/0002-Leaf-config.patch b/leaf-api/paper-patches/features/0002-Leaf-config.patch index 890ee122..281a1749 100644 --- a/leaf-api/paper-patches/features/0002-Leaf-config.patch +++ b/leaf-api/paper-patches/features/0002-Leaf-config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Leaf config diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 52485a1bce522cf9a61c3e67673aafb1a5e1a82b..f2fcb836ca69bb0f49b79c92bf4e291f2a4448d6 100644 +index 45dc5c9775c0a70452f91c401acbbe91168875c7..7edf19de268b061a5bf69b69043fddd820cbb591 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2412,6 +2412,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2414,6 +2414,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi // Paper end diff --git a/leaf-api/paper-patches/features/0004-Purpur-API-Changes.patch b/leaf-api/paper-patches/features/0004-Purpur-API-Changes.patch index 173f3bb5..0aca8929 100644 --- a/leaf-api/paper-patches/features/0004-Purpur-API-Changes.patch +++ b/leaf-api/paper-patches/features/0004-Purpur-API-Changes.patch @@ -70,10 +70,10 @@ index 6b2f6ab137ae37ff0db4827886614436b7ed5dcb..66a9fc729182476c4f601cdb32bcb109 /** * The brand id for Pufferfish. diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index ee9985b276b0e5ac5fab871598a596e6c444b01e..d109070e6ea9057d031c2c8edfeeefb423dca9fb 100644 +index 4328764f428824078136dc761bd234d01d4bec1e..f4e1c330b6e23ac9edde5c5644a0a41bdfde81f9 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -3064,4 +3064,133 @@ public final class Bukkit { +@@ -3062,4 +3062,133 @@ public final class Bukkit { public static void restart() { server.restart(); } @@ -290,7 +290,7 @@ index 918a045165cdcde264bc24082b7afebb407271de..f283bcabff7fe6eede6cf4344537e430 + // Purpur end - ChatColor conveniences } diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 9afafc00e457c721a1b20b05c6a5d330caa40dfb..6469d4e1097e694d8bf00610ed8d34de132bd19c 100644 +index d43ce5dbf725d4d9b1a9b61e23e1dbad1798c627..0c1b15033bcbd09ba24520aeb24ee4ee4e355024 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java @@ -5812,4 +5812,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla @@ -444,10 +444,10 @@ index ed8e11001c8d3c475dc851aedf6e6812a872dc54..c597c298795fb9893447bc822d941c17 + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index f2fcb836ca69bb0f49b79c92bf4e291f2a4448d6..2e750b3187d93d9001d5aa5c0d80a99a1a888377 100644 +index 7edf19de268b061a5bf69b69043fddd820cbb591..50984d397d9ff98e82d02efc166aba61f645e491 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2412,6 +2412,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2414,6 +2414,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi // Paper end @@ -466,7 +466,7 @@ index f2fcb836ca69bb0f49b79c92bf4e291f2a4448d6..2e750b3187d93d9001d5aa5c0d80a99a // Leaf start - Leaf config - API @NotNull public org.bukkit.configuration.file.YamlConfiguration getLeafConfig() -@@ -2781,4 +2793,111 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2783,4 +2795,111 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ long getLastTickOversleepTime(); // Gale end - YAPFA - last tick time - API @@ -579,10 +579,10 @@ index f2fcb836ca69bb0f49b79c92bf4e291f2a4448d6..2e750b3187d93d9001d5aa5c0d80a99a + // Purpur end - Debug Marker API } diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 015d852d5a0c01042a2153a6916d408660356c59..886b0eac9f3047c54cc788f05507893e31f7ad6d 100644 +index bff01411f4b2d3ecd9e6d807c3f450d72c108323..bc95f529bc7e443a9ec4e8a4a255a32a6c27f355 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -4278,6 +4278,86 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4283,6 +4283,86 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @Nullable public DragonBattle getEnderDragonBattle(); @@ -733,7 +733,7 @@ index 5df19bd701c67506689fc7f49d91f99ebfbc83f0..32c81559507a8e5085c91d466cda69d0 } catch (CommandException ex) { server.getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerCommandException(ex, target, sender, args))); // Paper diff --git a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java -index 6fcc15d588239481136876d117ab346a8deac1dd..ad04cb5542f219f617bcb6ed60cf248ab53d83bc 100644 +index fc71bc0867f8db8f52aeddf036d6d8df5ae3b020..8f0b60cd8b3b199185d3e40d8b67549eb6773b53 100644 --- a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java +++ b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java @@ -227,6 +227,30 @@ public enum EnchantmentTarget { @@ -768,7 +768,7 @@ index 6fcc15d588239481136876d117ab346a8deac1dd..ad04cb5542f219f617bcb6ed60cf248a /** diff --git a/src/main/java/org/bukkit/entity/Endermite.java b/src/main/java/org/bukkit/entity/Endermite.java -index 7b379fb21e800a766ad022705a12dff6d42279ab..10a8d64ad2da0be2c14f34c3e7d1957c6f2883d1 100644 +index 332c55fd6b4b3a8c0cad920a6e765ecc40e684e4..10a8d64ad2da0be2c14f34c3e7d1957c6f2883d1 100644 --- a/src/main/java/org/bukkit/entity/Endermite.java +++ b/src/main/java/org/bukkit/entity/Endermite.java @@ -3,25 +3,21 @@ package org.bukkit.entity; @@ -784,7 +784,7 @@ index 7b379fb21e800a766ad022705a12dff6d42279ab..10a8d64ad2da0be2c14f34c3e7d1957c * @return player spawned status - * @deprecated this functionality no longer exists */ -- @Deprecated(since = "1.17") +- @Deprecated(since = "1.17", forRemoval = true) boolean isPlayerSpawned(); /** @@ -797,7 +797,7 @@ index 7b379fb21e800a766ad022705a12dff6d42279ab..10a8d64ad2da0be2c14f34c3e7d1957c * @param playerSpawned player spawned status - * @deprecated this functionality no longer exists */ -- @Deprecated(since = "1.17") +- @Deprecated(since = "1.17", forRemoval = true) void setPlayerSpawned(boolean playerSpawned); // Paper start /** @@ -1244,7 +1244,7 @@ index d1a5424ff3b289f1c82449ef6d88eb52665df41b..f23b0c250f88926c147af0314b5c4d23 * Damage: variable */ diff --git a/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java b/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java -index 8fdfcbc7d20fe0af6b220ab94516247093637621..f6a8928408e11a5ae723366e4ea1280dfcc6111e 100644 +index f6218d317af4f4d83292a10abdf583fb01824232..71b059fd21e2d1bdaf2fbc61e1d54772fc049874 100644 --- a/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java +++ b/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java @@ -216,6 +216,12 @@ public class EntityPotionEffectEvent extends EntityEvent implements Cancellable @@ -1321,10 +1321,10 @@ index f1f97a85ec713c05c882d7588f4a3e4a017f4795..813f6cd253322538bdf96eb323dd23a7 + // Purpur end } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java -index dc50f83e9604b69a30b6c6f3495000e4b7082b0d..472806b902a90931293b96a558d27fc0b54412ae 100644 +index aad9b078a2ea2b79b97074366b1ee07198c4311c..715a2dc5435ac229a996e225ca4d90837f86b87a 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java -@@ -21,6 +21,13 @@ import org.bukkit.material.MaterialData; +@@ -22,6 +22,13 @@ import org.bukkit.material.MaterialData; import org.bukkit.persistence.PersistentDataContainer; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -1338,7 +1338,7 @@ index dc50f83e9604b69a30b6c6f3495000e4b7082b0d..472806b902a90931293b96a558d27fc0 /** * Represents a stack of items. -@@ -1345,4 +1352,482 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat +@@ -1371,4 +1378,482 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat return this.craftDelegate.matchesWithoutData(item, excludeTypes, ignoreCount); } // Paper end - data component API diff --git a/leaf-api/paper-patches/features/0009-Leaves-Replay-Mod-API.patch b/leaf-api/paper-patches/features/0009-Leaves-Replay-Mod-API.patch index 1e737ae5..0b9eac30 100644 --- a/leaf-api/paper-patches/features/0009-Leaves-Replay-Mod-API.patch +++ b/leaf-api/paper-patches/features/0009-Leaves-Replay-Mod-API.patch @@ -11,10 +11,10 @@ Original project: https://github.com/LeavesMC/Leaves This patch is Powered by ReplayMod(https://github.com/ReplayMod) diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index d109070e6ea9057d031c2c8edfeeefb423dca9fb..49ef3c579e8ccd51e463cabd0a3ac64434415028 100644 +index f4e1c330b6e23ac9edde5c5644a0a41bdfde81f9..917b7cbd7647fccd9bdd70544bb0e5b6532045a7 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -3193,4 +3193,10 @@ public final class Bukkit { +@@ -3191,4 +3191,10 @@ public final class Bukkit { server.clearBlockHighlights(); } // Purpur end - Debug Marker API @@ -26,10 +26,10 @@ index d109070e6ea9057d031c2c8edfeeefb423dca9fb..49ef3c579e8ccd51e463cabd0a3ac644 + // Leaves end - Photographer API } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 2e750b3187d93d9001d5aa5c0d80a99a1a888377..6044de3373d52455813b30305a47d523803e7ad5 100644 +index 50984d397d9ff98e82d02efc166aba61f645e491..a1b76899a416b997c6844bcaf837219ce0726496 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2900,4 +2900,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2902,4 +2902,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ void clearBlockHighlights(); // Purpur end - Debug Marker API diff --git a/leaf-api/paper-patches/features/0010-Async-structure-locate-api.patch b/leaf-api/paper-patches/features/0010-Async-structure-locate-api.patch index 9240fdb6..a4b5aad1 100644 --- a/leaf-api/paper-patches/features/0010-Async-structure-locate-api.patch +++ b/leaf-api/paper-patches/features/0010-Async-structure-locate-api.patch @@ -9,10 +9,10 @@ Added some asynchronous structure locate methods in World, requires async-locator to be enabled in Leaf config, or else it will fall back to sync methods. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 886b0eac9f3047c54cc788f05507893e31f7ad6d..f354527ada36431e95595ef60557e6b13360f75a 100644 +index bc95f529bc7e443a9ec4e8a4a255a32a6c27f355..64ea97cce246d5eab8f45de64bbf92245c3f9330 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -4072,6 +4072,60 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4077,6 +4077,60 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @Nullable StructureSearchResult locateNearestStructure(@NotNull Location origin, @NotNull Structure structure, int radius, boolean findUnexplored); diff --git a/leaf-api/paper-patches/features/0012-Raytrace-AntiXray-SDK-integration.patch b/leaf-api/paper-patches/features/0012-Raytrace-AntiXray-SDK-integration.patch index 92597470..8c24ee10 100644 --- a/leaf-api/paper-patches/features/0012-Raytrace-AntiXray-SDK-integration.patch +++ b/leaf-api/paper-patches/features/0012-Raytrace-AntiXray-SDK-integration.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: LeeGodSRC -Date: Sat Mar 8 11:40:46 2025 +0800 +Date: Sat, 8 Mar 2025 11:40:46 +0800 Subject: [PATCH] Raytrace AntiXray SDK integration Integrated with Imanity Software's Raytrace AntiXray for better performance diff --git a/leaf-server/minecraft-patches/features/0146-Validate-recipe-display-index-before-retrieving-it.patch b/leaf-archived-patches/removed/hardfork/server/0146-Validate-recipe-display-index-before-retrieving-it.patch similarity index 96% rename from leaf-server/minecraft-patches/features/0146-Validate-recipe-display-index-before-retrieving-it.patch rename to leaf-archived-patches/removed/hardfork/server/0146-Validate-recipe-display-index-before-retrieving-it.patch index 97bc0eee..a60c3e4e 100644 --- a/leaf-server/minecraft-patches/features/0146-Validate-recipe-display-index-before-retrieving-it.patch +++ b/leaf-archived-patches/removed/hardfork/server/0146-Validate-recipe-display-index-before-retrieving-it.patch @@ -3,6 +3,7 @@ From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Wed, 19 Mar 2025 13:32:39 -0400 Subject: [PATCH] Validate recipe display index before retrieving it +Removed since Paper 1.21.4, fixed on Paper side diff --git a/net/minecraft/world/item/crafting/RecipeManager.java b/net/minecraft/world/item/crafting/RecipeManager.java index 4bd1b514f91c0a2c9261b41211a4a341f784a995..5b69c4927174611d62f0f4698215ab97c827c7f5 100644 diff --git a/leaf-server/minecraft-patches/features/0007-Purpur-Server-Minecraft-Changes.patch b/leaf-server/minecraft-patches/features/0007-Purpur-Server-Minecraft-Changes.patch index e1b6f6c2..83c939d5 100644 --- a/leaf-server/minecraft-patches/features/0007-Purpur-Server-Minecraft-Changes.patch +++ b/leaf-server/minecraft-patches/features/0007-Purpur-Server-Minecraft-Changes.patch @@ -292,7 +292,7 @@ index 4ed9611994c5c8da01fede690197527c5b3a5731..00a82873d226f113278632a53c0faca4 } // Paper end - Buffer joins to world diff --git a/net/minecraft/server/Main.java b/net/minecraft/server/Main.java -index 43842de34adda95e78025c2b00639b31b774a78b..398aac2a63ae84bb8b9bfb7be6e6d56bf019abda 100644 +index 344d5ead46c33e303ac375922aad298481253ff2..c5e8eff72f9f9fb49885bc21f61033990871c4fd 100644 --- a/net/minecraft/server/Main.java +++ b/net/minecraft/server/Main.java @@ -108,6 +108,12 @@ public class Main { @@ -421,7 +421,7 @@ index a76b67a846b12a7b3d0c41b6ac4833d4f0372531..5fb7a76faf72f7d91122e5bf01c51853 if (this.tickCount % 20 == 0) { this.synchronizeTime(serverLevel); diff --git a/net/minecraft/server/PlayerAdvancements.java b/net/minecraft/server/PlayerAdvancements.java -index ecb7edc1b10d23bb1979152341cd4a2b89613a65..792ba93b531e9586e26aafa00830022a8996fc04 100644 +index 2dd779b300d20ff3e58f78d59dd59c73f526c9a1..abccabb8a0a1a9730b7df070dd25f3ca215af362 100644 --- a/net/minecraft/server/PlayerAdvancements.java +++ b/net/minecraft/server/PlayerAdvancements.java @@ -195,6 +195,7 @@ public class PlayerAdvancements { @@ -1279,7 +1279,7 @@ index ea34bb4913e7357f5b76a64443f7e744abdf7b5e..de115ee71fa240440b54c553e0d3ddaf try { String channels = payload.toString(com.google.common.base.Charsets.UTF_8); diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1ff513b97cff0a81a910165167e9a200f9b14d61..6a44793f886d07e6f5cb9fcf292b2124c4bb40cd 100644 +index a3d0d331d367b8ddfd0ac450acd143ce7d3f7a9a..5fcd389b5483c4c11e7a007b2b6abb9abc1db6b2 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -328,6 +328,20 @@ public class ServerGamePacketListenerImpl @@ -1496,7 +1496,7 @@ index 1ff513b97cff0a81a910165167e9a200f9b14d61..6a44793f886d07e6f5cb9fcf292b2124 org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemInHand, hand); cancelled = event.useItemInHand() == Event.Result.DENY; } else { -@@ -2756,6 +2837,7 @@ public class ServerGamePacketListenerImpl +@@ -2758,6 +2839,7 @@ public class ServerGamePacketListenerImpl AABB boundingBox = target.getBoundingBox(); if (this.player.canInteractWithEntity(boundingBox, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(3.0))) { // Paper - configurable lenience value for interact range @@ -1504,7 +1504,7 @@ index 1ff513b97cff0a81a910165167e9a200f9b14d61..6a44793f886d07e6f5cb9fcf292b2124 packet.dispatch( new ServerboundInteractPacket.Handler() { private void performInteraction(InteractionHand hand, ServerGamePacketListenerImpl.EntityInteraction entityInteraction, PlayerInteractEntityEvent event) { // CraftBukkit -@@ -2768,6 +2850,8 @@ public class ServerGamePacketListenerImpl +@@ -2770,6 +2852,8 @@ public class ServerGamePacketListenerImpl ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); @@ -13921,7 +13921,7 @@ index 62d79cb25879e6e48a1541f864d0b3782d926313..b820ecfbe71dd57a0f04b1c3381ffb76 return true; diff --git a/net/minecraft/world/item/CrossbowItem.java b/net/minecraft/world/item/CrossbowItem.java -index 96ece6ff2c4fe2ad4d9cea2340596cfd6a59c569..1131e984fd30e40c1b99054b5db9462ffe55b5f1 100644 +index 944b0c455d5f2183a04ea1a10bc5d5debd563dcb..318316d3aa14f1e9e863d435515c182619a81b3e 100644 --- a/net/minecraft/world/item/CrossbowItem.java +++ b/net/minecraft/world/item/CrossbowItem.java @@ -70,7 +70,7 @@ public class CrossbowItem extends ProjectileWeaponItem { diff --git a/leaf-server/minecraft-patches/features/0147-Paper-PR-Throttle-failed-spawn-attempts.patch b/leaf-server/minecraft-patches/features/0146-Paper-PR-Throttle-failed-spawn-attempts.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0147-Paper-PR-Throttle-failed-spawn-attempts.patch rename to leaf-server/minecraft-patches/features/0146-Paper-PR-Throttle-failed-spawn-attempts.patch diff --git a/leaf-server/minecraft-patches/features/0148-Improve-BlockEntity-ticking-isRemoved-check.patch b/leaf-server/minecraft-patches/features/0147-Improve-BlockEntity-ticking-isRemoved-check.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0148-Improve-BlockEntity-ticking-isRemoved-check.patch rename to leaf-server/minecraft-patches/features/0147-Improve-BlockEntity-ticking-isRemoved-check.patch diff --git a/leaf-server/minecraft-patches/features/0149-Raytrace-AntiXray-SDK-integration.patch b/leaf-server/minecraft-patches/features/0148-Raytrace-AntiXray-SDK-integration.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0149-Raytrace-AntiXray-SDK-integration.patch rename to leaf-server/minecraft-patches/features/0148-Raytrace-AntiXray-SDK-integration.patch diff --git a/leaf-server/minecraft-patches/features/0150-Optimize-addOrUpdateTransientModifier.patch b/leaf-server/minecraft-patches/features/0149-Optimize-addOrUpdateTransientModifier.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0150-Optimize-addOrUpdateTransientModifier.patch rename to leaf-server/minecraft-patches/features/0149-Optimize-addOrUpdateTransientModifier.patch diff --git a/leaf-server/minecraft-patches/features/0151-Optimize-ContextMap.create.patch b/leaf-server/minecraft-patches/features/0150-Optimize-ContextMap.create.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0151-Optimize-ContextMap.create.patch rename to leaf-server/minecraft-patches/features/0150-Optimize-ContextMap.create.patch diff --git a/leaf-server/minecraft-patches/features/0152-Micro-optimizations-for-random-tick.patch b/leaf-server/minecraft-patches/features/0151-Micro-optimizations-for-random-tick.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0152-Micro-optimizations-for-random-tick.patch rename to leaf-server/minecraft-patches/features/0151-Micro-optimizations-for-random-tick.patch diff --git a/leaf-server/minecraft-patches/features/0153-Remove-streams-on-updateConnectedPlayersWithinRange.patch b/leaf-server/minecraft-patches/features/0152-Remove-streams-on-updateConnectedPlayersWithinRange.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0153-Remove-streams-on-updateConnectedPlayersWithinRange.patch rename to leaf-server/minecraft-patches/features/0152-Remove-streams-on-updateConnectedPlayersWithinRange.patch diff --git a/leaf-server/minecraft-patches/features/0154-Remove-streams-on-PlayerDetector.patch b/leaf-server/minecraft-patches/features/0153-Remove-streams-on-PlayerDetector.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0154-Remove-streams-on-PlayerDetector.patch rename to leaf-server/minecraft-patches/features/0153-Remove-streams-on-PlayerDetector.patch diff --git a/leaf-server/minecraft-patches/features/0155-AsyncBlockFinding.patch b/leaf-server/minecraft-patches/features/0154-AsyncBlockFinding.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0155-AsyncBlockFinding.patch rename to leaf-server/minecraft-patches/features/0154-AsyncBlockFinding.patch diff --git a/leaf-server/minecraft-patches/features/0156-Direct-iteration-on-Sensing.tick.patch b/leaf-server/minecraft-patches/features/0155-Direct-iteration-on-Sensing.tick.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0156-Direct-iteration-on-Sensing.tick.patch rename to leaf-server/minecraft-patches/features/0155-Direct-iteration-on-Sensing.tick.patch diff --git a/leaf-server/paper-patches/features/0005-Purpur-Server-Paper-Changes.patch b/leaf-server/paper-patches/features/0005-Purpur-Server-Paper-Changes.patch index 1d66ffb3..a1aa7f23 100644 --- a/leaf-server/paper-patches/features/0005-Purpur-Server-Paper-Changes.patch +++ b/leaf-server/paper-patches/features/0005-Purpur-Server-Paper-Changes.patch @@ -558,7 +558,7 @@ index 94ca0407303c4493ab4928b12ec6ecc75aaca549..f2d87c12dd19210ce7e2147fada5c101 + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 5ee4209b8d9cb1fee13b950c17cc05920c2b82b7..46faa577dd7edc915ffee7d5730470501e56cc6c 100644 +index 1b1720343d3b07a73490f66520c7df12005adbcc..28c6d96686a01e7f102edbef6b685bdbb80aa014 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -429,6 +429,20 @@ public final class CraftServer implements Server { @@ -667,7 +667,7 @@ index 5ee4209b8d9cb1fee13b950c17cc05920c2b82b7..46faa577dd7edc915ffee7d573047050 @Override public List getRecipesFor(ItemStack result) { Preconditions.checkArgument(result != null, "ItemStack cannot be null"); -@@ -3067,6 +3138,18 @@ public final class CraftServer implements Server { +@@ -3062,6 +3133,18 @@ public final class CraftServer implements Server { } // Gale end - Gale configuration - API @@ -686,7 +686,7 @@ index 5ee4209b8d9cb1fee13b950c17cc05920c2b82b7..46faa577dd7edc915ffee7d573047050 @Override public void restart() { CraftServer.this.restart(); -@@ -3364,4 +3447,18 @@ public final class CraftServer implements Server { +@@ -3359,4 +3442,18 @@ public final class CraftServer implements Server { return MinecraftServer.lastTickOversleepTime; } // Gale end - YAPFA - last tick time - API @@ -706,7 +706,7 @@ index 5ee4209b8d9cb1fee13b950c17cc05920c2b82b7..46faa577dd7edc915ffee7d573047050 + // Purpur end - Lagging threshold } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 1439d282167dc8a2e66f4896849153b810112988..ca60f91ef012c94174a0803eb77699ba9ecff5e1 100644 +index a92e0877669a92851c6d7f83de75ffb087c8e651..daede6da974beb5ff19877caa5e6f8b3ecdf9000 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2346,6 +2346,50 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -996,10 +996,10 @@ index 1ee0ad266955e36b729ba31eb75aad9289acd8e4..8635cd772c5c2ae0ba326812ff2a1a17 + // Purpur end - Ridables } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index a396157548a5b3c3e86206c35789bb40346c701c..469b99bede578b03a1b711b4404a88bf85d7e7ca 100644 +index ba3b2a60d0ec088e312fc76e31a757a0495a0043..20bd7b3ea62af6071dd33ae051cac06b4e91a1d2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -281,6 +281,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -284,6 +284,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @Override public void recalculatePermissions() { this.perm.recalculatePermissions(); @@ -1361,7 +1361,7 @@ index c1b7f1281fbd41e765d2c1881763ca25b20e924d..53c620e717d39ef16f44c9697ac4809a + // Purpur end - Configurable chance for wolves to spawn rabid } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 57c3f8531bf85b53af3a4aad6e9e369d5cff0ce3..56afb317cef0e049aacdd36a1be5f9b7af4d0c77 100644 +index bbf44c44c6c3fc4cabad1453ab7aba9ac7ecb1e5..e52479f3c888268fd1febeb78e9965af834a8ae9 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -602,6 +602,15 @@ public class CraftEventFactory { @@ -1484,10 +1484,10 @@ index 792cb6adf0c7a6335cc5985fce8bed2e0f1149af..5734c5caffda79383ae30df20c3defb5 + // Purpur end - Anvil API } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index a6668ae293737a78316724a94866ad7781af68a4..b389563f1efde27341ebf26276ca5c97e495a16a 100644 +index d3dc1f7fe238ca0229b7c05ed04be481e4613ef8..21716eaa275ebc9a8fff65c99f478d756eabf1bc 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -693,4 +693,285 @@ public final class CraftItemStack extends ItemStack { +@@ -713,4 +713,285 @@ public final class CraftItemStack extends ItemStack { } // Paper end - data component API diff --git a/leaf-server/paper-patches/features/0011-Leaves-Replay-Mod-API.patch b/leaf-server/paper-patches/features/0011-Leaves-Replay-Mod-API.patch index 0d04d639..fe86cd8f 100644 --- a/leaf-server/paper-patches/features/0011-Leaves-Replay-Mod-API.patch +++ b/leaf-server/paper-patches/features/0011-Leaves-Replay-Mod-API.patch @@ -27,7 +27,7 @@ index 4c003acccdd2dd17918b15316001e52e7670123e..780f3a48152fef6a06dc67bf7fbd1965 HandlerList handlers = event.getHandlers(); RegisteredListener[] listeners = handlers.getRegisteredListeners(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c1eab51bddb8101a05f394721a9842f59cd470ab..be250ddfa006d452d77f17b4cd97a487c95a5691 100644 +index eec03c52172b8250c18318094093c752da97dbe6..f57e12a72cabe279a6a465f4397b44621a2d5cb0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -322,6 +322,8 @@ public final class CraftServer implements Server { @@ -48,7 +48,7 @@ index c1eab51bddb8101a05f394721a9842f59cd470ab..be250ddfa006d452d77f17b4cd97a487 @Override public CraftPlayer apply(ServerPlayer player) { return player.getBukkitEntity(); -@@ -3461,4 +3463,11 @@ public final class CraftServer implements Server { +@@ -3456,4 +3458,11 @@ public final class CraftServer implements Server { return getServer().lagging; } // Purpur end - Lagging threshold diff --git a/leaf-server/paper-patches/features/0015-Including-5s-in-getTPS.patch b/leaf-server/paper-patches/features/0015-Including-5s-in-getTPS.patch index 29668ce6..41236a04 100644 --- a/leaf-server/paper-patches/features/0015-Including-5s-in-getTPS.patch +++ b/leaf-server/paper-patches/features/0015-Including-5s-in-getTPS.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Including 5s in getTPS() diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index be250ddfa006d452d77f17b4cd97a487c95a5691..179a99e8ed2aced0306ec76849238c69f9601451 100644 +index f57e12a72cabe279a6a465f4397b44621a2d5cb0..01bfd366dd5e20464dd1bda0e05f80f8ae9c1687 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -3185,6 +3185,8 @@ public final class CraftServer implements Server { +@@ -3180,6 +3180,8 @@ public final class CraftServer implements Server { @Override public double[] getTPS() { diff --git a/leaf-server/paper-patches/features/0024-Multithreaded-Tracker.patch b/leaf-server/paper-patches/features/0024-Multithreaded-Tracker.patch index fa9ebb0f..d968d170 100644 --- a/leaf-server/paper-patches/features/0024-Multithreaded-Tracker.patch +++ b/leaf-server/paper-patches/features/0024-Multithreaded-Tracker.patch @@ -41,10 +41,10 @@ index 379c2dc1853e45a96dda9b13bf28b7e08f65658a..361f4de9cdf0f7505628a2fed2a3f536 } // Leaves start - skip photographer diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 56afb317cef0e049aacdd36a1be5f9b7af4d0c77..fbb4dd93c263c898731902b73dbd1c62df1eea4b 100644 +index e52479f3c888268fd1febeb78e9965af834a8ae9..c2552c3706831f7012b5b449fa43c7d5990056a4 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1970,6 +1970,26 @@ public class CraftEventFactory { +@@ -1973,6 +1973,26 @@ public class CraftEventFactory { } public static boolean handleBlockFormEvent(Level world, BlockPos pos, net.minecraft.world.level.block.state.BlockState block, int flag, @Nullable Entity entity) { diff --git a/leaf-server/paper-patches/features/0031-SparklyPaper-Parallel-world-ticking.patch b/leaf-server/paper-patches/features/0031-SparklyPaper-Parallel-world-ticking.patch index abc448e5..6c88cf2f 100644 --- a/leaf-server/paper-patches/features/0031-SparklyPaper-Parallel-world-ticking.patch +++ b/leaf-server/paper-patches/features/0031-SparklyPaper-Parallel-world-ticking.patch @@ -263,7 +263,7 @@ index 548fcd9646dee0c40b6ba9b3dafb9ca157dfe324..67f69ea3c28578cb73d2df662d246f00 } else if (!event.isAsynchronous() && !this.server.isPrimaryThread() && !this.server.isStopping()) { // Leaf start - Multithreaded tracker diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 15673166e566b2a6d5093210d99b154e69fab0ad..49abf1100271452e9c79c8643a25af3ce519773b 100644 +index af33cab59932f4ec135caf94dc5828930833daf6..92463ddc6fdcf542ce4a6d2a5059d4a9f7a6085a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -455,7 +455,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -612,7 +612,7 @@ index 55572e799b5c8a74a546ac8febc14f80d5731c52..08a06c23c831a4de45b3e537228b8379 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index fbb4dd93c263c898731902b73dbd1c62df1eea4b..138662f3e57f9741a41701b5a5a65a859a31dfc8 100644 +index c2552c3706831f7012b5b449fa43c7d5990056a4..7ab321d649ab94926d45820b782107c432c6dc39 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -961,6 +961,28 @@ public class CraftEventFactory { @@ -653,7 +653,7 @@ index fbb4dd93c263c898731902b73dbd1c62df1eea4b..138662f3e57f9741a41701b5a5a65a85 Bukkit.getPluginManager().callEvent(event); if (!event.isCancelled()) { -@@ -2262,7 +2284,7 @@ public class CraftEventFactory { +@@ -2265,7 +2287,7 @@ public class CraftEventFactory { CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemStack.copyWithCount(1)); org.bukkit.event.block.BlockDispenseEvent event = new org.bukkit.event.block.BlockDispenseEvent(bukkitBlock, craftItem.clone(), CraftVector.toBukkit(to));