diff --git a/paper-api/pom.xml b/paper-api/pom.xml index 4702b7a317..0e37cf7203 100644 --- a/paper-api/pom.xml +++ b/paper-api/pom.xml @@ -5,7 +5,7 @@ org.bukkit bukkit - 1.20.2-R0.1-SNAPSHOT + 1.20.3-R0.1-SNAPSHOT jar Bukkit diff --git a/paper-api/src/main/java/org/bukkit/FeatureFlag.java b/paper-api/src/main/java/org/bukkit/FeatureFlag.java index 1d93e26bcd..5269df59f0 100644 --- a/paper-api/src/main/java/org/bukkit/FeatureFlag.java +++ b/paper-api/src/main/java/org/bukkit/FeatureFlag.java @@ -27,4 +27,7 @@ public interface FeatureFlag extends Keyed { @MinecraftExperimental public static final FeatureFlag TRADE_REBALANCE = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("trade_rebalance")); + + @MinecraftExperimental + public static final FeatureFlag UPDATE_121 = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("update_1_21")); } diff --git a/paper-api/src/main/java/org/bukkit/GameRule.java b/paper-api/src/main/java/org/bukkit/GameRule.java index 3ac563da8c..cca5267019 100644 --- a/paper-api/src/main/java/org/bukkit/GameRule.java +++ b/paper-api/src/main/java/org/bukkit/GameRule.java @@ -61,6 +61,11 @@ public final class GameRule { */ public static final GameRule DO_MOB_LOOT = new GameRule<>("doMobLoot", Boolean.class); + /** + * Whether projectiles can break blocks. + */ + public static final GameRule PROJECTILES_CAN_BREAK_BLOCKS = new GameRule<>("projectilesCanBreakBlocks", Boolean.class); + /** * Whether mobs should naturally spawn. */ @@ -243,6 +248,12 @@ public final class GameRule { */ public static final GameRule MAX_COMMAND_CHAIN_LENGTH = new GameRule<>("maxCommandChainLength", Integer.class); + /** + * Determines the number of different commands/functions which execute + * commands can fork into. + */ + public static final GameRule MAX_COMMAND_FORK_COUNT = new GameRule<>("maxCommandForkCount", Integer.class); + /** * Determines the maximum number of blocks which a command can modify. */ @@ -255,6 +266,18 @@ public final class GameRule { public static final GameRule PLAYERS_SLEEPING_PERCENTAGE = new GameRule<>("playersSleepingPercentage", Integer.class); public static final GameRule SNOW_ACCUMULATION_HEIGHT = new GameRule<>("snowAccumulationHeight", Integer.class); + /** + * The amount of time a player must stand in a nether portal before the + * portal activates. + */ + public static final GameRule PLAYERS_NETHER_PORTAL_DEFAULT_DELAY = new GameRule<>("playersNetherPortalDefaultDelay", Integer.class); + + /** + * The amount of time a player in creative mode must stand in a nether + * portal before the portal activates. + */ + public static final GameRule PLAYERS_NETHER_PORTAL_CREATIVE_DELAY = new GameRule<>("playersNetherPortalCreativeDelay", Integer.class); + // All GameRules instantiated above this for organizational purposes private final String name; private final Class type; diff --git a/paper-api/src/main/java/org/bukkit/Material.java b/paper-api/src/main/java/org/bukkit/Material.java index f06e06d825..e15219c939 100644 --- a/paper-api/src/main/java/org/bukkit/Material.java +++ b/paper-api/src/main/java/org/bukkit/Material.java @@ -47,7 +47,9 @@ import org.bukkit.block.data.type.ChiseledBookshelf; import org.bukkit.block.data.type.Cocoa; import org.bukkit.block.data.type.CommandBlock; import org.bukkit.block.data.type.Comparator; +import org.bukkit.block.data.type.CopperBulb; import org.bukkit.block.data.type.CoralWallFan; +import org.bukkit.block.data.type.Crafter; import org.bukkit.block.data.type.DaylightDetector; import org.bukkit.block.data.type.DecoratedPot; import org.bukkit.block.data.type.Dispenser; @@ -103,6 +105,7 @@ import org.bukkit.block.data.type.Switch; import org.bukkit.block.data.type.TNT; import org.bukkit.block.data.type.TechnicalPiston; import org.bukkit.block.data.type.TrapDoor; +import org.bukkit.block.data.type.TrialSpawner; import org.bukkit.block.data.type.Tripwire; import org.bukkit.block.data.type.TripwireHook; import org.bukkit.block.data.type.TurtleEgg; @@ -136,6 +139,59 @@ public enum Material implements Keyed, Translatable { POLISHED_DEEPSLATE(31772), CALCITE(20311), TUFF(24364), + /** + * BlockData: {@link Slab} + */ + @MinecraftExperimental + TUFF_SLAB(19305, Slab.class), + /** + * BlockData: {@link Stairs} + */ + @MinecraftExperimental + TUFF_STAIRS(11268, Stairs.class), + /** + * BlockData: {@link Wall} + */ + @MinecraftExperimental + TUFF_WALL(24395, Wall.class), + @MinecraftExperimental + CHISELED_TUFF(15831), + @MinecraftExperimental + POLISHED_TUFF(17801), + /** + * BlockData: {@link Slab} + */ + @MinecraftExperimental + POLISHED_TUFF_SLAB(31096, Slab.class), + /** + * BlockData: {@link Stairs} + */ + @MinecraftExperimental + POLISHED_TUFF_STAIRS(7964, Stairs.class), + /** + * BlockData: {@link Wall} + */ + @MinecraftExperimental + POLISHED_TUFF_WALL(28886, Wall.class), + @MinecraftExperimental + TUFF_BRICKS(26276), + /** + * BlockData: {@link Slab} + */ + @MinecraftExperimental + TUFF_BRICK_SLAB(11843, Slab.class), + /** + * BlockData: {@link Stairs} + */ + @MinecraftExperimental + TUFF_BRICK_STAIRS(30753, Stairs.class), + /** + * BlockData: {@link Wall} + */ + @MinecraftExperimental + TUFF_BRICK_WALL(11761, Wall.class), + @MinecraftExperimental + CHISELED_TUFF_BRICKS(8601), DRIPSTONE_BLOCK(26227), /** * BlockData: {@link Snowable} @@ -247,6 +303,14 @@ public enum Material implements Keyed, Translatable { EXPOSED_COPPER(28488), WEATHERED_COPPER(19699), OXIDIZED_COPPER(19490), + @MinecraftExperimental + CHISELED_COPPER(12143), + @MinecraftExperimental + EXPOSED_CHISELED_COPPER(4570), + @MinecraftExperimental + WEATHERED_CHISELED_COPPER(30876), + @MinecraftExperimental + OXIDIZED_CHISELED_COPPER(27719), CUT_COPPER(32519), EXPOSED_CUT_COPPER(18000), WEATHERED_CUT_COPPER(21158), @@ -287,6 +351,14 @@ public enum Material implements Keyed, Translatable { WAXED_EXPOSED_COPPER(27989), WAXED_WEATHERED_COPPER(5960), WAXED_OXIDIZED_COPPER(25626), + @MinecraftExperimental + WAXED_CHISELED_COPPER(7500), + @MinecraftExperimental + WAXED_EXPOSED_CHISELED_COPPER(30658), + @MinecraftExperimental + WAXED_WEATHERED_CHISELED_COPPER(5970), + @MinecraftExperimental + WAXED_OXIDIZED_CHISELED_COPPER(7735), WAXED_CUT_COPPER(11030), WAXED_EXPOSED_CUT_COPPER(30043), WAXED_WEATHERED_CUT_COPPER(13823), @@ -548,7 +620,7 @@ public enum Material implements Keyed, Translatable { CHISELED_SANDSTONE(31763), CUT_SANDSTONE(6118), COBWEB(9469), - GRASS(6155), + SHORT_GRASS(6155), FERN(15794), AZALEA(29386), FLOWERING_AZALEA(28270), @@ -767,7 +839,7 @@ public enum Material implements Keyed, Translatable { /** * BlockData: {@link DecoratedPot} */ - DECORATED_POT(8720, 1, DecoratedPot.class), + DECORATED_POT(8720, DecoratedPot.class), MOSSY_COBBLESTONE(21900), OBSIDIAN(32723), TORCH(6063), @@ -2023,6 +2095,46 @@ public enum Material implements Keyed, Translatable { * BlockData: {@link Door} */ WARPED_DOOR(15062, Door.class), + /** + * BlockData: {@link Door} + */ + @MinecraftExperimental + COPPER_DOOR(26809, Door.class), + /** + * BlockData: {@link Door} + */ + @MinecraftExperimental + EXPOSED_COPPER_DOOR(13236, Door.class), + /** + * BlockData: {@link Door} + */ + @MinecraftExperimental + WEATHERED_COPPER_DOOR(10208, Door.class), + /** + * BlockData: {@link Door} + */ + @MinecraftExperimental + OXIDIZED_COPPER_DOOR(5348, Door.class), + /** + * BlockData: {@link Door} + */ + @MinecraftExperimental + WAXED_COPPER_DOOR(9954, Door.class), + /** + * BlockData: {@link Door} + */ + @MinecraftExperimental + WAXED_EXPOSED_COPPER_DOOR(20748, Door.class), + /** + * BlockData: {@link Door} + */ + @MinecraftExperimental + WAXED_WEATHERED_COPPER_DOOR(25073, Door.class), + /** + * BlockData: {@link Door} + */ + @MinecraftExperimental + WAXED_OXIDIZED_COPPER_DOOR(23888, Door.class), /** * BlockData: {@link TrapDoor} */ @@ -2071,6 +2183,46 @@ public enum Material implements Keyed, Translatable { * BlockData: {@link TrapDoor} */ WARPED_TRAPDOOR(7708, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + @MinecraftExperimental + COPPER_TRAPDOOR(12110, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + @MinecraftExperimental + EXPOSED_COPPER_TRAPDOOR(19219, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + @MinecraftExperimental + WEATHERED_COPPER_TRAPDOOR(28254, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + @MinecraftExperimental + OXIDIZED_COPPER_TRAPDOOR(26518, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + @MinecraftExperimental + WAXED_COPPER_TRAPDOOR(12626, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + @MinecraftExperimental + WAXED_EXPOSED_COPPER_TRAPDOOR(11010, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + @MinecraftExperimental + WAXED_WEATHERED_COPPER_TRAPDOOR(30709, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + @MinecraftExperimental + WAXED_OXIDIZED_COPPER_TRAPDOOR(21450, TrapDoor.class), /** * BlockData: {@link Gate} */ @@ -2471,6 +2623,11 @@ public enum Material implements Keyed, Translatable { */ BLACK_BED(20490, 1, Bed.class), COOKIE(27431), + /** + * BlockData: {@link Crafter} + */ + @MinecraftExperimental + CRAFTER(25243, Crafter.class), FILLED_MAP(23504), SHEARS(27971, 1, 238), MELON_SLICE(5347), @@ -2508,6 +2665,8 @@ public enum Material implements Keyed, Translatable { BAT_SPAWN_EGG(14607), BEE_SPAWN_EGG(22924), BLAZE_SPAWN_EGG(4759), + @MinecraftExperimental + BREEZE_SPAWN_EGG(7580), CAT_SPAWN_EGG(29583), CAMEL_SPAWN_EGG(14760), CAVE_SPIDER_SPAWN_EGG(23341), @@ -2998,6 +3157,93 @@ public enum Material implements Keyed, Translatable { SHELTER_POTTERY_SHERD(28390), SKULL_POTTERY_SHERD(16980), SNORT_POTTERY_SHERD(15921), + /** + * BlockData: {@link Waterlogged} + */ + @MinecraftExperimental + COPPER_GRATE(16221, Waterlogged.class), + /** + * BlockData: {@link Waterlogged} + */ + @MinecraftExperimental + EXPOSED_COPPER_GRATE(7783, Waterlogged.class), + /** + * BlockData: {@link Waterlogged} + */ + @MinecraftExperimental + WEATHERED_COPPER_GRATE(24954, Waterlogged.class), + /** + * BlockData: {@link Waterlogged} + */ + @MinecraftExperimental + OXIDIZED_COPPER_GRATE(14122, Waterlogged.class), + /** + * BlockData: {@link Waterlogged} + */ + @MinecraftExperimental + WAXED_COPPER_GRATE(11230, Waterlogged.class), + /** + * BlockData: {@link Waterlogged} + */ + @MinecraftExperimental + WAXED_EXPOSED_COPPER_GRATE(20520, Waterlogged.class), + /** + * BlockData: {@link Waterlogged} + */ + @MinecraftExperimental + WAXED_WEATHERED_COPPER_GRATE(16533, Waterlogged.class), + /** + * BlockData: {@link Waterlogged} + */ + @MinecraftExperimental + WAXED_OXIDIZED_COPPER_GRATE(32010, Waterlogged.class), + /** + * BlockData: {@link CopperBulb} + */ + @MinecraftExperimental + COPPER_BULB(21370, CopperBulb.class), + /** + * BlockData: {@link CopperBulb} + */ + @MinecraftExperimental + EXPOSED_COPPER_BULB(11944, CopperBulb.class), + /** + * BlockData: {@link CopperBulb} + */ + @MinecraftExperimental + WEATHERED_COPPER_BULB(10800, CopperBulb.class), + /** + * BlockData: {@link CopperBulb} + */ + @MinecraftExperimental + OXIDIZED_COPPER_BULB(22421, CopperBulb.class), + /** + * BlockData: {@link CopperBulb} + */ + @MinecraftExperimental + WAXED_COPPER_BULB(23756, CopperBulb.class), + /** + * BlockData: {@link CopperBulb} + */ + @MinecraftExperimental + WAXED_EXPOSED_COPPER_BULB(5530, CopperBulb.class), + /** + * BlockData: {@link CopperBulb} + */ + @MinecraftExperimental + WAXED_WEATHERED_COPPER_BULB(13239, CopperBulb.class), + /** + * BlockData: {@link CopperBulb} + */ + @MinecraftExperimental + WAXED_OXIDIZED_COPPER_BULB(26892, CopperBulb.class), + /** + * BlockData: {@link TrialSpawner} + */ + @MinecraftExperimental + TRIAL_SPAWNER(19902, TrialSpawner.class), + @MinecraftExperimental + TRIAL_KEY(12725), /** * BlockData: {@link Levelled} */ @@ -4753,6 +4999,7 @@ public enum Material implements Keyed, Translatable { case CHEST: case CHIPPED_ANVIL: case CHISELED_BOOKSHELF: + case CHISELED_COPPER: case CHISELED_DEEPSLATE: case CHISELED_NETHER_BRICKS: case CHISELED_POLISHED_BLACKSTONE: @@ -4760,6 +5007,8 @@ public enum Material implements Keyed, Translatable { case CHISELED_RED_SANDSTONE: case CHISELED_SANDSTONE: case CHISELED_STONE_BRICKS: + case CHISELED_TUFF: + case CHISELED_TUFF_BRICKS: case CHORUS_FLOWER: case CHORUS_PLANT: case CLAY: @@ -4781,13 +5030,18 @@ public enum Material implements Keyed, Translatable { case COMPOSTER: case CONDUIT: case COPPER_BLOCK: + case COPPER_BULB: + case COPPER_DOOR: + case COPPER_GRATE: case COPPER_ORE: + case COPPER_TRAPDOOR: case CORNFLOWER: case CRACKED_DEEPSLATE_BRICKS: case CRACKED_DEEPSLATE_TILES: case CRACKED_NETHER_BRICKS: case CRACKED_POLISHED_BLACKSTONE_BRICKS: case CRACKED_STONE_BRICKS: + case CRAFTER: case CRAFTING_TABLE: case CREEPER_HEAD: case CREEPER_WALL_HEAD: @@ -4922,7 +5176,12 @@ public enum Material implements Keyed, Translatable { case END_STONE_BRICK_SLAB: case END_STONE_BRICK_STAIRS: case END_STONE_BRICK_WALL: + case EXPOSED_CHISELED_COPPER: case EXPOSED_COPPER: + case EXPOSED_COPPER_BULB: + case EXPOSED_COPPER_DOOR: + case EXPOSED_COPPER_GRATE: + case EXPOSED_COPPER_TRAPDOOR: case EXPOSED_CUT_COPPER: case EXPOSED_CUT_COPPER_SLAB: case EXPOSED_CUT_COPPER_STAIRS: @@ -4951,7 +5210,6 @@ public enum Material implements Keyed, Translatable { case GRANITE_SLAB: case GRANITE_STAIRS: case GRANITE_WALL: - case GRASS: case GRASS_BLOCK: case GRAVEL: case GRAY_BANNER: @@ -5193,7 +5451,12 @@ public enum Material implements Keyed, Translatable { case ORANGE_WALL_BANNER: case ORANGE_WOOL: case OXEYE_DAISY: + case OXIDIZED_CHISELED_COPPER: case OXIDIZED_COPPER: + case OXIDIZED_COPPER_BULB: + case OXIDIZED_COPPER_DOOR: + case OXIDIZED_COPPER_GRATE: + case OXIDIZED_COPPER_TRAPDOOR: case OXIDIZED_CUT_COPPER: case OXIDIZED_CUT_COPPER_SLAB: case OXIDIZED_CUT_COPPER_STAIRS: @@ -5252,6 +5515,10 @@ public enum Material implements Keyed, Translatable { case POLISHED_GRANITE: case POLISHED_GRANITE_SLAB: case POLISHED_GRANITE_STAIRS: + case POLISHED_TUFF: + case POLISHED_TUFF_SLAB: + case POLISHED_TUFF_STAIRS: + case POLISHED_TUFF_WALL: case POPPY: case POTATOES: case POTTED_ACACIA_SAPLING: @@ -5379,6 +5646,7 @@ public enum Material implements Keyed, Translatable { case SEAGRASS: case SEA_LANTERN: case SEA_PICKLE: + case SHORT_GRASS: case SHROOMLIGHT: case SHULKER_BOX: case SKELETON_SKULL: @@ -5479,6 +5747,7 @@ public enum Material implements Keyed, Translatable { case TORCHFLOWER: case TORCHFLOWER_CROP: case TRAPPED_CHEST: + case TRIAL_SPAWNER: case TRIPWIRE: case TRIPWIRE_HOOK: case TUBE_CORAL: @@ -5486,6 +5755,13 @@ public enum Material implements Keyed, Translatable { case TUBE_CORAL_FAN: case TUBE_CORAL_WALL_FAN: case TUFF: + case TUFF_BRICKS: + case TUFF_BRICK_SLAB: + case TUFF_BRICK_STAIRS: + case TUFF_BRICK_WALL: + case TUFF_SLAB: + case TUFF_STAIRS: + case TUFF_WALL: case TURTLE_EGG: case TWISTING_VINES: case TWISTING_VINES_PLANT: @@ -5514,23 +5790,48 @@ public enum Material implements Keyed, Translatable { case WARPED_WART_BLOCK: case WATER: case WATER_CAULDRON: + case WAXED_CHISELED_COPPER: case WAXED_COPPER_BLOCK: + case WAXED_COPPER_BULB: + case WAXED_COPPER_DOOR: + case WAXED_COPPER_GRATE: + case WAXED_COPPER_TRAPDOOR: case WAXED_CUT_COPPER: case WAXED_CUT_COPPER_SLAB: case WAXED_CUT_COPPER_STAIRS: + case WAXED_EXPOSED_CHISELED_COPPER: case WAXED_EXPOSED_COPPER: + case WAXED_EXPOSED_COPPER_BULB: + case WAXED_EXPOSED_COPPER_DOOR: + case WAXED_EXPOSED_COPPER_GRATE: + case WAXED_EXPOSED_COPPER_TRAPDOOR: case WAXED_EXPOSED_CUT_COPPER: case WAXED_EXPOSED_CUT_COPPER_SLAB: case WAXED_EXPOSED_CUT_COPPER_STAIRS: + case WAXED_OXIDIZED_CHISELED_COPPER: case WAXED_OXIDIZED_COPPER: + case WAXED_OXIDIZED_COPPER_BULB: + case WAXED_OXIDIZED_COPPER_DOOR: + case WAXED_OXIDIZED_COPPER_GRATE: + case WAXED_OXIDIZED_COPPER_TRAPDOOR: case WAXED_OXIDIZED_CUT_COPPER: case WAXED_OXIDIZED_CUT_COPPER_SLAB: case WAXED_OXIDIZED_CUT_COPPER_STAIRS: + case WAXED_WEATHERED_CHISELED_COPPER: case WAXED_WEATHERED_COPPER: + case WAXED_WEATHERED_COPPER_BULB: + case WAXED_WEATHERED_COPPER_DOOR: + case WAXED_WEATHERED_COPPER_GRATE: + case WAXED_WEATHERED_COPPER_TRAPDOOR: case WAXED_WEATHERED_CUT_COPPER: case WAXED_WEATHERED_CUT_COPPER_SLAB: case WAXED_WEATHERED_CUT_COPPER_STAIRS: + case WEATHERED_CHISELED_COPPER: case WEATHERED_COPPER: + case WEATHERED_COPPER_BULB: + case WEATHERED_COPPER_DOOR: + case WEATHERED_COPPER_GRATE: + case WEATHERED_COPPER_TRAPDOOR: case WEATHERED_CUT_COPPER: case WEATHERED_CUT_COPPER_SLAB: case WEATHERED_CUT_COPPER_STAIRS: @@ -5942,6 +6243,7 @@ public enum Material implements Keyed, Translatable { case CHEST: case CHIPPED_ANVIL: case CHISELED_BOOKSHELF: + case CHISELED_COPPER: case CHISELED_DEEPSLATE: case CHISELED_NETHER_BRICKS: case CHISELED_POLISHED_BLACKSTONE: @@ -5949,6 +6251,8 @@ public enum Material implements Keyed, Translatable { case CHISELED_RED_SANDSTONE: case CHISELED_SANDSTONE: case CHISELED_STONE_BRICKS: + case CHISELED_TUFF: + case CHISELED_TUFF_BRICKS: case CLAY: case COAL_BLOCK: case COAL_ORE: @@ -5965,12 +6269,17 @@ public enum Material implements Keyed, Translatable { case COMPOSTER: case CONDUIT: case COPPER_BLOCK: + case COPPER_BULB: + case COPPER_DOOR: + case COPPER_GRATE: case COPPER_ORE: + case COPPER_TRAPDOOR: case CRACKED_DEEPSLATE_BRICKS: case CRACKED_DEEPSLATE_TILES: case CRACKED_NETHER_BRICKS: case CRACKED_POLISHED_BLACKSTONE_BRICKS: case CRACKED_STONE_BRICKS: + case CRAFTER: case CRAFTING_TABLE: case CRIMSON_DOOR: case CRIMSON_FENCE: @@ -6088,7 +6397,12 @@ public enum Material implements Keyed, Translatable { case END_STONE_BRICK_SLAB: case END_STONE_BRICK_STAIRS: case END_STONE_BRICK_WALL: + case EXPOSED_CHISELED_COPPER: case EXPOSED_COPPER: + case EXPOSED_COPPER_BULB: + case EXPOSED_COPPER_DOOR: + case EXPOSED_COPPER_GRATE: + case EXPOSED_COPPER_TRAPDOOR: case EXPOSED_CUT_COPPER: case EXPOSED_CUT_COPPER_SLAB: case EXPOSED_CUT_COPPER_STAIRS: @@ -6308,7 +6622,12 @@ public enum Material implements Keyed, Translatable { case ORANGE_TERRACOTTA: case ORANGE_WALL_BANNER: case ORANGE_WOOL: + case OXIDIZED_CHISELED_COPPER: case OXIDIZED_COPPER: + case OXIDIZED_COPPER_BULB: + case OXIDIZED_COPPER_DOOR: + case OXIDIZED_COPPER_GRATE: + case OXIDIZED_COPPER_TRAPDOOR: case OXIDIZED_CUT_COPPER: case OXIDIZED_CUT_COPPER_SLAB: case OXIDIZED_CUT_COPPER_STAIRS: @@ -6355,6 +6674,10 @@ public enum Material implements Keyed, Translatable { case POLISHED_GRANITE: case POLISHED_GRANITE_SLAB: case POLISHED_GRANITE_STAIRS: + case POLISHED_TUFF: + case POLISHED_TUFF_SLAB: + case POLISHED_TUFF_STAIRS: + case POLISHED_TUFF_WALL: case POWDER_SNOW_CAULDRON: case PRISMARINE: case PRISMARINE_BRICKS: @@ -6508,8 +6831,16 @@ public enum Material implements Keyed, Translatable { case TINTED_GLASS: case TNT: case TRAPPED_CHEST: + case TRIAL_SPAWNER: case TUBE_CORAL_BLOCK: case TUFF: + case TUFF_BRICKS: + case TUFF_BRICK_SLAB: + case TUFF_BRICK_STAIRS: + case TUFF_BRICK_WALL: + case TUFF_SLAB: + case TUFF_STAIRS: + case TUFF_WALL: case TURTLE_EGG: case VERDANT_FROGLIGHT: case WARPED_DOOR: @@ -6529,23 +6860,48 @@ public enum Material implements Keyed, Translatable { case WARPED_WALL_SIGN: case WARPED_WART_BLOCK: case WATER_CAULDRON: + case WAXED_CHISELED_COPPER: case WAXED_COPPER_BLOCK: + case WAXED_COPPER_BULB: + case WAXED_COPPER_DOOR: + case WAXED_COPPER_GRATE: + case WAXED_COPPER_TRAPDOOR: case WAXED_CUT_COPPER: case WAXED_CUT_COPPER_SLAB: case WAXED_CUT_COPPER_STAIRS: + case WAXED_EXPOSED_CHISELED_COPPER: case WAXED_EXPOSED_COPPER: + case WAXED_EXPOSED_COPPER_BULB: + case WAXED_EXPOSED_COPPER_DOOR: + case WAXED_EXPOSED_COPPER_GRATE: + case WAXED_EXPOSED_COPPER_TRAPDOOR: case WAXED_EXPOSED_CUT_COPPER: case WAXED_EXPOSED_CUT_COPPER_SLAB: case WAXED_EXPOSED_CUT_COPPER_STAIRS: + case WAXED_OXIDIZED_CHISELED_COPPER: case WAXED_OXIDIZED_COPPER: + case WAXED_OXIDIZED_COPPER_BULB: + case WAXED_OXIDIZED_COPPER_DOOR: + case WAXED_OXIDIZED_COPPER_GRATE: + case WAXED_OXIDIZED_COPPER_TRAPDOOR: case WAXED_OXIDIZED_CUT_COPPER: case WAXED_OXIDIZED_CUT_COPPER_SLAB: case WAXED_OXIDIZED_CUT_COPPER_STAIRS: + case WAXED_WEATHERED_CHISELED_COPPER: case WAXED_WEATHERED_COPPER: + case WAXED_WEATHERED_COPPER_BULB: + case WAXED_WEATHERED_COPPER_DOOR: + case WAXED_WEATHERED_COPPER_GRATE: + case WAXED_WEATHERED_COPPER_TRAPDOOR: case WAXED_WEATHERED_CUT_COPPER: case WAXED_WEATHERED_CUT_COPPER_SLAB: case WAXED_WEATHERED_CUT_COPPER_STAIRS: + case WEATHERED_CHISELED_COPPER: case WEATHERED_COPPER: + case WEATHERED_COPPER_BULB: + case WEATHERED_COPPER_DOOR: + case WEATHERED_COPPER_GRATE: + case WEATHERED_COPPER_TRAPDOOR: case WEATHERED_CUT_COPPER: case WEATHERED_CUT_COPPER_SLAB: case WEATHERED_CUT_COPPER_STAIRS: @@ -6854,7 +7210,6 @@ public enum Material implements Keyed, Translatable { case FERN: case FIRE: case FLOWER_POT: - case GRASS: case GRAY_CARPET: case GREEN_CARPET: case JUNGLE_BUTTON: @@ -6918,6 +7273,7 @@ public enum Material implements Keyed, Translatable { case RED_TULIP: case REPEATER: case ROSE_BUSH: + case SHORT_GRASS: case SKELETON_SKULL: case SKELETON_WALL_SKULL: case SNOW: @@ -7127,7 +7483,6 @@ public enum Material implements Keyed, Translatable { case FLETCHING_TABLE: case FLOWERING_AZALEA_LEAVES: case GLOW_LICHEN: - case GRASS: case GRAY_BANNER: case GRAY_BED: case GRAY_CARPET: @@ -7236,6 +7591,7 @@ public enum Material implements Keyed, Translatable { case RED_WALL_BANNER: case RED_WOOL: case ROSE_BUSH: + case SHORT_GRASS: case SMITHING_TABLE: case SOUL_CAMPFIRE: case SPRUCE_DOOR: @@ -7431,7 +7787,6 @@ public enum Material implements Keyed, Translatable { case FLOWERING_AZALEA: case FLOWERING_AZALEA_LEAVES: case GLOW_LICHEN: - case GRASS: case GRAY_CARPET: case GRAY_WOOL: case GREEN_CARPET: @@ -7493,6 +7848,7 @@ public enum Material implements Keyed, Translatable { case RED_WOOL: case ROSE_BUSH: case SCAFFOLDING: + case SHORT_GRASS: case SMALL_DRIPLEAF: case SPORE_BLOSSOM: case SPRUCE_FENCE: @@ -7983,6 +8339,7 @@ public enum Material implements Keyed, Translatable { case CHERRY_PLANKS: case CHERRY_WOOD: case CHISELED_BOOKSHELF: + case CHISELED_COPPER: case CHISELED_DEEPSLATE: case CHISELED_NETHER_BRICKS: case CHISELED_POLISHED_BLACKSTONE: @@ -7990,6 +8347,8 @@ public enum Material implements Keyed, Translatable { case CHISELED_RED_SANDSTONE: case CHISELED_SANDSTONE: case CHISELED_STONE_BRICKS: + case CHISELED_TUFF: + case CHISELED_TUFF_BRICKS: case CLAY: case COAL_BLOCK: case COAL_ORE: @@ -8004,6 +8363,7 @@ public enum Material implements Keyed, Translatable { case CRACKED_NETHER_BRICKS: case CRACKED_POLISHED_BLACKSTONE_BRICKS: case CRACKED_STONE_BRICKS: + case CRAFTER: case CRAFTING_TABLE: case CRIMSON_HYPHAE: case CRIMSON_NYLIUM: @@ -8051,6 +8411,7 @@ public enum Material implements Keyed, Translatable { case EMERALD_ORE: case END_STONE: case END_STONE_BRICKS: + case EXPOSED_CHISELED_COPPER: case EXPOSED_COPPER: case EXPOSED_CUT_COPPER: case FIRE_CORAL_BLOCK: @@ -8152,6 +8513,7 @@ public enum Material implements Keyed, Translatable { case ORANGE_SHULKER_BOX: case ORANGE_TERRACOTTA: case ORANGE_WOOL: + case OXIDIZED_CHISELED_COPPER: case OXIDIZED_COPPER: case OXIDIZED_CUT_COPPER: case PACKED_ICE: @@ -8171,6 +8533,7 @@ public enum Material implements Keyed, Translatable { case POLISHED_DEEPSLATE: case POLISHED_DIORITE: case POLISHED_GRANITE: + case POLISHED_TUFF: case PRISMARINE: case PRISMARINE_BRICKS: case PUMPKIN: @@ -8254,22 +8617,29 @@ public enum Material implements Keyed, Translatable { case SUSPICIOUS_SAND: case TARGET: case TERRACOTTA: + case TRIAL_SPAWNER: case TUBE_CORAL_BLOCK: case TUFF: + case TUFF_BRICKS: case VERDANT_FROGLIGHT: case WARPED_HYPHAE: case WARPED_NYLIUM: case WARPED_PLANKS: case WARPED_STEM: case WARPED_WART_BLOCK: + case WAXED_CHISELED_COPPER: case WAXED_COPPER_BLOCK: case WAXED_CUT_COPPER: + case WAXED_EXPOSED_CHISELED_COPPER: case WAXED_EXPOSED_COPPER: case WAXED_EXPOSED_CUT_COPPER: + case WAXED_OXIDIZED_CHISELED_COPPER: case WAXED_OXIDIZED_COPPER: case WAXED_OXIDIZED_CUT_COPPER: + case WAXED_WEATHERED_CHISELED_COPPER: case WAXED_WEATHERED_COPPER: case WAXED_WEATHERED_CUT_COPPER: + case WEATHERED_CHISELED_COPPER: case WEATHERED_COPPER: case WEATHERED_CUT_COPPER: case WET_SPONGE: @@ -8675,20 +9045,16 @@ public enum Material implements Keyed, Translatable { case ACACIA_FENCE_GATE: case ACACIA_HANGING_SIGN: case ACACIA_SIGN: - case ACACIA_STAIRS: case ACACIA_TRAPDOOR: case ACACIA_WALL_HANGING_SIGN: case ACACIA_WALL_SIGN: - case ANDESITE_STAIRS: case ANVIL: case BAMBOO_BUTTON: case BAMBOO_DOOR: case BAMBOO_FENCE: case BAMBOO_FENCE_GATE: case BAMBOO_HANGING_SIGN: - case BAMBOO_MOSAIC_STAIRS: case BAMBOO_SIGN: - case BAMBOO_STAIRS: case BAMBOO_TRAPDOOR: case BAMBOO_WALL_HANGING_SIGN: case BAMBOO_WALL_SIGN: @@ -8703,11 +9069,9 @@ public enum Material implements Keyed, Translatable { case BIRCH_FENCE_GATE: case BIRCH_HANGING_SIGN: case BIRCH_SIGN: - case BIRCH_STAIRS: case BIRCH_TRAPDOOR: case BIRCH_WALL_HANGING_SIGN: case BIRCH_WALL_SIGN: - case BLACKSTONE_STAIRS: case BLACK_BED: case BLACK_CANDLE: case BLACK_CANDLE_CAKE: @@ -8718,7 +9082,6 @@ public enum Material implements Keyed, Translatable { case BLUE_CANDLE_CAKE: case BLUE_SHULKER_BOX: case BREWING_STAND: - case BRICK_STAIRS: case BROWN_BED: case BROWN_CANDLE: case BROWN_CANDLE_CAKE: @@ -8738,18 +9101,18 @@ public enum Material implements Keyed, Translatable { case CHERRY_FENCE_GATE: case CHERRY_HANGING_SIGN: case CHERRY_SIGN: - case CHERRY_STAIRS: case CHERRY_TRAPDOOR: case CHERRY_WALL_HANGING_SIGN: case CHERRY_WALL_SIGN: case CHEST: case CHIPPED_ANVIL: case CHISELED_BOOKSHELF: - case COBBLED_DEEPSLATE_STAIRS: - case COBBLESTONE_STAIRS: case COMMAND_BLOCK: case COMPARATOR: case COMPOSTER: + case COPPER_DOOR: + case COPPER_TRAPDOOR: + case CRAFTER: case CRAFTING_TABLE: case CRIMSON_BUTTON: case CRIMSON_DOOR: @@ -8757,11 +9120,9 @@ public enum Material implements Keyed, Translatable { case CRIMSON_FENCE_GATE: case CRIMSON_HANGING_SIGN: case CRIMSON_SIGN: - case CRIMSON_STAIRS: case CRIMSON_TRAPDOOR: case CRIMSON_WALL_HANGING_SIGN: case CRIMSON_WALL_SIGN: - case CUT_COPPER_STAIRS: case CYAN_BED: case CYAN_CANDLE: case CYAN_CANDLE_CAKE: @@ -8773,27 +9134,22 @@ public enum Material implements Keyed, Translatable { case DARK_OAK_FENCE_GATE: case DARK_OAK_HANGING_SIGN: case DARK_OAK_SIGN: - case DARK_OAK_STAIRS: case DARK_OAK_TRAPDOOR: case DARK_OAK_WALL_HANGING_SIGN: case DARK_OAK_WALL_SIGN: - case DARK_PRISMARINE_STAIRS: case DAYLIGHT_DETECTOR: - case DEEPSLATE_BRICK_STAIRS: + case DECORATED_POT: case DEEPSLATE_REDSTONE_ORE: - case DEEPSLATE_TILE_STAIRS: - case DIORITE_STAIRS: case DISPENSER: case DRAGON_EGG: case DROPPER: case ENCHANTING_TABLE: case ENDER_CHEST: - case END_STONE_BRICK_STAIRS: - case EXPOSED_CUT_COPPER_STAIRS: + case EXPOSED_COPPER_DOOR: + case EXPOSED_COPPER_TRAPDOOR: case FLETCHING_TABLE: case FLOWER_POT: case FURNACE: - case GRANITE_STAIRS: case GRAY_BED: case GRAY_CANDLE: case GRAY_CANDLE_CAKE: @@ -8814,7 +9170,6 @@ public enum Material implements Keyed, Translatable { case JUNGLE_FENCE_GATE: case JUNGLE_HANGING_SIGN: case JUNGLE_SIGN: - case JUNGLE_STAIRS: case JUNGLE_TRAPDOOR: case JUNGLE_WALL_HANGING_SIGN: case JUNGLE_WALL_SIGN: @@ -8845,16 +9200,11 @@ public enum Material implements Keyed, Translatable { case MANGROVE_FENCE_GATE: case MANGROVE_HANGING_SIGN: case MANGROVE_SIGN: - case MANGROVE_STAIRS: case MANGROVE_TRAPDOOR: case MANGROVE_WALL_HANGING_SIGN: case MANGROVE_WALL_SIGN: - case MOSSY_COBBLESTONE_STAIRS: - case MOSSY_STONE_BRICK_STAIRS: case MOVING_PISTON: - case MUD_BRICK_STAIRS: case NETHER_BRICK_FENCE: - case NETHER_BRICK_STAIRS: case NOTE_BLOCK: case OAK_BUTTON: case OAK_DOOR: @@ -8862,7 +9212,6 @@ public enum Material implements Keyed, Translatable { case OAK_FENCE_GATE: case OAK_HANGING_SIGN: case OAK_SIGN: - case OAK_STAIRS: case OAK_TRAPDOOR: case OAK_WALL_HANGING_SIGN: case OAK_WALL_SIGN: @@ -8870,18 +9219,13 @@ public enum Material implements Keyed, Translatable { case ORANGE_CANDLE: case ORANGE_CANDLE_CAKE: case ORANGE_SHULKER_BOX: - case OXIDIZED_CUT_COPPER_STAIRS: + case OXIDIZED_COPPER_DOOR: + case OXIDIZED_COPPER_TRAPDOOR: case PINK_BED: case PINK_CANDLE: case PINK_CANDLE_CAKE: case PINK_SHULKER_BOX: - case POLISHED_ANDESITE_STAIRS: - case POLISHED_BLACKSTONE_BRICK_STAIRS: case POLISHED_BLACKSTONE_BUTTON: - case POLISHED_BLACKSTONE_STAIRS: - case POLISHED_DEEPSLATE_STAIRS: - case POLISHED_DIORITE_STAIRS: - case POLISHED_GRANITE_STAIRS: case POTTED_ACACIA_SAPLING: case POTTED_ALLIUM: case POTTED_AZALEA_BUSH: @@ -8917,33 +9261,23 @@ public enum Material implements Keyed, Translatable { case POTTED_WHITE_TULIP: case POTTED_WITHER_ROSE: case POWDER_SNOW_CAULDRON: - case PRISMARINE_BRICK_STAIRS: - case PRISMARINE_STAIRS: case PUMPKIN: case PURPLE_BED: case PURPLE_CANDLE: case PURPLE_CANDLE_CAKE: case PURPLE_SHULKER_BOX: - case PURPUR_STAIRS: - case QUARTZ_STAIRS: case REDSTONE_ORE: case REDSTONE_WIRE: case RED_BED: case RED_CANDLE: case RED_CANDLE_CAKE: - case RED_NETHER_BRICK_STAIRS: - case RED_SANDSTONE_STAIRS: case RED_SHULKER_BOX: case REPEATER: case REPEATING_COMMAND_BLOCK: case RESPAWN_ANCHOR: - case SANDSTONE_STAIRS: case SHULKER_BOX: case SMITHING_TABLE: case SMOKER: - case SMOOTH_QUARTZ_STAIRS: - case SMOOTH_RED_SANDSTONE_STAIRS: - case SMOOTH_SANDSTONE_STAIRS: case SOUL_CAMPFIRE: case SPRUCE_BUTTON: case SPRUCE_DOOR: @@ -8951,14 +9285,11 @@ public enum Material implements Keyed, Translatable { case SPRUCE_FENCE_GATE: case SPRUCE_HANGING_SIGN: case SPRUCE_SIGN: - case SPRUCE_STAIRS: case SPRUCE_TRAPDOOR: case SPRUCE_WALL_HANGING_SIGN: case SPRUCE_WALL_SIGN: case STONECUTTER: - case STONE_BRICK_STAIRS: case STONE_BUTTON: - case STONE_STAIRS: case STRUCTURE_BLOCK: case SWEET_BERRY_BUSH: case TNT: @@ -8969,16 +9300,20 @@ public enum Material implements Keyed, Translatable { case WARPED_FENCE_GATE: case WARPED_HANGING_SIGN: case WARPED_SIGN: - case WARPED_STAIRS: case WARPED_TRAPDOOR: case WARPED_WALL_HANGING_SIGN: case WARPED_WALL_SIGN: case WATER_CAULDRON: - case WAXED_CUT_COPPER_STAIRS: - case WAXED_EXPOSED_CUT_COPPER_STAIRS: - case WAXED_OXIDIZED_CUT_COPPER_STAIRS: - case WAXED_WEATHERED_CUT_COPPER_STAIRS: - case WEATHERED_CUT_COPPER_STAIRS: + case WAXED_COPPER_DOOR: + case WAXED_COPPER_TRAPDOOR: + case WAXED_EXPOSED_COPPER_DOOR: + case WAXED_EXPOSED_COPPER_TRAPDOOR: + case WAXED_OXIDIZED_COPPER_DOOR: + case WAXED_OXIDIZED_COPPER_TRAPDOOR: + case WAXED_WEATHERED_COPPER_DOOR: + case WAXED_WEATHERED_COPPER_TRAPDOOR: + case WEATHERED_COPPER_DOOR: + case WEATHERED_COPPER_TRAPDOOR: case WHITE_BED: case WHITE_CANDLE: case WHITE_CANDLE_CAKE: @@ -9452,8 +9787,11 @@ public enum Material implements Keyed, Translatable { case CHISELED_BOOKSHELF: case CHISELED_POLISHED_BLACKSTONE: case CHISELED_STONE_BRICKS: + case CHISELED_TUFF: + case CHISELED_TUFF_BRICKS: case CRACKED_POLISHED_BLACKSTONE_BRICKS: case CRACKED_STONE_BRICKS: + case CRAFTER: case DARK_PRISMARINE: case DARK_PRISMARINE_SLAB: case DARK_PRISMARINE_STAIRS: @@ -9500,6 +9838,10 @@ public enum Material implements Keyed, Translatable { case POLISHED_GRANITE: case POLISHED_GRANITE_SLAB: case POLISHED_GRANITE_STAIRS: + case POLISHED_TUFF: + case POLISHED_TUFF_SLAB: + case POLISHED_TUFF_STAIRS: + case POLISHED_TUFF_WALL: case PRISMARINE: case PRISMARINE_BRICKS: case PRISMARINE_BRICK_SLAB: @@ -9520,6 +9862,13 @@ public enum Material implements Keyed, Translatable { case STONE_STAIRS: case TUBE_CORAL_BLOCK: case TUFF: + case TUFF_BRICKS: + case TUFF_BRICK_SLAB: + case TUFF_BRICK_STAIRS: + case TUFF_BRICK_WALL: + case TUFF_SLAB: + case TUFF_STAIRS: + case TUFF_WALL: return 1.5F; case BLACK_CONCRETE: case BLUE_CONCRETE: @@ -9735,10 +10084,15 @@ public enum Material implements Keyed, Translatable { case BIRCH_TRAPDOOR: case CHERRY_DOOR: case CHERRY_TRAPDOOR: + case CHISELED_COPPER: case COAL_ORE: case CONDUIT: case COPPER_BLOCK: + case COPPER_BULB: + case COPPER_DOOR: + case COPPER_GRATE: case COPPER_ORE: + case COPPER_TRAPDOOR: case CRIMSON_DOOR: case CRIMSON_TRAPDOOR: case CUT_COPPER: @@ -9755,7 +10109,12 @@ public enum Material implements Keyed, Translatable { case END_STONE_BRICK_SLAB: case END_STONE_BRICK_STAIRS: case END_STONE_BRICK_WALL: + case EXPOSED_CHISELED_COPPER: case EXPOSED_COPPER: + case EXPOSED_COPPER_BULB: + case EXPOSED_COPPER_DOOR: + case EXPOSED_COPPER_GRATE: + case EXPOSED_COPPER_TRAPDOOR: case EXPOSED_CUT_COPPER: case EXPOSED_CUT_COPPER_SLAB: case EXPOSED_CUT_COPPER_STAIRS: @@ -9775,7 +10134,12 @@ public enum Material implements Keyed, Translatable { case OAK_DOOR: case OAK_TRAPDOOR: case OBSERVER: + case OXIDIZED_CHISELED_COPPER: case OXIDIZED_COPPER: + case OXIDIZED_COPPER_BULB: + case OXIDIZED_COPPER_DOOR: + case OXIDIZED_COPPER_GRATE: + case OXIDIZED_COPPER_TRAPDOOR: case OXIDIZED_CUT_COPPER: case OXIDIZED_CUT_COPPER_SLAB: case OXIDIZED_CUT_COPPER_STAIRS: @@ -9786,23 +10150,48 @@ public enum Material implements Keyed, Translatable { case SPRUCE_TRAPDOOR: case WARPED_DOOR: case WARPED_TRAPDOOR: + case WAXED_CHISELED_COPPER: case WAXED_COPPER_BLOCK: + case WAXED_COPPER_BULB: + case WAXED_COPPER_DOOR: + case WAXED_COPPER_GRATE: + case WAXED_COPPER_TRAPDOOR: case WAXED_CUT_COPPER: case WAXED_CUT_COPPER_SLAB: case WAXED_CUT_COPPER_STAIRS: + case WAXED_EXPOSED_CHISELED_COPPER: case WAXED_EXPOSED_COPPER: + case WAXED_EXPOSED_COPPER_BULB: + case WAXED_EXPOSED_COPPER_DOOR: + case WAXED_EXPOSED_COPPER_GRATE: + case WAXED_EXPOSED_COPPER_TRAPDOOR: case WAXED_EXPOSED_CUT_COPPER: case WAXED_EXPOSED_CUT_COPPER_SLAB: case WAXED_EXPOSED_CUT_COPPER_STAIRS: + case WAXED_OXIDIZED_CHISELED_COPPER: case WAXED_OXIDIZED_COPPER: + case WAXED_OXIDIZED_COPPER_BULB: + case WAXED_OXIDIZED_COPPER_DOOR: + case WAXED_OXIDIZED_COPPER_GRATE: + case WAXED_OXIDIZED_COPPER_TRAPDOOR: case WAXED_OXIDIZED_CUT_COPPER: case WAXED_OXIDIZED_CUT_COPPER_SLAB: case WAXED_OXIDIZED_CUT_COPPER_STAIRS: + case WAXED_WEATHERED_CHISELED_COPPER: case WAXED_WEATHERED_COPPER: + case WAXED_WEATHERED_COPPER_BULB: + case WAXED_WEATHERED_COPPER_DOOR: + case WAXED_WEATHERED_COPPER_GRATE: + case WAXED_WEATHERED_COPPER_TRAPDOOR: case WAXED_WEATHERED_CUT_COPPER: case WAXED_WEATHERED_CUT_COPPER_SLAB: case WAXED_WEATHERED_CUT_COPPER_STAIRS: + case WEATHERED_CHISELED_COPPER: case WEATHERED_COPPER: + case WEATHERED_COPPER_BULB: + case WEATHERED_COPPER_DOOR: + case WEATHERED_COPPER_GRATE: + case WEATHERED_COPPER_TRAPDOOR: case WEATHERED_CUT_COPPER: case WEATHERED_CUT_COPPER_SLAB: case WEATHERED_CUT_COPPER_STAIRS: @@ -9874,6 +10263,7 @@ public enum Material implements Keyed, Translatable { case NETHERITE_BLOCK: case OBSIDIAN: case RESPAWN_ANCHOR: + case TRIAL_SPAWNER: return 50.0F; case REINFORCED_DEEPSLATE: return 55.0F; @@ -10516,6 +10906,7 @@ public enum Material implements Keyed, Translatable { case WARPED_TRAPDOOR: return 3.0F; case BLAST_FURNACE: + case CRAFTER: case DISPENSER: case DROPPER: case FURNACE: @@ -10570,10 +10961,13 @@ public enum Material implements Keyed, Translatable { case BRICK_WALL: case BUBBLE_CORAL_BLOCK: case CHAIN: + case CHISELED_COPPER: case CHISELED_DEEPSLATE: case CHISELED_NETHER_BRICKS: case CHISELED_POLISHED_BLACKSTONE: case CHISELED_STONE_BRICKS: + case CHISELED_TUFF: + case CHISELED_TUFF_BRICKS: case COAL_BLOCK: case COBBLED_DEEPSLATE: case COBBLED_DEEPSLATE_SLAB: @@ -10584,6 +10978,10 @@ public enum Material implements Keyed, Translatable { case COBBLESTONE_STAIRS: case COBBLESTONE_WALL: case COPPER_BLOCK: + case COPPER_BULB: + case COPPER_DOOR: + case COPPER_GRATE: + case COPPER_TRAPDOOR: case CRACKED_DEEPSLATE_BRICKS: case CRACKED_DEEPSLATE_TILES: case CRACKED_NETHER_BRICKS: @@ -10617,7 +11015,12 @@ public enum Material implements Keyed, Translatable { case DIORITE_STAIRS: case DIORITE_WALL: case EMERALD_BLOCK: + case EXPOSED_CHISELED_COPPER: case EXPOSED_COPPER: + case EXPOSED_COPPER_BULB: + case EXPOSED_COPPER_DOOR: + case EXPOSED_COPPER_GRATE: + case EXPOSED_COPPER_TRAPDOOR: case EXPOSED_CUT_COPPER: case EXPOSED_CUT_COPPER_SLAB: case EXPOSED_CUT_COPPER_STAIRS: @@ -10647,7 +11050,12 @@ public enum Material implements Keyed, Translatable { case NETHER_BRICK_SLAB: case NETHER_BRICK_STAIRS: case NETHER_BRICK_WALL: + case OXIDIZED_CHISELED_COPPER: case OXIDIZED_COPPER: + case OXIDIZED_COPPER_BULB: + case OXIDIZED_COPPER_DOOR: + case OXIDIZED_COPPER_GRATE: + case OXIDIZED_COPPER_TRAPDOOR: case OXIDIZED_CUT_COPPER: case OXIDIZED_CUT_COPPER_SLAB: case OXIDIZED_CUT_COPPER_STAIRS: @@ -10673,6 +11081,10 @@ public enum Material implements Keyed, Translatable { case POLISHED_GRANITE: case POLISHED_GRANITE_SLAB: case POLISHED_GRANITE_STAIRS: + case POLISHED_TUFF: + case POLISHED_TUFF_SLAB: + case POLISHED_TUFF_STAIRS: + case POLISHED_TUFF_WALL: case PRISMARINE: case PRISMARINE_BRICKS: case PRISMARINE_BRICK_SLAB: @@ -10715,23 +11127,55 @@ public enum Material implements Keyed, Translatable { case STONE_STAIRS: case TUBE_CORAL_BLOCK: case TUFF: + case TUFF_BRICKS: + case TUFF_BRICK_SLAB: + case TUFF_BRICK_STAIRS: + case TUFF_BRICK_WALL: + case TUFF_SLAB: + case TUFF_STAIRS: + case TUFF_WALL: + case WAXED_CHISELED_COPPER: case WAXED_COPPER_BLOCK: + case WAXED_COPPER_BULB: + case WAXED_COPPER_DOOR: + case WAXED_COPPER_GRATE: + case WAXED_COPPER_TRAPDOOR: case WAXED_CUT_COPPER: case WAXED_CUT_COPPER_SLAB: case WAXED_CUT_COPPER_STAIRS: + case WAXED_EXPOSED_CHISELED_COPPER: case WAXED_EXPOSED_COPPER: + case WAXED_EXPOSED_COPPER_BULB: + case WAXED_EXPOSED_COPPER_DOOR: + case WAXED_EXPOSED_COPPER_GRATE: + case WAXED_EXPOSED_COPPER_TRAPDOOR: case WAXED_EXPOSED_CUT_COPPER: case WAXED_EXPOSED_CUT_COPPER_SLAB: case WAXED_EXPOSED_CUT_COPPER_STAIRS: + case WAXED_OXIDIZED_CHISELED_COPPER: case WAXED_OXIDIZED_COPPER: + case WAXED_OXIDIZED_COPPER_BULB: + case WAXED_OXIDIZED_COPPER_DOOR: + case WAXED_OXIDIZED_COPPER_GRATE: + case WAXED_OXIDIZED_COPPER_TRAPDOOR: case WAXED_OXIDIZED_CUT_COPPER: case WAXED_OXIDIZED_CUT_COPPER_SLAB: case WAXED_OXIDIZED_CUT_COPPER_STAIRS: + case WAXED_WEATHERED_CHISELED_COPPER: case WAXED_WEATHERED_COPPER: + case WAXED_WEATHERED_COPPER_BULB: + case WAXED_WEATHERED_COPPER_DOOR: + case WAXED_WEATHERED_COPPER_GRATE: + case WAXED_WEATHERED_COPPER_TRAPDOOR: case WAXED_WEATHERED_CUT_COPPER: case WAXED_WEATHERED_CUT_COPPER_SLAB: case WAXED_WEATHERED_CUT_COPPER_STAIRS: + case WEATHERED_CHISELED_COPPER: case WEATHERED_COPPER: + case WEATHERED_COPPER_BULB: + case WEATHERED_COPPER_DOOR: + case WEATHERED_COPPER_GRATE: + case WEATHERED_COPPER_TRAPDOOR: case WEATHERED_CUT_COPPER: case WEATHERED_CUT_COPPER_SLAB: case WEATHERED_CUT_COPPER_STAIRS: @@ -10743,6 +11187,8 @@ public enum Material implements Keyed, Translatable { case END_STONE_BRICK_STAIRS: case END_STONE_BRICK_WALL: return 9.0F; + case TRIAL_SPAWNER: + return 50.0F; case LAVA: case WATER: return 100.0F; diff --git a/paper-api/src/main/java/org/bukkit/Particle.java b/paper-api/src/main/java/org/bukkit/Particle.java index e2adb9901c..e3c94a5623 100644 --- a/paper-api/src/main/java/org/bukkit/Particle.java +++ b/paper-api/src/main/java/org/bukkit/Particle.java @@ -131,6 +131,12 @@ public enum Particle implements Keyed { SHRIEK("shriek", Integer.class), CHERRY_LEAVES("cherry_leaves"), EGG_CRACK("egg_crack"), + DUST_PLUME("dust_plume"), + WHITE_SMOKE("white_smoke"), + GUST("gust"), + GUST_EMITTER("gust_emitter"), + GUST_DUST("gust_dust"), + TRIAL_SPAWNER_DETECTION("trial_spawner_detection"), /** * Uses {@link BlockData} as DataType */ diff --git a/paper-api/src/main/java/org/bukkit/Sound.java b/paper-api/src/main/java/org/bukkit/Sound.java index c5ba0f3ad4..9b1247cdf8 100644 --- a/paper-api/src/main/java/org/bukkit/Sound.java +++ b/paper-api/src/main/java/org/bukkit/Sound.java @@ -214,19 +214,55 @@ public enum Sound implements Keyed { BLOCK_CONDUIT_ATTACK_TARGET("block.conduit.attack.target"), BLOCK_CONDUIT_DEACTIVATE("block.conduit.deactivate"), BLOCK_COPPER_BREAK("block.copper.break"), + @MinecraftExperimental + BLOCK_COPPER_BULB_BREAK("block.copper_bulb.break"), + @MinecraftExperimental + BLOCK_COPPER_BULB_FALL("block.copper_bulb.fall"), + @MinecraftExperimental + BLOCK_COPPER_BULB_HIT("block.copper_bulb.hit"), + @MinecraftExperimental + BLOCK_COPPER_BULB_PLACE("block.copper_bulb.place"), + @MinecraftExperimental + BLOCK_COPPER_BULB_STEP("block.copper_bulb.step"), + @MinecraftExperimental + BLOCK_COPPER_BULB_TURN_OFF("block.copper_bulb.turn_off"), + @MinecraftExperimental + BLOCK_COPPER_BULB_TURN_ON("block.copper_bulb.turn_on"), + @MinecraftExperimental + BLOCK_COPPER_DOOR_CLOSE("block.copper_door.close"), + @MinecraftExperimental + BLOCK_COPPER_DOOR_OPEN("block.copper_door.open"), BLOCK_COPPER_FALL("block.copper.fall"), + @MinecraftExperimental + BLOCK_COPPER_GRATE_BREAK("block.copper_grate.break"), + @MinecraftExperimental + BLOCK_COPPER_GRATE_FALL("block.copper_grate.fall"), + @MinecraftExperimental + BLOCK_COPPER_GRATE_HIT("block.copper_grate.hit"), + @MinecraftExperimental + BLOCK_COPPER_GRATE_PLACE("block.copper_grate.place"), + @MinecraftExperimental + BLOCK_COPPER_GRATE_STEP("block.copper_grate.step"), BLOCK_COPPER_HIT("block.copper.hit"), BLOCK_COPPER_PLACE("block.copper.place"), BLOCK_COPPER_STEP("block.copper.step"), + @MinecraftExperimental + BLOCK_COPPER_TRAPDOOR_CLOSE("block.copper_trapdoor.close"), + @MinecraftExperimental + BLOCK_COPPER_TRAPDOOR_OPEN("block.copper_trapdoor.open"), BLOCK_CORAL_BLOCK_BREAK("block.coral_block.break"), BLOCK_CORAL_BLOCK_FALL("block.coral_block.fall"), BLOCK_CORAL_BLOCK_HIT("block.coral_block.hit"), BLOCK_CORAL_BLOCK_PLACE("block.coral_block.place"), BLOCK_CORAL_BLOCK_STEP("block.coral_block.step"), + BLOCK_CRAFTER_CRAFT("block.crafter.craft"), + BLOCK_CRAFTER_FAIL("block.crafter.fail"), BLOCK_CROP_BREAK("block.crop.break"), BLOCK_DECORATED_POT_BREAK("block.decorated_pot.break"), BLOCK_DECORATED_POT_FALL("block.decorated_pot.fall"), BLOCK_DECORATED_POT_HIT("block.decorated_pot.hit"), + BLOCK_DECORATED_POT_INSERT("block.decorated_pot.insert"), + BLOCK_DECORATED_POT_INSERT_FAIL("block.decorated_pot.insert_fail"), BLOCK_DECORATED_POT_PLACE("block.decorated_pot.place"), BLOCK_DECORATED_POT_SHATTER("block.decorated_pot.shatter"), BLOCK_DECORATED_POT_STEP("block.decorated_pot.step"), @@ -317,6 +353,7 @@ public enum Sound implements Keyed { BLOCK_HANGING_SIGN_HIT("block.hanging_sign.hit"), BLOCK_HANGING_SIGN_PLACE("block.hanging_sign.place"), BLOCK_HANGING_SIGN_STEP("block.hanging_sign.step"), + BLOCK_HANGING_SIGN_WAXED_INTERACT_FAIL("block.hanging_sign.waxed_interact_fail"), BLOCK_HONEY_BLOCK_BREAK("block.honey_block.break"), BLOCK_HONEY_BLOCK_FALL("block.honey_block.fall"), BLOCK_HONEY_BLOCK_HIT("block.honey_block.hit"), @@ -493,6 +530,16 @@ public enum Sound implements Keyed { BLOCK_POLISHED_DEEPSLATE_HIT("block.polished_deepslate.hit"), BLOCK_POLISHED_DEEPSLATE_PLACE("block.polished_deepslate.place"), BLOCK_POLISHED_DEEPSLATE_STEP("block.polished_deepslate.step"), + @MinecraftExperimental + BLOCK_POLISHED_TUFF_BREAK("block.polished_tuff.break"), + @MinecraftExperimental + BLOCK_POLISHED_TUFF_FALL("block.polished_tuff.fall"), + @MinecraftExperimental + BLOCK_POLISHED_TUFF_HIT("block.polished_tuff.hit"), + @MinecraftExperimental + BLOCK_POLISHED_TUFF_PLACE("block.polished_tuff.place"), + @MinecraftExperimental + BLOCK_POLISHED_TUFF_STEP("block.polished_tuff.step"), BLOCK_PORTAL_AMBIENT("block.portal.ambient"), BLOCK_PORTAL_TRAVEL("block.portal.travel"), BLOCK_PORTAL_TRIGGER("block.portal.trigger"), @@ -636,11 +683,43 @@ public enum Sound implements Keyed { BLOCK_SWEET_BERRY_BUSH_BREAK("block.sweet_berry_bush.break"), BLOCK_SWEET_BERRY_BUSH_PICK_BERRIES("block.sweet_berry_bush.pick_berries"), BLOCK_SWEET_BERRY_BUSH_PLACE("block.sweet_berry_bush.place"), + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_AMBIENT("block.trial_spawner.ambient"), + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_BREAK("block.trial_spawner.break"), + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_CLOSE_SHUTTER("block.trial_spawner.close_shutter"), + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_DETECT_PLAYER("block.trial_spawner.detect_player"), + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_EJECT_ITEM("block.trial_spawner.eject_item"), + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_FALL("block.trial_spawner.fall"), + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_HIT("block.trial_spawner.hit"), + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_OPEN_SHUTTER("block.trial_spawner.open_shutter"), + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_PLACE("block.trial_spawner.place"), + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_SPAWN_MOB("block.trial_spawner.spawn_mob"), + @MinecraftExperimental + BLOCK_TRIAL_SPAWNER_STEP("block.trial_spawner.step"), BLOCK_TRIPWIRE_ATTACH("block.tripwire.attach"), BLOCK_TRIPWIRE_CLICK_OFF("block.tripwire.click_off"), BLOCK_TRIPWIRE_CLICK_ON("block.tripwire.click_on"), BLOCK_TRIPWIRE_DETACH("block.tripwire.detach"), BLOCK_TUFF_BREAK("block.tuff.break"), + @MinecraftExperimental + BLOCK_TUFF_BRICKS_BREAK("block.tuff_bricks.break"), + @MinecraftExperimental + BLOCK_TUFF_BRICKS_FALL("block.tuff_bricks.fall"), + @MinecraftExperimental + BLOCK_TUFF_BRICKS_HIT("block.tuff_bricks.hit"), + @MinecraftExperimental + BLOCK_TUFF_BRICKS_PLACE("block.tuff_bricks.place"), + @MinecraftExperimental + BLOCK_TUFF_BRICKS_STEP("block.tuff_bricks.step"), BLOCK_TUFF_FALL("block.tuff.fall"), BLOCK_TUFF_HIT("block.tuff.hit"), BLOCK_TUFF_PLACE("block.tuff.place"), @@ -729,6 +808,24 @@ public enum Sound implements Keyed { ENTITY_BLAZE_SHOOT("entity.blaze.shoot"), ENTITY_BOAT_PADDLE_LAND("entity.boat.paddle_land"), ENTITY_BOAT_PADDLE_WATER("entity.boat.paddle_water"), + @MinecraftExperimental + ENTITY_BREEZE_DEATH("entity.breeze.death"), + @MinecraftExperimental + ENTITY_BREEZE_HURT("entity.breeze.hurt"), + @MinecraftExperimental + ENTITY_BREEZE_IDLE_AIR("entity.breeze.idle_air"), + @MinecraftExperimental + ENTITY_BREEZE_IDLE_GROUND("entity.breeze.idle_ground"), + @MinecraftExperimental + ENTITY_BREEZE_INHALE("entity.breeze.inhale"), + @MinecraftExperimental + ENTITY_BREEZE_JUMP("entity.breeze.jump"), + @MinecraftExperimental + ENTITY_BREEZE_LAND("entity.breeze.land"), + @MinecraftExperimental + ENTITY_BREEZE_SHOOT("entity.breeze.shoot"), + @MinecraftExperimental + ENTITY_BREEZE_SLIDE("entity.breeze.slide"), ENTITY_CAMEL_AMBIENT("entity.camel.ambient"), ENTITY_CAMEL_DASH("entity.camel.dash"), ENTITY_CAMEL_DASH_READY("entity.camel.dash_ready"), @@ -873,6 +970,8 @@ public enum Sound implements Keyed { ENTITY_GENERIC_SMALL_FALL("entity.generic.small_fall"), ENTITY_GENERIC_SPLASH("entity.generic.splash"), ENTITY_GENERIC_SWIM("entity.generic.swim"), + @MinecraftExperimental + ENTITY_GENERIC_WIND_BURST("entity.generic.wind_burst"), ENTITY_GHAST_AMBIENT("entity.ghast.ambient"), ENTITY_GHAST_DEATH("entity.ghast.death"), ENTITY_GHAST_HURT("entity.ghast.hurt"), @@ -1024,6 +1123,8 @@ public enum Sound implements Keyed { ENTITY_PARROT_FLY("entity.parrot.fly"), ENTITY_PARROT_HURT("entity.parrot.hurt"), ENTITY_PARROT_IMITATE_BLAZE("entity.parrot.imitate.blaze"), + @MinecraftExperimental + ENTITY_PARROT_IMITATE_BREEZE("entity.parrot.imitate.breeze"), ENTITY_PARROT_IMITATE_CREEPER("entity.parrot.imitate.creeper"), ENTITY_PARROT_IMITATE_DROWNED("entity.parrot.imitate.drowned"), ENTITY_PARROT_IMITATE_ELDER_GUARDIAN("entity.parrot.imitate.elder_guardian"), @@ -1108,6 +1209,7 @@ public enum Sound implements Keyed { ENTITY_PLAYER_SPLASH("entity.player.splash"), ENTITY_PLAYER_SPLASH_HIGH_SPEED("entity.player.splash.high_speed"), ENTITY_PLAYER_SWIM("entity.player.swim"), + ENTITY_PLAYER_TELEPORT("entity.player.teleport"), ENTITY_POLAR_BEAR_AMBIENT("entity.polar_bear.ambient"), ENTITY_POLAR_BEAR_AMBIENT_BABY("entity.polar_bear.ambient_baby"), ENTITY_POLAR_BEAR_DEATH("entity.polar_bear.death"), diff --git a/paper-api/src/main/java/org/bukkit/Tag.java b/paper-api/src/main/java/org/bukkit/Tag.java index 02f75db7ac..85c48fa2d1 100644 --- a/paper-api/src/main/java/org/bukkit/Tag.java +++ b/paper-api/src/main/java/org/bukkit/Tag.java @@ -962,6 +962,18 @@ public interface Tag extends Keyed { * Vanilla tag representing entities which are not controlled by their mount. */ Tag ENTITY_TYPES_NON_CONTROLLING_RIDER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("non_controlling_rider"), EntityType.class); + /** + * Vanilla tag representing entities which deflect arrows. + */ + Tag ENTITY_TYPES_DEFLECTS_ARROWS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("deflects_arrows"), EntityType.class); + /** + * Vanilla tag representing entities which deflect tridents. + */ + Tag ENTITY_TYPES_DEFLECTS_TRIDENTS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("deflects_tridents"), EntityType.class); + /** + * Vanilla tag representing entities which can turn in boats. + */ + Tag ENTITY_TYPES_CAN_TURN_IN_BOATS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("can_turn_in_boats"), EntityType.class); /** * Returns whether or not this tag has an entry for the specified item. diff --git a/paper-api/src/main/java/org/bukkit/block/Crafter.java b/paper-api/src/main/java/org/bukkit/block/Crafter.java new file mode 100644 index 0000000000..fda6e8965e --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/Crafter.java @@ -0,0 +1,63 @@ +package org.bukkit.block; + +import org.bukkit.MinecraftExperimental; +import org.bukkit.loot.Lootable; +import org.jetbrains.annotations.ApiStatus; + +/** + * Represents a captured state of a crafter. + */ +@ApiStatus.Experimental +@MinecraftExperimental +public interface Crafter extends Container, Lootable { + + /** + * Gets the number of ticks which this block will remain in the crafting + * state for. + * + * @return number of ticks remaining + * @see org.bukkit.block.data.type.Crafter#isCrafting() + */ + int getCraftingTicks(); + + /** + * Sets the number of ticks which this block will remain in the crafting + * state for. + * + * @param ticks number of ticks remaining + * @see org.bukkit.block.data.type.Crafter#isCrafting() + */ + void setCraftingTicks(int ticks); + + /** + * Gets whether the slot at the specified index is disabled and will not + * have items placed in it. + * + * @param slot slot index + * @return disabled status + */ + boolean isSlotDisabled(int slot); + + /** + * Sets whether the slot at the specified index is disabled and will not + * have items placed in it. + * + * @param slot slot index + * @param disabled disabled status + */ + void setSlotDisabled(int slot, boolean disabled); + + /** + * Gets whether this Crafter is powered. + * + * @return powered status + */ + boolean isTriggered(); + + /** + * Sets whether this Crafter is powered. + * + * @param triggered powered status + */ + void setTriggered(boolean triggered); +} diff --git a/paper-api/src/main/java/org/bukkit/block/TrialSpawner.java b/paper-api/src/main/java/org/bukkit/block/TrialSpawner.java new file mode 100644 index 0000000000..66ce87d236 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/TrialSpawner.java @@ -0,0 +1,12 @@ +package org.bukkit.block; + +import org.bukkit.MinecraftExperimental; +import org.jetbrains.annotations.ApiStatus; + +/** + * Represents a captured state of a trial spawner. + */ +@MinecraftExperimental +@ApiStatus.Experimental +public interface TrialSpawner extends TileState { +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/CopperBulb.java b/paper-api/src/main/java/org/bukkit/block/data/type/CopperBulb.java new file mode 100644 index 0000000000..2257f23c2e --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/CopperBulb.java @@ -0,0 +1,11 @@ +package org.bukkit.block.data.type; + +import org.bukkit.MinecraftExperimental; +import org.bukkit.block.data.Lightable; +import org.bukkit.block.data.Powerable; +import org.jetbrains.annotations.ApiStatus; + +@MinecraftExperimental +@ApiStatus.Experimental +public interface CopperBulb extends Lightable, Powerable { +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Crafter.java b/paper-api/src/main/java/org/bukkit/block/data/type/Crafter.java new file mode 100644 index 0000000000..bc29b8aea7 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Crafter.java @@ -0,0 +1,81 @@ +package org.bukkit.block.data.type; + +import org.bukkit.MinecraftExperimental; +import org.bukkit.block.data.BlockData; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +/** + * 'orientation' is the direction the block is facing. + *
+ * Similar to {@link Powerable}, 'triggered' indicates whether or not the + * dispenser is currently activated. + *
+ * 'crafting' is whether crafter's mouth is open and top is glowing. + */ +@ApiStatus.Experimental +@MinecraftExperimental +public interface Crafter extends BlockData { + + /** + * Gets the value of the 'crafting' property. + * + * @return the 'crafting' value + */ + boolean isCrafting(); + + /** + * Sets the value of the 'crafting' property. + * + * @param crafting the new 'crafting' value + */ + void setCrafting(boolean crafting); + + /** + * Gets the value of the 'triggered' property. + * + * @return the 'triggered' value + */ + boolean isTriggered(); + + /** + * Sets the value of the 'triggered' property. + * + * @param triggered the new 'triggered' value + */ + void setTriggered(boolean triggered); + + /** + * Gets the value of the 'orientation' property. + * + * @return the 'orientation' value + */ + @NotNull + Orientation getOrientation(); + + /** + * Sets the value of the 'orientation' property. + * + * @param orientation the new 'orientation' value + */ + void setOrientation(@NotNull Orientation orientation); + + /** + * The directions the Crafter can be oriented. + */ + public enum Orientation { + + DOWN_EAST, + DOWN_NORTH, + DOWN_SOUTH, + DOWN_WEST, + UP_EAST, + UP_NORTH, + UP_SOUTH, + UP_WEST, + WEST_UP, + EAST_UP, + NORTH_UP, + SOUTH_UP; + } +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/TrialSpawner.java b/paper-api/src/main/java/org/bukkit/block/data/type/TrialSpawner.java new file mode 100644 index 0000000000..2a20529067 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/TrialSpawner.java @@ -0,0 +1,39 @@ +package org.bukkit.block.data.type; + +import org.bukkit.MinecraftExperimental; +import org.bukkit.block.data.BlockData; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +/** + * 'trial_spawner_state' indicates the current operational phase of the spawner. + */ +@MinecraftExperimental +@ApiStatus.Experimental +public interface TrialSpawner extends BlockData { + + /** + * Gets the value of the 'trial_spawner_state' property. + * + * @return the 'trial_spawner_state' value + */ + @NotNull + State getTrialSpawnerState(); + + /** + * Sets the value of the 'trial_spawner_state' property. + * + * @param state the new 'trial_spawner_state' value + */ + void setTrialSpawnerState(@NotNull State state); + + public enum State { + + INACTIVE, + WAITING_FOR_PLAYERS, + ACTIVE, + WAITING_FOR_REWARD_EJECTION, + EJECTING_REWARD, + COOLDOWN; + } +} diff --git a/paper-api/src/main/java/org/bukkit/entity/Breeze.java b/paper-api/src/main/java/org/bukkit/entity/Breeze.java new file mode 100644 index 0000000000..03d9e1f5b1 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/entity/Breeze.java @@ -0,0 +1,12 @@ +package org.bukkit.entity; + +import org.bukkit.MinecraftExperimental; +import org.jetbrains.annotations.ApiStatus; + +/** + * Represents a Breeze. Whoosh! + */ +@MinecraftExperimental +@ApiStatus.Experimental +public interface Breeze extends Monster { +} diff --git a/paper-api/src/main/java/org/bukkit/entity/EntityType.java b/paper-api/src/main/java/org/bukkit/entity/EntityType.java index bb9ae81870..e3f440c9d9 100644 --- a/paper-api/src/main/java/org/bukkit/entity/EntityType.java +++ b/paper-api/src/main/java/org/bukkit/entity/EntityType.java @@ -6,6 +6,7 @@ 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; @@ -18,6 +19,7 @@ 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; @@ -284,6 +286,12 @@ public enum EntityType implements Keyed, Translatable { ITEM_DISPLAY("item_display", ItemDisplay.class, -1), SNIFFER("sniffer", Sniffer.class, -1), TEXT_DISPLAY("text_display", TextDisplay.class, -1), + @MinecraftExperimental + @ApiStatus.Experimental + BREEZE("breeze", Breeze.class, -1), + @MinecraftExperimental + @ApiStatus.Experimental + WIND_CHARGE("wind_charge", WindCharge.class, -1), /** * A fishing line and bobber. */ diff --git a/paper-api/src/main/java/org/bukkit/entity/Player.java b/paper-api/src/main/java/org/bukkit/entity/Player.java index 3cf31b08c6..57fee6b6f4 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Player.java +++ b/paper-api/src/main/java/org/bukkit/entity/Player.java @@ -7,6 +7,7 @@ import java.time.Instant; import java.util.Collection; import java.util.Date; import java.util.Map; +import java.util.UUID; import org.bukkit.BanEntry; import org.bukkit.DyeColor; import org.bukkit.Effect; @@ -1525,6 +1526,53 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void setResourcePack(@NotNull String url, @Nullable byte[] hash, @Nullable String prompt, boolean force); + /** + * Request that the player's client download and switch resource packs. + *

+ * The player's client will download the new resource pack asynchronously + * in the background, and will automatically switch to it once the + * download is complete. If the client has downloaded and cached a + * resource pack with the same hash in the past it will not download but + * directly apply the cached pack. If the hash is null and the client has + * downloaded and cached the same resource pack in the past, it will + * perform a file size check against the response content to determine if + * the resource pack has changed and needs to be downloaded again. When + * this request is sent for the very first time from a given server, the + * client will first display a confirmation GUI to the player before + * proceeding with the download. + *

+ * Notes: + *

    + *
  • Players can disable server resources on their client, in which + * case this method will have no affect on them. Use the + * {@link PlayerResourcePackStatusEvent} to figure out whether or not + * the player loaded the pack! + *
  • There is no concept of resetting resource packs back to default + * within Minecraft, so players will have to relog to do so or you + * have to send an empty pack. + *
  • The request is sent with empty string as the hash when the hash is + * not provided. This might result in newer versions not loading the + * pack correctly. + *
+ * + * @param id Unique resource pack ID. + * @param url The URL from which the client will download the resource + * pack. The string must contain only US-ASCII characters and should + * be encoded as per RFC 1738. + * @param hash The sha1 hash sum of the resource pack file which is used + * to apply a cached version of the pack directly without downloading + * if it is available. Hast to be 20 bytes long! + * @param prompt The optional custom prompt message to be shown to client. + * @param force If true, the client will be disconnected from the server + * when it declines to use the resource pack. + * @throws IllegalArgumentException Thrown if the URL is null. + * @throws IllegalArgumentException Thrown if the URL is too long. The + * length restriction is an implementation specific arbitrary value. + * @throws IllegalArgumentException Thrown if the hash is not 20 bytes + * long. + */ + public void setResourcePack(@NotNull UUID id, @NotNull String url, @Nullable byte[] hash, @Nullable String prompt, boolean force); + /** * Gets the Scoreboard displayed to this player * diff --git a/paper-api/src/main/java/org/bukkit/entity/WindCharge.java b/paper-api/src/main/java/org/bukkit/entity/WindCharge.java new file mode 100644 index 0000000000..9294de1688 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/entity/WindCharge.java @@ -0,0 +1,12 @@ +package org.bukkit.entity; + +import org.bukkit.MinecraftExperimental; +import org.jetbrains.annotations.ApiStatus; + +/** + * Represents a Wind Charge. + */ +@MinecraftExperimental +@ApiStatus.Experimental +public interface WindCharge extends Fireball { +} diff --git a/paper-api/src/main/java/org/bukkit/event/inventory/InventoryType.java b/paper-api/src/main/java/org/bukkit/event/inventory/InventoryType.java index ec9f58ea22..a2e9bedc4d 100644 --- a/paper-api/src/main/java/org/bukkit/event/inventory/InventoryType.java +++ b/paper-api/src/main/java/org/bukkit/event/inventory/InventoryType.java @@ -1,6 +1,8 @@ package org.bukkit.event.inventory; +import org.bukkit.MinecraftExperimental; import org.bukkit.inventory.InventoryHolder; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -142,6 +144,12 @@ public enum InventoryType { * Pseudo jukebox inventory with 1 slot of undefined type. */ JUKEBOX(1, "Jukebox", false), + /** + * A crafter inventory, with 9 CRAFTING slots. + */ + @MinecraftExperimental + @ApiStatus.Experimental + CRAFTER(9, "Crafter"), /** * The new smithing inventory, with 3 CRAFTING slots and 1 RESULT slot. * diff --git a/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java b/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java index ca310cfea0..1a766e6871 100644 --- a/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java +++ b/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java @@ -47,6 +47,7 @@ public abstract class Structure implements Keyed { 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"); + public static final Structure TRIAL_CHAMBERS = getStructure("trial_chambers"); private static Structure getStructure(String name) { return Registry.STRUCTURE.get(NamespacedKey.minecraft(name)); diff --git a/paper-api/src/main/java/org/bukkit/inventory/CrafterInventory.java b/paper-api/src/main/java/org/bukkit/inventory/CrafterInventory.java new file mode 100644 index 0000000000..7cdcd45e2b --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/inventory/CrafterInventory.java @@ -0,0 +1,11 @@ +package org.bukkit.inventory; + +import org.bukkit.MinecraftExperimental; +import org.jetbrains.annotations.ApiStatus; + +/** + * Interface to the inventory of a Crafter. + */ +@ApiStatus.Experimental +@MinecraftExperimental +public interface CrafterInventory extends Inventory { } diff --git a/paper-api/src/main/java/org/bukkit/loot/LootTables.java b/paper-api/src/main/java/org/bukkit/loot/LootTables.java index 4e8479dc74..ddf71b0ee2 100644 --- a/paper-api/src/main/java/org/bukkit/loot/LootTables.java +++ b/paper-api/src/main/java/org/bukkit/loot/LootTables.java @@ -33,6 +33,16 @@ public enum LootTables implements Keyed { ANCIENT_CITY("chests/ancient_city"), ANCIENT_CITY_ICE_BOX("chests/ancient_city_ice_box"), RUINED_PORTAL("chests/ruined_portal"), + TRIAL_CHAMBERS_REWARD("chests/trial_chambers/reward"), + TRIAL_CHAMBERS_SUPPLY("chests/trial_chambers/supply"), + TRIAL_CHAMBERS_CORRIDOR("chests/trial_chambers/corridor"), + TRIAL_CHAMBERS_INTERSECTION("chests/trial_chambers/intersection"), + TRIAL_CHAMBERS_INTERSECTION_BARREL("chests/trial_chambers/intersection_barrel"), + TRIAL_CHAMBERS_ENTRANCE("chests/trial_chambers/entrance"), + TRIAL_CHAMBERS_CORRIDOR_DISPENSER("dispensers/trial_chambers/corridor"), + TRIAL_CHAMBERS_CHAMBER_DISPENSER("dispensers/trial_chambers/chamber"), + TRIAL_CHAMBERS_WATER_DISPENSER("dispensers/trial_chambers/water"), + TRIAL_CHAMBERS_CORRIDOR_POT("pots/trial_chambers/corridor"), SHIPWRECK_MAP("chests/shipwreck_map"), SHIPWRECK_SUPPLY("chests/shipwreck_supply"), SHIPWRECK_TREASURE("chests/shipwreck_treasure"), @@ -157,6 +167,9 @@ public enum LootTables implements Keyed { WEAPONSMITH_GIFT("gameplay/hero_of_the_village/weaponsmith_gift"), SNIFFER_DIGGING("gameplay/sniffer_digging"), PIGLIN_BARTERING("gameplay/piglin_bartering"), + // Spawners + TRIAL_CHAMBER_KEY("spawners/trial_chamber/key"), + RIAL_CHAMBER_CONSUMABLES("spawners/trial_chamber/consumables"), // Archaeology DESERT_WELL_ARCHAEOLOGY("archaeology/desert_well"), DESERT_PYRAMID_ARCHAEOLOGY("archaeology/desert_pyramid"),