diff --git a/paper-api/pom.xml b/paper-api/pom.xml index a8f0b14f86..99f799314f 100644 --- a/paper-api/pom.xml +++ b/paper-api/pom.xml @@ -5,7 +5,7 @@ org.bukkit bukkit - 1.21.3-R0.1-SNAPSHOT + 1.21.4-R0.1-SNAPSHOT jar Bukkit @@ -34,21 +34,21 @@ com.google.guava guava - 32.1.2-jre + 33.3.1-jre compile com.google.code.gson gson - 2.10.1 + 2.11.0 compile org.joml joml - 1.10.5 + 1.10.8 compile diff --git a/paper-api/src/main/java/org/bukkit/FeatureFlag.java b/paper-api/src/main/java/org/bukkit/FeatureFlag.java index 5c33daf443..54859fc5d8 100644 --- a/paper-api/src/main/java/org/bukkit/FeatureFlag.java +++ b/paper-api/src/main/java/org/bukkit/FeatureFlag.java @@ -39,6 +39,12 @@ public interface FeatureFlag extends Keyed { @Deprecated(since = "1.21") public static final FeatureFlag UPDATE_121 = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("update_1_21")); + /** + * AVAILABLE BETWEEN VERSIONS: 1.21.2 - 1.21.3 + * + * @deprecated not available since 1.21.4 + */ + @Deprecated(since = "1.21.4") public static final FeatureFlag WINTER_DROP = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("winter_drop")); public static final FeatureFlag REDSTONE_EXPERIMENTS = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("redstone_experiments")); diff --git a/paper-api/src/main/java/org/bukkit/Material.java b/paper-api/src/main/java/org/bukkit/Material.java index f13be40124..b8d3b0c473 100644 --- a/paper-api/src/main/java/org/bukkit/Material.java +++ b/paper-api/src/main/java/org/bukkit/Material.java @@ -93,6 +93,7 @@ import org.bukkit.block.data.type.RedstoneRail; import org.bukkit.block.data.type.RedstoneWallTorch; import org.bukkit.block.data.type.RedstoneWire; import org.bukkit.block.data.type.Repeater; +import org.bukkit.block.data.type.ResinClump; import org.bukkit.block.data.type.RespawnAnchor; import org.bukkit.block.data.type.Sapling; import org.bukkit.block.data.type.Scaffolding; @@ -215,8 +216,6 @@ public enum Material implements Keyed, Translatable { ACACIA_PLANKS(31312), CHERRY_PLANKS(8354), DARK_OAK_PLANKS(20869), - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_PLANKS(21660), MANGROVE_PLANKS(7078), BAMBOO_PLANKS(8520), @@ -254,8 +253,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Sapling} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_SAPLING(15508, Sapling.class), /** * BlockData: {@link MangrovePropagule} @@ -427,8 +424,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Orientable} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_LOG(13346, Orientable.class), /** * BlockData: {@link Orientable} @@ -489,8 +484,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Orientable} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) STRIPPED_PALE_OAK_LOG(25375, Orientable.class), /** * BlockData: {@link Orientable} @@ -535,8 +528,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Orientable} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) STRIPPED_PALE_OAK_WOOD(20330, Orientable.class), /** * BlockData: {@link Orientable} @@ -581,8 +572,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Orientable} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_WOOD(29429, Orientable.class), /** * BlockData: {@link Orientable} @@ -631,8 +620,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Leaves} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_LEAVES(6408, Leaves.class), /** * BlockData: {@link Leaves} @@ -682,6 +669,8 @@ public enum Material implements Keyed, Translatable { RED_WOOL(11621), BLACK_WOOL(16693), DANDELION(30558), + OPEN_EYEBLOSSOM(31238), + CLOSED_EYEBLOSSOM(29262), POPPY(12851), BLUE_ORCHID(13432), ALLIUM(6871), @@ -732,17 +721,11 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link MossyCarpet} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_MOSS_CARPET(24824, MossyCarpet.class), /** * BlockData: {@link HangingMoss} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_HANGING_MOSS(13108, HangingMoss.class), - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_MOSS_BLOCK(5318), /** * BlockData: {@link Waterlogged} @@ -791,8 +774,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Slab} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_SLAB(22048, Slab.class), /** * BlockData: {@link Slab} @@ -924,8 +905,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link CreakingHeart} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) CREAKING_HEART(11442, CreakingHeart.class), /** * BlockData: {@link Chest} @@ -994,8 +973,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Fence} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_FENCE(10547, Fence.class), /** * BlockData: {@link Fence} @@ -1091,6 +1068,25 @@ public enum Material implements Keyed, Translatable { * BlockData: {@link GlowLichen} */ GLOW_LICHEN(19165, GlowLichen.class), + /** + * BlockData: {@link ResinClump} + */ + RESIN_CLUMP(28662, ResinClump.class), + RESIN_BLOCK(26344), + RESIN_BRICKS(8331), + /** + * BlockData: {@link Stairs} + */ + RESIN_BRICK_STAIRS(31170, Stairs.class), + /** + * BlockData: {@link Slab} + */ + RESIN_BRICK_SLAB(25553, Slab.class), + /** + * BlockData: {@link Wall} + */ + RESIN_BRICK_WALL(8538, Wall.class), + CHISELED_RESIN_BRICKS(5529), /** * BlockData: {@link Stairs} */ @@ -1180,8 +1176,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Stairs} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_STAIRS(20755, Stairs.class), /** * BlockData: {@link Stairs} @@ -2048,8 +2042,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Switch} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_BUTTON(5238, Switch.class), /** * BlockData: {@link Switch} @@ -2114,8 +2106,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Powerable} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_PRESSURE_PLATE(30527, Powerable.class), /** * BlockData: {@link Powerable} @@ -2168,8 +2158,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Door} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_DOOR(23817, Door.class), /** * BlockData: {@link Door} @@ -2254,8 +2242,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link TrapDoor} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_TRAPDOOR(20647, TrapDoor.class), /** * BlockData: {@link TrapDoor} @@ -2336,8 +2322,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Gate} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_FENCE_GATE(21221, Gate.class), /** * BlockData: {@link Gate} @@ -2395,11 +2379,7 @@ public enum Material implements Keyed, Translatable { CHERRY_CHEST_BOAT(7165, 1), DARK_OAK_BOAT(28618, 1), DARK_OAK_CHEST_BOAT(8733, 1), - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_BOAT(18534, 1), - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_CHEST_BOAT(26297, 1), MANGROVE_BOAT(20792, 1), MANGROVE_CHEST_BOAT(18572, 1), @@ -2539,8 +2519,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link Sign} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_SIGN(12116, 16, Sign.class), /** * BlockData: {@link Sign} @@ -2589,8 +2567,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link HangingSign} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_HANGING_SIGN(7097, 16, HangingSign.class), /** * BlockData: {@link HangingSign} @@ -2860,8 +2836,6 @@ public enum Material implements Keyed, Translatable { WITHER_SKELETON_SPAWN_EGG(10073), WOLF_SPAWN_EGG(21692), ZOGLIN_SPAWN_EGG(7442), - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) CREAKING_SPAWN_EGG(9598), ZOMBIE_SPAWN_EGG(5814), ZOMBIE_HORSE_SPAWN_EGG(4275), @@ -2917,6 +2891,7 @@ public enum Material implements Keyed, Translatable { FIREWORK_STAR(12190), ENCHANTED_BOOK(11741, 1), NETHER_BRICK(19996), + RESIN_BRICK(19050), PRISMARINE_SHARD(10993), PRISMARINE_CRYSTALS(31546), RABBIT(23068), @@ -3438,8 +3413,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link WallSign} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_WALL_SIGN(23103, 16, WallSign.class), /** * BlockData: {@link WallSign} @@ -3480,8 +3453,6 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link WallHangingSign} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_WALL_HANGING_SIGN(23484, WallHangingSign.class), /** * BlockData: {@link WallHangingSign} @@ -3553,8 +3524,6 @@ public enum Material implements Keyed, Translatable { POTTED_ACACIA_SAPLING(14096), POTTED_CHERRY_SAPLING(30785), POTTED_DARK_OAK_SAPLING(6486), - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) POTTED_PALE_OAK_SAPLING(15538), POTTED_MANGROVE_PROPAGULE(22003), POTTED_FERN(23315), @@ -3842,6 +3811,8 @@ public enum Material implements Keyed, Translatable { BIG_DRIPLEAF_STEM(13167, Dripleaf.class), POTTED_AZALEA_BUSH(20430), POTTED_FLOWERING_AZALEA_BUSH(10609), + POTTED_OPEN_EYEBLOSSOM(24999), + POTTED_CLOSED_EYEBLOSSOM(16694), // ----- Legacy Separator ----- @Deprecated(since = "1.13") LEGACY_AIR(0, 0), diff --git a/paper-api/src/main/java/org/bukkit/MinecraftExperimental.java b/paper-api/src/main/java/org/bukkit/MinecraftExperimental.java index b7845523e8..a86b87e4c3 100644 --- a/paper-api/src/main/java/org/bukkit/MinecraftExperimental.java +++ b/paper-api/src/main/java/org/bukkit/MinecraftExperimental.java @@ -47,6 +47,5 @@ public @interface MinecraftExperimental { @ApiStatus.Internal public enum Requires { - WINTER_DROP, } } diff --git a/paper-api/src/main/java/org/bukkit/Particle.java b/paper-api/src/main/java/org/bukkit/Particle.java index 13557f78a6..bc23886a62 100644 --- a/paper-api/src/main/java/org/bukkit/Particle.java +++ b/paper-api/src/main/java/org/bukkit/Particle.java @@ -126,6 +126,7 @@ public enum Particle implements Keyed { */ SHRIEK("shriek", Integer.class), CHERRY_LEAVES("cherry_leaves"), + PALE_OAK_LEAVES("pale_oak_leaves"), EGG_CRACK("egg_crack"), DUST_PLUME("dust_plume"), WHITE_SMOKE("white_smoke"), @@ -148,10 +149,10 @@ public enum Particle implements Keyed { @ApiStatus.Experimental BLOCK_CRUMBLE("block_crumble", BlockData.class), /** - * Uses {@link TargetColor} as DataType + * Uses {@link Trail} as DataType */ @ApiStatus.Experimental - TRAIL("trail", TargetColor.class), + TRAIL("trail", Trail.class), OMINOUS_SPAWNING("ominous_spawning"), RAID_OMEN("raid_omen"), TRIAL_OMEN("trial_omen"), @@ -266,17 +267,19 @@ public enum Particle implements Keyed { } /** - * Options which can be applied to trail particles - a location and color. + * Options which can be applied to trail particles - a location, color and duration. */ @ApiStatus.Experimental - public static class TargetColor { + public static class Trail { private final Location target; private final Color color; + private final int duration; - public TargetColor(@NotNull Location target, @NotNull Color color) { + public Trail(@NotNull Location target, @NotNull Color color, int duration) { this.target = target; this.color = color; + this.duration = duration; } /** @@ -298,5 +301,14 @@ public enum Particle implements Keyed { public Color getColor() { return color; } + + /** + * The duration of the trail to be displayed. + * + * @return trail duration + */ + public int getDuration() { + return duration; + } } } diff --git a/paper-api/src/main/java/org/bukkit/Sound.java b/paper-api/src/main/java/org/bukkit/Sound.java index 4204a7dac1..fab510afe4 100644 --- a/paper-api/src/main/java/org/bukkit/Sound.java +++ b/paper-api/src/main/java/org/bukkit/Sound.java @@ -302,6 +302,11 @@ public interface Sound extends OldEnum, Keyed { Sound BLOCK_END_GATEWAY_SPAWN = getSound("block.end_gateway.spawn"); Sound BLOCK_END_PORTAL_FRAME_FILL = getSound("block.end_portal_frame.fill"); Sound BLOCK_END_PORTAL_SPAWN = getSound("block.end_portal.spawn"); + Sound BLOCK_EYEBLOSSOM_CLOSE = getSound("block.eyeblossom.close"); + Sound BLOCK_EYEBLOSSOM_CLOSE_LONG = getSound("block.eyeblossom.close_long"); + Sound BLOCK_EYEBLOSSOM_IDLE = getSound("block.eyeblossom.idle"); + Sound BLOCK_EYEBLOSSOM_OPEN = getSound("block.eyeblossom.open"); + Sound BLOCK_EYEBLOSSOM_OPEN_LONG = getSound("block.eyeblossom.open_long"); Sound BLOCK_FENCE_GATE_CLOSE = getSound("block.fence_gate.close"); Sound BLOCK_FENCE_GATE_OPEN = getSound("block.fence_gate.open"); Sound BLOCK_FIRE_AMBIENT = getSound("block.fire.ambient"); @@ -558,6 +563,15 @@ public interface Sound extends OldEnum, Keyed { Sound BLOCK_POWDER_SNOW_STEP = getSound("block.powder_snow.step"); Sound BLOCK_PUMPKIN_CARVE = getSound("block.pumpkin.carve"); Sound BLOCK_REDSTONE_TORCH_BURNOUT = getSound("block.redstone_torch.burnout"); + Sound BLOCK_RESIN_BREAK = getSound("block.resin.break"); + Sound BLOCK_RESIN_BRICKS_BREAK = getSound("block.resin_bricks.break"); + Sound BLOCK_RESIN_BRICKS_FALL = getSound("block.resin_bricks.fall"); + Sound BLOCK_RESIN_BRICKS_HIT = getSound("block.resin_bricks.hit"); + Sound BLOCK_RESIN_BRICKS_PLACE = getSound("block.resin_bricks.place"); + Sound BLOCK_RESIN_BRICKS_STEP = getSound("block.resin_bricks.step"); + Sound BLOCK_RESIN_FALL = getSound("block.resin.fall"); + Sound BLOCK_RESIN_PLACE = getSound("block.resin.place"); + Sound BLOCK_RESIN_STEP = getSound("block.resin.step"); Sound BLOCK_RESPAWN_ANCHOR_AMBIENT = getSound("block.respawn_anchor.ambient"); Sound BLOCK_RESPAWN_ANCHOR_CHARGE = getSound("block.respawn_anchor.charge"); Sound BLOCK_RESPAWN_ANCHOR_DEPLETE = getSound("block.respawn_anchor.deplete"); @@ -899,6 +913,7 @@ public interface Sound extends OldEnum, Keyed { Sound ENTITY_CREAKING_SPAWN = getSound("entity.creaking.spawn"); Sound ENTITY_CREAKING_STEP = getSound("entity.creaking.step"); Sound ENTITY_CREAKING_SWAY = getSound("entity.creaking.sway"); + Sound ENTITY_CREAKING_TWITCH = getSound("entity.creaking.twitch"); Sound ENTITY_CREAKING_UNFREEZE = getSound("entity.creaking.unfreeze"); Sound ENTITY_CREEPER_DEATH = getSound("entity.creeper.death"); Sound ENTITY_CREEPER_HURT = getSound("entity.creeper.hurt"); diff --git a/paper-api/src/main/java/org/bukkit/Tag.java b/paper-api/src/main/java/org/bukkit/Tag.java index 274830961b..fb7d8bb345 100644 --- a/paper-api/src/main/java/org/bukkit/Tag.java +++ b/paper-api/src/main/java/org/bukkit/Tag.java @@ -212,14 +212,14 @@ public interface Tag extends Keyed { * Vanilla block tag representing all fences. */ Tag FENCES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("fences"), Material.class); - /** - * Vanilla block tag representing all tall flowers. - */ - Tag TALL_FLOWERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("tall_flowers"), Material.class); /** * Vanilla block tag representing all flowers. */ Tag FLOWERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("flowers"), Material.class); + /** + * Vanilla block tag representing all blocks which attract bees. + */ + Tag BEE_ATTRACTIVE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bee_attractive"), Material.class); /** * Vanilla block tag representing all piglin repellents. */ @@ -1094,10 +1094,6 @@ public interface Tag extends Keyed { * Vanilla item tag representing all materials which can be used for trimming armor. */ Tag ITEMS_TRIM_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_materials"), Material.class); - /** - * Vanilla item tag representing all trimming templates. - */ - Tag ITEMS_TRIM_TEMPLATES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_templates"), Material.class); /** * Vanilla item tag representing all decorated pot sherds. */ @@ -1159,6 +1155,26 @@ public interface Tag extends Keyed { * Vanilla item tag representing all bundle items. */ Tag ITEMS_BUNDLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bundles"), Material.class); + /** + * Vanilla item tag representing all skeleton preferred weapons. + */ + Tag ITEMS_SKELETON_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("skeleton_preferred_weapons"), Material.class); + /** + * Vanilla item tag representing all drowned preferred weapons. + */ + Tag ITEMS_DROWNED_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("drowned_preferred_weapons"), Material.class); + /** + * Vanilla item tag representing all piglin preferred weapons. + */ + Tag ITEMS_PIGLIN_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_preferred_weapons"), Material.class); + /** + * Vanilla item tag representing all pillager preferred weapons. + */ + Tag ITEMS_PILLAGER_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("pillager_preferred_weapons"), Material.class); + /** + * Vanilla item tag representing all wither skeleton disliked weapons. + */ + Tag ITEMS_WITHER_SKELETON_DISLIKED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wither_skeleton_disliked_weapons"), Material.class); /** * Vanilla item tag representing all enchantable foot armor. */ diff --git a/paper-api/src/main/java/org/bukkit/TreeType.java b/paper-api/src/main/java/org/bukkit/TreeType.java index aaf586f9d4..8f95919b58 100644 --- a/paper-api/src/main/java/org/bukkit/TreeType.java +++ b/paper-api/src/main/java/org/bukkit/TreeType.java @@ -1,7 +1,5 @@ package org.bukkit; -import org.jetbrains.annotations.ApiStatus; - /** * Tree and organic structure types. */ @@ -106,13 +104,9 @@ public enum TreeType { /** * Pale oak tree */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK, /** * Pale oak tree with a creaking heart */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_CREAKING, } diff --git a/paper-api/src/main/java/org/bukkit/block/Biome.java b/paper-api/src/main/java/org/bukkit/block/Biome.java index f46932a12f..f04aa0300b 100644 --- a/paper-api/src/main/java/org/bukkit/block/Biome.java +++ b/paper-api/src/main/java/org/bukkit/block/Biome.java @@ -6,12 +6,10 @@ import java.util.Locale; import org.bukkit.Bukkit; import org.bukkit.FeatureFlag; import org.bukkit.Keyed; -import org.bukkit.MinecraftExperimental; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.packs.DataPack; import org.bukkit.util.OldEnum; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -47,6 +45,7 @@ public interface Biome extends OldEnum, Keyed { Biome SNOWY_BEACH = getBiome("snowy_beach"); Biome BIRCH_FOREST = getBiome("birch_forest"); Biome DARK_FOREST = getBiome("dark_forest"); + Biome PALE_GARDEN = getBiome("pale_garden"); Biome SNOWY_TAIGA = getBiome("snowy_taiga"); Biome OLD_GROWTH_PINE_TAIGA = getBiome("old_growth_pine_taiga"); Biome WINDSWEPT_FOREST = getBiome("windswept_forest"); @@ -88,9 +87,6 @@ public interface Biome extends OldEnum, Keyed { Biome JAGGED_PEAKS = getBiome("jagged_peaks"); Biome STONY_PEAKS = getBiome("stony_peaks"); Biome CHERRY_GROVE = getBiome("cherry_grove"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) - Biome PALE_GARDEN = Registry.BIOME.get(NamespacedKey.minecraft("pale_garden")); /** * Represents a custom Biome diff --git a/paper-api/src/main/java/org/bukkit/block/BlockType.java b/paper-api/src/main/java/org/bukkit/block/BlockType.java index aea98cddf2..04bbbaba10 100644 --- a/paper-api/src/main/java/org/bukkit/block/BlockType.java +++ b/paper-api/src/main/java/org/bukkit/block/BlockType.java @@ -3,7 +3,6 @@ package org.bukkit.block; import java.util.function.Consumer; import org.bukkit.Keyed; import org.bukkit.Material; -import org.bukkit.MinecraftExperimental; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.Translatable; @@ -88,6 +87,7 @@ import org.bukkit.block.data.type.RedstoneRail; import org.bukkit.block.data.type.RedstoneWallTorch; import org.bukkit.block.data.type.RedstoneWire; import org.bukkit.block.data.type.Repeater; +import org.bukkit.block.data.type.ResinClump; import org.bukkit.block.data.type.RespawnAnchor; import org.bukkit.block.data.type.Sapling; import org.bukkit.block.data.type.Scaffolding; @@ -209,8 +209,6 @@ public interface BlockType extends Keyed, Translatable { BlockType.Typed ACACIA_PLANKS = getBlockType("acacia_planks"); BlockType.Typed CHERRY_PLANKS = getBlockType("cherry_planks"); BlockType.Typed DARK_OAK_PLANKS = getBlockType("dark_oak_planks"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_PLANKS = getBlockType("pale_oak_planks"); BlockType.Typed MANGROVE_PLANKS = getBlockType("mangrove_planks"); BlockType.Typed BAMBOO_PLANKS = getBlockType("bamboo_planks"); @@ -246,8 +244,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Sapling} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_SAPLING = getBlockType("pale_oak_sapling"); /** * BlockData: {@link MangrovePropagule} @@ -311,8 +307,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Orientable} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_LOG = getBlockType("pale_oak_log"); /** * BlockData: {@link Orientable} @@ -357,8 +351,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Orientable} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed STRIPPED_PALE_OAK_LOG = getBlockType("stripped_pale_oak_log"); /** * BlockData: {@link Orientable} @@ -403,8 +395,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Orientable} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_WOOD = getBlockType("pale_oak_wood"); /** * BlockData: {@link Orientable} @@ -441,8 +431,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Orientable} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed STRIPPED_PALE_OAK_WOOD = getBlockType("stripped_pale_oak_wood"); /** * BlockData: {@link Orientable} @@ -479,8 +467,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Leaves} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_LEAVES = getBlockType("pale_oak_leaves"); /** * BlockData: {@link Leaves} @@ -668,8 +654,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Fire} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed CREAKING_HEART = getBlockType("creaking_heart"); /** * BlockData: {@link Stairs} @@ -730,8 +714,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Sign} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_SIGN = getBlockType("pale_oak_sign"); /** * BlockData: {@link Sign} @@ -788,8 +770,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link WallSign} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_WALL_SIGN = getBlockType("pale_oak_wall_sign"); /** * BlockData: {@link WallSign} @@ -830,8 +810,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link HangingSign} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_HANGING_SIGN = getBlockType("pale_oak_hanging_sign"); /** * BlockData: {@link HangingSign} @@ -880,8 +858,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link WallHangingSign} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_WALL_HANGING_SIGN = getBlockType("pale_oak_wall_hanging_sign"); /** * BlockData: {@link WallHangingSign} @@ -942,8 +918,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Powerable} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_PRESSURE_PLATE = getBlockType("pale_oak_pressure_plate"); /** * BlockData: {@link Powerable} @@ -1080,8 +1054,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link TrapDoor} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_TRAPDOOR = getBlockType("pale_oak_trapdoor"); /** * BlockData: {@link TrapDoor} @@ -1153,6 +1125,10 @@ public interface BlockType extends Keyed, Translatable { * BlockData: {@link GlowLichen} */ BlockType.Typed GLOW_LICHEN = getBlockType("glow_lichen"); + /** + * BlockData: {@link ResinClump} + */ + BlockType.Typed RESIN_CLUMP = getBlockType("resin_clump"); /** * BlockData: {@link Gate} */ @@ -1174,6 +1150,21 @@ public interface BlockType extends Keyed, Translatable { */ BlockType.Typed MYCELIUM = getBlockType("mycelium"); BlockType.Typed LILY_PAD = getBlockType("lily_pad"); + BlockType.Typed RESIN_BLOCK = getBlockType("resin_block"); + BlockType.Typed RESIN_BRICKS = getBlockType("resin_bricks"); + /** + * BlockData: {@link Stairs} + */ + BlockType.Typed RESIN_BRICK_STAIRS = getBlockType("resin_brick_stairs"); + /** + * BlockData: {@link Slab} + */ + BlockType.Typed RESIN_BRICK_SLAB = getBlockType("resin_brick_slab"); + /** + * BlockData: {@link Wall} + */ + BlockType.Typed RESIN_BRICK_WALL = getBlockType("resin_brick_wall"); + BlockType.Typed CHISELED_RESIN_BRICKS = getBlockType("chiseled_resin_bricks"); BlockType.Typed NETHER_BRICKS = getBlockType("nether_bricks"); /** * BlockData: {@link Fence} @@ -1270,8 +1261,6 @@ public interface BlockType extends Keyed, Translatable { BlockType.Typed POTTED_ACACIA_SAPLING = getBlockType("potted_acacia_sapling"); BlockType.Typed POTTED_CHERRY_SAPLING = getBlockType("potted_cherry_sapling"); BlockType.Typed POTTED_DARK_OAK_SAPLING = getBlockType("potted_dark_oak_sapling"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed POTTED_PALE_OAK_SAPLING = getBlockType("potted_pale_oak_sapling"); BlockType.Typed POTTED_MANGROVE_PROPAGULE = getBlockType("potted_mangrove_propagule"); BlockType.Typed POTTED_FERN = getBlockType("potted_fern"); @@ -1331,8 +1320,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Switch} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_BUTTON = getBlockType("pale_oak_button"); /** * BlockData: {@link Switch} @@ -1549,8 +1536,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Stairs} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_STAIRS = getBlockType("pale_oak_stairs"); /** * BlockData: {@link Stairs} @@ -1818,8 +1803,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Slab} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_SLAB = getBlockType("pale_oak_slab"); /** * BlockData: {@link Slab} @@ -1920,8 +1903,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Gate} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_FENCE_GATE = getBlockType("pale_oak_fence_gate"); /** * BlockData: {@link Gate} @@ -1958,8 +1939,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Fence} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_FENCE = getBlockType("pale_oak_fence"); /** * BlockData: {@link Fence} @@ -1996,8 +1975,6 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link Door} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_OAK_DOOR = getBlockType("pale_oak_door"); /** * BlockData: {@link Door} @@ -3309,17 +3286,11 @@ public interface BlockType extends Keyed, Translatable { /** * BlockData: {@link MossyCarpet} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_MOSS_CARPET = getBlockType("pale_moss_carpet"); /** * BlockData: {@link HangingMoss} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_HANGING_MOSS = getBlockType("pale_hanging_moss"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) BlockType.Typed PALE_MOSS_BLOCK = getBlockType("pale_moss_block"); /** * BlockData: {@link BigDripleaf} @@ -3442,6 +3413,10 @@ public interface BlockType extends Keyed, Translatable { * BlockData: {@link Waterlogged} */ BlockType.Typed HEAVY_CORE = getBlockType("heavy_core"); + BlockType.Typed OPEN_EYEBLOSSOM = getBlockType("open_eyeblossom"); + BlockType.Typed CLOSED_EYEBLOSSOM = getBlockType("closed_eyeblossom"); + BlockType.Typed POTTED_OPEN_EYEBLOSSOM = getBlockType("potted_open_eyeblossom"); + BlockType.Typed POTTED_CLOSED_EYEBLOSSOM = getBlockType("potted_closed_eyeblossom"); // @NotNull diff --git a/paper-api/src/main/java/org/bukkit/block/CreakingHeart.java b/paper-api/src/main/java/org/bukkit/block/CreakingHeart.java index dba403a83f..0b60d38f7e 100644 --- a/paper-api/src/main/java/org/bukkit/block/CreakingHeart.java +++ b/paper-api/src/main/java/org/bukkit/block/CreakingHeart.java @@ -1,12 +1,10 @@ package org.bukkit.block; -import org.bukkit.MinecraftExperimental; import org.jetbrains.annotations.ApiStatus; /** * Represents a captured state of a creaking heart. */ @ApiStatus.Experimental -@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) public interface CreakingHeart extends TileState { } diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/CreakingHeart.java b/paper-api/src/main/java/org/bukkit/block/data/type/CreakingHeart.java index c0d22e3edd..aadd902f37 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/CreakingHeart.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/CreakingHeart.java @@ -1,48 +1,41 @@ package org.bukkit.block.data.type; -import org.bukkit.MinecraftExperimental; import org.bukkit.block.data.Orientable; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** - * 'creaking' is the creaking status of this block. + * 'active' is whether the block is active. + *
+ * 'natural' is whether this is a naturally generated block. */ @ApiStatus.Experimental -@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) public interface CreakingHeart extends Orientable { /** - * Gets the value of the 'creaking' property. + * Gets the value of the 'active' property. * - * @return the 'creaking' value + * @return the 'active' value */ - @NotNull - Creaking getCreaking(); + boolean isActive(); /** - * Sets the value of the 'creaking' property. + * Sets the value of the 'active' property. * - * @param creaking the new 'creaking' value + * @param active the new 'active' value */ - void setCreaking(@NotNull Creaking creaking); + void setActive(boolean active); /** - * Creaking status. + * Gets the value of the 'natural' property. + * + * @return the 'natural' value */ - public enum Creaking { + boolean isNatural(); - /** - * The block is disabled. - */ - DISABLED, - /** - * The block is dormant. - */ - DORMANT, - /** - * The block is active. - */ - ACTIVE; - } + /** + * Sets the value of the 'natural' property. + * + * @param natural the new 'natural' value + */ + void setNatural(boolean natural); } diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/HangingMoss.java b/paper-api/src/main/java/org/bukkit/block/data/type/HangingMoss.java index 11f6629f73..a7f2954091 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/HangingMoss.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/HangingMoss.java @@ -1,6 +1,5 @@ package org.bukkit.block.data.type; -import org.bukkit.MinecraftExperimental; import org.bukkit.block.data.BlockData; import org.jetbrains.annotations.ApiStatus; @@ -8,7 +7,6 @@ import org.jetbrains.annotations.ApiStatus; * 'tip' indicates whether this block is a tip. */ @ApiStatus.Experimental -@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) public interface HangingMoss extends BlockData { /** diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java b/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java index e8463c71f9..dd8264faa6 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java @@ -1,6 +1,5 @@ package org.bukkit.block.data.type; -import org.bukkit.MinecraftExperimental; import org.bukkit.block.BlockFace; import org.bukkit.block.data.BlockData; import org.jetbrains.annotations.ApiStatus; @@ -13,7 +12,6 @@ import org.jetbrains.annotations.NotNull; * 'bottom' denotes whether this is a bottom block. */ @ApiStatus.Experimental -@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) public interface MossyCarpet extends BlockData { /** diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/ResinClump.java b/paper-api/src/main/java/org/bukkit/block/data/type/ResinClump.java new file mode 100644 index 0000000000..a821c824ef --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/ResinClump.java @@ -0,0 +1,7 @@ +package org.bukkit.block.data.type; + +import org.bukkit.block.data.MultipleFacing; +import org.bukkit.block.data.Waterlogged; + +public interface ResinClump extends MultipleFacing, Waterlogged { +} diff --git a/paper-api/src/main/java/org/bukkit/entity/Creaking.java b/paper-api/src/main/java/org/bukkit/entity/Creaking.java index 9264ec8a03..6a7c952b61 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Creaking.java +++ b/paper-api/src/main/java/org/bukkit/entity/Creaking.java @@ -1,13 +1,11 @@ package org.bukkit.entity; -import org.bukkit.MinecraftExperimental; import org.jetbrains.annotations.ApiStatus; /** * Represents a Creaking. */ @ApiStatus.Experimental -@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) public interface Creaking extends Monster { } diff --git a/paper-api/src/main/java/org/bukkit/entity/CreakingTransient.java b/paper-api/src/main/java/org/bukkit/entity/CreakingTransient.java deleted file mode 100644 index 93fad9ca72..0000000000 --- a/paper-api/src/main/java/org/bukkit/entity/CreakingTransient.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.bukkit.entity; - -import org.bukkit.MinecraftExperimental; -import org.jetbrains.annotations.ApiStatus; - -/** - * Represents a Creaking spawned from a creaking heart which will not persist. - */ -@ApiStatus.Experimental -@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) -public interface CreakingTransient extends Creaking { - -} diff --git a/paper-api/src/main/java/org/bukkit/entity/EntityType.java b/paper-api/src/main/java/org/bukkit/entity/EntityType.java index 10c957a6bb..896b87bfc3 100644 --- a/paper-api/src/main/java/org/bukkit/entity/EntityType.java +++ b/paper-api/src/main/java/org/bukkit/entity/EntityType.java @@ -7,7 +7,6 @@ import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.Keyed; import org.bukkit.Location; -import org.bukkit.MinecraftExperimental; import org.bukkit.NamespacedKey; import org.bukkit.Translatable; import org.bukkit.World; @@ -40,7 +39,6 @@ import org.bukkit.entity.minecart.SpawnerMinecart; import org.bukkit.entity.minecart.StorageMinecart; import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -324,20 +322,11 @@ public enum EntityType implements Keyed, Translatable { MANGROVE_CHEST_BOAT("mangrove_chest_boat", MangroveChestBoat.class, -1), OAK_BOAT("oak_boat", OakBoat.class, -1), OAK_CHEST_BOAT("oak_chest_boat", OakChestBoat.class, -1), - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_BOAT("pale_oak_boat", PaleOakBoat.class, -1), - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) PALE_OAK_CHEST_BOAT("pale_oak_chest_boat", PaleOakChestBoat.class, -1), SPRUCE_BOAT("spruce_boat", SpruceBoat.class, -1), SPRUCE_CHEST_BOAT("spruce_chest_boat", SpruceChestBoat.class, -1), - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) CREAKING("creaking", Creaking.class, -1), - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) - CREAKING_TRANSIENT("creaking_transient", CreakingTransient.class, -1), /** * A fishing line and bobber. */ diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakBoat.java index 6b42e99fc3..604d46bb40 100644 --- a/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakBoat.java +++ b/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakBoat.java @@ -1,6 +1,5 @@ package org.bukkit.entity.boat; -import org.bukkit.MinecraftExperimental; import org.bukkit.entity.Boat; import org.jetbrains.annotations.ApiStatus; @@ -8,6 +7,5 @@ import org.jetbrains.annotations.ApiStatus; * Represents an pale oak boat. */ @ApiStatus.Experimental -@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) public interface PaleOakBoat extends Boat { } diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakChestBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakChestBoat.java index 09fe082139..ebb5ae22e3 100644 --- a/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakChestBoat.java +++ b/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakChestBoat.java @@ -1,6 +1,5 @@ package org.bukkit.entity.boat; -import org.bukkit.MinecraftExperimental; import org.bukkit.entity.ChestBoat; import org.jetbrains.annotations.ApiStatus; @@ -8,6 +7,5 @@ import org.jetbrains.annotations.ApiStatus; * Represents an pale oak chest boat. */ @ApiStatus.Experimental -@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) public interface PaleOakChestBoat extends ChestBoat { } diff --git a/paper-api/src/main/java/org/bukkit/entity/minecart/ExplosiveMinecart.java b/paper-api/src/main/java/org/bukkit/entity/minecart/ExplosiveMinecart.java index aaadb1c401..a65d767705 100644 --- a/paper-api/src/main/java/org/bukkit/entity/minecart/ExplosiveMinecart.java +++ b/paper-api/src/main/java/org/bukkit/entity/minecart/ExplosiveMinecart.java @@ -28,6 +28,22 @@ public interface ExplosiveMinecart extends Minecart, Explosive { */ public int getFuseTicks(); + /** + * Gets the factor by which explosion yield increases based on Minecart + * speed. + * + * @return increase factor + */ + public float getExplosionSpeedFactor(); + + /** + * Sets the factor by which explosion yield increases based on Minecart + * speed. + * + * @param factor new factor + */ + public void setExplosionSpeedFactor(float factor); + /** * Ignite this minecart's fuse naturally. */ diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemType.java b/paper-api/src/main/java/org/bukkit/inventory/ItemType.java index ad423abaed..4f3579253e 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ItemType.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ItemType.java @@ -4,7 +4,6 @@ import com.google.common.collect.Multimap; import java.util.function.Consumer; import org.bukkit.Keyed; import org.bukkit.Material; -import org.bukkit.MinecraftExperimental; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.Translatable; @@ -136,8 +135,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_PLANKS = getItemType("acacia_planks"); ItemType.Typed CHERRY_PLANKS = getItemType("cherry_planks"); ItemType.Typed DARK_OAK_PLANKS = getItemType("dark_oak_planks"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_PLANKS = getItemType("pale_oak_planks"); ItemType.Typed MANGROVE_PLANKS = getItemType("mangrove_planks"); ItemType.Typed BAMBOO_PLANKS = getItemType("bamboo_planks"); @@ -151,8 +148,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_SAPLING = getItemType("acacia_sapling"); ItemType.Typed CHERRY_SAPLING = getItemType("cherry_sapling"); ItemType.Typed DARK_OAK_SAPLING = getItemType("dark_oak_sapling"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_SAPLING = getItemType("pale_oak_sapling"); ItemType.Typed MANGROVE_PROPAGULE = getItemType("mangrove_propagule"); ItemType.Typed BEDROCK = getItemType("bedrock"); @@ -244,8 +239,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_LOG = getItemType("acacia_log"); ItemType.Typed CHERRY_LOG = getItemType("cherry_log"); ItemType.Typed DARK_OAK_LOG = getItemType("dark_oak_log"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_LOG = getItemType("pale_oak_log"); ItemType.Typed MANGROVE_LOG = getItemType("mangrove_log"); ItemType.Typed MANGROVE_ROOTS = getItemType("mangrove_roots"); @@ -260,8 +253,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed STRIPPED_ACACIA_LOG = getItemType("stripped_acacia_log"); ItemType.Typed STRIPPED_CHERRY_LOG = getItemType("stripped_cherry_log"); ItemType.Typed STRIPPED_DARK_OAK_LOG = getItemType("stripped_dark_oak_log"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed STRIPPED_PALE_OAK_LOG = getItemType("stripped_pale_oak_log"); ItemType.Typed STRIPPED_MANGROVE_LOG = getItemType("stripped_mangrove_log"); ItemType.Typed STRIPPED_CRIMSON_STEM = getItemType("stripped_crimson_stem"); @@ -273,8 +264,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed STRIPPED_ACACIA_WOOD = getItemType("stripped_acacia_wood"); ItemType.Typed STRIPPED_CHERRY_WOOD = getItemType("stripped_cherry_wood"); ItemType.Typed STRIPPED_DARK_OAK_WOOD = getItemType("stripped_dark_oak_wood"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed STRIPPED_PALE_OAK_WOOD = getItemType("stripped_pale_oak_wood"); ItemType.Typed STRIPPED_MANGROVE_WOOD = getItemType("stripped_mangrove_wood"); ItemType.Typed STRIPPED_CRIMSON_HYPHAE = getItemType("stripped_crimson_hyphae"); @@ -287,8 +276,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_WOOD = getItemType("acacia_wood"); ItemType.Typed CHERRY_WOOD = getItemType("cherry_wood"); ItemType.Typed DARK_OAK_WOOD = getItemType("dark_oak_wood"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_WOOD = getItemType("pale_oak_wood"); ItemType.Typed MANGROVE_WOOD = getItemType("mangrove_wood"); ItemType.Typed CRIMSON_HYPHAE = getItemType("crimson_hyphae"); @@ -300,8 +287,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_LEAVES = getItemType("acacia_leaves"); ItemType.Typed CHERRY_LEAVES = getItemType("cherry_leaves"); ItemType.Typed DARK_OAK_LEAVES = getItemType("dark_oak_leaves"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_LEAVES = getItemType("pale_oak_leaves"); ItemType.Typed MANGROVE_LEAVES = getItemType("mangrove_leaves"); ItemType.Typed AZALEA_LEAVES = getItemType("azalea_leaves"); @@ -339,6 +324,8 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed RED_WOOL = getItemType("red_wool"); ItemType.Typed BLACK_WOOL = getItemType("black_wool"); ItemType.Typed DANDELION = getItemType("dandelion"); + ItemType.Typed OPEN_EYEBLOSSOM = getItemType("open_eyeblossom"); + ItemType.Typed CLOSED_EYEBLOSSOM = getItemType("closed_eyeblossom"); ItemType.Typed POPPY = getItemType("poppy"); ItemType.Typed BLUE_ORCHID = getItemType("blue_orchid"); ItemType.Typed ALLIUM = getItemType("allium"); @@ -368,14 +355,8 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed PINK_PETALS = getItemType("pink_petals"); ItemType.Typed MOSS_CARPET = getItemType("moss_carpet"); ItemType.Typed MOSS_BLOCK = getItemType("moss_block"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_MOSS_CARPET = getItemType("pale_moss_carpet"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_HANGING_MOSS = getItemType("pale_hanging_moss"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_MOSS_BLOCK = getItemType("pale_moss_block"); ItemType.Typed HANGING_ROOTS = getItemType("hanging_roots"); ItemType.Typed BIG_DRIPLEAF = getItemType("big_dripleaf"); @@ -388,8 +369,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_SLAB = getItemType("acacia_slab"); ItemType.Typed CHERRY_SLAB = getItemType("cherry_slab"); ItemType.Typed DARK_OAK_SLAB = getItemType("dark_oak_slab"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_SLAB = getItemType("pale_oak_slab"); ItemType.Typed MANGROVE_SLAB = getItemType("mangrove_slab"); ItemType.Typed BAMBOO_SLAB = getItemType("bamboo_slab"); @@ -443,8 +422,6 @@ public interface ItemType extends Keyed, Translatable { /** * ItemMeta: {@link BlockStateMeta} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed CREAKING_HEART = getItemType("creaking_heart"); /** * ItemMeta: {@link BlockStateMeta} @@ -474,8 +451,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_FENCE = getItemType("acacia_fence"); ItemType.Typed CHERRY_FENCE = getItemType("cherry_fence"); ItemType.Typed DARK_OAK_FENCE = getItemType("dark_oak_fence"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_FENCE = getItemType("pale_oak_fence"); ItemType.Typed MANGROVE_FENCE = getItemType("mangrove_fence"); ItemType.Typed BAMBOO_FENCE = getItemType("bamboo_fence"); @@ -520,6 +495,13 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed MELON = getItemType("melon"); ItemType.Typed VINE = getItemType("vine"); ItemType.Typed GLOW_LICHEN = getItemType("glow_lichen"); + ItemType.Typed RESIN_CLUMP = getItemType("resin_clump"); + ItemType.Typed RESIN_BLOCK = getItemType("resin_block"); + ItemType.Typed RESIN_BRICKS = getItemType("resin_bricks"); + ItemType.Typed RESIN_BRICK_STAIRS = getItemType("resin_brick_stairs"); + ItemType.Typed RESIN_BRICK_SLAB = getItemType("resin_brick_slab"); + ItemType.Typed RESIN_BRICK_WALL = getItemType("resin_brick_wall"); + ItemType.Typed CHISELED_RESIN_BRICKS = getItemType("chiseled_resin_bricks"); ItemType.Typed BRICK_STAIRS = getItemType("brick_stairs"); ItemType.Typed STONE_BRICK_STAIRS = getItemType("stone_brick_stairs"); ItemType.Typed MUD_BRICK_STAIRS = getItemType("mud_brick_stairs"); @@ -561,8 +543,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_STAIRS = getItemType("acacia_stairs"); ItemType.Typed CHERRY_STAIRS = getItemType("cherry_stairs"); ItemType.Typed DARK_OAK_STAIRS = getItemType("dark_oak_stairs"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_STAIRS = getItemType("pale_oak_stairs"); ItemType.Typed MANGROVE_STAIRS = getItemType("mangrove_stairs"); ItemType.Typed BAMBOO_STAIRS = getItemType("bamboo_stairs"); @@ -955,8 +935,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_BUTTON = getItemType("acacia_button"); ItemType.Typed CHERRY_BUTTON = getItemType("cherry_button"); ItemType.Typed DARK_OAK_BUTTON = getItemType("dark_oak_button"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_BUTTON = getItemType("pale_oak_button"); ItemType.Typed MANGROVE_BUTTON = getItemType("mangrove_button"); ItemType.Typed BAMBOO_BUTTON = getItemType("bamboo_button"); @@ -973,8 +951,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_PRESSURE_PLATE = getItemType("acacia_pressure_plate"); ItemType.Typed CHERRY_PRESSURE_PLATE = getItemType("cherry_pressure_plate"); ItemType.Typed DARK_OAK_PRESSURE_PLATE = getItemType("dark_oak_pressure_plate"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_PRESSURE_PLATE = getItemType("pale_oak_pressure_plate"); ItemType.Typed MANGROVE_PRESSURE_PLATE = getItemType("mangrove_pressure_plate"); ItemType.Typed BAMBOO_PRESSURE_PLATE = getItemType("bamboo_pressure_plate"); @@ -988,8 +964,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_DOOR = getItemType("acacia_door"); ItemType.Typed CHERRY_DOOR = getItemType("cherry_door"); ItemType.Typed DARK_OAK_DOOR = getItemType("dark_oak_door"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_DOOR = getItemType("pale_oak_door"); ItemType.Typed MANGROVE_DOOR = getItemType("mangrove_door"); ItemType.Typed BAMBOO_DOOR = getItemType("bamboo_door"); @@ -1011,8 +985,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_TRAPDOOR = getItemType("acacia_trapdoor"); ItemType.Typed CHERRY_TRAPDOOR = getItemType("cherry_trapdoor"); ItemType.Typed DARK_OAK_TRAPDOOR = getItemType("dark_oak_trapdoor"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_TRAPDOOR = getItemType("pale_oak_trapdoor"); ItemType.Typed MANGROVE_TRAPDOOR = getItemType("mangrove_trapdoor"); ItemType.Typed BAMBOO_TRAPDOOR = getItemType("bamboo_trapdoor"); @@ -1033,8 +1005,6 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed ACACIA_FENCE_GATE = getItemType("acacia_fence_gate"); ItemType.Typed CHERRY_FENCE_GATE = getItemType("cherry_fence_gate"); ItemType.Typed DARK_OAK_FENCE_GATE = getItemType("dark_oak_fence_gate"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_FENCE_GATE = getItemType("pale_oak_fence_gate"); ItemType.Typed MANGROVE_FENCE_GATE = getItemType("mangrove_fence_gate"); ItemType.Typed BAMBOO_FENCE_GATE = getItemType("bamboo_fence_gate"); @@ -1068,11 +1038,7 @@ public interface ItemType extends Keyed, Translatable { ItemType.Typed CHERRY_CHEST_BOAT = getItemType("cherry_chest_boat"); ItemType.Typed DARK_OAK_BOAT = getItemType("dark_oak_boat"); ItemType.Typed DARK_OAK_CHEST_BOAT = getItemType("dark_oak_chest_boat"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_BOAT = getItemType("pale_oak_boat"); - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_CHEST_BOAT = getItemType("pale_oak_chest_boat"); ItemType.Typed MANGROVE_BOAT = getItemType("mangrove_boat"); ItemType.Typed MANGROVE_CHEST_BOAT = getItemType("mangrove_chest_boat"); @@ -1287,8 +1253,6 @@ public interface ItemType extends Keyed, Translatable { /** * ItemMeta: {@link BlockStateMeta} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_SIGN = getItemType("pale_oak_sign"); /** * ItemMeta: {@link BlockStateMeta} @@ -1337,8 +1301,6 @@ public interface ItemType extends Keyed, Translatable { /** * ItemMeta: {@link BlockStateMeta} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed PALE_OAK_HANGING_SIGN = getItemType("pale_oak_hanging_sign"); /** * ItemMeta: {@link BlockStateMeta} @@ -1603,8 +1565,6 @@ public interface ItemType extends Keyed, Translatable { /** * ItemMeta: {@link SpawnEggMeta} */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP) ItemType.Typed CREAKING_SPAWN_EGG = getItemType("creaking_spawn_egg"); /** * ItemMeta: {@link SpawnEggMeta} @@ -1935,6 +1895,7 @@ public interface ItemType extends Keyed, Translatable { */ ItemType.Typed ENCHANTED_BOOK = getItemType("enchanted_book"); ItemType.Typed NETHER_BRICK = getItemType("nether_brick"); + ItemType.Typed RESIN_BRICK = getItemType("resin_brick"); ItemType.Typed PRISMARINE_SHARD = getItemType("prismarine_shard"); ItemType.Typed PRISMARINE_CRYSTALS = getItemType("prismarine_crystals"); ItemType.Typed RABBIT = getItemType("rabbit"); diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/paper-api/src/main/java/org/bukkit/inventory/meta/ItemMeta.java index a3515201dc..69d6de6e96 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/ItemMeta.java @@ -17,6 +17,7 @@ import org.bukkit.inventory.ItemFactory; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemRarity; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.components.CustomModelDataComponent; import org.bukkit.inventory.meta.components.EquippableComponent; import org.bukkit.inventory.meta.components.FoodComponent; import org.bukkit.inventory.meta.components.JukeboxPlayableComponent; @@ -176,6 +177,21 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste */ int getCustomModelData(); + /** + * Gets the custom model data set on this item, or creates an empty custom + * model data instance. + *

+ * The returned component is a snapshot of its current state and does not + * reflect a live view of what is on an item. After changing any value on + * this component, it must be set with + * {@link #setCustomModelDataComponent(CustomModelDataComponent)} to apply + * the changes. + * + * @return component + */ + @NotNull + CustomModelDataComponent getCustomModelDataComponent(); + /** * Sets the custom model data. *

@@ -186,6 +202,13 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste */ void setCustomModelData(@Nullable Integer data); + /** + * Sets the custom model data component. + * + * @param customModelData new component + */ + void setCustomModelDataComponent(@Nullable CustomModelDataComponent customModelData); + /** * Gets if the enchantable component is set. * diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/components/CustomModelDataComponent.java b/paper-api/src/main/java/org/bukkit/inventory/meta/components/CustomModelDataComponent.java new file mode 100644 index 0000000000..885e87607f --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/components/CustomModelDataComponent.java @@ -0,0 +1,74 @@ +package org.bukkit.inventory.meta.components; + +import java.util.List; +import org.bukkit.Color; +import org.bukkit.configuration.serialization.ConfigurationSerializable; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +/** + * Represents a component which adds custom model data. + */ +@ApiStatus.Experimental +public interface CustomModelDataComponent extends ConfigurationSerializable { + + /** + * Gets a list of the custom floats. + * + * @return unmodifiable list + */ + @NotNull + List getFloats(); + + /** + * Sets a list of the custom floats. + * + * @param floats new list + */ + void setFloats(@NotNull List floats); + + /** + * Gets a list of the custom flags. + * + * @return unmodifiable list + */ + @NotNull + List getFlags(); + + /** + * Sets a list of the custom flags. + * + * @param flags new list + */ + void setFlags(@NotNull List flags); + + /** + * Gets a list of the custom strings. + * + * @return unmodifiable list + */ + @NotNull + List getStrings(); + + /** + * Sets a list of the custom strings. + * + * @param strings new list + */ + void setStrings(@NotNull List strings); + + /** + * Gets a list of the custom colors. + * + * @return unmodifiable list + */ + @NotNull + List getColors(); + + /** + * Sets a list of the custom colors. + * + * @param colors new list + */ + void setColors(@NotNull List colors); +} diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java index 5fc9aaac8b..ebfd6f5523 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java @@ -52,6 +52,10 @@ public interface TrimMaterial extends Keyed, Translatable { * {@link Material#AMETHYST_SHARD}. */ public static final TrimMaterial AMETHYST = getTrimMaterial("amethyst"); + /** + * {@link Material#RESIN_BRICK}. + */ + public static final TrimMaterial RESIN = getTrimMaterial("resin"); @NotNull private static TrimMaterial getTrimMaterial(@NotNull String key) {