Merge branch 'master' into enums-to-registers

# Conflicts:
#	src/main/java/org/bukkit/GameEvent.java
#	src/main/java/org/bukkit/Particle.java
#	src/main/java/org/bukkit/Sound.java
#	src/main/java/org/bukkit/Tag.java
#	src/main/java/org/bukkit/block/Biome.java
#	src/main/java/org/bukkit/block/DecoratedPot.java
#	src/main/java/org/bukkit/block/Skull.java
#	src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
#	src/main/java/org/bukkit/entity/Boat.java
#	src/main/java/org/bukkit/entity/EntityType.java
#	src/main/java/org/bukkit/inventory/SmithingTrimRecipe.java
#	src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java
#	src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java
This commit is contained in:
DerFrZocker 2023-06-07 20:02:00 +02:00
commit 22ae9ebc53
No known key found for this signature in database
GPG key ID: 713F71FFFE1DDF91
49 changed files with 289 additions and 488 deletions

18
pom.xml
View file

@ -5,7 +5,7 @@
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>1.19.4-R0.1-SNAPSHOT</version>
<version>1.20-R0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Bukkit</name>
@ -55,33 +55,33 @@
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.33</version>
<version>2.0</version>
<scope>compile</scope>
</dependency>
<!-- not part of the API proper -->
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-resolver-provider</artifactId>
<version>3.8.5</version>
<version>3.9.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-connector-basic</artifactId>
<version>1.7.3</version>
<version>1.9.10</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-transport-http</artifactId>
<version>1.7.3</version>
<version>1.9.10</version>
<scope>provided</scope>
</dependency>
<!-- annotations -->
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations-java5</artifactId>
<version>23.0.0</version>
<version>24.0.1</version>
<scope>provided</scope>
</dependency>
<!-- testing -->
@ -100,7 +100,7 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
<version>9.4</version>
<version>9.5</version>
<scope>test</scope>
</dependency>
<dependency>
@ -194,7 +194,7 @@
<links>
<link>https://guava.dev/releases/31.1-jre/api/docs/</link>
<link>https://javadoc.io/doc/org.yaml/snakeyaml/1.33/</link>
<link>https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/</link>
<link>https://javadoc.io/doc/org.jetbrains/annotations-java5/24.0.1/</link>
</links>
<tags>
<tag>
@ -219,7 +219,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.2.1</version>
<version>3.3.0</version>
<executions>
<execution>
<phase>process-classes</phase>

View file

@ -22,7 +22,6 @@ public abstract class GameEvent implements Keyed {
public static final GameEvent BLOCK_PLACE = getEvent("block_place");
public static final GameEvent CONTAINER_CLOSE = getEvent("container_close");
public static final GameEvent CONTAINER_OPEN = getEvent("container_open");
public static final GameEvent DISPENSE_FAIL = getEvent("dispense_fail");
public static final GameEvent DRINK = getEvent("drink");
public static final GameEvent EAT = getEvent("eat");
public static final GameEvent ELYTRA_GLIDE = getEvent("elytra_glide");
@ -47,8 +46,6 @@ public abstract class GameEvent implements Keyed {
public static final GameEvent JUKEBOX_STOP_PLAY = getEvent("jukebox_stop_play");
public static final GameEvent LIGHTNING_STRIKE = getEvent("lightning_strike");
public static final GameEvent NOTE_BLOCK_PLAY = getEvent("note_block_play");
public static final GameEvent PISTON_CONTRACT = getEvent("piston_contract");
public static final GameEvent PISTON_EXTEND = getEvent("piston_extend");
public static final GameEvent PRIME_FUSE = getEvent("prime_fuse");
public static final GameEvent PROJECTILE_LAND = getEvent("projectile_land");
public static final GameEvent PROJECTILE_SHOOT = getEvent("projectile_shoot");
@ -59,6 +56,21 @@ public abstract class GameEvent implements Keyed {
public static final GameEvent STEP = getEvent("step");
public static final GameEvent SWIM = getEvent("swim");
public static final GameEvent TELEPORT = getEvent("teleport");
public static final GameEvent RESONATE_1 = getEvent("resonate_1");
public static final GameEvent RESONATE_2 = getEvent("resonate_2");
public static final GameEvent RESONATE_3 = getEvent("resonate_3");
public static final GameEvent RESONATE_4 = getEvent("resonate_4");
public static final GameEvent RESONATE_5 = getEvent("resonate_5");
public static final GameEvent RESONATE_6 = getEvent("resonate_6");
public static final GameEvent RESONATE_7 = getEvent("resonate_7");
public static final GameEvent RESONATE_8 = getEvent("resonate_8");
public static final GameEvent RESONATE_9 = getEvent("resonate_9");
public static final GameEvent RESONATE_10 = getEvent("resonate_10");
public static final GameEvent RESONATE_11 = getEvent("resonate_11");
public static final GameEvent RESONATE_12 = getEvent("resonate_12");
public static final GameEvent RESONATE_13 = getEvent("resonate_13");
public static final GameEvent RESONATE_14 = getEvent("resonate_14");
public static final GameEvent RESONATE_15 = getEvent("resonate_15");
/**
* Returns a {@link GameEvent} by a {@link NamespacedKey}.

View file

@ -2,7 +2,6 @@ package org.bukkit;
import com.google.common.collect.Maps;
import java.util.Map;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
public enum Instrument {
@ -79,44 +78,30 @@ public enum Instrument {
/**
* Zombie is normally played when a Zombie Head is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
ZOMBIE,
/**
* Skeleton is normally played when a Skeleton Head is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
SKELETON,
/**
* Creeper is normally played when a Creeper Head is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
CREEPER,
/**
* Dragon is normally played when a Dragon Head is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
DRAGON,
/**
* Wither Skeleton is normally played when a Wither Skeleton Head is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
WITHER_SKELETON,
/**
* Piglin is normally played when a Piglin Head is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
PIGLIN,
/**
* Custom Sound is normally played when a Player Head with the required data is on top of the note block.
*/
@MinecraftExperimental
@ApiStatus.Experimental
CUSTOM_HEAD;
private final byte type;

View file

@ -15,7 +15,9 @@ import org.bukkit.block.data.Ageable;
import org.bukkit.block.data.AnaloguePowerable;
import org.bukkit.block.data.Bisected;
import org.bukkit.block.data.BlockData;
import org.bukkit.block.data.Brushable;
import org.bukkit.block.data.Directional;
import org.bukkit.block.data.Hatchable;
import org.bukkit.block.data.Levelled;
import org.bukkit.block.data.Lightable;
import org.bukkit.block.data.MultipleFacing;
@ -35,6 +37,7 @@ import org.bukkit.block.data.type.BigDripleaf;
import org.bukkit.block.data.type.BrewingStand;
import org.bukkit.block.data.type.BubbleColumn;
import org.bukkit.block.data.type.Cake;
import org.bukkit.block.data.type.CalibratedSculkSensor;
import org.bukkit.block.data.type.Campfire;
import org.bukkit.block.data.type.Candle;
import org.bukkit.block.data.type.CaveVines;
@ -77,6 +80,7 @@ import org.bukkit.block.data.type.Observer;
import org.bukkit.block.data.type.PinkPetals;
import org.bukkit.block.data.type.Piston;
import org.bukkit.block.data.type.PistonHead;
import org.bukkit.block.data.type.PitcherCrop;
import org.bukkit.block.data.type.PointedDripstone;
import org.bukkit.block.data.type.RedstoneRail;
import org.bukkit.block.data.type.RedstoneWallTorch;
@ -96,7 +100,6 @@ import org.bukkit.block.data.type.SmallDripleaf;
import org.bukkit.block.data.type.Snow;
import org.bukkit.block.data.type.Stairs;
import org.bukkit.block.data.type.StructureBlock;
import org.bukkit.block.data.type.SuspiciousSand;
import org.bukkit.block.data.type.Switch;
import org.bukkit.block.data.type.TNT;
import org.bukkit.block.data.type.TechnicalPiston;
@ -111,7 +114,6 @@ import org.bukkit.inventory.CreativeCategory;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemType;
import org.bukkit.material.MaterialData;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -159,18 +161,12 @@ public enum Material implements Keyed, Translatable {
BIRCH_PLANKS(29322),
JUNGLE_PLANKS(26445),
ACACIA_PLANKS(31312),
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_PLANKS(8354),
DARK_OAK_PLANKS(20869),
MANGROVE_PLANKS(7078),
@MinecraftExperimental
@ApiStatus.Experimental
BAMBOO_PLANKS(8520),
CRIMSON_PLANKS(18812),
WARPED_PLANKS(16045),
@MinecraftExperimental
@ApiStatus.Experimental
BAMBOO_MOSAIC(10715),
/**
* BlockData: {@link Sapling}
@ -195,8 +191,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Sapling}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_SAPLING(25204, Sapling.class),
/**
* BlockData: {@link Sapling}
@ -209,11 +203,13 @@ public enum Material implements Keyed, Translatable {
BEDROCK(23130),
SAND(11542),
/**
* BlockData: {@link SuspiciousSand}
* BlockData: {@link Brushable}
*/
@MinecraftExperimental
@ApiStatus.Experimental
SUSPICIOUS_SAND(18410, SuspiciousSand.class),
SUSPICIOUS_SAND(18410, Brushable.class),
/**
* BlockData: {@link Brushable}
*/
SUSPICIOUS_GRAVEL(7353, Brushable.class),
RED_SAND(16279),
GRAVEL(7804),
COAL_ORE(30965),
@ -354,8 +350,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Orientable}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_LOG(20847, Orientable.class),
/**
* BlockData: {@link Orientable}
@ -384,8 +378,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Orientable}
*/
@MinecraftExperimental
@ApiStatus.Experimental
BAMBOO_BLOCK(20770, Orientable.class),
/**
* BlockData: {@link Orientable}
@ -410,8 +402,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Orientable}
*/
@MinecraftExperimental
@ApiStatus.Experimental
STRIPPED_CHERRY_LOG(18061, Orientable.class),
/**
* BlockData: {@link Orientable}
@ -452,8 +442,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Orientable}
*/
@MinecraftExperimental
@ApiStatus.Experimental
STRIPPED_CHERRY_WOOD(19647, Orientable.class),
/**
* BlockData: {@link Orientable}
@ -498,8 +486,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Orientable}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_WOOD(9826, Orientable.class),
/**
* BlockData: {@link Orientable}
@ -540,8 +526,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Leaves}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_LEAVES(20856, Leaves.class),
/**
* BlockData: {@link Leaves}
@ -607,9 +591,11 @@ public enum Material implements Keyed, Translatable {
CORNFLOWER(15405),
LILY_OF_THE_VALLEY(7185),
WITHER_ROSE(8619),
@MinecraftExperimental
@ApiStatus.Experimental
TORCHFLOWER(4501),
/**
* BlockData: {@link Bisected}
*/
PITCHER_PLANT(28172, Bisected.class),
SPORE_BLOSSOM(20627),
BROWN_MUSHROOM(9665),
RED_MUSHROOM(19728),
@ -638,8 +624,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link PinkPetals}
*/
@MinecraftExperimental
@ApiStatus.Experimental
PINK_PETALS(10420, PinkPetals.class),
MOSS_BLOCK(9175),
/**
@ -681,8 +665,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Slab}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_SLAB(16673, Slab.class),
/**
* BlockData: {@link Slab}
@ -695,14 +677,10 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Slab}
*/
@MinecraftExperimental
@ApiStatus.Experimental
BAMBOO_SLAB(17798, Slab.class),
/**
* BlockData: {@link Slab}
*/
@MinecraftExperimental
@ApiStatus.Experimental
BAMBOO_MOSAIC_SLAB(22118, Slab.class),
/**
* BlockData: {@link Slab}
@ -789,14 +767,10 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link ChiseledBookshelf}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHISELED_BOOKSHELF(8099, ChiseledBookshelf.class),
/**
* BlockData: {@link DecoratedPot}
*/
@MinecraftExperimental
@ApiStatus.Experimental
DECORATED_POT(8720, 1, DecoratedPot.class),
MOSSY_COBBLESTONE(21900),
OBSIDIAN(32723),
@ -882,8 +856,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Fence}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_FENCE(32047, Fence.class),
/**
* BlockData: {@link Fence}
@ -1064,8 +1036,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Stairs}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_STAIRS(18380, Stairs.class),
/**
* BlockData: {@link Stairs}
@ -1078,14 +1048,10 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Stairs}
*/
@MinecraftExperimental
@ApiStatus.Experimental
BAMBOO_STAIRS(25674, Stairs.class),
/**
* BlockData: {@link Stairs}
*/
@MinecraftExperimental
@ApiStatus.Experimental
BAMBOO_MOSAIC_STAIRS(20977, Stairs.class),
/**
* BlockData: {@link Stairs}
@ -1567,6 +1533,10 @@ public enum Material implements Keyed, Translatable {
* BlockData: {@link TurtleEgg}
*/
TURTLE_EGG(32101, TurtleEgg.class),
/**
* BlockData: {@link Hatchable}
*/
SNIFFER_EGG(12980, Hatchable.class),
DEAD_TUBE_CORAL_BLOCK(28350),
DEAD_BRAIN_CORAL_BLOCK(12979),
DEAD_BUBBLE_CORAL_BLOCK(28220),
@ -1870,6 +1840,10 @@ public enum Material implements Keyed, Translatable {
* BlockData: {@link SculkSensor}
*/
SCULK_SENSOR(5598, SculkSensor.class),
/**
* BlockData: {@link CalibratedSculkSensor}
*/
CALIBRATED_SCULK_SENSOR(21034, CalibratedSculkSensor.class),
/**
* BlockData: {@link TripwireHook}
*/
@ -1921,8 +1895,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Switch}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_BUTTON(9058, Switch.class),
/**
* BlockData: {@link Switch}
@ -1983,8 +1955,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Powerable}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_PRESSURE_PLATE(8651, Powerable.class),
/**
* BlockData: {@link Powerable}
@ -2033,8 +2003,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Door}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_DOOR(12684, Door.class),
/**
* BlockData: {@link Door}
@ -2083,8 +2051,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link TrapDoor}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_TRAPDOOR(6293, TrapDoor.class),
/**
* BlockData: {@link TrapDoor}
@ -2129,8 +2095,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Gate}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_FENCE_GATE(28222, Gate.class),
/**
* BlockData: {@link Gate}
@ -2187,11 +2151,7 @@ public enum Material implements Keyed, Translatable {
JUNGLE_CHEST_BOAT(20133, 1),
ACACIA_BOAT(27326, 1),
ACACIA_CHEST_BOAT(28455, 1),
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_BOAT(13628, 1),
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_CHEST_BOAT(7165, 1),
DARK_OAK_BOAT(28618, 1),
DARK_OAK_CHEST_BOAT(8733, 1),
@ -2323,8 +2283,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Sign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_SIGN(16520, 16, Sign.class),
/**
* BlockData: {@link Sign}
@ -2349,68 +2307,46 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link HangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
OAK_HANGING_SIGN(20116, 16, HangingSign.class),
/**
* BlockData: {@link HangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
SPRUCE_HANGING_SIGN(24371, 16, HangingSign.class),
/**
* BlockData: {@link HangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
BIRCH_HANGING_SIGN(17938, 16, HangingSign.class),
/**
* BlockData: {@link HangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
JUNGLE_HANGING_SIGN(27671, 16, HangingSign.class),
/**
* BlockData: {@link HangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
ACACIA_HANGING_SIGN(30257, 16, HangingSign.class),
/**
* BlockData: {@link HangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_HANGING_SIGN(5088, 16, HangingSign.class),
/**
* BlockData: {@link HangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
DARK_OAK_HANGING_SIGN(23360, 16, HangingSign.class),
/**
* BlockData: {@link HangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
MANGROVE_HANGING_SIGN(25106, 16, HangingSign.class),
/**
* BlockData: {@link HangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
BAMBOO_HANGING_SIGN(4726, 16, HangingSign.class),
/**
* BlockData: {@link HangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CRIMSON_HANGING_SIGN(20696, 16, HangingSign.class),
/**
* BlockData: {@link HangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
WARPED_HANGING_SIGN(8195, 16, HangingSign.class),
BUCKET(15215, 16),
WATER_BUCKET(8802, 1),
@ -2434,8 +2370,6 @@ public enum Material implements Keyed, Translatable {
EGG(21603, 16),
COMPASS(24139),
RECOVERY_COMPASS(12710),
@MinecraftExperimental
@ApiStatus.Experimental
BUNDLE(16835, 1),
FISHING_ROD(4167, 1, 64),
CLOCK(14980),
@ -2576,8 +2510,6 @@ public enum Material implements Keyed, Translatable {
BEE_SPAWN_EGG(22924),
BLAZE_SPAWN_EGG(4759),
CAT_SPAWN_EGG(29583),
@MinecraftExperimental
@ApiStatus.Experimental
CAMEL_SPAWN_EGG(14760),
CAVE_SPIDER_SPAWN_EGG(23341),
CHICKEN_SPAWN_EGG(5462),
@ -2625,8 +2557,6 @@ public enum Material implements Keyed, Translatable {
SKELETON_SPAWN_EGG(15261),
SKELETON_HORSE_SPAWN_EGG(21356),
SLIME_SPAWN_EGG(17196),
@MinecraftExperimental
@ApiStatus.Experimental
SNIFFER_SPAWN_EGG(27473),
SNOW_GOLEM_SPAWN_EGG(24732),
SPIDER_SPAWN_EGG(14984),
@ -2691,8 +2621,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Rotatable}
*/
@MinecraftExperimental
@ApiStatus.Experimental
PIGLIN_HEAD(5512, Rotatable.class),
NETHER_STAR(12469),
PUMPKIN_PIE(28725),
@ -2784,9 +2712,8 @@ public enum Material implements Keyed, Translatable {
END_CRYSTAL(19090),
CHORUS_FRUIT(7652),
POPPED_CHORUS_FRUIT(27844),
@MinecraftExperimental
@ApiStatus.Experimental
TORCHFLOWER_SEEDS(18153),
PITCHER_POD(7977),
BEETROOT(23305),
BEETROOT_SEEDS(21282),
BEETROOT_SOUP(16036, 1),
@ -2814,6 +2741,7 @@ public enum Material implements Keyed, Translatable {
MUSIC_DISC_11(27426, 1),
MUSIC_DISC_WAIT(26499, 1),
MUSIC_DISC_OTHERSIDE(12974, 1),
MUSIC_DISC_RELIC(8200, 1),
MUSIC_DISC_5(9212, 1),
MUSIC_DISC_PIGSTEP(21323, 1),
DISC_FRAGMENT_5(29729),
@ -3033,57 +2961,44 @@ public enum Material implements Keyed, Translatable {
PEARLESCENT_FROGLIGHT(21441, Orientable.class),
FROGSPAWN(8350),
ECHO_SHARD(12529),
@MinecraftExperimental
@ApiStatus.Experimental
BRUSH(30569, 1, 64),
@MinecraftExperimental
@ApiStatus.Experimental
NETHERITE_UPGRADE_SMITHING_TEMPLATE(7615),
@MinecraftExperimental
@ApiStatus.Experimental
SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE(16124),
@MinecraftExperimental
@ApiStatus.Experimental
DUNE_ARMOR_TRIM_SMITHING_TEMPLATE(30925),
@MinecraftExperimental
@ApiStatus.Experimental
COAST_ARMOR_TRIM_SMITHING_TEMPLATE(25501),
@MinecraftExperimental
@ApiStatus.Experimental
WILD_ARMOR_TRIM_SMITHING_TEMPLATE(5870),
@MinecraftExperimental
@ApiStatus.Experimental
WARD_ARMOR_TRIM_SMITHING_TEMPLATE(24534),
@MinecraftExperimental
@ApiStatus.Experimental
EYE_ARMOR_TRIM_SMITHING_TEMPLATE(14663),
@MinecraftExperimental
@ApiStatus.Experimental
VEX_ARMOR_TRIM_SMITHING_TEMPLATE(25818),
@MinecraftExperimental
@ApiStatus.Experimental
TIDE_ARMOR_TRIM_SMITHING_TEMPLATE(20420),
@MinecraftExperimental
@ApiStatus.Experimental
SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE(14386),
@MinecraftExperimental
@ApiStatus.Experimental
RIB_ARMOR_TRIM_SMITHING_TEMPLATE(6010),
@MinecraftExperimental
@ApiStatus.Experimental
SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE(29143),
@MinecraftExperimental
@ApiStatus.Experimental
POTTERY_SHARD_ARCHER(26154),
@MinecraftExperimental
@ApiStatus.Experimental
POTTERY_SHARD_PRIZE(31677),
@MinecraftExperimental
@ApiStatus.Experimental
POTTERY_SHARD_ARMS_UP(29222),
@MinecraftExperimental
@ApiStatus.Experimental
POTTERY_SHARD_SKULL(14619),
WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE(4957),
SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE(20537),
SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE(7070),
RAISER_ARMOR_TRIM_SMITHING_TEMPLATE(29116),
HOST_ARMOR_TRIM_SMITHING_TEMPLATE(12165),
ANGLER_POTTERY_SHERD(9952),
ARCHER_POTTERY_SHERD(21629),
ARMS_UP_POTTERY_SHERD(5484),
BLADE_POTTERY_SHERD(25079),
BREWER_POTTERY_SHERD(23429),
BURN_POTTERY_SHERD(21259),
DANGER_POTTERY_SHERD(30506),
EXPLORER_POTTERY_SHERD(5124),
FRIEND_POTTERY_SHERD(18221),
HEART_POTTERY_SHERD(17607),
HEARTBREAK_POTTERY_SHERD(21108),
HOWL_POTTERY_SHERD(24900),
MINER_POTTERY_SHERD(30602),
MOURNER_POTTERY_SHERD(23993),
PLENTY_POTTERY_SHERD(28236),
PRIZE_POTTERY_SHERD(4341),
SHEAF_POTTERY_SHERD(23652),
SHELTER_POTTERY_SHERD(28390),
SKULL_POTTERY_SHERD(16980),
SNORT_POTTERY_SHERD(15921),
/**
* BlockData: {@link Levelled}
*/
@ -3136,8 +3051,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link WallSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_WALL_SIGN(20188, 16, WallSign.class),
/**
* BlockData: {@link WallSign}
@ -3158,68 +3071,46 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link WallHangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
OAK_WALL_HANGING_SIGN(15637, WallHangingSign.class),
/**
* BlockData: {@link WallHangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
SPRUCE_WALL_HANGING_SIGN(18833, WallHangingSign.class),
/**
* BlockData: {@link WallHangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
BIRCH_WALL_HANGING_SIGN(15937, WallHangingSign.class),
/**
* BlockData: {@link WallHangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
ACACIA_WALL_HANGING_SIGN(22477, WallHangingSign.class),
/**
* BlockData: {@link WallHangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY_WALL_HANGING_SIGN(10953, WallHangingSign.class),
/**
* BlockData: {@link WallHangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
JUNGLE_WALL_HANGING_SIGN(16691, WallHangingSign.class),
/**
* BlockData: {@link WallHangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
DARK_OAK_WALL_HANGING_SIGN(14296, WallHangingSign.class),
/**
* BlockData: {@link WallHangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
MANGROVE_WALL_HANGING_SIGN(16974, WallHangingSign.class),
/**
* BlockData: {@link WallHangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
CRIMSON_WALL_HANGING_SIGN(28982, WallHangingSign.class),
/**
* BlockData: {@link WallHangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
WARPED_WALL_HANGING_SIGN(20605, WallHangingSign.class),
/**
* BlockData: {@link WallHangingSign}
*/
@MinecraftExperimental
@ApiStatus.Experimental
BAMBOO_WALL_HANGING_SIGN(6669, WallHangingSign.class),
/**
* BlockData: {@link RedstoneWallTorch}
@ -3267,16 +3158,12 @@ public enum Material implements Keyed, Translatable {
* BlockData: {@link Tripwire}
*/
TRIPWIRE(8810, Tripwire.class),
@MinecraftExperimental
@ApiStatus.Experimental
POTTED_TORCHFLOWER(21278),
POTTED_OAK_SAPLING(11905),
POTTED_SPRUCE_SAPLING(29498),
POTTED_BIRCH_SAPLING(32484),
POTTED_JUNGLE_SAPLING(7525),
POTTED_ACACIA_SAPLING(14096),
@MinecraftExperimental
@ApiStatus.Experimental
POTTED_CHERRY_SAPLING(30785),
POTTED_DARK_OAK_SAPLING(6486),
POTTED_MANGROVE_PROPAGULE(22003),
@ -3333,8 +3220,6 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Directional}
*/
@MinecraftExperimental
@ApiStatus.Experimental
PIGLIN_WALL_HEAD(4446, Directional.class),
/**
* BlockData: {@link Directional}
@ -3403,9 +3288,11 @@ public enum Material implements Keyed, Translatable {
/**
* BlockData: {@link Ageable}
*/
@MinecraftExperimental
@ApiStatus.Experimental
TORCHFLOWER_CROP(28460, Ageable.class),
/**
* BlockData: {@link PitcherCrop}
*/
PITCHER_CROP(15420, PitcherCrop.class),
/**
* BlockData: {@link Ageable}
*/
@ -4834,6 +4721,7 @@ public enum Material implements Keyed, Translatable {
case CACTUS:
case CAKE:
case CALCITE:
case CALIBRATED_SCULK_SENSOR:
case CAMPFIRE:
case CANDLE:
case CANDLE_CAKE:
@ -5335,6 +5223,8 @@ public enum Material implements Keyed, Translatable {
case PINK_WOOL:
case PISTON:
case PISTON_HEAD:
case PITCHER_CROP:
case PITCHER_PLANT:
case PLAYER_HEAD:
case PLAYER_WALL_HEAD:
case PODZOL:
@ -5511,6 +5401,7 @@ public enum Material implements Keyed, Translatable {
case SMOOTH_SANDSTONE_STAIRS:
case SMOOTH_STONE:
case SMOOTH_STONE_SLAB:
case SNIFFER_EGG:
case SNOW:
case SNOW_BLOCK:
case SOUL_CAMPFIRE:
@ -5576,6 +5467,7 @@ public enum Material implements Keyed, Translatable {
case STRUCTURE_VOID:
case SUGAR_CANE:
case SUNFLOWER:
case SUSPICIOUS_GRAVEL:
case SUSPICIOUS_SAND:
case SWEET_BERRY_BUSH:
case TALL_GRASS:
@ -5882,6 +5774,7 @@ public enum Material implements Keyed, Translatable {
case MUSIC_DISC_MELLOHI:
case MUSIC_DISC_OTHERSIDE:
case MUSIC_DISC_PIGSTEP:
case MUSIC_DISC_RELIC:
case MUSIC_DISC_STAL:
case MUSIC_DISC_STRAD:
case MUSIC_DISC_WAIT:
@ -6024,6 +5917,7 @@ public enum Material implements Keyed, Translatable {
case CACTUS:
case CAKE:
case CALCITE:
case CALIBRATED_SCULK_SENSOR:
case CAMPFIRE:
case CANDLE_CAKE:
case CARTOGRAPHY_TABLE:
@ -6553,6 +6447,7 @@ public enum Material implements Keyed, Translatable {
case SMOOTH_SANDSTONE_STAIRS:
case SMOOTH_STONE:
case SMOOTH_STONE_SLAB:
case SNIFFER_EGG:
case SNOW_BLOCK:
case SOUL_CAMPFIRE:
case SOUL_LANTERN:
@ -6607,6 +6502,7 @@ public enum Material implements Keyed, Translatable {
case STRIPPED_WARPED_HYPHAE:
case STRIPPED_WARPED_STEM:
case STRUCTURE_BLOCK:
case SUSPICIOUS_GRAVEL:
case SUSPICIOUS_SAND:
case TARGET:
case TERRACOTTA:
@ -7165,6 +7061,7 @@ public enum Material implements Keyed, Translatable {
case BIRCH_SLAB:
case BIRCH_STAIRS:
case BIRCH_TRAPDOOR:
case BIRCH_WALL_HANGING_SIGN:
case BIRCH_WALL_SIGN:
case BIRCH_WOOD:
case BLACK_BANNER:
@ -7205,8 +7102,6 @@ public enum Material implements Keyed, Translatable {
case CHISELED_BOOKSHELF:
case COMPOSTER:
case CRAFTING_TABLE:
case CRIMSON_HANGING_SIGN:
case CRIMSON_WALL_HANGING_SIGN:
case CYAN_BANNER:
case CYAN_BED:
case CYAN_CARPET:
@ -7329,6 +7224,7 @@ public enum Material implements Keyed, Translatable {
case PINK_CARPET:
case PINK_WALL_BANNER:
case PINK_WOOL:
case PITCHER_PLANT:
case PURPLE_BANNER:
case PURPLE_BED:
case PURPLE_CARPET:
@ -7380,8 +7276,6 @@ public enum Material implements Keyed, Translatable {
case TNT:
case TRAPPED_CHEST:
case VINE:
case WARPED_HANGING_SIGN:
case WARPED_WALL_HANGING_SIGN:
case WHITE_BANNER:
case WHITE_BED:
case WHITE_CARPET:
@ -7591,6 +7485,7 @@ public enum Material implements Keyed, Translatable {
case PINK_PETALS:
case PINK_TULIP:
case PINK_WOOL:
case PITCHER_PLANT:
case POPPY:
case PURPLE_CARPET:
case PURPLE_WOOL:
@ -7631,6 +7526,7 @@ public enum Material implements Keyed, Translatable {
case TALL_GRASS:
case TARGET:
case TNT:
case TORCHFLOWER:
case VINE:
case WHITE_CARPET:
case WHITE_TULIP:
@ -8355,6 +8251,7 @@ public enum Material implements Keyed, Translatable {
case STRIPPED_WARPED_HYPHAE:
case STRIPPED_WARPED_STEM:
case STRUCTURE_BLOCK:
case SUSPICIOUS_GRAVEL:
case SUSPICIOUS_SAND:
case TARGET:
case TERRACOTTA:
@ -8624,6 +8521,7 @@ public enum Material implements Keyed, Translatable {
case PINK_CANDLE_CAKE:
case PINK_WALL_BANNER:
case PISTON_HEAD:
case PITCHER_CROP:
case PLAYER_WALL_HEAD:
case POTATOES:
case POTTED_ACACIA_SAPLING:
@ -9201,6 +9099,7 @@ public enum Material implements Keyed, Translatable {
case YELLOW_BED:
return 0.2F;
case POWDER_SNOW:
case SUSPICIOUS_GRAVEL:
case SUSPICIOUS_SAND:
return 0.25F;
case BEE_NEST:
@ -9321,6 +9220,7 @@ public enum Material implements Keyed, Translatable {
case RED_SAND:
case ROOTED_DIRT:
case SAND:
case SNIFFER_EGG:
case SOUL_SAND:
case SOUL_SOIL:
case SPRUCE_BUTTON:
@ -9549,6 +9449,7 @@ public enum Material implements Keyed, Translatable {
case BRAIN_CORAL_BLOCK:
case BUBBLE_CORAL_BLOCK:
case BUDDING_AMETHYST:
case CALIBRATED_SCULK_SENSOR:
case CHISELED_BOOKSHELF:
case CHISELED_POLISHED_BLACKSTONE:
case CHISELED_STONE_BRICKS:
@ -10076,6 +9977,7 @@ public enum Material implements Keyed, Translatable {
case YELLOW_BED:
return 0.2F;
case POWDER_SNOW:
case SUSPICIOUS_GRAVEL:
case SUSPICIOUS_SAND:
return 0.25F;
case BEE_NEST:
@ -10195,6 +10097,7 @@ public enum Material implements Keyed, Translatable {
case RED_SAND:
case ROOTED_DIRT:
case SAND:
case SNIFFER_EGG:
case SOUL_SAND:
case SOUL_SOIL:
case SPRUCE_BUTTON:
@ -10394,6 +10297,7 @@ public enum Material implements Keyed, Translatable {
case AMETHYST_CLUSTER:
case BOOKSHELF:
case BUDDING_AMETHYST:
case CALIBRATED_SCULK_SENSOR:
case CHISELED_BOOKSHELF:
case LARGE_AMETHYST_BUD:
case MEDIUM_AMETHYST_BUD:
@ -10950,7 +10854,6 @@ public enum Material implements Keyed, Translatable {
case DRAGON_HEAD:
case GOLDEN_HELMET:
case IRON_HELMET:
case JACK_O_LANTERN:
case LEATHER_HELMET:
case NETHERITE_HELMET:
case PLAYER_HEAD:

View file

@ -5,7 +5,6 @@ import com.google.common.collect.Lists;
import org.bukkit.block.data.BlockData;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.OldEnum;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
public abstract class Particle<D> extends OldEnum<Particle<D>> implements Keyed {
@ -119,15 +118,8 @@ public abstract class Particle<D> extends OldEnum<Particle<D>> implements Keyed
public static final Particle<Float> SCULK_CHARGE = getParticle("sculk_charge");
public static final Particle<Void> SCULK_CHARGE_POP = getParticle("sculk_charge_pop");
public static final Particle<Integer> SHRIEK = getParticle("shriek");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Particle<Void> DRIPPING_CHERRY_LEAVES = getParticle("dripping_cherry_leaves");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Particle<Void> FALLING_CHERRY_LEAVES = getParticle("falling_cherry_leaves");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Particle<Void> LANDING_CHERRY_LEAVES = getParticle("landing_cherry_leaves");
public static final Particle<Void> CHERRY_LEAVES = getParticle("cherry_leaves");
public static final Particle<Void> EGG_CRACK = getParticle("egg_crack");
/**
* Uses {@link BlockData} as DataType
*/

View file

@ -194,7 +194,6 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*
* @see TrimMaterial
*/
@MinecraftExperimental
@ApiStatus.Experimental
Registry<TrimMaterial> TRIM_MATERIAL = Objects.requireNonNull(Bukkit.getRegistry(TrimMaterial.class), "No registry present for TrimMaterial. This is a bug.");
/**
@ -202,7 +201,6 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*
* @see TrimPattern
*/
@MinecraftExperimental
@ApiStatus.Experimental
Registry<TrimPattern> TRIM_PATTERN = Objects.requireNonNull(Bukkit.getRegistry(TrimPattern.class), "No registry present for TrimPattern. This is a bug.");
/**
@ -283,7 +281,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
default T match(@NotNull String input) {
Preconditions.checkArgument(input != null, "input must not be null");
String filtered = input.toLowerCase().replaceAll("\\s+", "_").replaceAll("\\W", "");
String filtered = input.toLowerCase().replaceAll("\\s+", "_");
NamespacedKey namespacedKey = NamespacedKey.fromString(filtered);
return (namespacedKey != null) ? get(namespacedKey) : null;
}

View file

@ -50,6 +50,7 @@ public abstract class Sound extends OldEnum<Sound> implements Keyed {
public static final Sound BLOCK_AMETHYST_BLOCK_FALL = getSound("block.amethyst_block.fall");
public static final Sound BLOCK_AMETHYST_BLOCK_HIT = getSound("block.amethyst_block.hit");
public static final Sound BLOCK_AMETHYST_BLOCK_PLACE = getSound("block.amethyst_block.place");
public static final Sound BLOCK_AMETHYST_BLOCK_RESONATE = getSound("block.amethyst_block.resonate");
public static final Sound BLOCK_AMETHYST_BLOCK_STEP = getSound("block.amethyst_block.step");
public static final Sound BLOCK_AMETHYST_CLUSTER_BREAK = getSound("block.amethyst_cluster.break");
public static final Sound BLOCK_AMETHYST_CLUSTER_FALL = getSound("block.amethyst_cluster.fall");
@ -275,38 +276,16 @@ public abstract class Sound extends OldEnum<Sound> implements Keyed {
public static final Sound BLOCK_CHAIN_HIT = getSound("block.chain.hit");
public static final Sound BLOCK_CHAIN_PLACE = getSound("block.chain.place");
public static final Sound BLOCK_CHAIN_STEP = getSound("block.chain.step");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Sound BLOCK_CHERRY_WOOD_BREAK = getSound("block.cherry_wood.break");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Sound BLOCK_CHERRY_WOOD_FALL = getSound("block.cherry_wood.fall");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Sound BLOCK_CHERRY_WOOD_HIT = getSound("block.cherry_wood.hit");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Sound BLOCK_CHERRY_WOOD_PLACE = getSound("block.cherry_wood.place");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Sound BLOCK_CHERRY_WOOD_STEP = getSound("block.cherry_wood.step");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Sound BLOCK_CHERRY_SAPLING_BREAK = getSound("block.cherry_sapling.break");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Sound BLOCK_CHERRY_SAPLING_FALL = getSound("block.cherry_sapling.fall");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Sound BLOCK_CHERRY_SAPLING_HIT = getSound("block.cherry_sapling.hit");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Sound BLOCK_CHERRY_SAPLING_PLACE = getSound("block.cherry_sapling.place");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Sound BLOCK_CHERRY_SAPLING_STEP = getSound("block.cherry_sapling.step");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Sound BLOCK_CHERRY_LEAVES_BREAK = getSound("block.cherry_leaves.break");
@MinecraftExperimental
@ApiStatus.Experimental

View file

@ -4,7 +4,6 @@ import java.util.Set;
import org.bukkit.block.BlockType;
import org.bukkit.entity.EntityType;
import org.bukkit.inventory.ItemType;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
@ -39,6 +38,10 @@ public interface Tag<T extends Keyed> extends Keyed {
* Vanilla block tag representing all wooden buttons.
*/
Tag<BlockType> WOODEN_BUTTONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_buttons"), BlockType.class);
/**
* Vanilla block tag representing all stone buttons.
*/
Tag<BlockType> STONE_BUTTONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stone_buttons"), BlockType.class);
/**
* Vanilla block tag representing all buttons (inherits from
* {@link #WOODEN_BUTTONS}.
@ -121,8 +124,6 @@ public interface Tag<T extends Keyed> extends Keyed {
/**
* Vanilla block tag representing all cherry log and bark variants.
*/
@MinecraftExperimental
@ApiStatus.Experimental
Tag<BlockType> CHERRY_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("cherry_logs"), BlockType.class);
/**
* Vanilla block tag representing all jungle log and bark variants.
@ -321,20 +322,14 @@ public interface Tag<T extends Keyed> extends Keyed {
/**
* Vanilla block tag representing all ceiling signs.
*/
@MinecraftExperimental
@ApiStatus.Experimental
Tag<BlockType> CEILING_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("ceiling_hanging_signs"), BlockType.class);
/**
* Vanilla block tag representing all wall hanging signs.
*/
@MinecraftExperimental
@ApiStatus.Experimental
Tag<BlockType> WALL_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_hanging_signs"), BlockType.class);
/**
* Vanilla block tag representing all hanging signs.
*/
@MinecraftExperimental
@ApiStatus.Experimental
Tag<BlockType> ALL_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("all_hanging_signs"), BlockType.class);
/**
* Vanilla block tag representing all signs, regardless of type.
@ -502,6 +497,10 @@ public interface Tag<T extends Keyed> extends Keyed {
* Vanilla block tag representing all blocks that play muffled step sounds.
*/
Tag<BlockType> INSIDE_STEP_SOUND_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("inside_step_sound_blocks"), BlockType.class);
/**
* Vanilla block tag representing all blocks that play combination step sounds.
*/
Tag<BlockType> COMBINATION_STEP_SOUND_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("combination_step_sound_blocks"), BlockType.class);
/**
* Vanilla block tag representing all blocks that block vibration signals.
*/
@ -562,6 +561,10 @@ public interface Tag<T extends Keyed> extends Keyed {
* Vanilla block tag representing all blocks mineable with a shovel.
*/
Tag<BlockType> MINEABLE_SHOVEL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/shovel"), BlockType.class);
/**
* Vanilla block tag representing all blocks that can be efficiently mined with a sword.
*/
Tag<BlockType> SWORD_EFFICIENT = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sword_efficient"), BlockType.class);
/**
* Vanilla block tag representing all blocks which require a diamond tool.
*/
@ -606,6 +609,10 @@ public interface Tag<T extends Keyed> extends Keyed {
* ancient cities.
*/
Tag<BlockType> ANCIENT_CITY_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("ancient_city_replaceable"), BlockType.class);
/**
* Vanilla block tag representing all blocks which resonate vibrations.
*/
Tag<BlockType> VIBRATION_RESONATORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("vibration_resonators"), BlockType.class);
/**
* Vanilla block tag representing all blocks which animals will spawn on.
*/
@ -631,11 +638,6 @@ public interface Tag<T extends Keyed> extends Keyed {
* on.
*/
Tag<BlockType> POLAR_BEARS_SPAWNABLE_ON_ALTERNATE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("polar_bears_spawnable_on_alternate"), BlockType.class);
/**
* @deprecated {@link #POLAR_BEARS_SPAWNABLE_ON_ALTERNATE}
*/
@Deprecated
Tag<BlockType> POLAR_BEARS_SPAWNABLE_ON_IN_FROZEN_OCEAN = POLAR_BEARS_SPAWNABLE_ON_ALTERNATE;
/**
* Vanilla block tag representing all blocks which rabbits will spawn on.
*/
@ -656,10 +658,6 @@ public interface Tag<T extends Keyed> extends Keyed {
* Vanilla block tag representing all blocks which azaleas will grow on.
*/
Tag<BlockType> AZALEA_GROWS_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("azalea_grows_on"), BlockType.class);
/**
* Vanilla block tag representing all plant blocks which may be replaced.
*/
Tag<BlockType> REPLACEABLE_PLANTS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("replaceable_plants"), BlockType.class);
/**
* Vanilla block tag representing all blocks which may be converted to mud.
*/
@ -683,6 +681,10 @@ public interface Tag<T extends Keyed> extends Keyed {
* Vanilla block tag representing all blocks which snap dropped goat horns.
*/
Tag<BlockType> SNAPS_GOAT_HORN = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("snaps_goat_horn"), BlockType.class);
/**
* Vanilla block tag representing all blocks replaceable by growing trees.
*/
Tag<BlockType> REPLACEABLE_BY_TREES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("replaceable_by_trees"), BlockType.class);
/**
* Vanilla block tag representing blocks which snow cannot survive on.
*/
@ -698,9 +700,31 @@ public interface Tag<T extends Keyed> extends Keyed {
/**
* Vanilla block tag representing blocks which can be dug by sniffers.
*/
@MinecraftExperimental
@ApiStatus.Experimental
Tag<BlockType> SNIFFER_DIGGABLE_BLOCK = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sniffer_diggable_block"), BlockType.class);
/**
* Vanilla block tag representing all blocks which booster sniffer egg hatching.
*/
Tag<BlockType> SNIFFER_EGG_HATCH_BOOST = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sniffer_egg_hatch_boost"), BlockType.class);
/**
* Vanilla block tag representing all blocks which can be replaced by trail ruins.
*/
Tag<BlockType> TRAIL_RUINS_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("trail_ruins_replaceable"), BlockType.class);
/**
* Vanilla block tag representing all blocks which are replaceable.
*/
Tag<BlockType> REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("replaceable"), BlockType.class);
/**
* Vanilla block tag representing all blocks which provide enchantment power.
*/
Tag<BlockType> ENCHANTMENT_POWER_PROVIDER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("enchantment_power_provider"), BlockType.class);
/**
* Vanilla block tag representing all blocks which transmit enchantment power.
*/
Tag<BlockType> ENCHANTMENT_POWER_TRANSMITTER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("enchantment_power_transmitter"), BlockType.class);
/**
* Vanilla block tag representing all blocks which do not destroy farmland when placed.
*/
Tag<BlockType> MAINTAINS_FARMLAND = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("maintains_farmland"), BlockType.class);
/**
* Key for the built in item registry.
*/
@ -789,39 +813,31 @@ public interface Tag<T extends Keyed> extends Keyed {
/**
* Vanilla item tag representing all items which modify note block sounds when placed on top.
*/
@MinecraftExperimental
@ApiStatus.Experimental
Tag<ItemType> ITEMS_NOTE_BLOCK_TOP_INSTRUMENTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("noteblock_top_instruments"), ItemType.class);
/**
* Vanilla item tag representing all trimmable armor items.
*/
@MinecraftExperimental
@ApiStatus.Experimental
Tag<ItemType> ITEMS_TRIMMABLE_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trimmable_armor"), ItemType.class);
/**
* Vanilla item tag representing all ItemTypes which can be used for trimming armor.
*/
@MinecraftExperimental
@ApiStatus.Experimental
Tag<ItemType> ITEMS_TRIM_ItemTypeS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_materials"), ItemType.class);
/**
* Vanilla item tag representing all trimming templates.
*/
@MinecraftExperimental
@ApiStatus.Experimental
Tag<ItemType> ITEMS_TRIM_TEMPLATES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_templates"), ItemType.class);
/**
* Vanilla item tag representing all food for sniffers.
*/
@MinecraftExperimental
@ApiStatus.Experimental
Tag<ItemType> ITEMS_SNIFFER_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("sniffer_food"), ItemType.class);
/**
* Vanilla item tag representing all decorated pot shards.
* Vanilla item tag representing all decorated pot sherds.
*/
@MinecraftExperimental
@ApiStatus.Experimental
Tag<ItemType> ITEMS_DECORATED_POT_SHARDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("decorated_pot_shards"), ItemType.class);
Tag<ItemType> ITEMS_DECORATED_POT_SHERDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("decorated_pot_sherds"), ItemType.class);
/**
* Vanilla item tag representing all decorated pot ingredients.
*/
Tag<ItemType> ITEMS_DECORATED_POT_INGREDIENTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("decorated_pot_ingredients"), ItemType.class);
/**
* Vanilla item tag representing all swords.
*/
@ -847,11 +863,13 @@ public interface Tag<T extends Keyed> extends Keyed {
*/
Tag<ItemType> ITEMS_TOOLS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("tools"), ItemType.class);
/**
* Vanilla item tag representing all item which break decorated pots.
* Vanilla item tag representing all items which break decorated pots.
*/
@MinecraftExperimental
@ApiStatus.Experimental
Tag<ItemType> ITEMS_BREAKS_DECORATED_POTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("breaks_decorated_pots"), ItemType.class);
/**
* Vanilla item tag representing all seeds planteable by villagers.
*/
Tag<ItemType> ITEMS_VILLAGER_PLANTABLE_SEEDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("villager_plantable_seeds"), ItemType.class);
/**
* Vanilla item tag representing all items that confer freeze immunity on
* the wearer.

View file

@ -1,7 +1,5 @@
package org.bukkit;
import org.jetbrains.annotations.ApiStatus;
/**
* Tree and organic structure types.
*/
@ -98,7 +96,5 @@ public enum TreeType {
/**
* Cherry tree
*/
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY,
}

View file

@ -4,11 +4,9 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import org.bukkit.Bukkit;
import org.bukkit.Keyed;
import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
import org.bukkit.util.OldEnum;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
@ -82,8 +80,6 @@ public abstract class Biome extends OldEnum<Biome> implements Keyed {
public static final Biome FROZEN_PEAKS = getBiome("frozen_peaks");
public static final Biome JAGGED_PEAKS = getBiome("jagged_peaks");
public static final Biome STONY_PEAKS = getBiome("stony_peaks");
@MinecraftExperimental
@ApiStatus.Experimental
public static final Biome CHERRY_GROVE = getBiome("cherry_grove");
/**

View file

@ -0,0 +1,28 @@
package org.bukkit.block;
import org.bukkit.inventory.ItemStack;
import org.bukkit.loot.Lootable;
import org.jetbrains.annotations.Nullable;
/**
* Represents a captured state of suspicious sand or gravel.
*/
public interface BrushableBlock extends Lootable, TileState {
/**
* Get the item which will be revealed when the sand is fully brushed away
* and uncovered.
*
* @return the item
*/
@Nullable
public ItemStack getItem();
/**
* Sets the item which will be revealed when the sand is fully brushed away
* and uncovered.
*
* @param item the item
*/
public void setItem(@Nullable ItemStack item);
}

View file

@ -0,0 +1,7 @@
package org.bukkit.block;
/**
* Represents a captured state of a calibrated sculk sensor
*/
public interface CalibratedSculkSensor extends SculkSensor {
}

View file

@ -1,16 +1,12 @@
package org.bukkit.block;
import org.bukkit.MinecraftExperimental;
import org.bukkit.inventory.BlockInventoryHolder;
import org.bukkit.inventory.ChiseledBookshelfInventory;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
* Represents a captured state of a chiseled bookshelf.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface ChiseledBookshelf extends TileState, BlockInventoryHolder {
/**

View file

@ -1,16 +1,13 @@
package org.bukkit.block;
import java.util.List;
import org.bukkit.MinecraftExperimental;
import org.bukkit.inventory.ItemType;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* Represents a captured state of a decorated pot.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface DecoratedPot extends TileState {
@ -21,18 +18,4 @@ public interface DecoratedPot extends TileState {
*/
@NotNull
public List<ItemType> getShards();
/**
* Add a shard item which will be dropped when this pot is broken.
*
* @param itemType shard item
*/
public void addShard(@NotNull ItemType itemType);
/**
* Set the shards which will be dropped when this pot is broken.
*
* @param shard list of item types
*/
public void setShards(@Nullable List<ItemType> shard);
}

View file

@ -1,12 +1,7 @@
package org.bukkit.block;
import org.bukkit.MinecraftExperimental;
import org.jetbrains.annotations.ApiStatus;
/**
* Represents a captured state of a hanging sign.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface HangingSign extends Sign {
}

View file

@ -4,7 +4,6 @@ import org.bukkit.DyeColor;
import org.bukkit.block.sign.Side;
import org.bukkit.block.sign.SignSide;
import org.bukkit.material.Colorable;
import org.jetbrains.annotations.ApiStatus.Experimental;
import org.jetbrains.annotations.NotNull;
/**
@ -16,8 +15,9 @@ public interface Sign extends TileState, Colorable {
* Gets all the lines of text currently on the {@link Side#FRONT} of this sign.
*
* @return Array of Strings containing each line of text
* @see #getSide(Side)
* @deprecated A sign may have multiple writable sides now. Use {@link Sign#getSide(Side)} and {@link SignSide#getLines()}.
*/
@Deprecated
@NotNull
public String[] getLines();
@ -29,8 +29,9 @@ public interface Sign extends TileState, Colorable {
* @param index Line number to get the text from, starting at 0
* @return Text on the given line
* @throws IndexOutOfBoundsException Thrown when the line does not exist
* @see #getSide(Side)
* @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#getLine(int)}.
*/
@Deprecated
@NotNull
public String getLine(int index) throws IndexOutOfBoundsException;
@ -43,8 +44,9 @@ public interface Sign extends TileState, Colorable {
* @param index Line number to set the text at, starting from 0
* @param line New text to set at the specified index
* @throws IndexOutOfBoundsException If the index is out of the range 0..3
* @see #getSide(Side)
* @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#setLine(int, String)}.
*/
@Deprecated
public void setLine(int index, @NotNull String line) throws IndexOutOfBoundsException;
/**
@ -73,31 +75,37 @@ public interface Sign extends TileState, Colorable {
* Gets whether this sign has glowing text. Only affects the {@link Side#FRONT}.
*
* @return if this sign has glowing text
* @see #getSide(Side)
* @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#isGlowingText()}.
*/
@Deprecated
public boolean isGlowingText();
/**
* Sets whether this sign has glowing text. Only affects the {@link Side#FRONT}.
*
* @param glowing if this sign has glowing text
* @see #getSide(Side)
* @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#setGlowingText(boolean)}.
*/
@Deprecated
public void setGlowingText(boolean glowing);
/**
* {@inheritDoc}
*
* @see #getSide(Side)
* @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#getColor()}.
*/
@NotNull
@Override
@Deprecated
public DyeColor getColor();
/**
* {@inheritDoc}
*
* @see #getSide(Side)
* @deprecated A sign may have multiple writable sides now. Use {@link #getSide(Side)} and {@link SignSide#setColor(org.bukkit.DyeColor)}.
*/
@Override
@Deprecated
public void setColor(@NotNull DyeColor color);
/**
@ -106,7 +114,6 @@ public interface Sign extends TileState, Colorable {
* @param side the side of the sign
* @return the selected side of the sign
*/
@Experimental
@NotNull
public SignSide getSide(@NotNull Side side);
}

View file

@ -1,12 +1,10 @@
package org.bukkit.block;
import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.OfflinePlayer;
import org.bukkit.SkullType;
import org.bukkit.block.data.BlockData;
import org.bukkit.profile.PlayerProfile;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -95,8 +93,6 @@ public interface Skull extends TileState {
*
* @return the key of the sound, or null
*/
@MinecraftExperimental
@ApiStatus.Experimental
@Nullable
public NamespacedKey getNoteBlockSound();
@ -109,8 +105,6 @@ public interface Skull extends TileState {
* @param noteBlockSound the key of the sound to be played, or null
*
*/
@MinecraftExperimental
@ApiStatus.Experimental
public void setNoteBlockSound(@Nullable NamespacedKey noteBlockSound);
/**

View file

@ -1,32 +1,10 @@
package org.bukkit.block;
import org.bukkit.MinecraftExperimental;
import org.bukkit.inventory.ItemStack;
import org.bukkit.loot.Lootable;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
/**
* Represents a captured state of suspicious sand.
*
* @see BrushableBlock
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface SuspiciousSand extends Lootable, TileState {
/**
* Get the item which will be revealed when the sand is fully brushed away
* and uncovered.
*
* @return the item
*/
@Nullable
public ItemStack getItem();
/**
* Sets the item which will be revealed when the sand is fully brushed away
* and uncovered.
*
* @param item the item
*/
public void setItem(@Nullable ItemStack item);
@Deprecated
public interface SuspiciousSand extends BrushableBlock {
}

View file

@ -1,15 +1,9 @@
package org.bukkit.block.data.type;
import org.bukkit.MinecraftExperimental;
import org.bukkit.block.data.BlockData;
import org.jetbrains.annotations.ApiStatus;
package org.bukkit.block.data;
/**
* 'dusted' represents how far uncovered by brush the block is.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface SuspiciousSand extends BlockData {
public interface Brushable extends BlockData {
/**
* Gets the value of the 'dusted' property.

View file

@ -0,0 +1,28 @@
package org.bukkit.block.data;
/**
* 'hatch' is the number of entities which may hatch from these eggs.
*/
public interface Hatchable extends BlockData {
/**
* Gets the value of the 'hatch' property.
*
* @return the 'hatch' value
*/
int getHatch();
/**
* Sets the value of the 'hatch' property.
*
* @param hatch the new 'hatch' value
*/
void setHatch(int hatch);
/**
* Gets the maximum allowed value of the 'hatch' property.
*
* @return the maximum 'hatch' value
*/
int getMaximumHatch();
}

View file

@ -0,0 +1,5 @@
package org.bukkit.block.data.type;
import org.bukkit.block.data.Directional;
public interface CalibratedSculkSensor extends Directional, SculkSensor { }

View file

@ -1,9 +1,7 @@
package org.bukkit.block.data.type;
import java.util.Set;
import org.bukkit.MinecraftExperimental;
import org.bukkit.block.data.Directional;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
@ -13,8 +11,6 @@ import org.jetbrains.annotations.NotNull;
* <br>
* Block may have 0, 1... {@link #getMaximumOccupiedSlots()}-1 occupied slots.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface ChiseledBookshelf extends Directional {
/**

View file

@ -1,11 +1,7 @@
package org.bukkit.block.data.type;
import org.bukkit.MinecraftExperimental;
import org.bukkit.block.data.Directional;
import org.bukkit.block.data.Waterlogged;
import org.jetbrains.annotations.ApiStatus;
@MinecraftExperimental
@ApiStatus.Experimental
public interface DecoratedPot extends Directional, Waterlogged {
}

View file

@ -1,12 +1,8 @@
package org.bukkit.block.data.type;
import org.bukkit.MinecraftExperimental;
import org.bukkit.block.data.Attachable;
import org.bukkit.block.data.Rotatable;
import org.bukkit.block.data.Waterlogged;
import org.jetbrains.annotations.ApiStatus;
@MinecraftExperimental
@ApiStatus.Experimental
public interface HangingSign extends Attachable, Rotatable, Waterlogged {
}

View file

@ -1,14 +1,10 @@
package org.bukkit.block.data.type;
import org.bukkit.MinecraftExperimental;
import org.bukkit.block.data.Directional;
import org.jetbrains.annotations.ApiStatus;
/**
* 'flower_amount' represents the number of petals.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface PinkPetals extends Directional {
/**

View file

@ -0,0 +1,7 @@
package org.bukkit.block.data.type;
import org.bukkit.block.data.Ageable;
import org.bukkit.block.data.Bisected;
public interface PitcherCrop extends Ageable, Bisected {
}

View file

@ -1,13 +1,11 @@
package org.bukkit.block.data.type;
import org.bukkit.block.data.BlockData;
import org.bukkit.block.data.Hatchable;
/**
* 'hatch' is the number of turtles which may hatch from these eggs.
* <br>
* 'eggs' is the number of eggs which appear in this block.
*/
public interface TurtleEgg extends BlockData {
public interface TurtleEgg extends Hatchable {
/**
* Gets the value of the 'eggs' property.
@ -36,25 +34,4 @@ public interface TurtleEgg extends BlockData {
* @return the maximum 'eggs' value
*/
int getMaximumEggs();
/**
* Gets the value of the 'hatch' property.
*
* @return the 'hatch' value
*/
int getHatch();
/**
* Sets the value of the 'hatch' property.
*
* @param hatch the new 'hatch' value
*/
void setHatch(int hatch);
/**
* Gets the maximum allowed value of the 'hatch' property.
*
* @return the maximum 'hatch' value
*/
int getMaximumHatch();
}

View file

@ -1,11 +1,7 @@
package org.bukkit.block.data.type;
import org.bukkit.MinecraftExperimental;
import org.bukkit.block.data.Directional;
import org.bukkit.block.data.Waterlogged;
import org.jetbrains.annotations.ApiStatus;
@MinecraftExperimental
@ApiStatus.Experimental
public interface WallHangingSign extends Directional, Waterlogged {
}

View file

@ -6,4 +6,5 @@ package org.bukkit.block.sign;
public enum Side {
FRONT,
BACK;
}

View file

@ -1,13 +1,11 @@
package org.bukkit.block.sign;
import org.bukkit.material.Colorable;
import org.jetbrains.annotations.ApiStatus.Experimental;
import org.jetbrains.annotations.NotNull;
/**
* Represents a side of a sign.
*/
@Experimental
public interface SignSide extends Colorable {
/**

View file

@ -188,7 +188,6 @@ public enum EnchantmentTarget {
return ARMOR.includes(item)
|| item.equals(ItemType.ELYTRA)
|| item.equals(ItemType.CARVED_PUMPKIN)
|| item.equals(ItemType.JACK_O_LANTERN)
|| item.equals(ItemType.SKELETON_SKULL)
|| item.equals(ItemType.WITHER_SKELETON_SKULL)
|| item.equals(ItemType.ZOMBIE_HEAD)

View file

@ -1,9 +1,7 @@
package org.bukkit.entity;
import org.bukkit.MinecraftExperimental;
import org.bukkit.TreeSpecies;
import org.bukkit.inventory.ItemType;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
@ -143,13 +141,9 @@ public interface Boat extends Vehicle {
BIRCH(ItemType.BIRCH_PLANKS),
JUNGLE(ItemType.JUNGLE_PLANKS),
ACACIA(ItemType.ACACIA_PLANKS),
@MinecraftExperimental
@ApiStatus.Experimental
CHERRY(ItemType.CHERRY_PLANKS),
DARK_OAK(ItemType.DARK_OAK_PLANKS),
MANGROVE(ItemType.MANGROVE_PLANKS),
@MinecraftExperimental
@ApiStatus.Experimental
BAMBOO(ItemType.BAMBOO_PLANKS),
;

View file

@ -1,16 +1,8 @@
package org.bukkit.entity;
import org.bukkit.MinecraftExperimental;
import org.jetbrains.annotations.ApiStatus;
/**
* Represents a Camel.
*
* @apiNote This entity is part of an experimental feature of Minecraft and
* hence subject to change.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface Camel extends AbstractHorse, Sittable {
/**

View file

@ -7,7 +7,6 @@ import com.google.common.collect.Lists;
import org.bukkit.Bukkit;
import org.bukkit.Keyed;
import org.bukkit.Location;
import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
import org.bukkit.Translatable;
@ -284,14 +283,10 @@ public abstract class EntityType<E extends Entity> extends OldEnum<EntityType<E>
public static final EntityType<Frog> FROG = getEntityType("frog");
public static final EntityType<Tadpole> TADPOLE = getEntityType("tadpole");
public static final EntityType<Warden> WARDEN = getEntityType("warden");
@MinecraftExperimental
@ApiStatus.Experimental
public static final EntityType<Camel> CAMEL = getEntityType("camel");
public static final EntityType<BlockDisplay> BLOCK_DISPLAY = getEntityType("block_display");
public static final EntityType<Interaction> INTERACTION = getEntityType("interaction");
public static final EntityType<ItemDisplay> ITEM_DISPLAY = getEntityType("item_display");
@MinecraftExperimental
@ApiStatus.Experimental
public static final EntityType<Sniffer> SNIFFER = getEntityType("sniffer");
public static final EntityType<TextDisplay> TEXT_DISPLAY = getEntityType("text_display");
/**

View file

@ -510,6 +510,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void sendBlockChange(@NotNull Location loc, @NotNull BlockData block);
/**
* Send a multi-block change. This fakes a block change packet for a user
* at multiple locations. This will not actually change the world in any
* way.
* <p>
* This method may send multiple packets to the client depending on the
* blocks in the collection. A packet must be sent for each chunk section
* modified, meaning one packet for each 16x16x16 block area. Even if only
* one block is changed in two different chunk sections, two packets will
* be sent.
* <p>
* Additionally, this method cannot guarantee the functionality of changes
* being sent to the player in chunks not loaded by the client. It is the
* responsibility of the caller to ensure that the client is within range
* of the changed blocks or to handle any side effects caused as a result.
*
* @param blocks the block states to send to the player
*/
public void sendBlockChanges(@NotNull Collection<BlockState> blocks);
/**
* Send a multi-block change. This fakes a block change packet for a user
* at multiple locations. This will not actually change the world in any
@ -529,7 +549,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param blocks the block states to send to the player
* @param suppressLightUpdates whether or not light updates should be
* suppressed when updating the blocks on the client
* @deprecated suppressLightUpdates is not functional in versions greater
* than 1.19.4
*/
@Deprecated
public void sendBlockChanges(@NotNull Collection<BlockState> blocks, boolean suppressLightUpdates);
/**

View file

@ -2,19 +2,12 @@ package org.bukkit.entity;
import java.util.Collection;
import org.bukkit.Location;
import org.bukkit.MinecraftExperimental;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* Represents a Sniffer.
*
* @apiNote This entity is part of an experimental feature of Minecraft and
* hence subject to change.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface Sniffer extends Animals {
/**

View file

@ -7,9 +7,7 @@ import java.util.Set;
import java.util.UUID;
import org.bukkit.Keyed;
import org.bukkit.Location;
import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -71,8 +69,6 @@ public final class MemoryKey<T> implements Keyed {
public static final MemoryKey<Location> LIKED_NOTEBLOCK_POSITION = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock"), Location.class);
public static final MemoryKey<Integer> LIKED_NOTEBLOCK_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock_cooldown_ticks"), Integer.class);
public static final MemoryKey<Integer> ITEM_PICKUP_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("item_pickup_cooldown_ticks"), Integer.class);
@MinecraftExperimental
@ApiStatus.Experimental
public static final MemoryKey<Location> SNIFFER_EXPLORED_POSITIONS = new MemoryKey<>(NamespacedKey.minecraft("sniffer_explored_positions"), Location.class);
/**

View file

@ -46,6 +46,7 @@ public abstract class Structure implements Keyed {
public static final Structure RUINED_PORTAL_OCEAN = getStructure("ruined_portal_ocean");
public static final Structure RUINED_PORTAL_NETHER = getStructure("ruined_portal_nether");
public static final Structure ANCIENT_CITY = getStructure("ancient_city");
public static final Structure TRAIL_RUINS = getStructure("trail_ruins");
private static Structure getStructure(String name) {
return Registry.STRUCTURE.get(NamespacedKey.minecraft(name));

View file

@ -1,15 +1,11 @@
package org.bukkit.inventory;
import org.bukkit.MinecraftExperimental;
import org.bukkit.block.ChiseledBookshelf;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
/**
* Interface to the inventory of a chiseled bookshelf.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface ChiseledBookshelfInventory extends Inventory {
@Nullable

View file

@ -1,8 +1,5 @@
package org.bukkit.inventory;
import org.bukkit.MinecraftExperimental;
import org.jetbrains.annotations.ApiStatus;
/**
* A ItemFlag can hide some Attributes from ItemStacks
*/
@ -40,7 +37,5 @@ public enum ItemFlag {
/**
* Setting to show/hide armor trim from leather armor.
*/
@MinecraftExperimental
@ApiStatus.Experimental
HIDE_ARMOR_TRIM;
}

View file

@ -1,15 +1,10 @@
package org.bukkit.inventory;
import org.bukkit.MinecraftExperimental;
import org.jetbrains.annotations.Nullable;
/**
* Interface to the inventory of a Smithing table.
*
* @apiNote Check {@link #getType()} to better handle either the current or experimental
* variant of this inventory
*/
@MinecraftExperimental
public interface SmithingInventory extends Inventory {
/**

View file

@ -1,18 +1,11 @@
package org.bukkit.inventory;
import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
* Represents a smithing trim recipe.
*
* @apiNote This recipe is part of an experimental feature of Minecraft and
* hence subject to change.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public class SmithingTrimRecipe extends SmithingRecipe implements ComplexRecipe {
private final RecipeChoice template;

View file

@ -1,8 +1,6 @@
package org.bukkit.inventory.meta;
import org.bukkit.MinecraftExperimental;
import org.bukkit.inventory.meta.trim.ArmorTrim;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -12,8 +10,6 @@ import org.jetbrains.annotations.Nullable;
* <strong>Note: Armor trims are part of an experimental feature of Minecraft
* and hence subject to change.</strong>
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface ArmorMeta extends ItemMeta {
/**

View file

@ -1,14 +1,10 @@
package org.bukkit.inventory.meta;
import java.util.List;
import org.bukkit.MinecraftExperimental;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@MinecraftExperimental
@ApiStatus.Experimental
public interface BundleMeta extends ItemMeta {
/**

View file

@ -1,10 +1,8 @@
package org.bukkit.inventory.meta;
import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.OfflinePlayer;
import org.bukkit.profile.PlayerProfile;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -90,8 +88,6 @@ public interface SkullMeta extends ItemMeta {
*
* @param noteBlockSound the key of the sound to be played, or null
*/
@MinecraftExperimental
@ApiStatus.Experimental
void setNoteBlockSound(@Nullable NamespacedKey noteBlockSound);
/**
@ -102,8 +98,6 @@ public interface SkullMeta extends ItemMeta {
*
* @return the key of the sound, or null
*/
@MinecraftExperimental
@ApiStatus.Experimental
@Nullable
NamespacedKey getNoteBlockSound();

View file

@ -2,20 +2,14 @@ package org.bukkit.inventory.meta.trim;
import com.google.common.base.Preconditions;
import java.util.Objects;
import org.bukkit.MinecraftExperimental;
import org.bukkit.inventory.meta.ArmorMeta;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
* Represents an armor trim that may be applied to an item.
*
* @see ArmorMeta#setTrim(ArmorTrim)
* @apiNote Armor trims are part of an experimental feature of Minecraft and
* hence subject to change.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public class ArmorTrim {
private final TrimMaterial material;

View file

@ -1,21 +1,13 @@
package org.bukkit.inventory.meta.trim;
import org.bukkit.Keyed;
import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
import org.bukkit.inventory.ItemType;
import org.jetbrains.annotations.ApiStatus;
/**
* Represents a material that may be used in an {@link ArmorTrim}.
*
* @apiNote Armor trims are part of an experimental feature of Minecraft and
* hence subject to change. Constants in this class may be null if a data pack
* is not present to enable these features.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface TrimMaterial extends Keyed {
/**

View file

@ -1,21 +1,13 @@
package org.bukkit.inventory.meta.trim;
import org.bukkit.Keyed;
import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
import org.bukkit.inventory.ItemType;
import org.jetbrains.annotations.ApiStatus;
/**
* Represents a pattern that may be used in an {@link ArmorTrim}.
*
* @apiNote Armor trims are part of an experimental feature of Minecraft and
* hence subject to change. Constants in this class may be null if a data pack
* is not present to enable these features.
*/
@MinecraftExperimental
@ApiStatus.Experimental
public interface TrimPattern extends Keyed {
/**

View file

@ -155,7 +155,15 @@ public enum LootTables implements Keyed {
SHEPHERD_GIFT("gameplay/hero_of_the_village/shepherd_gift"),
TOOLSMITH_GIFT("gameplay/hero_of_the_village/toolsmith_gift"),
WEAPONSMITH_GIFT("gameplay/hero_of_the_village/weaponsmith_gift"),
SNIFFER_DIGGING("gameplay/sniffer_digging"),
PIGLIN_BARTERING("gameplay/piglin_bartering"),
// Archaeology
DESERT_WELL_ARCHAEOLOGY("archaeology/desert_well"),
DESERT_PYRAMID_ARCHAEOLOGY("archaeology/desert_pyramid"),
TRAIL_RUINS_ARCHAEOLOGY_COMMON("archaeology/trail_ruins_common"),
TRAIL_RUINS_ARCHAEOLOGY_RARE("archaeology/trail_ruins_rare"),
OCEAN_RUIN_WARM_ARCHAEOLOGY("archaeology/ocean_ruin_warm"),
OCEAN_RUIN_COLD_ARCHAEOLOGY("archaeology/ocean_ruin_cold"),
// Sheep
SHEEP("entities/sheep"),
SHEEP_BLACK("entities/sheep/black"),