diff --git a/patches/api/Add-missing-wind-charge-damage-type.patch b/patches/api/Add-missing-wind-charge-damage-type.patch new file mode 100644 index 0000000000..af70afa6af --- /dev/null +++ b/patches/api/Add-missing-wind-charge-damage-type.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> +Date: Fri, 3 May 2024 22:56:12 +0200 +Subject: [PATCH] Add missing wind charge damage type + + +diff --git a/src/main/java/org/bukkit/damage/DamageType.java b/src/main/java/org/bukkit/damage/DamageType.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/damage/DamageType.java ++++ b/src/main/java/org/bukkit/damage/DamageType.java +@@ -0,0 +0,0 @@ public interface DamageType extends Keyed, Translatable { + public static final DamageType BAD_RESPAWN_POINT = getDamageType("bad_respawn_point"); + public static final DamageType OUTSIDE_BORDER = getDamageType("outside_border"); + public static final DamageType GENERIC_KILL = getDamageType("generic_kill"); ++ // Paper start ++ @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.UPDATE_1_21) ++ @ApiStatus.Experimental ++ @org.jetbrains.annotations.Nullable ++ DamageType WIND_CHARGE = getExperimentalDamageType("wind_charge"); ++ // Paper end + + @NotNull + private static DamageType getDamageType(@NotNull String key) { +@@ -0,0 +0,0 @@ public interface DamageType extends Keyed, Translatable { + return Preconditions.checkNotNull(Registry.DAMAGE_TYPE.get(namespacedKey), "No DamageType found for %s. This is a bug.", namespacedKey); + } + ++ // Paper start ++ private static @org.jetbrains.annotations.Nullable DamageType getExperimentalDamageType(@NotNull String key) { ++ return Registry.DAMAGE_TYPE.get(NamespacedKey.minecraft(key)); ++ } ++ // Paper end ++ + /** + * {@inheritDoc} + *

diff --git a/patches/api/add-missing-Experimental-annotations.patch b/patches/api/add-missing-Experimental-annotations.patch index 121d20f55c..dfef48fa23 100644 --- a/patches/api/add-missing-Experimental-annotations.patch +++ b/patches/api/add-missing-Experimental-annotations.patch @@ -281,6 +281,18 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 MACE(4771, 1, 250), ITEM_FRAME(27318), GLOW_ITEM_FRAME(26473), +@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla + MOJANG_BANNER_PATTERN(11903, 1), + GLOBE_BANNER_PATTERN(27753, 1), + PIGLIN_BANNER_PATTERN(22028, 1), ++ @MinecraftExperimental(Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + FLOW_BANNER_PATTERN(32683, 1), ++ @MinecraftExperimental(Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + GUSTER_BANNER_PATTERN(27267, 1), + GOAT_HORN(28237, 1), + /** @@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla RAISER_ARMOR_TRIM_SMITHING_TEMPLATE(29116), HOST_ARMOR_TRIM_SMITHING_TEMPLATE(12165), @@ -784,10 +796,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 ENTITY_WITCH_AMBIENT("entity.witch.ambient"), ENTITY_WITCH_CELEBRATE("entity.witch.celebrate"), @@ -0,0 +0,0 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa + ENTITY_ZOMBIFIED_PIGLIN_ANGRY("entity.zombified_piglin.angry"), ENTITY_ZOMBIFIED_PIGLIN_DEATH("entity.zombified_piglin.death"), ENTITY_ZOMBIFIED_PIGLIN_HURT("entity.zombified_piglin.hurt"), - @MinecraftExperimental(Requires.UPDATE_1_21) -+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation +- @MinecraftExperimental(Requires.UPDATE_1_21) EVENT_MOB_EFFECT_BAD_OMEN("event.mob_effect.bad_omen"), @MinecraftExperimental(Requires.UPDATE_1_21) + @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation @@ -851,11 +863,30 @@ diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.ja index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/Tag.java +++ b/src/main/java/org/bukkit/Tag.java +@@ -0,0 +0,0 @@ public interface Tag extends Keyed { + /** + * Vanilla block tag representing all blocks which block wind charge explosions. + */ ++ @MinecraftExperimental(MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + Tag BLOCKS_WIND_CHARGE_EXPLOSIONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("blocks_wind_charge_explosions"), Material.class); + /** + * Vanilla block tag representing solid blocks which do not block hopper operation. +@@ -0,0 +0,0 @@ public interface Tag extends Keyed { + /** + * Vanilla item tag representing all items enchantable with mace enchantments. + */ ++ @MinecraftExperimental(MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + Tag ITEMS_ENCHANTABLE_MACE = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/mace"), Material.class); + /** + * Vanilla item tag representing all items that confer freeze immunity on @@ -0,0 +0,0 @@ public interface Tag extends Keyed { /** * Vanilla tag representing entities which deflect projectiles. */ -+ @org.jetbrains.annotations.ApiStatus.Experimental @MinecraftExperimental(value = MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @MinecraftExperimental(MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation Tag ENTITY_TYPES_DEFLECTS_PROJECTILES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("deflects_projectiles"), EntityType.class); /** * Vanilla tag representing entities which deflect arrows. @@ -863,10 +894,73 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 /** * Vanilla tag representing entities which can turn in boats. */ -+ @org.jetbrains.annotations.ApiStatus.Experimental @MinecraftExperimental(value = MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @MinecraftExperimental(MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation Tag ENTITY_TYPES_CAN_TURN_IN_BOATS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("can_turn_in_boats"), EntityType.class); /** * Vanilla tag representing all entities sensitive to illager enchantments. +@@ -0,0 +0,0 @@ public interface Tag extends Keyed { + /** + * Vanilla tag representing all entities which do not receive anger from wind charges. + */ ++ @MinecraftExperimental(MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + Tag ENTITY_TYPES_NO_ANGER_FROM_WIND_CHARGE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("no_anger_from_wind_charge"), EntityType.class); + /** + * Vanilla tag representing all entities which are immune from the oozing effect. + */ ++ @MinecraftExperimental(MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + Tag ENTITY_TYPES_IMMUNE_TO_OOZING = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("immune_to_oozing"), EntityType.class); + /** + * Vanilla tag representing all entities which are immune from the infested effect. + */ ++ @MinecraftExperimental(MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + Tag ENTITY_TYPES_IMMUNE_TO_INFESTED = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("immune_to_infested"), EntityType.class); + /** + * Vanilla tag representing all projectiles which can be punched back. +diff --git a/src/main/java/org/bukkit/block/banner/PatternType.java b/src/main/java/org/bukkit/block/banner/PatternType.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/block/banner/PatternType.java ++++ b/src/main/java/org/bukkit/block/banner/PatternType.java +@@ -0,0 +0,0 @@ public enum PatternType implements Keyed { + GLOBE("glb", "globe"), + PIGLIN("pig", "piglin"), + @MinecraftExperimental(Requires.UPDATE_1_21) ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + FLOW("flw", "flow"), + @MinecraftExperimental(Requires.UPDATE_1_21) ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + GUSTER("gus", "guster"); + + private final String identifier; +diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/enchantments/Enchantment.java ++++ b/src/main/java/org/bukkit/enchantments/Enchantment.java +@@ -0,0 +0,0 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve + * Increases fall damage of maces + */ + @MinecraftExperimental(Requires.UPDATE_1_21) ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + public static final Enchantment DENSITY = getEnchantment("density"); + + /** + * Reduces armor effectiveness against maces + */ + @MinecraftExperimental(Requires.UPDATE_1_21) ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + public static final Enchantment BREACH = getEnchantment("breach"); + + /** + * Emits wind burst upon hitting enemy + */ + @MinecraftExperimental(Requires.UPDATE_1_21) ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + public static final Enchantment WIND_BURST = getEnchantment("wind_burst"); + + /** diff --git a/src/main/java/org/bukkit/generator/structure/Structure.java b/src/main/java/org/bukkit/generator/structure/Structure.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/generator/structure/Structure.java @@ -879,6 +973,25 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public static final Structure TRIAL_CHAMBERS = getStructure("trial_chambers"); private static Structure getStructure(String name) { +diff --git a/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java b/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java ++++ b/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java +@@ -0,0 +0,0 @@ public interface TrimPattern extends Keyed, Translatable { + /** + * {@link Material#FLOW_ARMOR_TRIM_SMITHING_TEMPLATE}. + */ ++ @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + public static final TrimPattern FLOW = Registry.TRIM_PATTERN.get(NamespacedKey.minecraft("flow")); + /** + * {@link Material#BOLT_ARMOR_TRIM_SMITHING_TEMPLATE}. + */ ++ @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + public static final TrimPattern BOLT = Registry.TRIM_PATTERN.get(NamespacedKey.minecraft("bolt")); + + // Paper start - adventure diff --git a/src/main/java/org/bukkit/loot/LootTables.java b/src/main/java/org/bukkit/loot/LootTables.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/loot/LootTables.java @@ -968,6 +1081,54 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 TRIAL_CHAMBER_ITEMS_TO_DROP_WHEN_OMINOUS("spawners/trial_chamber/items_to_drop_when_ominous"), // Shearing SHEARING_BOGGED("shearing/bogged"), +diff --git a/src/main/java/org/bukkit/potion/PotionEffectType.java b/src/main/java/org/bukkit/potion/PotionEffectType.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/potion/PotionEffectType.java ++++ b/src/main/java/org/bukkit/potion/PotionEffectType.java +@@ -0,0 +0,0 @@ public abstract class PotionEffectType implements Keyed, Translatable, net.kyori + /** + * Causes trial spawners to become ominous. + */ ++ @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + public static final PotionEffectType TRIAL_OMEN = getPotionEffectType(34, "trial_omen"); + + /** + * Triggers a raid when a player enters a village. + */ ++ @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + public static final PotionEffectType RAID_OMEN = getPotionEffectType(35, "raid_omen"); + + /** + * Emits a wind burst upon death. + */ ++ @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + public static final PotionEffectType WIND_CHARGED = getPotionEffectType(36, "wind_charged"); + + /** + * Creates cobwebs upon death. + */ ++ @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + public static final PotionEffectType WEAVING = getPotionEffectType(37, "weaving"); + + /** + * Causes slimes to spawn upon death. + */ ++ @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + public static final PotionEffectType OOZING = getPotionEffectType(38, "oozing"); + + /** + * Chance of spawning silverfish when hurt. + */ ++ @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.UPDATE_1_21) // Paper - add missing annotation ++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + public static final PotionEffectType INFESTED = getPotionEffectType(39, "infested"); + + @NotNull diff --git a/src/main/java/org/bukkit/potion/PotionType.java b/src/main/java/org/bukkit/potion/PotionType.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/potion/PotionType.java diff --git a/patches/server/Test-changes.patch b/patches/server/Test-changes.patch index e001a6f2ac..8d0763841b 100644 --- a/patches/server/Test-changes.patch +++ b/patches/server/Test-changes.patch @@ -337,6 +337,19 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +public @interface MethodParameterSource { + String[] value() default {}; +} +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 testDamageType() { + this.testExcessConstants(DamageType.class, Registry.DAMAGE_TYPE); +- // this.testMissingConstants(DamageType.class, Registries.DAMAGE_TYPE); // WIND_CHARGE not registered ++ this.testMissingConstants(DamageType.class, Registries.DAMAGE_TYPE); // Paper - re-enable this one + } + + @Test diff --git a/src/test/java/org/bukkit/support/DummyServer.java b/src/test/java/org/bukkit/support/DummyServer.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/test/java/org/bukkit/support/DummyServer.java