diff --git a/patches/api/0002-Build-system-changes.patch b/patches/api/0002-Build-system-changes.patch index 7a7812df82..24b0253137 100644 --- a/patches/api/0002-Build-system-changes.patch +++ b/patches/api/0002-Build-system-changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Build system changes diff --git a/build.gradle.kts b/build.gradle.kts -index 8ec976de73d8fe6e4d46007649f2c9089e8bdd9c..75768ac6674accfce35ab8f31994d538f4bca5a6 100644 +index 8ec976de73d8fe6e4d46007649f2c9089e8bdd9c..2229758d9da373519a42f58e4ca17120c5272530 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,15 +18,27 @@ dependencies { @@ -46,7 +46,7 @@ index 8ec976de73d8fe6e4d46007649f2c9089e8bdd9c..75768ac6674accfce35ab8f31994d538 "https://javadoc.io/doc/net.md-5/bungeecord-chat/$bungeeCordChatVersion/", + // Paper start - add missing javadoc links + "https://javadoc.io/doc/org.joml/joml/1.10.8/index.html", -+ "https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.1", ++ "https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.0", + "https://jspecify.dev/docs/api/", + // Paper end ) diff --git a/patches/api/0003-Test-changes.patch b/patches/api/0003-Test-changes.patch index 6c09a87496..4b9bdb3ceb 100644 --- a/patches/api/0003-Test-changes.patch +++ b/patches/api/0003-Test-changes.patch @@ -14,7 +14,7 @@ Co-authored-by: Jake Potrebic Co-authored-by: Yannick Lamprecht diff --git a/build.gradle.kts b/build.gradle.kts -index 75768ac6674accfce35ab8f31994d538f4bca5a6..5b6577b5cc6f383dda6b06dd6469e7339aa2c587 100644 +index 2229758d9da373519a42f58e4ca17120c5272530..1860fc52cb7de590184b828d615ff75683ae69ca 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,6 +11,18 @@ java { diff --git a/patches/api/0004-Code-Generation.patch b/patches/api/0004-Code-Generation.patch index 7bbb37fc02..8ab0fca8cf 100644 --- a/patches/api/0004-Code-Generation.patch +++ b/patches/api/0004-Code-Generation.patch @@ -7,7 +7,7 @@ Currently includes generated key holder classes for types used in the Registry Modification API diff --git a/build.gradle.kts b/build.gradle.kts -index 5b6577b5cc6f383dda6b06dd6469e7339aa2c587..2a4b8a6b06ed3df1a5e4d90bc4e36c227347d027 100644 +index 1860fc52cb7de590184b828d615ff75683ae69ca..c5478e937eddb39be27306dae34353a4dedfcbdf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ diff --git a/patches/api/0005-Add-FastUtil-to-Bukkit.patch b/patches/api/0005-Add-FastUtil-to-Bukkit.patch index 057d57971b..86fcfc4b0e 100644 --- a/patches/api/0005-Add-FastUtil-to-Bukkit.patch +++ b/patches/api/0005-Add-FastUtil-to-Bukkit.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add FastUtil to Bukkit Doesn't expose to plugins, just allows Paper-API to use it for optimization diff --git a/build.gradle.kts b/build.gradle.kts -index 2a4b8a6b06ed3df1a5e4d90bc4e36c227347d027..2e6996775d4424e6ac92aa337cad8abfcf184b90 100644 +index c5478e937eddb39be27306dae34353a4dedfcbdf..6457e9e11620b9b77f067e2d45d7fb45235f23d3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -35,6 +35,7 @@ dependencies { diff --git a/patches/api/0006-Adventure.patch b/patches/api/0006-Adventure.patch index ab6048955d..8e33b0a1db 100644 --- a/patches/api/0006-Adventure.patch +++ b/patches/api/0006-Adventure.patch @@ -8,7 +8,7 @@ Co-authored-by: Jake Potrebic Co-authored-by: Yannick Lamprecht diff --git a/build.gradle.kts b/build.gradle.kts -index 2e6996775d4424e6ac92aa337cad8abfcf184b90..0b819441178e44e0458fca7c8ab4861aab1a7890 100644 +index 6457e9e11620b9b77f067e2d45d7fb45235f23d3..b533f386bd42886ca23009821450b20c8614026a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,6 +11,18 @@ java { @@ -65,7 +65,7 @@ index 2e6996775d4424e6ac92aa337cad8abfcf184b90..0b819441178e44e0458fca7c8ab4861a + // "https://javadoc.io/doc/net.md-5/bungeecord-chat/$bungeeCordChatVersion/", // Paper - don't link to bungee chat // Paper start - add missing javadoc links "https://javadoc.io/doc/org.joml/joml/1.10.8/index.html", - "https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.1", + "https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.0", "https://jspecify.dev/docs/api/", // Paper end + // Paper start diff --git a/patches/api/0008-Use-ASM-for-event-executors.patch b/patches/api/0008-Use-ASM-for-event-executors.patch index b44b206b5d..54519e4170 100644 --- a/patches/api/0008-Use-ASM-for-event-executors.patch +++ b/patches/api/0008-Use-ASM-for-event-executors.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use ASM for event executors. Uses method handles for private or static methods. diff --git a/build.gradle.kts b/build.gradle.kts -index 0b819441178e44e0458fca7c8ab4861aab1a7890..421c188fbc7fb6f726cda0fcb3455ad57a2bbcd1 100644 +index b533f386bd42886ca23009821450b20c8614026a..60209b1a66db201f7b814269240c15051ce455d7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -59,6 +59,9 @@ dependencies { diff --git a/patches/api/0009-Paper-Plugins.patch b/patches/api/0009-Paper-Plugins.patch index baacc24d29..c71a96caf6 100644 --- a/patches/api/0009-Paper-Plugins.patch +++ b/patches/api/0009-Paper-Plugins.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Paper Plugins diff --git a/build.gradle.kts b/build.gradle.kts -index 421c188fbc7fb6f726cda0fcb3455ad57a2bbcd1..c478531084e6029831f12ddf3e386183a93cee02 100644 +index 60209b1a66db201f7b814269240c15051ce455d7..1d39af929759be70ad86d29b396ea04b06b0d8f1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -64,7 +64,7 @@ dependencies { diff --git a/patches/api/0067-Allow-plugins-to-use-SLF4J-for-logging.patch b/patches/api/0067-Allow-plugins-to-use-SLF4J-for-logging.patch index 03cd827a6d..e931bde01e 100644 --- a/patches/api/0067-Allow-plugins-to-use-SLF4J-for-logging.patch +++ b/patches/api/0067-Allow-plugins-to-use-SLF4J-for-logging.patch @@ -14,7 +14,7 @@ it without having to shade it in the plugin and going through several layers of logging abstraction. diff --git a/build.gradle.kts b/build.gradle.kts -index c478531084e6029831f12ddf3e386183a93cee02..20ecbdd4e2f74475118769497004e93813c0a8a6 100644 +index 1d39af929759be70ad86d29b396ea04b06b0d8f1..4f184bce3e9d030989e89f9f5581894734bf2b2d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,6 +12,8 @@ java { diff --git a/patches/api/0464-Brigadier-based-command-API.patch b/patches/api/0464-Brigadier-based-command-API.patch index 2409e5bfda..87cebf7f4e 100644 --- a/patches/api/0464-Brigadier-based-command-API.patch +++ b/patches/api/0464-Brigadier-based-command-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Brigadier based command API Co-authored-by: Jake Potrebic diff --git a/build.gradle.kts b/build.gradle.kts -index 20ecbdd4e2f74475118769497004e93813c0a8a6..392c4bcf3a06172cdedb73250e2da617e1c6463e 100644 +index 4f184bce3e9d030989e89f9f5581894734bf2b2d..a5db128a44c81576ab6a59107dba32b0332a76e1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -39,6 +39,7 @@ abstract class MockitoAgentProvider : CommandLineArgumentProvider { diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch index e2c27693b4..5ce66ed29c 100644 --- a/patches/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -4467,16 +4467,17 @@ index 0000000000000000000000000000000000000000..efda2688ae1254a82ba7f6bf8bf597ef +} diff --git a/src/main/java/ca/spottedleaf/moonrise/paper/PaperHooks.java b/src/main/java/ca/spottedleaf/moonrise/paper/PaperHooks.java new file mode 100644 -index 0000000000000000000000000000000000000000..1aa6be257ce594d7a69fdff008cd29014a04fd75 +index 0000000000000000000000000000000000000000..834c5ce238c7adb0164a6282582d709348ef96cc --- /dev/null +++ b/src/main/java/ca/spottedleaf/moonrise/paper/PaperHooks.java -@@ -0,0 +1,209 @@ +@@ -0,0 +1,240 @@ +package ca.spottedleaf.moonrise.paper; + +import ca.spottedleaf.moonrise.common.PlatformHooks; +import com.mojang.datafixers.DSL; +import com.mojang.datafixers.DataFixer; +import com.mojang.serialization.Dynamic; ++import java.util.Collection; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtOps; @@ -4485,6 +4486,7 @@ index 0000000000000000000000000000000000000000..1aa6be257ce594d7a69fdff008cd2901 +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; ++import net.minecraft.world.entity.boss.EnderDragonPart; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.Level; @@ -4569,12 +4571,41 @@ index 0000000000000000000000000000000000000000..1aa6be257ce594d7a69fdff008cd2901 + + @Override + public void addToGetEntities(final Level world, final Entity entity, final AABB boundingBox, final Predicate predicate, final List into) { ++ final Collection parts = world.dragonParts(); ++ if (parts.isEmpty()) { ++ return; ++ } + ++ for (final EnderDragonPart part : parts) { ++ if (part != entity && part.getBoundingBox().intersects(boundingBox) && (predicate == null || predicate.test(part))) { ++ into.add(part); ++ } ++ } + } + + @Override + public void addToGetEntities(final Level world, final EntityTypeTest entityTypeTest, final AABB boundingBox, final Predicate predicate, final List into, final int maxCount) { ++ if (into.size() >= maxCount) { ++ // fix neoforge issue: do not add if list is already full ++ return; ++ } + ++ final Collection parts = world.dragonParts(); ++ if (parts.isEmpty()) { ++ return; ++ } ++ for (final EnderDragonPart part : parts) { ++ if (!part.getBoundingBox().intersects(boundingBox)) { ++ continue; ++ } ++ final T casted = (T)entityTypeTest.tryCast(part); ++ if (casted != null && (predicate == null || predicate.test(casted))) { ++ into.add(casted); ++ if (into.size() >= maxCount) { ++ break; ++ } ++ } ++ } + } + + @Override diff --git a/patches/server/1034-Rewrite-dataconverter-system.patch b/patches/server/1034-Rewrite-dataconverter-system.patch index 93acdfe1ca..1b1e4ffebc 100644 --- a/patches/server/1034-Rewrite-dataconverter-system.patch +++ b/patches/server/1034-Rewrite-dataconverter-system.patch @@ -30399,10 +30399,10 @@ index 0000000000000000000000000000000000000000..5a6536377c9c1e1753e930ff2a6bb98e + } +} diff --git a/src/main/java/ca/spottedleaf/moonrise/paper/PaperHooks.java b/src/main/java/ca/spottedleaf/moonrise/paper/PaperHooks.java -index 1aa6be257ce594d7a69fdff008cd29014a04fd75..c8f2457ab3b28f2c3a6b500bcea40261669c24a4 100644 +index 834c5ce238c7adb0164a6282582d709348ef96cc..11cfe9cc29666ce3a6a40281069fb9eb4fa0ded2 100644 --- a/src/main/java/ca/spottedleaf/moonrise/paper/PaperHooks.java +++ b/src/main/java/ca/spottedleaf/moonrise/paper/PaperHooks.java -@@ -172,6 +172,43 @@ public final class PaperHooks implements PlatformHooks { +@@ -203,6 +203,43 @@ public final class PaperHooks implements PlatformHooks { @Override public CompoundTag convertNBT(final DSL.TypeReference type, final DataFixer dataFixer, final CompoundTag nbt, final int fromVersion, final int toVersion) { diff --git a/patches/server/1035-Moonrise-optimisation-patches.patch b/patches/server/1035-Moonrise-optimisation-patches.patch index f61876285b..fbd8128c1b 100644 --- a/patches/server/1035-Moonrise-optimisation-patches.patch +++ b/patches/server/1035-Moonrise-optimisation-patches.patch @@ -379,68 +379,10 @@ index 12eb3add0931a4d77acdf6e875c42dda9c313dc3..5239993a681d6113eec99fa627b85508 private static final long MULTIPLIER = 25214903917L; private static final long ADDEND = 11L; diff --git a/src/main/java/ca/spottedleaf/moonrise/paper/PaperHooks.java b/src/main/java/ca/spottedleaf/moonrise/paper/PaperHooks.java -index c8f2457ab3b28f2c3a6b500bcea40261669c24a4..de22cfd2da4782072584d5140ce5567780d6feaa 100644 +index 11cfe9cc29666ce3a6a40281069fb9eb4fa0ded2..de22cfd2da4782072584d5140ce5567780d6feaa 100644 --- a/src/main/java/ca/spottedleaf/moonrise/paper/PaperHooks.java +++ b/src/main/java/ca/spottedleaf/moonrise/paper/PaperHooks.java -@@ -4,6 +4,7 @@ import ca.spottedleaf.moonrise.common.PlatformHooks; - import com.mojang.datafixers.DSL; - import com.mojang.datafixers.DataFixer; - import com.mojang.serialization.Dynamic; -+import java.util.Collection; - import net.minecraft.core.BlockPos; - import net.minecraft.nbt.CompoundTag; - import net.minecraft.nbt.NbtOps; -@@ -12,6 +13,7 @@ import net.minecraft.server.level.GenerationChunkHolder; - import net.minecraft.server.level.ServerLevel; - import net.minecraft.server.level.ServerPlayer; - import net.minecraft.world.entity.Entity; -+import net.minecraft.world.entity.boss.EnderDragonPart; - import net.minecraft.world.level.BlockGetter; - import net.minecraft.world.level.ChunkPos; - import net.minecraft.world.level.Level; -@@ -96,12 +98,41 @@ public final class PaperHooks implements PlatformHooks { - - @Override - public void addToGetEntities(final Level world, final Entity entity, final AABB boundingBox, final Predicate predicate, final List into) { -+ final Collection parts = world.dragonParts(); -+ if (parts.isEmpty()) { -+ return; -+ } - -+ for (final EnderDragonPart part : parts) { -+ if (part != entity && part.getBoundingBox().intersects(boundingBox) && (predicate == null || predicate.test(part))) { -+ into.add(part); -+ } -+ } - } - - @Override - public void addToGetEntities(final Level world, final EntityTypeTest entityTypeTest, final AABB boundingBox, final Predicate predicate, final List into, final int maxCount) { -+ if (into.size() >= maxCount) { -+ // fix neoforge issue: do not add if list is already full -+ return; -+ } - -+ final Collection parts = world.dragonParts(); -+ if (parts.isEmpty()) { -+ return; -+ } -+ for (final EnderDragonPart part : parts) { -+ if (!part.getBoundingBox().intersects(boundingBox)) { -+ continue; -+ } -+ final T casted = (T)entityTypeTest.tryCast(part); -+ if (casted != null && (predicate == null || predicate.test(casted))) { -+ into.add(casted); -+ if (into.size() >= maxCount) { -+ break; -+ } -+ } -+ } - } - - @Override -@@ -236,7 +267,7 @@ public final class PaperHooks implements PlatformHooks { +@@ -267,7 +267,7 @@ public final class PaperHooks implements PlatformHooks { @Override public void postLoadProtoChunk(final ServerLevel world, final ProtoChunk chunk) {