Update to Minecraft 1.21.4

By: md_5 <git@md-5.net>
This commit is contained in:
Bukkit/Spigot 2024-12-04 03:20:00 +11:00
parent f722ad8301
commit 88499aa05b
25 changed files with 269 additions and 243 deletions

View File

@ -5,7 +5,7 @@
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>1.21.3-R0.1-SNAPSHOT</version>
<version>1.21.4-R0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Bukkit</name>
@ -34,21 +34,21 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>32.1.2-jre</version>
<version>33.3.1-jre</version>
<scope>compile</scope>
</dependency>
<!-- bundled with Minecraft, should be kept in sync -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
<version>2.11.0</version>
<scope>compile</scope>
</dependency>
<!-- bundled with Minecraft, should be kept in sync -->
<dependency>
<groupId>org.joml</groupId>
<artifactId>joml</artifactId>
<version>1.10.5</version>
<version>1.10.8</version>
<scope>compile</scope>
</dependency>
<dependency>

View File

@ -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"));
/**
* <strong>AVAILABLE BETWEEN VERSIONS:</strong> 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"));

View File

@ -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),

View File

@ -47,6 +47,5 @@ public @interface MinecraftExperimental {
@ApiStatus.Internal
public enum Requires {
WINTER_DROP,
}
}

View File

@ -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;
}
}
}

View File

@ -302,6 +302,11 @@ public interface Sound extends OldEnum<Sound>, 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<Sound>, 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<Sound>, 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");

View File

@ -212,14 +212,14 @@ public interface Tag<T extends Keyed> extends Keyed {
* Vanilla block tag representing all fences.
*/
Tag<Material> FENCES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("fences"), Material.class);
/**
* Vanilla block tag representing all tall flowers.
*/
Tag<Material> TALL_FLOWERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("tall_flowers"), Material.class);
/**
* Vanilla block tag representing all flowers.
*/
Tag<Material> FLOWERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("flowers"), Material.class);
/**
* Vanilla block tag representing all blocks which attract bees.
*/
Tag<Material> 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<T extends Keyed> extends Keyed {
* Vanilla item tag representing all materials which can be used for trimming armor.
*/
Tag<Material> ITEMS_TRIM_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_materials"), Material.class);
/**
* Vanilla item tag representing all trimming templates.
*/
Tag<Material> 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<T extends Keyed> extends Keyed {
* Vanilla item tag representing all bundle items.
*/
Tag<Material> ITEMS_BUNDLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bundles"), Material.class);
/**
* Vanilla item tag representing all skeleton preferred weapons.
*/
Tag<Material> ITEMS_SKELETON_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("skeleton_preferred_weapons"), Material.class);
/**
* Vanilla item tag representing all drowned preferred weapons.
*/
Tag<Material> ITEMS_DROWNED_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("drowned_preferred_weapons"), Material.class);
/**
* Vanilla item tag representing all piglin preferred weapons.
*/
Tag<Material> ITEMS_PIGLIN_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_preferred_weapons"), Material.class);
/**
* Vanilla item tag representing all pillager preferred weapons.
*/
Tag<Material> 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<Material> 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.
*/

View File

@ -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,
}

View File

@ -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<Biome>, 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<Biome>, 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

View File

@ -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<BlockData> ACACIA_PLANKS = getBlockType("acacia_planks");
BlockType.Typed<BlockData> CHERRY_PLANKS = getBlockType("cherry_planks");
BlockType.Typed<BlockData> DARK_OAK_PLANKS = getBlockType("dark_oak_planks");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
BlockType.Typed<BlockData> PALE_OAK_PLANKS = getBlockType("pale_oak_planks");
BlockType.Typed<BlockData> MANGROVE_PLANKS = getBlockType("mangrove_planks");
BlockType.Typed<BlockData> 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<Sapling> 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<Orientable> 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<Orientable> 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<Orientable> 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<Orientable> 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<Leaves> 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<CreakingHeart> 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<Sign> 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<WallSign> 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<HangingSign> 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<WallHangingSign> 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<Powerable> 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<TrapDoor> 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<GlowLichen> GLOW_LICHEN = getBlockType("glow_lichen");
/**
* BlockData: {@link ResinClump}
*/
BlockType.Typed<ResinClump> RESIN_CLUMP = getBlockType("resin_clump");
/**
* BlockData: {@link Gate}
*/
@ -1174,6 +1150,21 @@ public interface BlockType extends Keyed, Translatable {
*/
BlockType.Typed<Snowable> MYCELIUM = getBlockType("mycelium");
BlockType.Typed<BlockData> LILY_PAD = getBlockType("lily_pad");
BlockType.Typed<BlockData> RESIN_BLOCK = getBlockType("resin_block");
BlockType.Typed<BlockData> RESIN_BRICKS = getBlockType("resin_bricks");
/**
* BlockData: {@link Stairs}
*/
BlockType.Typed<Stairs> RESIN_BRICK_STAIRS = getBlockType("resin_brick_stairs");
/**
* BlockData: {@link Slab}
*/
BlockType.Typed<Slab> RESIN_BRICK_SLAB = getBlockType("resin_brick_slab");
/**
* BlockData: {@link Wall}
*/
BlockType.Typed<Wall> RESIN_BRICK_WALL = getBlockType("resin_brick_wall");
BlockType.Typed<BlockData> CHISELED_RESIN_BRICKS = getBlockType("chiseled_resin_bricks");
BlockType.Typed<BlockData> NETHER_BRICKS = getBlockType("nether_bricks");
/**
* BlockData: {@link Fence}
@ -1270,8 +1261,6 @@ public interface BlockType extends Keyed, Translatable {
BlockType.Typed<BlockData> POTTED_ACACIA_SAPLING = getBlockType("potted_acacia_sapling");
BlockType.Typed<BlockData> POTTED_CHERRY_SAPLING = getBlockType("potted_cherry_sapling");
BlockType.Typed<BlockData> POTTED_DARK_OAK_SAPLING = getBlockType("potted_dark_oak_sapling");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
BlockType.Typed<BlockData> POTTED_PALE_OAK_SAPLING = getBlockType("potted_pale_oak_sapling");
BlockType.Typed<BlockData> POTTED_MANGROVE_PROPAGULE = getBlockType("potted_mangrove_propagule");
BlockType.Typed<BlockData> 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<Switch> 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<Stairs> 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<Slab> 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<Gate> 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<Fence> 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<Door> 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<MossyCarpet> PALE_MOSS_CARPET = getBlockType("pale_moss_carpet");
/**
* BlockData: {@link HangingMoss}
*/
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
BlockType.Typed<HangingMoss> PALE_HANGING_MOSS = getBlockType("pale_hanging_moss");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
BlockType.Typed<BlockData> 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<Waterlogged> HEAVY_CORE = getBlockType("heavy_core");
BlockType.Typed<BlockData> OPEN_EYEBLOSSOM = getBlockType("open_eyeblossom");
BlockType.Typed<BlockData> CLOSED_EYEBLOSSOM = getBlockType("closed_eyeblossom");
BlockType.Typed<BlockData> POTTED_OPEN_EYEBLOSSOM = getBlockType("potted_open_eyeblossom");
BlockType.Typed<BlockData> POTTED_CLOSED_EYEBLOSSOM = getBlockType("potted_closed_eyeblossom");
//</editor-fold>
@NotNull

View File

@ -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 {
}

View File

@ -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.
* <br>
* '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);
}

View File

@ -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 {
/**

View File

@ -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 {
/**

View File

@ -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 {
}

View File

@ -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 {
}

View File

@ -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 {
}

View File

@ -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.
*/

View File

@ -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 {
}

View File

@ -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 {
}

View File

@ -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.
*/

View File

@ -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<ItemMeta> ACACIA_PLANKS = getItemType("acacia_planks");
ItemType.Typed<ItemMeta> CHERRY_PLANKS = getItemType("cherry_planks");
ItemType.Typed<ItemMeta> DARK_OAK_PLANKS = getItemType("dark_oak_planks");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_PLANKS = getItemType("pale_oak_planks");
ItemType.Typed<ItemMeta> MANGROVE_PLANKS = getItemType("mangrove_planks");
ItemType.Typed<ItemMeta> BAMBOO_PLANKS = getItemType("bamboo_planks");
@ -151,8 +148,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> ACACIA_SAPLING = getItemType("acacia_sapling");
ItemType.Typed<ItemMeta> CHERRY_SAPLING = getItemType("cherry_sapling");
ItemType.Typed<ItemMeta> DARK_OAK_SAPLING = getItemType("dark_oak_sapling");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_SAPLING = getItemType("pale_oak_sapling");
ItemType.Typed<ItemMeta> MANGROVE_PROPAGULE = getItemType("mangrove_propagule");
ItemType.Typed<ItemMeta> BEDROCK = getItemType("bedrock");
@ -244,8 +239,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> ACACIA_LOG = getItemType("acacia_log");
ItemType.Typed<ItemMeta> CHERRY_LOG = getItemType("cherry_log");
ItemType.Typed<ItemMeta> DARK_OAK_LOG = getItemType("dark_oak_log");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_LOG = getItemType("pale_oak_log");
ItemType.Typed<ItemMeta> MANGROVE_LOG = getItemType("mangrove_log");
ItemType.Typed<ItemMeta> MANGROVE_ROOTS = getItemType("mangrove_roots");
@ -260,8 +253,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> STRIPPED_ACACIA_LOG = getItemType("stripped_acacia_log");
ItemType.Typed<ItemMeta> STRIPPED_CHERRY_LOG = getItemType("stripped_cherry_log");
ItemType.Typed<ItemMeta> STRIPPED_DARK_OAK_LOG = getItemType("stripped_dark_oak_log");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> STRIPPED_PALE_OAK_LOG = getItemType("stripped_pale_oak_log");
ItemType.Typed<ItemMeta> STRIPPED_MANGROVE_LOG = getItemType("stripped_mangrove_log");
ItemType.Typed<ItemMeta> STRIPPED_CRIMSON_STEM = getItemType("stripped_crimson_stem");
@ -273,8 +264,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> STRIPPED_ACACIA_WOOD = getItemType("stripped_acacia_wood");
ItemType.Typed<ItemMeta> STRIPPED_CHERRY_WOOD = getItemType("stripped_cherry_wood");
ItemType.Typed<ItemMeta> STRIPPED_DARK_OAK_WOOD = getItemType("stripped_dark_oak_wood");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> STRIPPED_PALE_OAK_WOOD = getItemType("stripped_pale_oak_wood");
ItemType.Typed<ItemMeta> STRIPPED_MANGROVE_WOOD = getItemType("stripped_mangrove_wood");
ItemType.Typed<ItemMeta> STRIPPED_CRIMSON_HYPHAE = getItemType("stripped_crimson_hyphae");
@ -287,8 +276,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> ACACIA_WOOD = getItemType("acacia_wood");
ItemType.Typed<ItemMeta> CHERRY_WOOD = getItemType("cherry_wood");
ItemType.Typed<ItemMeta> DARK_OAK_WOOD = getItemType("dark_oak_wood");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_WOOD = getItemType("pale_oak_wood");
ItemType.Typed<ItemMeta> MANGROVE_WOOD = getItemType("mangrove_wood");
ItemType.Typed<ItemMeta> CRIMSON_HYPHAE = getItemType("crimson_hyphae");
@ -300,8 +287,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> ACACIA_LEAVES = getItemType("acacia_leaves");
ItemType.Typed<ItemMeta> CHERRY_LEAVES = getItemType("cherry_leaves");
ItemType.Typed<ItemMeta> DARK_OAK_LEAVES = getItemType("dark_oak_leaves");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_LEAVES = getItemType("pale_oak_leaves");
ItemType.Typed<ItemMeta> MANGROVE_LEAVES = getItemType("mangrove_leaves");
ItemType.Typed<ItemMeta> AZALEA_LEAVES = getItemType("azalea_leaves");
@ -339,6 +324,8 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> RED_WOOL = getItemType("red_wool");
ItemType.Typed<ItemMeta> BLACK_WOOL = getItemType("black_wool");
ItemType.Typed<ItemMeta> DANDELION = getItemType("dandelion");
ItemType.Typed<ItemMeta> OPEN_EYEBLOSSOM = getItemType("open_eyeblossom");
ItemType.Typed<ItemMeta> CLOSED_EYEBLOSSOM = getItemType("closed_eyeblossom");
ItemType.Typed<ItemMeta> POPPY = getItemType("poppy");
ItemType.Typed<ItemMeta> BLUE_ORCHID = getItemType("blue_orchid");
ItemType.Typed<ItemMeta> ALLIUM = getItemType("allium");
@ -368,14 +355,8 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> PINK_PETALS = getItemType("pink_petals");
ItemType.Typed<ItemMeta> MOSS_CARPET = getItemType("moss_carpet");
ItemType.Typed<ItemMeta> MOSS_BLOCK = getItemType("moss_block");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_MOSS_CARPET = getItemType("pale_moss_carpet");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_HANGING_MOSS = getItemType("pale_hanging_moss");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_MOSS_BLOCK = getItemType("pale_moss_block");
ItemType.Typed<ItemMeta> HANGING_ROOTS = getItemType("hanging_roots");
ItemType.Typed<ItemMeta> BIG_DRIPLEAF = getItemType("big_dripleaf");
@ -388,8 +369,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> ACACIA_SLAB = getItemType("acacia_slab");
ItemType.Typed<ItemMeta> CHERRY_SLAB = getItemType("cherry_slab");
ItemType.Typed<ItemMeta> DARK_OAK_SLAB = getItemType("dark_oak_slab");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_SLAB = getItemType("pale_oak_slab");
ItemType.Typed<ItemMeta> MANGROVE_SLAB = getItemType("mangrove_slab");
ItemType.Typed<ItemMeta> 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<BlockStateMeta> CREAKING_HEART = getItemType("creaking_heart");
/**
* ItemMeta: {@link BlockStateMeta}
@ -474,8 +451,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> ACACIA_FENCE = getItemType("acacia_fence");
ItemType.Typed<ItemMeta> CHERRY_FENCE = getItemType("cherry_fence");
ItemType.Typed<ItemMeta> DARK_OAK_FENCE = getItemType("dark_oak_fence");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_FENCE = getItemType("pale_oak_fence");
ItemType.Typed<ItemMeta> MANGROVE_FENCE = getItemType("mangrove_fence");
ItemType.Typed<ItemMeta> BAMBOO_FENCE = getItemType("bamboo_fence");
@ -520,6 +495,13 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> MELON = getItemType("melon");
ItemType.Typed<ItemMeta> VINE = getItemType("vine");
ItemType.Typed<ItemMeta> GLOW_LICHEN = getItemType("glow_lichen");
ItemType.Typed<ItemMeta> RESIN_CLUMP = getItemType("resin_clump");
ItemType.Typed<ItemMeta> RESIN_BLOCK = getItemType("resin_block");
ItemType.Typed<ItemMeta> RESIN_BRICKS = getItemType("resin_bricks");
ItemType.Typed<ItemMeta> RESIN_BRICK_STAIRS = getItemType("resin_brick_stairs");
ItemType.Typed<ItemMeta> RESIN_BRICK_SLAB = getItemType("resin_brick_slab");
ItemType.Typed<ItemMeta> RESIN_BRICK_WALL = getItemType("resin_brick_wall");
ItemType.Typed<ItemMeta> CHISELED_RESIN_BRICKS = getItemType("chiseled_resin_bricks");
ItemType.Typed<ItemMeta> BRICK_STAIRS = getItemType("brick_stairs");
ItemType.Typed<ItemMeta> STONE_BRICK_STAIRS = getItemType("stone_brick_stairs");
ItemType.Typed<ItemMeta> MUD_BRICK_STAIRS = getItemType("mud_brick_stairs");
@ -561,8 +543,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> ACACIA_STAIRS = getItemType("acacia_stairs");
ItemType.Typed<ItemMeta> CHERRY_STAIRS = getItemType("cherry_stairs");
ItemType.Typed<ItemMeta> DARK_OAK_STAIRS = getItemType("dark_oak_stairs");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_STAIRS = getItemType("pale_oak_stairs");
ItemType.Typed<ItemMeta> MANGROVE_STAIRS = getItemType("mangrove_stairs");
ItemType.Typed<ItemMeta> BAMBOO_STAIRS = getItemType("bamboo_stairs");
@ -955,8 +935,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> ACACIA_BUTTON = getItemType("acacia_button");
ItemType.Typed<ItemMeta> CHERRY_BUTTON = getItemType("cherry_button");
ItemType.Typed<ItemMeta> DARK_OAK_BUTTON = getItemType("dark_oak_button");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_BUTTON = getItemType("pale_oak_button");
ItemType.Typed<ItemMeta> MANGROVE_BUTTON = getItemType("mangrove_button");
ItemType.Typed<ItemMeta> BAMBOO_BUTTON = getItemType("bamboo_button");
@ -973,8 +951,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> ACACIA_PRESSURE_PLATE = getItemType("acacia_pressure_plate");
ItemType.Typed<ItemMeta> CHERRY_PRESSURE_PLATE = getItemType("cherry_pressure_plate");
ItemType.Typed<ItemMeta> DARK_OAK_PRESSURE_PLATE = getItemType("dark_oak_pressure_plate");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_PRESSURE_PLATE = getItemType("pale_oak_pressure_plate");
ItemType.Typed<ItemMeta> MANGROVE_PRESSURE_PLATE = getItemType("mangrove_pressure_plate");
ItemType.Typed<ItemMeta> BAMBOO_PRESSURE_PLATE = getItemType("bamboo_pressure_plate");
@ -988,8 +964,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> ACACIA_DOOR = getItemType("acacia_door");
ItemType.Typed<ItemMeta> CHERRY_DOOR = getItemType("cherry_door");
ItemType.Typed<ItemMeta> DARK_OAK_DOOR = getItemType("dark_oak_door");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_DOOR = getItemType("pale_oak_door");
ItemType.Typed<ItemMeta> MANGROVE_DOOR = getItemType("mangrove_door");
ItemType.Typed<ItemMeta> BAMBOO_DOOR = getItemType("bamboo_door");
@ -1011,8 +985,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> ACACIA_TRAPDOOR = getItemType("acacia_trapdoor");
ItemType.Typed<ItemMeta> CHERRY_TRAPDOOR = getItemType("cherry_trapdoor");
ItemType.Typed<ItemMeta> DARK_OAK_TRAPDOOR = getItemType("dark_oak_trapdoor");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_TRAPDOOR = getItemType("pale_oak_trapdoor");
ItemType.Typed<ItemMeta> MANGROVE_TRAPDOOR = getItemType("mangrove_trapdoor");
ItemType.Typed<ItemMeta> BAMBOO_TRAPDOOR = getItemType("bamboo_trapdoor");
@ -1033,8 +1005,6 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> ACACIA_FENCE_GATE = getItemType("acacia_fence_gate");
ItemType.Typed<ItemMeta> CHERRY_FENCE_GATE = getItemType("cherry_fence_gate");
ItemType.Typed<ItemMeta> DARK_OAK_FENCE_GATE = getItemType("dark_oak_fence_gate");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_FENCE_GATE = getItemType("pale_oak_fence_gate");
ItemType.Typed<ItemMeta> MANGROVE_FENCE_GATE = getItemType("mangrove_fence_gate");
ItemType.Typed<ItemMeta> BAMBOO_FENCE_GATE = getItemType("bamboo_fence_gate");
@ -1068,11 +1038,7 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed<ItemMeta> CHERRY_CHEST_BOAT = getItemType("cherry_chest_boat");
ItemType.Typed<ItemMeta> DARK_OAK_BOAT = getItemType("dark_oak_boat");
ItemType.Typed<ItemMeta> DARK_OAK_CHEST_BOAT = getItemType("dark_oak_chest_boat");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_BOAT = getItemType("pale_oak_boat");
@ApiStatus.Experimental
@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
ItemType.Typed<ItemMeta> PALE_OAK_CHEST_BOAT = getItemType("pale_oak_chest_boat");
ItemType.Typed<ItemMeta> MANGROVE_BOAT = getItemType("mangrove_boat");
ItemType.Typed<ItemMeta> 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<BlockStateMeta> 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<BlockStateMeta> 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<SpawnEggMeta> CREAKING_SPAWN_EGG = getItemType("creaking_spawn_egg");
/**
* ItemMeta: {@link SpawnEggMeta}
@ -1935,6 +1895,7 @@ public interface ItemType extends Keyed, Translatable {
*/
ItemType.Typed<EnchantmentStorageMeta> ENCHANTED_BOOK = getItemType("enchanted_book");
ItemType.Typed<ItemMeta> NETHER_BRICK = getItemType("nether_brick");
ItemType.Typed<ItemMeta> RESIN_BRICK = getItemType("resin_brick");
ItemType.Typed<ItemMeta> PRISMARINE_SHARD = getItemType("prismarine_shard");
ItemType.Typed<ItemMeta> PRISMARINE_CRYSTALS = getItemType("prismarine_crystals");
ItemType.Typed<ItemMeta> RABBIT = getItemType("rabbit");

View File

@ -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.
* <p>
* 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.
* <p>
@ -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.
*

View File

@ -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<Float> getFloats();
/**
* Sets a list of the custom floats.
*
* @param floats new list
*/
void setFloats(@NotNull List<Float> floats);
/**
* Gets a list of the custom flags.
*
* @return unmodifiable list
*/
@NotNull
List<Boolean> getFlags();
/**
* Sets a list of the custom flags.
*
* @param flags new list
*/
void setFlags(@NotNull List<Boolean> flags);
/**
* Gets a list of the custom strings.
*
* @return unmodifiable list
*/
@NotNull
List<String> getStrings();
/**
* Sets a list of the custom strings.
*
* @param strings new list
*/
void setStrings(@NotNull List<String> strings);
/**
* Gets a list of the custom colors.
*
* @return unmodifiable list
*/
@NotNull
List<Color> getColors();
/**
* Sets a list of the custom colors.
*
* @param colors new list
*/
void setColors(@NotNull List<Color> colors);
}

View File

@ -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) {