diff --git a/patches/api/Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/api/Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch index 9a6d32190e..d9ae817577 100644 --- a/patches/api/Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/api/Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch @@ -30,8 +30,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 /** @@ -0,0 +0,0 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio - */ @Nullable + @Deprecated public Location getBedSpawnLocation(); + // Paper start + /** @@ -59,4 +59,4 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + // Paper end /** - * Increments the given statistic for this player. + * Gets the Location where the player will spawn at, null if they diff --git a/patches/api/Adventure.patch b/patches/api/Adventure.patch index 20532ea295..2175563f9a 100644 --- a/patches/api/Adventure.patch +++ b/patches/api/Adventure.patch @@ -13,7 +13,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ java { val annotationsVersion = "24.0.1" - val bungeeCordChatVersion = "1.20-R0.1" + val bungeeCordChatVersion = "1.20-R0.2" +val adventureVersion = "4.15.0" +val apiAndDocs: Configuration by configurations.creating { + attributes { @@ -33,7 +33,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 api("com.google.code.gson:gson:2.10.1") - api("net.md-5:bungeecord-chat:$bungeeCordChatVersion") + // Paper start - adventure -+ api("net.md-5:bungeecord-chat:$bungeeCordChatVersion-deprecated+build.14") { ++ api("net.md-5:bungeecord-chat:$bungeeCordChatVersion-deprecated+build.18") { + exclude("com.google.guava", "guava") + } + // Paper - adventure diff --git a/patches/api/Allow-plugins-to-use-SLF4J-for-logging.patch b/patches/api/Allow-plugins-to-use-SLF4J-for-logging.patch index 38153e39f4..f1e37170e5 100644 --- a/patches/api/Allow-plugins-to-use-SLF4J-for-logging.patch +++ b/patches/api/Allow-plugins-to-use-SLF4J-for-logging.patch @@ -19,7 +19,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +++ b/build.gradle.kts @@ -0,0 +0,0 @@ java { val annotationsVersion = "24.0.1" - val bungeeCordChatVersion = "1.20-R0.1" + val bungeeCordChatVersion = "1.20-R0.2" val adventureVersion = "4.15.0" +val slf4jVersion = "2.0.9" +val log4jVersion = "2.17.1" diff --git a/patches/api/Convert-project-to-Gradle.patch b/patches/api/Convert-project-to-Gradle.patch index c0c02107ea..17984fda0b 100644 --- a/patches/api/Convert-project-to-Gradle.patch +++ b/patches/api/Convert-project-to-Gradle.patch @@ -42,7 +42,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +} + +val annotationsVersion = "24.0.1" -+val bungeeCordChatVersion = "1.20-R0.1" ++val bungeeCordChatVersion = "1.20-R0.2" + +dependencies { + // api dependencies are listed transitively to API consumers @@ -185,7 +185,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 - - net.md-5 - bungeecord-chat -- 1.20-R0.1 +- 1.20-R0.2 - jar - compile - diff --git a/patches/server/Add-PlayerSetSpawnEvent.patch b/patches/server/Add-PlayerSetSpawnEvent.patch index f9763c8cd5..33f0e5ae00 100644 --- a/patches/server/Add-PlayerSetSpawnEvent.patch +++ b/patches/server/Add-PlayerSetSpawnEvent.patch @@ -192,7 +192,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override - public void setBedSpawnLocation(Location location, boolean override) { + public void setRespawnLocation(Location location, boolean override) { if (location == null) { - this.getHandle().setRespawnPosition(null, null, 0.0F, override, false, PlayerSpawnChangeEvent.Cause.PLUGIN); + this.getHandle().setRespawnPosition(null, null, 0.0F, override, false, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.PLUGIN); // Paper - Add PlayerSetSpawnEvent diff --git a/patches/server/Add-StructuresLocateEvent.patch b/patches/server/Add-StructuresLocateEvent.patch index 276f811916..0ba063ce8d 100644 --- a/patches/server/Add-StructuresLocateEvent.patch +++ b/patches/server/Add-StructuresLocateEvent.patch @@ -193,10 +193,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + System.setOut(out); + } +} -diff --git a/src/test/java/org/bukkit/PerRegistryTest.java b/src/test/java/org/bukkit/PerRegistryTest.java +diff --git a/src/test/java/org/bukkit/registry/PerRegistryTest.java b/src/test/java/org/bukkit/registry/PerRegistryTest.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/test/java/org/bukkit/PerRegistryTest.java -+++ b/src/test/java/org/bukkit/PerRegistryTest.java +--- a/src/test/java/org/bukkit/registry/PerRegistryTest.java ++++ b/src/test/java/org/bukkit/registry/PerRegistryTest.java @@ -0,0 +0,0 @@ public class PerRegistryTest extends AbstractTestingBase { if (!(object instanceof CraftRegistry registry)) { continue; @@ -205,3 +205,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 data.add(Arguments.of(registry)); } catch (ReflectiveOperationException e) { +diff --git a/src/test/java/org/bukkit/registry/RegistryArgumentAddedTest.java b/src/test/java/org/bukkit/registry/RegistryArgumentAddedTest.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/test/java/org/bukkit/registry/RegistryArgumentAddedTest.java ++++ b/src/test/java/org/bukkit/registry/RegistryArgumentAddedTest.java +@@ -0,0 +0,0 @@ public class RegistryArgumentAddedTest extends AbstractTestingBase { + + Set> loadedRegistries = new HashSet<>(DummyServer.registers.keySet()); + Set> notFound = new HashSet<>(); ++ loadedRegistries.remove(io.papermc.paper.world.structure.ConfiguredStructure.class); // Paper - ignore + + RegistriesArgumentProvider + .getData() diff --git a/patches/server/Add-methods-to-get-translation-keys.patch b/patches/server/Add-methods-to-get-translation-keys.patch index 5ea93c4752..2887b15d86 100644 --- a/patches/server/Add-methods-to-get-translation-keys.patch +++ b/patches/server/Add-methods-to-get-translation-keys.patch @@ -28,7 +28,7 @@ diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment. index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java -@@ -0,0 +0,0 @@ public class CraftEnchantment extends Enchantment { +@@ -0,0 +0,0 @@ public class CraftEnchantment extends Enchantment implements Handleable -Date: Sat, 23 Sep 2023 16:36:54 +0200 -Subject: [PATCH] Fix SuspiciousStewMeta - - -diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSuspiciousStew.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSuspiciousStew.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSuspiciousStew.java -+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSuspiciousStew.java -@@ -0,0 +0,0 @@ import org.bukkit.potion.PotionEffectType; - @DelegateDeserialization(CraftMetaItem.SerializableMeta.class) - public class CraftMetaSuspiciousStew extends CraftMetaItem implements SuspiciousStewMeta { - -- static final ItemMetaKey DURATION = new ItemMetaKey("EffectDuration", "duration"); -- static final ItemMetaKey EFFECTS = new ItemMetaKey("Effects", "effects"); -+ static final ItemMetaKey DURATION = new ItemMetaKey("duration", "duration"); // Paper -+ static final ItemMetaKey EFFECTS = new ItemMetaKey(net.minecraft.world.item.SuspiciousStewItem.EFFECTS_TAG, "effects"); // Paper - static final ItemMetaKey ID = new ItemMetaKey("id", "id"); - - private List customEffects; diff --git a/patches/server/Handle-Item-Meta-Inconsistencies.patch b/patches/server/Handle-Item-Meta-Inconsistencies.patch index fcd82dbbf5..29f9541031 100644 --- a/patches/server/Handle-Item-Meta-Inconsistencies.patch +++ b/patches/server/Handle-Item-Meta-Inconsistencies.patch @@ -159,6 +159,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 return level; } +@@ -0,0 +0,0 @@ public final class CraftItemStack extends ItemStack { @Override public Map getEnchantments() { diff --git a/patches/server/Improve-Registry.patch b/patches/server/Improve-Registry.patch index 78eda09a93..f248288e66 100644 --- a/patches/server/Improve-Registry.patch +++ b/patches/server/Improve-Registry.patch @@ -40,30 +40,30 @@ diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMateri index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java -@@ -0,0 +0,0 @@ public class CraftTrimMaterial implements TrimMaterial { +@@ -0,0 +0,0 @@ public class CraftTrimMaterial implements TrimMaterial, Handleable this + " doesn't have a key"); // Paper return this.key; } - + } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimPattern.java b/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimPattern.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimPattern.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimPattern.java -@@ -0,0 +0,0 @@ public class CraftTrimPattern implements TrimPattern { +@@ -0,0 +0,0 @@ public class CraftTrimPattern implements TrimPattern, Handleable this + " doesn't have a key"); // Paper return this.key; } - -diff --git a/src/test/java/org/bukkit/PerRegistryTest.java b/src/test/java/org/bukkit/PerRegistryTest.java + } +diff --git a/src/test/java/org/bukkit/registry/PerRegistryTest.java b/src/test/java/org/bukkit/registry/PerRegistryTest.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/test/java/org/bukkit/PerRegistryTest.java -+++ b/src/test/java/org/bukkit/PerRegistryTest.java +--- a/src/test/java/org/bukkit/registry/PerRegistryTest.java ++++ b/src/test/java/org/bukkit/registry/PerRegistryTest.java @@ -0,0 +0,0 @@ public class PerRegistryTest extends AbstractTestingBase { @ParameterizedTest diff --git a/patches/server/More-Enchantment-API.patch b/patches/server/More-Enchantment-API.patch index b3da8e8ef4..d595e6aa79 100644 --- a/patches/server/More-Enchantment-API.patch +++ b/patches/server/More-Enchantment-API.patch @@ -12,7 +12,7 @@ diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment. index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java -@@ -0,0 +0,0 @@ public class CraftEnchantment extends Enchantment { +@@ -0,0 +0,0 @@ public class CraftEnchantment extends Enchantment implements Handleable getEffectAttributes() { @@ -54,7 +53,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + }; + } + // Paper end - } ++ + @Override + public boolean equals(Object other) { + if (this == other) { diff --git a/src/test/java/io/papermc/paper/effects/EffectCategoryTest.java b/src/test/java/io/papermc/paper/effects/EffectCategoryTest.java new file mode 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 diff --git a/patches/server/Remap-fixes.patch b/patches/server/Remap-fixes.patch index 3233483441..8735963535 100644 --- a/patches/server/Remap-fixes.patch +++ b/patches/server/Remap-fixes.patch @@ -131,44 +131,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 String.format(""" Could not encoded particle param for particle %s. This can indicated, that the wrong particle param is created in CraftParticle. -diff --git a/src/test/java/org/bukkit/RegistryConstantsTest.java b/src/test/java/org/bukkit/RegistryConstantsTest.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/test/java/org/bukkit/RegistryConstantsTest.java -+++ b/src/test/java/org/bukkit/RegistryConstantsTest.java -@@ -0,0 +0,0 @@ public class RegistryConstantsTest extends AbstractTestingBase { - - @Test - public void testTrimMaterial() { -- this.testExcessConstants(TrimMaterial.class, Registry.TRIM_MATERIAL); -+ this.testExcessConstants(TrimMaterial.class, org.bukkit.Registry.TRIM_MATERIAL); // Paper - remap fix - this.testMissingConstants(TrimMaterial.class, Registries.TRIM_MATERIAL); - } - - @Test - public void testTrimPattern() { -- this.testExcessConstants(TrimPattern.class, Registry.TRIM_PATTERN); -+ this.testExcessConstants(TrimPattern.class, org.bukkit.Registry.TRIM_PATTERN); // Paper - remap fix - this.testMissingConstants(TrimPattern.class, Registries.TRIM_PATTERN); - } - -- private void testExcessConstants(Class clazz, Registry registry) { -+ private void testExcessConstants(Class clazz, org.bukkit.Registry registry) { // Paper - remap fix - List excessKeys = new ArrayList<>(); - - for (Field field : clazz.getFields()) { -diff --git a/src/test/java/org/bukkit/RegistryLoadOrderTest.java b/src/test/java/org/bukkit/RegistryLoadOrderTest.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/test/java/org/bukkit/RegistryLoadOrderTest.java -+++ b/src/test/java/org/bukkit/RegistryLoadOrderTest.java -@@ -0,0 +0,0 @@ public class RegistryLoadOrderTest extends AbstractTestingBase { - - private static boolean initInterface = false; - private static boolean initAbstract = false; -- private static Registry registry; -+ private static org.bukkit.Registry registry; // Paper - remap fix - - public static Stream data() { - return Stream.of( diff --git a/src/test/java/org/bukkit/entity/EntityTypesTest.java b/src/test/java/org/bukkit/entity/EntityTypesTest.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/test/java/org/bukkit/entity/EntityTypesTest.java @@ -224,3 +186,41 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 org.bukkit.entity.Panda.Gene bukkit = CraftPanda.fromNms(gene); assertNotNull(bukkit, "Bukkit gene null for " + gene); +diff --git a/src/test/java/org/bukkit/registry/RegistryConstantsTest.java b/src/test/java/org/bukkit/registry/RegistryConstantsTest.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/test/java/org/bukkit/registry/RegistryConstantsTest.java ++++ b/src/test/java/org/bukkit/registry/RegistryConstantsTest.java +@@ -0,0 +0,0 @@ public class RegistryConstantsTest extends AbstractTestingBase { + + @Test + public void testTrimMaterial() { +- this.testExcessConstants(TrimMaterial.class, Registry.TRIM_MATERIAL); ++ this.testExcessConstants(TrimMaterial.class, org.bukkit.Registry.TRIM_MATERIAL); // Paper - remap fix + this.testMissingConstants(TrimMaterial.class, Registries.TRIM_MATERIAL); + } + + @Test + public void testTrimPattern() { +- this.testExcessConstants(TrimPattern.class, Registry.TRIM_PATTERN); ++ this.testExcessConstants(TrimPattern.class, org.bukkit.Registry.TRIM_PATTERN); // Paper - remap fix + this.testMissingConstants(TrimPattern.class, Registries.TRIM_PATTERN); + } + +- private void testExcessConstants(Class clazz, Registry registry) { ++ private void testExcessConstants(Class clazz, org.bukkit.Registry registry) { // Paper - remap fix + List excessKeys = new ArrayList<>(); + + for (Field field : clazz.getFields()) { +diff --git a/src/test/java/org/bukkit/registry/RegistryLoadOrderTest.java b/src/test/java/org/bukkit/registry/RegistryLoadOrderTest.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/test/java/org/bukkit/registry/RegistryLoadOrderTest.java ++++ b/src/test/java/org/bukkit/registry/RegistryLoadOrderTest.java +@@ -0,0 +0,0 @@ public class RegistryLoadOrderTest extends AbstractTestingBase { + + private static boolean initInterface = false; + private static boolean initAbstract = false; +- private static Registry registry; ++ private static org.bukkit.Registry registry; // Paper - remap fix + + public static Stream data() { + return Stream.of( diff --git a/patches/server/Test-changes.patch b/patches/server/Test-changes.patch index 2c05e96619..09f135a330 100644 --- a/patches/server/Test-changes.patch +++ b/patches/server/Test-changes.patch @@ -102,8 +102,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/test/java/org/bukkit/support/DummyServer.java +++ b/src/test/java/org/bukkit/support/DummyServer.java @@ -0,0 +0,0 @@ public final class DummyServer { - - when(instance.getRegistry(any())).then(mock -> CraftRegistry.createRegistry(mock.getArgument(0), AbstractTestingBase.REGISTRY_CUSTOM)); + return registers.computeIfAbsent(aClass, key -> CraftRegistry.createRegistry(aClass, AbstractTestingBase.REGISTRY_CUSTOM)); + }); + // Paper start - testing additions + final Thread currentThread = Thread.currentThread(); diff --git a/work/Bukkit b/work/Bukkit index 63c208dd3f..1d5228782e 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 63c208dd3f16a0874b5e21348c35ce9e5c829d03 +Subproject commit 1d5228782e11c20c984621d26ea05822e46b3d3f diff --git a/work/CraftBukkit b/work/CraftBukkit index 771182f70c..292ec79e09 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 771182f70cd789f3d220cfef80876845a48ebec5 +Subproject commit 292ec79e09e3b90358560dd9e571452c9da7500f diff --git a/work/Spigot b/work/Spigot index 864e4acc0d..c198da22a8 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit 864e4acc0db6ad9899f269740823a23d082d18d0 +Subproject commit c198da22a814a0ba9c3128c3a9946286e0839b5a