diff --git a/gradle.properties b/gradle.properties index 553606fe1..16f3daa9f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.20.4-R0.1-SNAPSHOT mcVersion = 1.20.4 -paperCommit = e709245b5566229ed5c262b310bcd1a1e71a8918 +paperCommit = 12071620558a64575ac641d9b93c120a66e5e3a7 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0001-Pufferfish-API-Changes.patch b/patches/api/0001-Pufferfish-API-Changes.patch index 3f52c985d..1fbc75a41 100644 --- a/patches/api/0001-Pufferfish-API-Changes.patch +++ b/patches/api/0001-Pufferfish-API-Changes.patch @@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/build.gradle.kts b/build.gradle.kts -index 66bcd8f9a8fce8f920a0f1dd7ae0a2937da68e80..c43eb3099747b9f1155b918ca818487b63488538 100644 +index 04853c43b99951bf0d4c96ef73724625bdaf018f..9164120d299d062c62529a7ef74eac0ded367993 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -51,6 +51,7 @@ dependencies { @@ -29,8 +29,8 @@ index 66bcd8f9a8fce8f920a0f1dd7ae0a2937da68e80..c43eb3099747b9f1155b918ca818487b api("org.slf4j:slf4j-api:$slf4jVersion") + api("io.sentry:sentry:5.4.0") // Pufferfish - implementation("org.ow2.asm:asm:9.5") - implementation("org.ow2.asm:asm-commons:9.5") + implementation("org.ow2.asm:asm:9.7") + implementation("org.ow2.asm:asm-commons:9.7") @@ -109,6 +110,13 @@ val generateApiVersioningFile by tasks.registering { } } diff --git a/patches/api/0003-Purpur-config-files.patch b/patches/api/0003-Purpur-config-files.patch index 3693a5e77..9f404b21d 100644 --- a/patches/api/0003-Purpur-config-files.patch +++ b/patches/api/0003-Purpur-config-files.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Purpur config files diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 0eb61b090d6f8fa6d99735ff3680dac774c52c1f..771f9f054268aa574b76c976b4734595b529aae9 100644 +index 4ff1b38eb65f97344257204cf018f176f247ed36..2e9abd4887b54dab53217c01773e0be5fb3b19fa 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2229,6 +2229,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2235,6 +2235,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi } // Paper end diff --git a/patches/api/0007-Ridables.patch b/patches/api/0007-Ridables.patch index cc3f8b7d6..f27b057a0 100644 --- a/patches/api/0007-Ridables.patch +++ b/patches/api/0007-Ridables.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Ridables diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 967125e99adc1b5446f42811d60ef44ba56ef5f5..02418d7d976147c70375002452cb39a4325de215 100644 +index 23def071492ccd715693d534cc506936e18f0f46..93178130cba1aea4c210e47925703dca49ad4d97 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1138,4 +1138,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1144,4 +1144,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ @NotNull String getScoreboardEntryName(); // Paper end - entity scoreboard name diff --git a/patches/api/0011-Bring-back-server-name.patch b/patches/api/0011-Bring-back-server-name.patch index 81d22a559..300d69c1c 100644 --- a/patches/api/0011-Bring-back-server-name.patch +++ b/patches/api/0011-Bring-back-server-name.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Bring back server name diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index db46e3233edf18bd91a6da8612ccc9f0080d5c17..13eeaf8a59c83ecfdbdb8cf62e78fd70b00d170b 100644 +index 9a428153f34291bdc026a71f7e60e285b7794b0c..a7ab6c954c67fe802ebd4611a8c355d19873a465 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2878,4 +2878,15 @@ public final class Bukkit { +@@ -2884,4 +2884,15 @@ public final class Bukkit { public static Server.Spigot spigot() { return server.spigot(); } @@ -25,10 +25,10 @@ index db46e3233edf18bd91a6da8612ccc9f0080d5c17..13eeaf8a59c83ecfdbdb8cf62e78fd70 + // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 771f9f054268aa574b76c976b4734595b529aae9..5e44a3cb8b8865e760d2f600af1351259b2867fe 100644 +index 2e9abd4887b54dab53217c01773e0be5fb3b19fa..ef56a9a52cad11377f4a58b92bcb1bc2740002df 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2524,4 +2524,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2530,4 +2530,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ boolean isOwnedByCurrentRegion(@NotNull Entity entity); // Paper end - Folia region threading API diff --git a/patches/api/0013-LivingEntity-safeFallDistance.patch b/patches/api/0013-LivingEntity-safeFallDistance.patch index ed4e1eb01..5b9e0d217 100644 --- a/patches/api/0013-LivingEntity-safeFallDistance.patch +++ b/patches/api/0013-LivingEntity-safeFallDistance.patch @@ -5,13 +5,13 @@ Subject: [PATCH] LivingEntity safeFallDistance diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 5cb82901a5d0c8ee673501fc53389d526d4a5b6f..4051906aa47dc2392f1f47aceaefa09aaf45c2ee 100644 +index 65112eae8b92344796850b1e4c89e75443eab2fe..0a970ea7bfce16476ceafbe9764115f6610a248b 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1312,4 +1312,20 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1445,4 +1445,20 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void setBodyYaw(float bodyYaw); - // Paper end + // Paper end - body yaw API + + // Purpur start + /** diff --git a/patches/api/0014-Lagging-threshold.patch b/patches/api/0014-Lagging-threshold.patch index 09efe342c..e1bdc520d 100644 --- a/patches/api/0014-Lagging-threshold.patch +++ b/patches/api/0014-Lagging-threshold.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Lagging threshold diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 13eeaf8a59c83ecfdbdb8cf62e78fd70b00d170b..812d903e8883ab087ec7ae154d76dceb019bac17 100644 +index a7ab6c954c67fe802ebd4611a8c355d19873a465..8ff0b6c0bab4c8972de1c59b7a9c4e80db350fba 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2888,5 +2888,14 @@ public final class Bukkit { +@@ -2894,5 +2894,14 @@ public final class Bukkit { public static String getServerName() { return server.getServerName(); } @@ -24,10 +24,10 @@ index 13eeaf8a59c83ecfdbdb8cf62e78fd70b00d170b..812d903e8883ab087ec7ae154d76dceb // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 5e44a3cb8b8865e760d2f600af1351259b2867fe..45287918b72c3053f21b56cd33b6daf692c9888a 100644 +index ef56a9a52cad11377f4a58b92bcb1bc2740002df..846707b827e9f542c7a0b3191ea92b602dd4aa63 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2532,5 +2532,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2538,5 +2538,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull String getServerName(); diff --git a/patches/api/0017-ItemStack-convenience-methods.patch b/patches/api/0017-ItemStack-convenience-methods.patch index 2aceddef5..e59e4539b 100644 --- a/patches/api/0017-ItemStack-convenience-methods.patch +++ b/patches/api/0017-ItemStack-convenience-methods.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack convenience methods diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index f9af60356da4668cec8b24e73f5747ab82e35a91..b304ad1307cdd6785653b1eab9781e070fb14c5a 100644 +index ec117c47401ea1a04beb0e5ee9d4d394db7c5c4e..5b058d709751a5b720e209931774e09fcc9c960c 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -11557,4 +11557,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -11559,4 +11559,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla public boolean isEnabledByFeature(@NotNull World world) { return Bukkit.getDataPackManager().isEnabledByFeature(this, world); } diff --git a/patches/api/0018-LivingEntity-broadcastItemBreak.patch b/patches/api/0018-LivingEntity-broadcastItemBreak.patch index d84c3ca8a..9fd2aebc2 100644 --- a/patches/api/0018-LivingEntity-broadcastItemBreak.patch +++ b/patches/api/0018-LivingEntity-broadcastItemBreak.patch @@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity#broadcastItemBreak diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 4051906aa47dc2392f1f47aceaefa09aaf45c2ee..f16a6eb97dcea3009023bffada76393792462e53 100644 +index 0a970ea7bfce16476ceafbe9764115f6610a248b..bcc1488c351b25bd49d37dae7719bbb7057acf66 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1327,5 +1327,12 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1460,5 +1460,12 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource * @param safeFallDistance Safe fall distance */ void setSafeFallDistance(float safeFallDistance); diff --git a/patches/api/0027-API-for-any-mob-to-burn-daylight.patch b/patches/api/0027-API-for-any-mob-to-burn-daylight.patch index eb5d17f10..4e3e15db2 100644 --- a/patches/api/0027-API-for-any-mob-to-burn-daylight.patch +++ b/patches/api/0027-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 02418d7d976147c70375002452cb39a4325de215..644f58eeef73bab67ab50b16b87e7c2e798ea2c0 100644 +index 93178130cba1aea4c210e47925703dca49ad4d97..51ae4b559a6ebb5c324ac029c86e5b5a6b894d7e 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1168,5 +1168,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1174,5 +1174,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return True if ridable in water */ boolean isRidableInWater(); @@ -23,10 +23,10 @@ index 02418d7d976147c70375002452cb39a4325de215..644f58eeef73bab67ab50b16b87e7c2e // Purpur end } diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index f16a6eb97dcea3009023bffada76393792462e53..91ce069e4f23a115a01b329dcf053ed19dfb83bc 100644 +index bcc1488c351b25bd49d37dae7719bbb7057acf66..5369d802d37863a1efc0c031520147ceedcadc78 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1334,5 +1334,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1467,5 +1467,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource * @param slot Equipment slot to play break animation for */ void broadcastItemBreak(@NotNull org.bukkit.inventory.EquipmentSlot slot); diff --git a/patches/api/0033-Added-the-ability-to-add-combustible-items.patch b/patches/api/0033-Added-the-ability-to-add-combustible-items.patch index de687d1fb..6c5238aa8 100644 --- a/patches/api/0033-Added-the-ability-to-add-combustible-items.patch +++ b/patches/api/0033-Added-the-ability-to-add-combustible-items.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Added the ability to add combustible items diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 812d903e8883ab087ec7ae154d76dceb019bac17..17bb5de3f1216ddfcb66152a0791c63334460051 100644 +index 8ff0b6c0bab4c8972de1c59b7a9c4e80db350fba..15f27ae49daf0c9140b429d310f9112f64bd29ab 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2897,5 +2897,24 @@ public final class Bukkit { +@@ -2903,5 +2903,24 @@ public final class Bukkit { public static boolean isLagging() { return server.isLagging(); } @@ -34,10 +34,10 @@ index 812d903e8883ab087ec7ae154d76dceb019bac17..17bb5de3f1216ddfcb66152a0791c633 // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 45287918b72c3053f21b56cd33b6daf692c9888a..109811ccc128006e29751e2242e171519c8557c7 100644 +index 846707b827e9f542c7a0b3191ea92b602dd4aa63..e318d4d5a1fec1522ef37aed2ed677952e50943b 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2539,5 +2539,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2545,5 +2545,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return True if lagging */ boolean isLagging(); diff --git a/patches/api/0038-Add-local-difficulty-api.patch b/patches/api/0038-Add-local-difficulty-api.patch index 66b359723..91b4d417b 100644 --- a/patches/api/0038-Add-local-difficulty-api.patch +++ b/patches/api/0038-Add-local-difficulty-api.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add local difficulty api diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index c5fe36050eeaff80cfb989fe2f38370215af6fe5..9ac1ee847e64427cb9b1b396c23b6689f7c99f9c 100644 +index 35fb5047dd8a8521586a9ca9f8d70881355fb7f5..bd1ceec96d354ddfeb7f79e6007b79c4da37a8bb 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -4213,6 +4213,16 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4222,6 +4222,16 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @Nullable public DragonBattle getEnderDragonBattle(); diff --git a/patches/api/0041-Debug-Marker-API.patch b/patches/api/0041-Debug-Marker-API.patch index 8f34da2a9..0efb071b2 100644 --- a/patches/api/0041-Debug-Marker-API.patch +++ b/patches/api/0041-Debug-Marker-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Debug Marker API diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 17bb5de3f1216ddfcb66152a0791c63334460051..afe47ecf0e7ae673aaf62b226e9cb07d2ed393eb 100644 +index 15f27ae49daf0c9140b429d310f9112f64bd29ab..53ce0fb2dac9c22680ab934f535b5a2037139445 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2916,5 +2916,89 @@ public final class Bukkit { +@@ -2922,5 +2922,89 @@ public final class Bukkit { public static void removeFuel(@NotNull Material material) { server.removeFuel(material); } @@ -99,10 +99,10 @@ index 17bb5de3f1216ddfcb66152a0791c63334460051..afe47ecf0e7ae673aaf62b226e9cb07d // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 109811ccc128006e29751e2242e171519c8557c7..90f109af3c83a1bc12cb27497d107de5029d0ce6 100644 +index e318d4d5a1fec1522ef37aed2ed677952e50943b..c15b0b05870a469ea5d314c9fac6a57a045f463c 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2554,5 +2554,75 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2560,5 +2560,75 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @param material The material that will no longer be a fuel */ public void removeFuel(@NotNull Material material); @@ -179,10 +179,10 @@ index 109811ccc128006e29751e2242e171519c8557c7..90f109af3c83a1bc12cb27497d107de5 // Purpur end } diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 9ac1ee847e64427cb9b1b396c23b6689f7c99f9c..565ce4b0c5eb300953aaefa786b9f8938c771f2a 100644 +index bd1ceec96d354ddfeb7f79e6007b79c4da37a8bb..c2fc3c7158b65a875515afda0d69e2d6529db976 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -4221,6 +4221,76 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4230,6 +4230,76 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * @return The local difficulty */ public float getLocalDifficultyAt(@NotNull Location location); diff --git a/patches/api/0046-Fire-Immunity-API.patch b/patches/api/0046-Fire-Immunity-API.patch index f3be9e4a7..e143436ef 100644 --- a/patches/api/0046-Fire-Immunity-API.patch +++ b/patches/api/0046-Fire-Immunity-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fire Immunity API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 644f58eeef73bab67ab50b16b87e7c2e798ea2c0..c83293ced48a0f43cb9314d306321e26b469f51e 100644 +index 51ae4b559a6ebb5c324ac029c86e5b5a6b894d7e..706096924ffd3b578866693e2937de4182fad554 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1175,5 +1175,18 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1181,5 +1181,18 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return True if in daylight */ boolean isInDaylight(); diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index 38232c41b..0f5386a2d 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/build.gradle.kts b/build.gradle.kts -index 241808d8619e17c0681f79acbbc98af5bf52dd89..12b774464e8de3a07993be23e233d31e11ede7b1 100644 +index bcfe59b6efb628ee1e7f9d60667360d4d885fb6a..4517548e2c892c2e94f91e7449660f9e36b8f14e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -76,15 +76,6 @@ index 241808d8619e17c0681f79acbbc98af5bf52dd89..12b774464e8de3a07993be23e233d31e "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -211,7 +230,5 @@ val runtimeClasspathForRunDev = sourceSets.main.flatMap { src -> - } - tasks.registerRunTask("runDev") { - description = "Spin up a non-relocated Mojang-mapped test server" -- classpath(tasks.filterProjectDir.flatMap { it.outputJar }) -- classpath(runtimeClasspathForRunDev) -- jvmArgs("-DPaper.isRunDev=true") -+ classpath(sourceSets.main.map { it.runtimeClasspath }) - } diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java index 7620c72a4c243cbeea245203ce03a97cbfa7d922..b35a9f4c5f8960864c402ede8a51fb5ab9c4fcc0 100644 --- a/src/main/java/co/aikar/timings/TimingsExport.java @@ -1497,7 +1488,7 @@ index ba12919c3f9aec34a9e64993b143ae92be5eb172..9efeab9078e2d08903e482718b840797 } else { this.lastTimeStamp = body.timeStamp(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 93b661e9cb7743aeff7da3972942cb73049a5e4c..60dad77b824c9b6a45e3a3960eb9d995583f1d28 100644 +index c8772c773f9933ed1d1debfe707af4373c458152..07319732c76473589774c90edf8a1f1ba4b26d04 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -312,6 +312,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop entity.activatedTick ) { if ( entity.defaultActivationState ) @@ -3389,7 +3380,7 @@ index c39894e824334f1dc52e0466cf9d84f7e219be70..41cddf7e42f0e8f80973e482a95e55d3 entity.activatedTick = MinecraftServer.currentTick; } } -@@ -296,7 +319,7 @@ public class ActivationRange +@@ -298,7 +321,7 @@ public class ActivationRange if ( entity instanceof LivingEntity ) { LivingEntity living = (LivingEntity) entity; diff --git a/patches/server/0002-Rebrand.patch b/patches/server/0002-Rebrand.patch index 9ee29f584..4a02365d1 100644 --- a/patches/server/0002-Rebrand.patch +++ b/patches/server/0002-Rebrand.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index 12b774464e8de3a07993be23e233d31e11ede7b1..7e82d2c6a6085a5ea335ba9ef2a5ec3f5a37e787 100644 +index 4517548e2c892c2e94f91e7449660f9e36b8f14e..1cad0728d005df9475a978b272adef9703f2ba46 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,12 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -45,7 +45,7 @@ index 12b774464e8de3a07993be23e233d31e11ede7b1..7e82d2c6a6085a5ea335ba9ef2a5ec3f "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -174,7 +178,7 @@ fun TaskContainer.registerRunTask( +@@ -169,7 +173,7 @@ fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { @@ -177,7 +177,7 @@ index 99c5038672b09d0874125e3df280174c1e8151e6..f91ea723a1c85f6cf8c4f6dd7f182b94 stringbuilder.append(CrashReport.getErrorComment()); stringbuilder.append("\n\n"); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 60dad77b824c9b6a45e3a3960eb9d995583f1d28..9ce656109ea20de5f443f9e680debe38e9dace24 100644 +index 07319732c76473589774c90edf8a1f1ba4b26d04..b2dd76b79660126cac3b995e9ca2f88dc70937ff 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -953,7 +953,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop - } - tasks.registerRunTask("runDev") { - description = "Spin up a non-relocated Mojang-mapped test server" -- classpath(sourceSets.main.map { it.runtimeClasspath }) -+ classpath(tasks.filterProjectDir.flatMap { it.outputJar }) -+ classpath(runtimeClasspathForRunDev) -+ jvmArgs("-DPaper.isRunDev=true") - } diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java index f6a3364175476c57a7763a087ff55e1689474800..8b8fe02b9db5192a3adb8d4a3bb3c2105f90544d 100644 --- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java @@ -58,7 +45,7 @@ index f6a3364175476c57a7763a087ff55e1689474800..8b8fe02b9db5192a3adb8d4a3bb3c210 "This can improve performance by a few percent, but has minor gameplay implications."); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 62ad086b5b07303d920fdb3534a556673ef51f71..15aaa270e51b9194596e7ed5061c85c9fb54e177 100644 +index 4bd83e1605fb6540be1847dc3691e74b95f260ad..7f5749c15f017624af11b81b497efd229b81efd9 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -924,7 +924,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -80,7 +67,7 @@ index 62ad086b5b07303d920fdb3534a556673ef51f71..15aaa270e51b9194596e7ed5061c85c9 private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.randomTickRandom.nextInt(16); } // Pufferfish diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5c5c8fbd562b46f8699be97353447eaab36c007a..385253bddf50c290317b6d0f283331edf515badd 100644 +index 5298be16774b23b71d2de3b8697a758c73255912..f664ab1748aab367ae0c468cfd54dad3ade42ec3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -825,7 +825,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -106,7 +93,7 @@ index 837f68825f601971f374be47952b23108bf66ba6..2a8a8030feefae84e394460612405887 return; } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index dbbb726f90077b4116b0c9424aa95c9db52ae100..9f5cde72a5305572202c316e750ad1b5e778fd87 100644 +index 15186884c67f8b75a6b40e244c8b18797f098fd1..d70b6dd93702fcd5590b19eceba0281ce39e9de4 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -216,7 +216,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -119,7 +106,7 @@ index dbbb726f90077b4116b0c9424aa95c9db52ae100..9f5cde72a5305572202c316e750ad1b5 protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot 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 922191159fadf8e89646d7299aadee4aa851f71a..5fab6909bd2ee303f49b7e667617bcae608e82d7 100644 +index 270a892373ecbb3982990d6201d79c8a66de4f60..d087c8271dbdfe3dc6d805539a710d37ed6d7f21 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -122,7 +122,7 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0005-Purpur-client-support.patch b/patches/server/0005-Purpur-client-support.patch index a1961f7a5..1fe4bcede 100644 --- a/patches/server/0005-Purpur-client-support.patch +++ b/patches/server/0005-Purpur-client-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Purpur client support diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 58591bf2f63b9c5e97d9ce4188dff3366968a178..1d91ce01e7ce806a5b2e937ff855ebf159534f29 100644 +index b3781efbd3edcf102fe1bda5d6149915dc1127c6..ae0c027a49ae6d09c86053945992f4480df5b1d5 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -281,6 +281,7 @@ public class ServerPlayer extends Player { @@ -43,10 +43,10 @@ index 0306771b8f90dcdd77f151c19c6c2d75c41f8feb..34559eae0ea3f88d7b9a3c9e4a2350c4 try { String channels = payload.toString(com.google.common.base.Charsets.UTF_8); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 206520f6f20b2e48b1eefdd4edb26510b88e4c92..ab96c92d3d995a64ea9fd1c3996da35148195c48 100644 +index e77bf7f432387bdfa7f69d31b014e8cd254fd4ca..6a558a7042b78e8de7fc637053468ac9029b4133 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3427,4 +3427,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3425,4 +3425,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void setSendViewDistance(final int viewDistance) { this.getHandle().setSendViewDistance(viewDistance); } diff --git a/patches/server/0008-Ridables.patch b/patches/server/0008-Ridables.patch index 42df2cdc8..2067530fc 100644 --- a/patches/server/0008-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -22,7 +22,7 @@ index e17fa30966dea2836fb791becd032fc7d5cc2611..dd06323731533fb9b1b25a56844a4e39 super(x, y, z); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9ce656109ea20de5f443f9e680debe38e9dace24..5a0ebacdda1cf62ce5c8d088c1266cfd47923ff5 100644 +index b2dd76b79660126cac3b995e9ca2f88dc70937ff..fcf2d5e56c025f236589c40f598e36a167b13a41 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1712,6 +1712,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 15aaa270e51b9194596e7ed5061c85c9fb54e177..1e9e75906838e358935dd920800eb5b6acfc8e11 100644 +index 7f5749c15f017624af11b81b497efd229b81efd9..7d0a0ab955ec45f4883c987428722a4b647fcece 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -224,6 +224,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -46,7 +46,7 @@ index 15aaa270e51b9194596e7ed5061c85c9fb54e177..1e9e75906838e358935dd920800eb5b6 public LevelChunk getChunkIfLoaded(int x, int z) { return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d39a3359249e2a312da0645d5abb625d98fe4034..44409eed0b603a1e8203a35ff0263d360d81be32 100644 +index e10999f90a695ac8399f1089aae6b8c0a225f5da..afca9734927fd003e249972439494c561f0c0966 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -763,6 +763,15 @@ public class ServerPlayer extends Player { @@ -66,7 +66,7 @@ index d39a3359249e2a312da0645d5abb625d98fe4034..44409eed0b603a1e8203a35ff0263d36 public void doTick() { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 601ac8738a775eafde2c9e237feb596a9a47ba89..7f73d724af2c468a06dcfd760a70b8d6bd9ac31a 100644 +index 2ae1d53364da7f0e30c642df4e9a62f9e6581432..d9f24bcc2f5eaabc49f6a9ec545afe2d096fc532 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2722,6 +2722,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -79,7 +79,7 @@ index 601ac8738a775eafde2c9e237feb596a9a47ba89..7f73d724af2c468a06dcfd760a70b8d6 if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3d9e96a54a00a7b2a73d2d26752b581deba94854..2518a9ebb69de85b1e387d115213bf2b20a0e715 100644 +index 670761baeb8a9e6df3728bb66515e96750b76526..dcb0a4f3e688198f19f75abdf7b0165d359dcef8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -379,7 +379,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -190,7 +190,7 @@ index 1bb8b6e91c44cd13411d96d749fa64835c75a267..75c278b67ad2b78766efd8f89c4c2ca7 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 25e30408c964b5257f1cf945892bd668df38252b..4621dd94e9346bdd2eeca1d17869ff99aede0077 100644 +index 366121188c5abb550ed0a5f99d25c001628685bb..98907fee8d85e7b7dc66807a0717134db3a94c33 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -218,9 +218,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -5175,10 +5175,10 @@ index 6f49b9b8707d74330adb973e0db3cd5bccf138b6..f5e1aa316a90bf2cd9c997b76830096d public boolean isPickable() { return false; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 7cd7912cecbbbe2c32bfd9b85181115c6d316eb8..18d3b660bc5efaca76379f836fc7afb0158eda3b 100644 +index e8e4489bcd64fde1b3226bdc7a7cc612508bda3f..85d154f18e240cac77e023b4b5983ad7a95912b5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1252,4 +1252,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1270,4 +1270,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return this.getHandle().getScoreboardName(); } // Paper end - entity scoreboard name @@ -5207,10 +5207,10 @@ index 7cd7912cecbbbe2c32bfd9b85181115c6d316eb8..18d3b660bc5efaca76379f836fc7afb0 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index cb3e9672f375a1a660757a05362729ddb5ca7504..c12fb91e6fa286b99bd08ff39cda7d6e4ff73f19 100644 +index c0823c612de9dc2a64cc797f061eef25c5f31359..171efb1ab482d0042bead18df0880f038cfda16a 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -592,6 +592,15 @@ public class CraftEventFactory { +@@ -593,6 +593,15 @@ public class CraftEventFactory { // Paper end craftServer.getPluginManager().callEvent(event); @@ -5226,7 +5226,7 @@ index cb3e9672f375a1a660757a05362729ddb5ca7504..c12fb91e6fa286b99bd08ff39cda7d6e return event; } -@@ -1181,6 +1190,7 @@ public class CraftEventFactory { +@@ -1182,6 +1191,7 @@ public class CraftEventFactory { EntityDamageEvent event; if (damager != null) { event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical); diff --git a/patches/server/0012-AFK-API.patch b/patches/server/0012-AFK-API.patch index f57a93231..234a2f06d 100644 --- a/patches/server/0012-AFK-API.patch +++ b/patches/server/0012-AFK-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 44409eed0b603a1e8203a35ff0263d360d81be32..cdb3cf1b9a809e3936164dbbcf9ccdfc21b9906c 100644 +index afca9734927fd003e249972439494c561f0c0966..c0c7aca4bc56b59dc0a450bd370cb3c0104c78e6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2234,8 +2234,68 @@ public class ServerPlayer extends Player { @@ -78,7 +78,7 @@ index 44409eed0b603a1e8203a35ff0263d360d81be32..cdb3cf1b9a809e3936164dbbcf9ccdfc return this.stats; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7f73d724af2c468a06dcfd760a70b8d6bd9ac31a..69919fa008780a09b5cfea5e41bb71ddfb4c0b80 100644 +index d9f24bcc2f5eaabc49f6a9ec545afe2d096fc532..65e64b69e36d3089589a1ac76dac97694532e9a6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -324,6 +324,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -223,7 +223,7 @@ index ed84c87a3f76bc0254c1abb189e6b8b808823465..5bc68b1ef33f297e9a4b1bdd7d69f86a if (range < 0.0D || d < range * range) { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ee8c5a9881de75a9a8fe4224f7585a036017653a..bcf3393ad12a70eea0e1b24f69fac15b08af32fb 100644 +index 6a558a7042b78e8de7fc637053468ac9029b4133..5cb6572563bad1ef5ed755f94c5d0a854867406f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -488,10 +488,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -243,7 +243,7 @@ index ee8c5a9881de75a9a8fe4224f7585a036017653a..bcf3393ad12a70eea0e1b24f69fac15b for (ServerPlayer player : (List) this.server.getHandle().players) { if (player.getBukkitEntity().canSee(this)) { player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle())); -@@ -3433,5 +3438,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3431,5 +3436,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public boolean usesPurpurClient() { return getHandle().purpurClient; } @@ -317,10 +317,10 @@ index e248395ad5f5f012aeefecf367d54f90cade0996..70f53ccb22de2c05c9ead68f8bd29d0b public boolean untamedTamablesAreRidable = true; public boolean useNightVisionWhenRiding = false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 41cddf7e42f0e8f80973e482a95e55d3bd19f659..b73bb349aed01a96515e5d4d7fe67d28bd80189f 100644 +index d7c7e12c0b8f77e59d94de130972f762ed227726..88bac31994679c6a1b65e237fd44b239817fa2cf 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -203,6 +203,7 @@ public class ActivationRange +@@ -205,6 +205,7 @@ public class ActivationRange continue; } diff --git a/patches/server/0015-LivingEntity-safeFallDistance.patch b/patches/server/0015-LivingEntity-safeFallDistance.patch index 16ab70eb0..ccd80fc5a 100644 --- a/patches/server/0015-LivingEntity-safeFallDistance.patch +++ b/patches/server/0015-LivingEntity-safeFallDistance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] LivingEntity safeFallDistance diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 781eefa21c958c28c35d2d9559d89da236ce9387..5e5485906f1157e52a7082278adcb7b6e56f3f06 100644 +index 3c7c618dd9611485b81336ca4a5059fcb1e4f1ff..09f64c62333ff1fe4c77377d86922de59aa05265 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -253,6 +253,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -69,13 +69,13 @@ index 2a30499fd6f4a1340f6911f0f7f079bcbe8576a3..c3c0fbe71c9af1125c80698865cb9eaf // Purpur start diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 5a506af2b01974af94bdc42b6a5eb866b516ac4e..33f34eabcdb53beaa39a58566646a370015980d4 100644 +index 52c70c2793209aadb88bd4c5f45340747271d3d7..e25c95a904820a84ba18976a30faff289682a47f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1155,4 +1155,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { - getHandle().knockback(strength, directionX, directionZ); - }; - // Paper end +@@ -1210,4 +1210,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { + this.getHandle().setYBodyRot(bodyYaw); + } + // Paper end - body yaw API + + // Purpur start + @Override diff --git a/patches/server/0060-Implement-elytra-settings.patch b/patches/server/0060-Implement-elytra-settings.patch index fcba012db..f87c939a4 100644 --- a/patches/server/0060-Implement-elytra-settings.patch +++ b/patches/server/0060-Implement-elytra-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c80e2c400f264d7d195dbf87f5dec95ba5df7444..40a22471b7828d660b1d8aa3f16af060694a86e3 100644 +index 2ebe8c165c8b425d437e0b359e3f2ad851b84273..56ffc7ae9bf9dabcbe6e993475a9bf5c0e337926 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3589,7 +3589,16 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -80,13 +80,13 @@ index 38e097807c5034c077a10d3af08bf348a008d229..5b0816b6c01912c41e588559597edf8b if (this.count == 1 && entity instanceof net.minecraft.world.entity.player.Player) { org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent((net.minecraft.world.entity.player.Player) entity, this); diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java -index fa876ddf54780728e7f3ecfe02aa8a16b8ef6f8d..75cf58919ac787b389286b41a9f0b5a945e71649 100644 +index a792c7b7a6179aa88fc473b27ef0ca13bd91a395..c2218c2dd46641ebb4c9278fa0d6015122b1905c 100644 --- a/src/main/java/net/minecraft/world/item/TridentItem.java +++ b/src/main/java/net/minecraft/world/item/TridentItem.java -@@ -131,6 +131,14 @@ public class TridentItem extends Item implements Vanishable { - f2 *= f6 / f5; +@@ -128,6 +128,14 @@ public class TridentItem extends Item implements Vanishable { f3 *= f6 / f5; f4 *= f6 / f5; + org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerRiptideEvent(entityhuman, stack, f2, f3, f4); // CraftBukkit + + // Purpur start + ItemStack chestItem = entityhuman.getItemBySlot(EquipmentSlot.CHEST); diff --git a/patches/server/0074-Squid-EAR-immunity.patch b/patches/server/0074-Squid-EAR-immunity.patch index cb395933b..3ec9e1084 100644 --- a/patches/server/0074-Squid-EAR-immunity.patch +++ b/patches/server/0074-Squid-EAR-immunity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Squid EAR immunity diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e813fa037ca17bec29db916eac882cbfab432e56..c87c7feb140864771cbef3dcee1f89319c9a1f83 100644 +index 98e6faaeeaf8a983f9d730591a9d85c314c112d3..27d279d76fd3632fd023edded3b10630629ec132 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1453,6 +1453,7 @@ public class PurpurWorldConfig { @@ -25,7 +25,7 @@ index e813fa037ca17bec29db916eac882cbfab432e56..c87c7feb140864771cbef3dcee1f8931 public boolean spiderRidable = false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index b73bb349aed01a96515e5d4d7fe67d28bd80189f..f9e3f4e15719ed9284ec315b8a1ef63dc242e009 100644 +index 88bac31994679c6a1b65e237fd44b239817fa2cf..c63b7d5b442f2be5dadd529a2f4f65302e44e792 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -15,6 +15,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature; @@ -36,7 +36,7 @@ index b73bb349aed01a96515e5d4d7fe67d28bd80189f..f9e3f4e15719ed9284ec315b8a1ef63d import net.minecraft.world.entity.animal.WaterAnimal; import net.minecraft.world.entity.animal.horse.Llama; import net.minecraft.world.entity.boss.EnderDragonPart; -@@ -401,6 +402,7 @@ public class ActivationRange +@@ -403,6 +404,7 @@ public class ActivationRange */ public static boolean checkIfActive(Entity entity) { diff --git a/patches/server/0087-LivingEntity-broadcastItemBreak.patch b/patches/server/0087-LivingEntity-broadcastItemBreak.patch index 227917143..671e9bd02 100644 --- a/patches/server/0087-LivingEntity-broadcastItemBreak.patch +++ b/patches/server/0087-LivingEntity-broadcastItemBreak.patch @@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity#broadcastItemBreak diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 33f34eabcdb53beaa39a58566646a370015980d4..f2e101fe1d6adbfb277088076c0bac51cb95a23e 100644 +index e25c95a904820a84ba18976a30faff289682a47f..17fc6efc988bd74fc50c340eb62f8a7def2167cb 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1166,5 +1166,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1221,5 +1221,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { public void setSafeFallDistance(float safeFallDistance) { getHandle().safeFallDistance = safeFallDistance; } diff --git a/patches/server/0173-API-for-any-mob-to-burn-daylight.patch b/patches/server/0173-API-for-any-mob-to-burn-daylight.patch index 0542c8412..15910ed38 100644 --- a/patches/server/0173-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0173-API-for-any-mob-to-burn-daylight.patch @@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 43f2282a7a59852ddb86d417baef9bf0bbdc9ea4..afdb416fe714097696132afba348f42ba6fd5140 100644 +index f7e482ac8dec8a8c6ae9965acbc41a2af00aebe1..e9bdb223886f1c2e91324c01ea0203b7c319ec48 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -562,6 +562,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -32,7 +32,7 @@ index 43f2282a7a59852ddb86d417baef9bf0bbdc9ea4..afdb416fe714097696132afba348f42b return this.hardCollides; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 926962fc5631faa4672c8dd2fdb72b9ef6947292..4af345c848040fabdde82b4f0493ba796a7fef1f 100644 +index ef830481a816c743aa3b0feee5c0f2cf51fea7fa..cd87e7c52b75c6ba40343557ba12c7891da88e07 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -263,6 +263,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -354,7 +354,7 @@ index 94b92c6e588f871d4b0d86bb8f860a99e473a4ea..e568d014f577ab705645152446156dc0 // Paper end - Add more Zombie API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 20597775406e0ec019ac21550d83e971455ed1a9..83686f2fff044fd6b692da5533a3c97b0cf473b6 100644 +index cac42202295b16de0466216f64be4fdf30929a7e..b6ecb58718b7de7ba9c90236f3dc11715652daa9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -84,6 +84,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -370,10 +370,10 @@ index 20597775406e0ec019ac21550d83e971455ed1a9..83686f2fff044fd6b692da5533a3c97b Preconditions.checkArgument(entity != null, "Unknown entity"); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index f2e101fe1d6adbfb277088076c0bac51cb95a23e..3b4a6d0d3ec4f6454bb6e0dab35cc282bf3237aa 100644 +index 17fc6efc988bd74fc50c340eb62f8a7def2167cb..210040aa3f810c03cadf38df9d10da336dffaaa1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1172,5 +1172,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1227,5 +1227,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { if (slot == null) return; getHandle().broadcastBreakEvent(org.bukkit.craftbukkit.CraftEquipmentSlot.getNMS(slot)); } diff --git a/patches/server/0179-Add-portal-permission-bypass.patch b/patches/server/0179-Add-portal-permission-bypass.patch index a5beb57f1..ef28c017e 100644 --- a/patches/server/0179-Add-portal-permission-bypass.patch +++ b/patches/server/0179-Add-portal-permission-bypass.patch @@ -26,10 +26,10 @@ index f8b444583cc48a18a68c860ba933c0c1834578be..992ac6cfba700839259b973fa1eabb5c @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index acbb64010cd59668aa1bcb52ff1220789cadb1d3..6c2e91b986099027d83aba85f14ae69cbc358348 100644 +index 7984365c8290ac9e526a413b56e1c8c0841e330c..a8b30fa294e088c0b604a5d8ac5667e32ed1b287 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -266,6 +266,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -267,6 +267,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @Override public void recalculatePermissions() { this.perm.recalculatePermissions(); diff --git a/patches/server/0206-Extended-OfflinePlayer-API.patch b/patches/server/0206-Extended-OfflinePlayer-API.patch index 0b96bdcf6..4a56ad7ab 100644 --- a/patches/server/0206-Extended-OfflinePlayer-API.patch +++ b/patches/server/0206-Extended-OfflinePlayer-API.patch @@ -243,10 +243,10 @@ index 4a875bce9563f3b9351ebecde9b0eb1287beb50e..42d83cfd9318d6ebe9a5392edef3b667 + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f74e632f6be8ab2c7bdf9f5ba2ad2a2a0ef4d14e..219d6019eed162a2127f4d175aff817f52d93544 100644 +index aad02ebc0df97e6e7024add8fce149b54124a58b..b90774a6c6041b3317b33d18a31ec2ab4eee1725 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2670,6 +2670,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2668,6 +2668,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.getHandle().getAbilities().walkingSpeed * 2f; } diff --git a/patches/server/0235-Allow-void-trading.patch b/patches/server/0235-Allow-void-trading.patch index a5464f07a..3358bf825 100644 --- a/patches/server/0235-Allow-void-trading.patch +++ b/patches/server/0235-Allow-void-trading.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow void trading diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f141031f668898b8cc0ac1970b9026da6be4a466..6c165580b2c57a7fb95833208a72af33988427dc 100644 +index 39a6ff48d820b56728398ac287f9a4db108f3bad..b9ca61e2ec4318c55997840f33fc8eae926fda73 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2909,7 +2909,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2920,7 +2920,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message // Paper start - Fix merchant inventory not closing on entity removal diff --git a/patches/server/0243-Config-for-mob-last-hurt-by-player-time.patch b/patches/server/0243-Config-for-mob-last-hurt-by-player-time.patch index 0b89099b6..6fa467d46 100644 --- a/patches/server/0243-Config-for-mob-last-hurt-by-player-time.patch +++ b/patches/server/0243-Config-for-mob-last-hurt-by-player-time.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for mob last hurt by player time diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 99c5cd7f20435be1f78cfed4f952e4c7ddfb69e8..e5691cf9ad9e795426b27391ebfb27dba97756fb 100644 +index 21019c1484a281e6cbcaf1c3e462efa106fee5eb..839f280eeb18e01712a18b595b1a13abfab6f45b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1555,13 +1555,13 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -25,10 +25,10 @@ index 99c5cd7f20435be1f78cfed4f952e4c7ddfb69e8..e5691cf9ad9e795426b27391ebfb27db if (entityliving2 instanceof net.minecraft.world.entity.player.Player) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 9730a5469f81687cfde0a19a58d1c2147588d1d2..e3f724a19ab2f9821d84f9b03acf7c925c88f455 100644 +index 210040aa3f810c03cadf38df9d10da336dffaaa1..64c73cc7370c23c9ce68b68476fd0ddb3ca6beca 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -490,7 +490,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -506,7 +506,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { net.minecraft.server.level.ServerPlayer entityPlayer = killer == null ? null : ((CraftPlayer) killer).getHandle(); getHandle().lastHurtByPlayer = entityPlayer; getHandle().lastHurtByMob = entityPlayer; diff --git a/patches/server/0249-Stonecutter-damage.patch b/patches/server/0249-Stonecutter-damage.patch index d12cfa3bd..a418d32e2 100644 --- a/patches/server/0249-Stonecutter-damage.patch +++ b/patches/server/0249-Stonecutter-damage.patch @@ -124,10 +124,10 @@ index 0dc05919dfbbf73230505fcdc25d949b1602801c..996bd26e95e766ce4ca7e61d060881fe return BlockPathTypes.STICKY_HONEY; } else if (blockState.is(Blocks.COCOA)) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index c12fb91e6fa286b99bd08ff39cda7d6e4ff73f19..f587c8defaf55ffa77d90deb8b9a3975e8f90ef9 100644 +index 171efb1ab482d0042bead18df0880f038cfda16a..b82a6143526bd1d4ecd4591c1253cdb0b913fe09 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1132,7 +1132,7 @@ public class CraftEventFactory { +@@ -1133,7 +1133,7 @@ public class CraftEventFactory { return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), entity, DamageCause.LAVA, bukkitDamageSource, modifiers, modifierFunctions, cancelled); } else if (source.getDirectBlock() != null) { DamageCause cause; diff --git a/patches/server/0258-Add-local-difficulty-api.patch b/patches/server/0258-Add-local-difficulty-api.patch index a8f3e8bcc..93b6068bc 100644 --- a/patches/server/0258-Add-local-difficulty-api.patch +++ b/patches/server/0258-Add-local-difficulty-api.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add local difficulty api diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index bfb178c69026e9759e9afaebb9da141b62d1f144..699432c497281f5501e48fb2a40a6f8bb65f7a6a 100644 +index 01797d9791f19dfda4b168218eadeaae97f11eab..6084fe6fd3fa2c122cb3d764a4a61287b9a20375 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2388,6 +2388,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2408,6 +2408,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight()); } diff --git a/patches/server/0261-Allow-custom-ChatDecorators.patch b/patches/server/0261-Allow-custom-ChatDecorators.patch index 5030cd4ce..8c3d080d5 100644 --- a/patches/server/0261-Allow-custom-ChatDecorators.patch +++ b/patches/server/0261-Allow-custom-ChatDecorators.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Allow custom ChatDecorators Requires NMS to utilize. I'll write an API for this once our upstreams calm down with the changes. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ddcc94aee7cb8cb54f2cc54c3ae7f72c2eb47d51..67066434a381c7e0e558a80b2b66031643764b67 100644 +index f7b3dd47d16c3d0e0f374ff31bb8acd1127326cf..00c17b658c8fff133868d2a260dffa8d1171f964 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2857,6 +2857,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { this.executeBlocking(() -> { this.saveDebugReport(path.resolve("server")); -@@ -2736,40 +2736,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop