diff --git a/paper-api/pom.xml b/paper-api/pom.xml index 32174818dd..c53067603d 100644 --- a/paper-api/pom.xml +++ b/paper-api/pom.xml @@ -5,7 +5,7 @@ org.bukkit bukkit - 1.16.5-R0.1-SNAPSHOT + 1.17-R0.1-SNAPSHOT jar Bukkit @@ -54,7 +54,7 @@ org.yaml snakeyaml - 1.27 + 1.29 compile @@ -67,20 +67,20 @@ org.apache.maven.resolver maven-resolver-connector-basic - 1.6.2 + 1.7.0 provided org.apache.maven.resolver maven-resolver-transport-http - 1.6.2 + 1.7.0 provided org.jetbrains annotations-java5 - 20.1.0 + 21.0.1 provided diff --git a/paper-api/src/main/java/org/bukkit/GameEvent.java b/paper-api/src/main/java/org/bukkit/GameEvent.java new file mode 100644 index 0000000000..b50ba6463b --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/GameEvent.java @@ -0,0 +1,101 @@ +package org.bukkit; + +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Represents a generic Mojang game event. + */ +public final class GameEvent implements Keyed { + + private static final Map GAME_EVENTS = new HashMap<>(); + // + public static final GameEvent BLOCK_ATTACH = getEvent("block_attach"); + public static final GameEvent BLOCK_CHANGE = getEvent("block_change"); + public static final GameEvent BLOCK_CLOSE = getEvent("block_close"); + public static final GameEvent BLOCK_DESTROY = getEvent("block_destroy"); + public static final GameEvent BLOCK_DETACH = getEvent("block_detach"); + public static final GameEvent BLOCK_OPEN = getEvent("block_open"); + public static final GameEvent BLOCK_PLACE = getEvent("block_place"); + public static final GameEvent BLOCK_PRESS = getEvent("block_press"); + public static final GameEvent BLOCK_SWITCH = getEvent("block_switch"); + public static final GameEvent BLOCK_UNPRESS = getEvent("block_unpress"); + public static final GameEvent BLOCK_UNSWITCH = getEvent("block_unswitch"); + 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 DRINKING_FINISH = getEvent("drinking_finish"); + public static final GameEvent EAT = getEvent("eat"); + public static final GameEvent ELYTRA_FREE_FALL = getEvent("elytra_free_fall"); + public static final GameEvent ENTITY_DAMAGED = getEvent("entity_damaged"); + public static final GameEvent ENTITY_KILLED = getEvent("entity_killed"); + public static final GameEvent ENTITY_PLACE = getEvent("entity_place"); + public static final GameEvent EQUIP = getEvent("equip"); + public static final GameEvent EXPLODE = getEvent("explode"); + public static final GameEvent FISHING_ROD_CAST = getEvent("fishing_rod_cast"); + public static final GameEvent FISHING_ROD_REEL_IN = getEvent("fishing_rod_reel_in"); + public static final GameEvent FLAP = getEvent("flap"); + public static final GameEvent FLUID_PICKUP = getEvent("fluid_pickup"); + public static final GameEvent FLUID_PLACE = getEvent("fluid_place"); + public static final GameEvent HIT_GROUND = getEvent("hit_ground"); + public static final GameEvent LIGHTNING_STRIKE = getEvent("lightning_strike"); + public static final GameEvent MINECART_MOVING = getEvent("minecart_moving"); + public static final GameEvent MOB_INTERACT = getEvent("mob_interact"); + 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"); + public static final GameEvent RAVAGER_ROAR = getEvent("ravager_roar"); + public static final GameEvent RING_BELL = getEvent("ring_bell"); + public static final GameEvent SHEAR = getEvent("shear"); + public static final GameEvent SHULKER_CLOSE = getEvent("shulker_close"); + public static final GameEvent SHULKER_OPEN = getEvent("shulker_open"); + public static final GameEvent SPLASH = getEvent("splash"); + public static final GameEvent STEP = getEvent("step"); + public static final GameEvent SWIM = getEvent("swim"); + public static final GameEvent WOLF_SHAKING = getEvent("wolf_shaking"); + // + private final NamespacedKey key; + + private GameEvent(NamespacedKey key) { + this.key = key; + + GAME_EVENTS.put(key, this); + } + + @NotNull + @Override + public NamespacedKey getKey() { + return key; + } + + /** + * Returns a {@link GameEvent} by a {@link NamespacedKey}. + * + * @param namespacedKey the key + * @return the event or null + */ + @Nullable + public static GameEvent getByKey(@NotNull NamespacedKey namespacedKey) { + return GAME_EVENTS.get(namespacedKey); + } + + /** + * Returns the set of all GameEvents. + * + * @return the memoryKeys + */ + @NotNull + public static Collection values() { + return Collections.unmodifiableCollection(GAME_EVENTS.values()); + } + + private static GameEvent getEvent(String vanilla) { + return new GameEvent(NamespacedKey.minecraft(vanilla)); + } +} diff --git a/paper-api/src/main/java/org/bukkit/GameRule.java b/paper-api/src/main/java/org/bukkit/GameRule.java index 720fe9f517..442db40bc6 100644 --- a/paper-api/src/main/java/org/bukkit/GameRule.java +++ b/paper-api/src/main/java/org/bukkit/GameRule.java @@ -148,6 +148,11 @@ public final class GameRule { */ public static final GameRule FIRE_DAMAGE = new GameRule<>("fireDamage", Boolean.class); + /** + * Whether freeze damage is enabled or not. + */ + public static final GameRule FREEZE_DAMAGE = new GameRule<>("freezeDamage", Boolean.class); + /** * Whether patrols should naturally spawn. */ @@ -200,6 +205,12 @@ public final class GameRule { */ public static final GameRule MAX_COMMAND_CHAIN_LENGTH = new GameRule<>("maxCommandChainLength", Integer.class); + /** + * The percentage of online players which must be sleeping for the night to + * advance. + */ + public static final GameRule PLAYERS_SLEEPING_PERCENTAGE = new GameRule<>("playersSleepingPercentage", 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 e4d0dc26fb..a9769ae0ba 100644 --- a/paper-api/src/main/java/org/bukkit/Material.java +++ b/paper-api/src/main/java/org/bukkit/Material.java @@ -20,14 +20,19 @@ import org.bukkit.block.data.Rail; import org.bukkit.block.data.Rotatable; import org.bukkit.block.data.Snowable; import org.bukkit.block.data.Waterlogged; +import org.bukkit.block.data.type.AmethystCluster; import org.bukkit.block.data.type.Bamboo; import org.bukkit.block.data.type.Bed; import org.bukkit.block.data.type.Beehive; import org.bukkit.block.data.type.Bell; +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.Campfire; +import org.bukkit.block.data.type.Candle; +import org.bukkit.block.data.type.CaveVines; +import org.bukkit.block.data.type.CaveVinesPlant; import org.bukkit.block.data.type.Chain; import org.bukkit.block.data.type.Chest; import org.bukkit.block.data.type.Cocoa; @@ -37,6 +42,7 @@ import org.bukkit.block.data.type.CoralWallFan; import org.bukkit.block.data.type.DaylightDetector; import org.bukkit.block.data.type.Dispenser; import org.bukkit.block.data.type.Door; +import org.bukkit.block.data.type.Dripleaf; import org.bukkit.block.data.type.EndPortalFrame; import org.bukkit.block.data.type.EnderChest; import org.bukkit.block.data.type.Farmland; @@ -45,6 +51,7 @@ import org.bukkit.block.data.type.Fire; import org.bukkit.block.data.type.Furnace; import org.bukkit.block.data.type.Gate; import org.bukkit.block.data.type.GlassPane; +import org.bukkit.block.data.type.GlowLichen; import org.bukkit.block.data.type.Grindstone; import org.bukkit.block.data.type.Hopper; import org.bukkit.block.data.type.Jigsaw; @@ -53,10 +60,13 @@ import org.bukkit.block.data.type.Ladder; import org.bukkit.block.data.type.Lantern; import org.bukkit.block.data.type.Leaves; import org.bukkit.block.data.type.Lectern; +import org.bukkit.block.data.type.Light; +import org.bukkit.block.data.type.LightningRod; import org.bukkit.block.data.type.NoteBlock; import org.bukkit.block.data.type.Observer; import org.bukkit.block.data.type.Piston; import org.bukkit.block.data.type.PistonHead; +import org.bukkit.block.data.type.PointedDripstone; import org.bukkit.block.data.type.RedstoneRail; import org.bukkit.block.data.type.RedstoneWallTorch; import org.bukkit.block.data.type.RedstoneWire; @@ -64,6 +74,7 @@ import org.bukkit.block.data.type.Repeater; import org.bukkit.block.data.type.RespawnAnchor; import org.bukkit.block.data.type.Sapling; import org.bukkit.block.data.type.Scaffolding; +import org.bukkit.block.data.type.SculkSensor; import org.bukkit.block.data.type.SeaPickle; import org.bukkit.block.data.type.Sign; import org.bukkit.block.data.type.Slab; @@ -97,6 +108,15 @@ public enum Material implements Keyed { POLISHED_DIORITE(31615), ANDESITE(25975), POLISHED_ANDESITE(8335), + /** + * BlockData: {@link Orientable} + */ + DEEPSLATE(26842, Orientable.class), + COBBLED_DEEPSLATE(8021), + POLISHED_DEEPSLATE(31772), + CALCITE(20311), + TUFF(24364), + DRIPSTONE_BLOCK(26227), /** * BlockData: {@link Snowable} */ @@ -107,6 +127,7 @@ public enum Material implements Keyed { * BlockData: {@link Snowable} */ PODZOL(24068, Snowable.class), + ROOTED_DIRT(11410), CRIMSON_NYLIUM(18139), WARPED_NYLIUM(26396), COBBLESTONE(32147), @@ -146,10 +167,121 @@ public enum Material implements Keyed { SAND(11542), RED_SAND(16279), GRAVEL(7804), - GOLD_ORE(32625), - IRON_ORE(19834), COAL_ORE(30965), + DEEPSLATE_COAL_ORE(16823), + IRON_ORE(19834), + DEEPSLATE_IRON_ORE(26021), + COPPER_ORE(32666), + DEEPSLATE_COPPER_ORE(6588), + GOLD_ORE(32625), + DEEPSLATE_GOLD_ORE(13582), + /** + * BlockData: {@link Lightable} + */ + REDSTONE_ORE(10887, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + DEEPSLATE_REDSTONE_ORE(6331, Lightable.class), + EMERALD_ORE(16630), + DEEPSLATE_EMERALD_ORE(5299), + LAPIS_ORE(22934), + DEEPSLATE_LAPIS_ORE(13598), + DIAMOND_ORE(9292), + DEEPSLATE_DIAMOND_ORE(17792), NETHER_GOLD_ORE(4185), + NETHER_QUARTZ_ORE(4807), + ANCIENT_DEBRIS(18198), + COAL_BLOCK(27968), + RAW_IRON_BLOCK(32210), + RAW_COPPER_BLOCK(17504), + RAW_GOLD_BLOCK(23246), + AMETHYST_BLOCK(18919), + BUDDING_AMETHYST(13963), + IRON_BLOCK(24754), + COPPER_BLOCK(12880), + GOLD_BLOCK(27392), + DIAMOND_BLOCK(5944), + NETHERITE_BLOCK(6527), + EXPOSED_COPPER(28488), + WEATHERED_COPPER(19699), + OXIDIZED_COPPER(19490), + CUT_COPPER(32519), + EXPOSED_CUT_COPPER(18000), + WEATHERED_CUT_COPPER(21158), + OXIDIZED_CUT_COPPER(5382), + /** + * BlockData: {@link Stairs} + */ + CUT_COPPER_STAIRS(25925, Stairs.class), + /** + * BlockData: {@link Stairs} + */ + EXPOSED_CUT_COPPER_STAIRS(31621, Stairs.class), + /** + * BlockData: {@link Stairs} + */ + WEATHERED_CUT_COPPER_STAIRS(5851, Stairs.class), + /** + * BlockData: {@link Stairs} + */ + OXIDIZED_CUT_COPPER_STAIRS(25379, Stairs.class), + /** + * BlockData: {@link Slab} + */ + CUT_COPPER_SLAB(28988, Slab.class), + /** + * BlockData: {@link Slab} + */ + EXPOSED_CUT_COPPER_SLAB(26694, Slab.class), + /** + * BlockData: {@link Slab} + */ + WEATHERED_CUT_COPPER_SLAB(4602, Slab.class), + /** + * BlockData: {@link Slab} + */ + OXIDIZED_CUT_COPPER_SLAB(29642, Slab.class), + WAXED_COPPER_BLOCK(14638), + WAXED_EXPOSED_COPPER(27989), + WAXED_WEATHERED_COPPER(5960), + WAXED_OXIDIZED_COPPER(25626), + WAXED_CUT_COPPER(11030), + WAXED_EXPOSED_CUT_COPPER(30043), + WAXED_WEATHERED_CUT_COPPER(13823), + WAXED_OXIDIZED_CUT_COPPER(22582), + /** + * BlockData: {@link Stairs} + */ + WAXED_CUT_COPPER_STAIRS(23125, Stairs.class), + /** + * BlockData: {@link Stairs} + */ + WAXED_EXPOSED_CUT_COPPER_STAIRS(15532, Stairs.class), + /** + * BlockData: {@link Stairs} + */ + WAXED_WEATHERED_CUT_COPPER_STAIRS(29701, Stairs.class), + /** + * BlockData: {@link Stairs} + */ + WAXED_OXIDIZED_CUT_COPPER_STAIRS(9842, Stairs.class), + /** + * BlockData: {@link Slab} + */ + WAXED_CUT_COPPER_SLAB(6271, Slab.class), + /** + * BlockData: {@link Slab} + */ + WAXED_EXPOSED_CUT_COPPER_SLAB(22091, Slab.class), + /** + * BlockData: {@link Slab} + */ + WAXED_WEATHERED_CUT_COPPER_SLAB(20035, Slab.class), + /** + * BlockData: {@link Slab} + */ + WAXED_OXIDIZED_CUT_COPPER_SLAB(11202, Slab.class), /** * BlockData: {@link Orientable} */ @@ -302,47 +434,33 @@ public enum Material implements Keyed { * BlockData: {@link Leaves} */ DARK_OAK_LEAVES(22254, Leaves.class), + /** + * BlockData: {@link Leaves} + */ + AZALEA_LEAVES(23001, Leaves.class), + /** + * BlockData: {@link Leaves} + */ + FLOWERING_AZALEA_LEAVES(20893, Leaves.class), SPONGE(15860), WET_SPONGE(9043), GLASS(6195), - LAPIS_ORE(22934), + TINTED_GLASS(19154), LAPIS_BLOCK(14485), - /** - * BlockData: {@link Dispenser} - */ - DISPENSER(20871, Dispenser.class), SANDSTONE(13141), CHISELED_SANDSTONE(31763), CUT_SANDSTONE(6118), - /** - * BlockData: {@link NoteBlock} - */ - NOTE_BLOCK(20979, NoteBlock.class), - /** - * BlockData: {@link RedstoneRail} - */ - POWERED_RAIL(11064, RedstoneRail.class), - /** - * BlockData: {@link RedstoneRail} - */ - DETECTOR_RAIL(13475, RedstoneRail.class), - /** - * BlockData: {@link Piston} - */ - STICKY_PISTON(18127, Piston.class), COBWEB(9469), GRASS(6155), FERN(15794), + AZALEA(29386), + FLOWERING_AZALEA(28270), DEAD_BUSH(22888), SEAGRASS(23942), /** * BlockData: {@link SeaPickle} */ SEA_PICKLE(19562, SeaPickle.class), - /** - * BlockData: {@link Piston} - */ - PISTON(21130, Piston.class), WHITE_WOOL(8624), ORANGE_WOOL(23957), MAGENTA_WOOL(11853), @@ -372,6 +490,7 @@ public enum Material implements Keyed { CORNFLOWER(15405), LILY_OF_THE_VALLEY(7185), WITHER_ROSE(8619), + SPORE_BLOSSOM(20627), BROWN_MUSHROOM(9665), RED_MUSHROOM(19728), CRIMSON_FUNGUS(26268), @@ -395,12 +514,24 @@ public enum Material implements Keyed { * BlockData: {@link Ageable} */ KELP(21916, Ageable.class), + MOSS_CARPET(8221), + MOSS_BLOCK(9175), + /** + * BlockData: {@link Waterlogged} + */ + HANGING_ROOTS(15498, Waterlogged.class), + /** + * BlockData: {@link BigDripleaf} + */ + BIG_DRIPLEAF(26173, BigDripleaf.class), + /** + * BlockData: {@link Dripleaf} + */ + SMALL_DRIPLEAF(17540, Dripleaf.class), /** * BlockData: {@link Bamboo} */ BAMBOO(18728, Bamboo.class), - GOLD_BLOCK(27392), - IRON_BLOCK(24754), /** * BlockData: {@link Slab} */ @@ -502,10 +633,6 @@ public enum Material implements Keyed { SMOOTH_SANDSTONE(30039), SMOOTH_STONE(21910), BRICKS(14165), - /** - * BlockData: {@link TNT} - */ - TNT(7896, TNT.class), BOOKSHELF(10069), MOSSY_COBBLESTONE(21900), OBSIDIAN(32723), @@ -540,8 +667,6 @@ public enum Material implements Keyed { * BlockData: {@link Chest} */ CHEST(22969, Chest.class), - DIAMOND_ORE(9292), - DIAMOND_BLOCK(5944), CRAFTING_TABLE(20706), /** * BlockData: {@link Farmland} @@ -555,66 +680,10 @@ public enum Material implements Keyed { * BlockData: {@link Ladder} */ LADDER(23599, Ladder.class), - /** - * BlockData: {@link Rail} - */ - RAIL(13285, Rail.class), /** * BlockData: {@link Stairs} */ COBBLESTONE_STAIRS(24715, Stairs.class), - /** - * BlockData: {@link Switch} - */ - LEVER(15319, Switch.class), - /** - * BlockData: {@link Powerable} - */ - STONE_PRESSURE_PLATE(22591, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - OAK_PRESSURE_PLATE(20108, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - SPRUCE_PRESSURE_PLATE(15932, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - BIRCH_PRESSURE_PLATE(9664, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - JUNGLE_PRESSURE_PLATE(11376, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - ACACIA_PRESSURE_PLATE(17586, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - DARK_OAK_PRESSURE_PLATE(31375, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - CRIMSON_PRESSURE_PLATE(18316, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - WARPED_PRESSURE_PLATE(29516, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - POLISHED_BLACKSTONE_PRESSURE_PLATE(32340, Powerable.class), - /** - * BlockData: {@link Lightable} - */ - REDSTONE_ORE(10887, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - REDSTONE_TORCH(22547, Lightable.class), /** * BlockData: {@link Snow} */ @@ -667,6 +736,10 @@ public enum Material implements Keyed { * BlockData: {@link Directional} */ CARVED_PUMPKIN(25833, Directional.class), + /** + * BlockData: {@link Directional} + */ + JACK_O_LANTERN(13758, Directional.class), NETHERRACK(23425), SOUL_SAND(16841), SOUL_SOIL(31140), @@ -678,57 +751,31 @@ public enum Material implements Keyed { * BlockData: {@link Orientable} */ POLISHED_BASALT(11659, Orientable.class), + SMOOTH_BASALT(13617), /** * BlockData: {@link Lightable} */ SOUL_TORCH(14292, Lightable.class), GLOWSTONE(32713), - /** - * BlockData: {@link Directional} - */ - JACK_O_LANTERN(13758, Directional.class), - /** - * BlockData: {@link TrapDoor} - */ - OAK_TRAPDOOR(16927, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - SPRUCE_TRAPDOOR(10289, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - BIRCH_TRAPDOOR(32585, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - JUNGLE_TRAPDOOR(8626, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - ACACIA_TRAPDOOR(18343, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - DARK_OAK_TRAPDOOR(10355, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - CRIMSON_TRAPDOOR(25056, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - WARPED_TRAPDOOR(7708, TrapDoor.class), INFESTED_STONE(18440), INFESTED_COBBLESTONE(4348), INFESTED_STONE_BRICKS(19749), INFESTED_MOSSY_STONE_BRICKS(9850), INFESTED_CRACKED_STONE_BRICKS(7476), INFESTED_CHISELED_STONE_BRICKS(4728), + /** + * BlockData: {@link Orientable} + */ + INFESTED_DEEPSLATE(9472, Orientable.class), STONE_BRICKS(6962), MOSSY_STONE_BRICKS(16415), CRACKED_STONE_BRICKS(27869), CHISELED_STONE_BRICKS(9087), + DEEPSLATE_BRICKS(13193), + CRACKED_DEEPSLATE_BRICKS(17105), + DEEPSLATE_TILES(11250), + CRACKED_DEEPSLATE_TILES(26249), + CHISELED_DEEPSLATE(23825), /** * BlockData: {@link MultipleFacing} */ @@ -759,37 +806,9 @@ public enum Material implements Keyed { */ VINE(14564, MultipleFacing.class), /** - * BlockData: {@link Gate} + * BlockData: {@link GlowLichen} */ - OAK_FENCE_GATE(16689, Gate.class), - /** - * BlockData: {@link Gate} - */ - SPRUCE_FENCE_GATE(26423, Gate.class), - /** - * BlockData: {@link Gate} - */ - BIRCH_FENCE_GATE(6322, Gate.class), - /** - * BlockData: {@link Gate} - */ - JUNGLE_FENCE_GATE(21360, Gate.class), - /** - * BlockData: {@link Gate} - */ - ACACIA_FENCE_GATE(14145, Gate.class), - /** - * BlockData: {@link Gate} - */ - DARK_OAK_FENCE_GATE(10679, Gate.class), - /** - * BlockData: {@link Gate} - */ - CRIMSON_FENCE_GATE(15602, Gate.class), - /** - * BlockData: {@link Gate} - */ - WARPED_FENCE_GATE(11115, Gate.class), + GLOW_LICHEN(19165, GlowLichen.class), /** * BlockData: {@link Stairs} */ @@ -822,23 +841,14 @@ public enum Material implements Keyed { END_STONE(29686), END_STONE_BRICKS(20314), DRAGON_EGG(29946), - /** - * BlockData: {@link Lightable} - */ - REDSTONE_LAMP(8217, Lightable.class), /** * BlockData: {@link Stairs} */ SANDSTONE_STAIRS(18474, Stairs.class), - EMERALD_ORE(16630), /** * BlockData: {@link EnderChest} */ ENDER_CHEST(32349, EnderChest.class), - /** - * BlockData: {@link TripwireHook} - */ - TRIPWIRE_HOOK(8130, TripwireHook.class), EMERALD_BLOCK(9914), /** * BlockData: {@link Stairs} @@ -934,45 +944,21 @@ public enum Material implements Keyed { */ POLISHED_BLACKSTONE_BRICK_WALL(9540, Wall.class), /** - * BlockData: {@link Switch} + * BlockData: {@link Wall} */ - STONE_BUTTON(12279, Switch.class), + COBBLED_DEEPSLATE_WALL(21893, Wall.class), /** - * BlockData: {@link Switch} + * BlockData: {@link Wall} */ - OAK_BUTTON(13510, Switch.class), + POLISHED_DEEPSLATE_WALL(6574, Wall.class), /** - * BlockData: {@link Switch} + * BlockData: {@link Wall} */ - SPRUCE_BUTTON(23281, Switch.class), + DEEPSLATE_BRICK_WALL(13304, Wall.class), /** - * BlockData: {@link Switch} + * BlockData: {@link Wall} */ - BIRCH_BUTTON(26934, Switch.class), - /** - * BlockData: {@link Switch} - */ - JUNGLE_BUTTON(25317, Switch.class), - /** - * BlockData: {@link Switch} - */ - ACACIA_BUTTON(13993, Switch.class), - /** - * BlockData: {@link Switch} - */ - DARK_OAK_BUTTON(6214, Switch.class), - /** - * BlockData: {@link Switch} - */ - CRIMSON_BUTTON(26799, Switch.class), - /** - * BlockData: {@link Switch} - */ - WARPED_BUTTON(25264, Switch.class), - /** - * BlockData: {@link Switch} - */ - POLISHED_BLACKSTONE_BUTTON(20760, Switch.class), + DEEPSLATE_TILE_WALL(17077, Wall.class), /** * BlockData: {@link Directional} */ @@ -985,28 +971,6 @@ public enum Material implements Keyed { * BlockData: {@link Directional} */ DAMAGED_ANVIL(10274, Directional.class), - /** - * BlockData: {@link Chest} - */ - TRAPPED_CHEST(18970, Chest.class), - /** - * BlockData: {@link AnaloguePowerable} - */ - LIGHT_WEIGHTED_PRESSURE_PLATE(14875, AnaloguePowerable.class), - /** - * BlockData: {@link AnaloguePowerable} - */ - HEAVY_WEIGHTED_PRESSURE_PLATE(16970, AnaloguePowerable.class), - /** - * BlockData: {@link DaylightDetector} - */ - DAYLIGHT_DETECTOR(8864, DaylightDetector.class), - REDSTONE_BLOCK(19496), - NETHER_QUARTZ_ORE(4807), - /** - * BlockData: {@link Hopper} - */ - HOPPER(31974, Hopper.class), CHISELED_QUARTZ_BLOCK(30964), QUARTZ_BLOCK(11987), QUARTZ_BRICKS(23358), @@ -1018,14 +982,6 @@ public enum Material implements Keyed { * BlockData: {@link Stairs} */ QUARTZ_STAIRS(24079, Stairs.class), - /** - * BlockData: {@link RedstoneRail} - */ - ACTIVATOR_RAIL(5834, RedstoneRail.class), - /** - * BlockData: {@link Dispenser} - */ - DROPPER(31273, Dispenser.class), WHITE_TERRACOTTA(20975), ORANGE_TERRACOTTA(18684), MAGENTA_TERRACOTTA(25900), @@ -1044,9 +1000,9 @@ public enum Material implements Keyed { BLACK_TERRACOTTA(26691), BARRIER(26453), /** - * BlockData: {@link TrapDoor} + * BlockData: {@link Light} */ - IRON_TRAPDOOR(17095, TrapDoor.class), + LIGHT(17829, Light.class), /** * BlockData: {@link Orientable} */ @@ -1068,7 +1024,6 @@ public enum Material implements Keyed { RED_CARPET(5424), BLACK_CARPET(6056), TERRACOTTA(16544), - COAL_BLOCK(27968), PACKED_ICE(28993), /** * BlockData: {@link Stairs} @@ -1078,8 +1033,7 @@ public enum Material implements Keyed { * BlockData: {@link Stairs} */ DARK_OAK_STAIRS(22921, Stairs.class), - SLIME_BLOCK(31892), - GRASS_PATH(8604), + DIRT_PATH(10846), /** * BlockData: {@link Bisected} */ @@ -1202,7 +1156,7 @@ public enum Material implements Keyed { SEA_LANTERN(20780), RED_SANDSTONE(9092), CHISELED_RED_SANDSTONE(15529), - CUT_RED_SANDSTONE(26842), + CUT_RED_SANDSTONE(29108), /** * BlockData: {@link Stairs} */ @@ -1224,10 +1178,6 @@ public enum Material implements Keyed { */ BONE_BLOCK(17312, Orientable.class), STRUCTURE_VOID(30806), - /** - * BlockData: {@link Observer} - */ - OBSERVER(10726, Observer.class), /** * BlockData: {@link Directional} */ @@ -1547,6 +1497,22 @@ public enum Material implements Keyed { * BlockData: {@link Stairs} */ DIORITE_STAIRS(13134, Stairs.class), + /** + * BlockData: {@link Stairs} + */ + COBBLED_DEEPSLATE_STAIRS(20699, Stairs.class), + /** + * BlockData: {@link Stairs} + */ + POLISHED_DEEPSLATE_STAIRS(19513, Stairs.class), + /** + * BlockData: {@link Stairs} + */ + DEEPSLATE_BRICK_STAIRS(29624, Stairs.class), + /** + * BlockData: {@link Stairs} + */ + DEEPSLATE_TILE_STAIRS(6361, Stairs.class), /** * BlockData: {@link Slab} */ @@ -1599,10 +1565,198 @@ public enum Material implements Keyed { * BlockData: {@link Slab} */ DIORITE_SLAB(10715, Slab.class), + /** + * BlockData: {@link Slab} + */ + COBBLED_DEEPSLATE_SLAB(17388, Slab.class), + /** + * BlockData: {@link Slab} + */ + POLISHED_DEEPSLATE_SLAB(32201, Slab.class), + /** + * BlockData: {@link Slab} + */ + DEEPSLATE_BRICK_SLAB(23910, Slab.class), + /** + * BlockData: {@link Slab} + */ + DEEPSLATE_TILE_SLAB(13315, Slab.class), /** * BlockData: {@link Scaffolding} */ SCAFFOLDING(15757, Scaffolding.class), + REDSTONE(11233), + /** + * BlockData: {@link Lightable} + */ + REDSTONE_TORCH(22547, Lightable.class), + REDSTONE_BLOCK(19496), + /** + * BlockData: {@link Repeater} + */ + REPEATER(28823, Repeater.class), + /** + * BlockData: {@link Comparator} + */ + COMPARATOR(18911, Comparator.class), + /** + * BlockData: {@link Piston} + */ + PISTON(21130, Piston.class), + /** + * BlockData: {@link Piston} + */ + STICKY_PISTON(18127, Piston.class), + SLIME_BLOCK(31892), + HONEY_BLOCK(30615), + /** + * BlockData: {@link Observer} + */ + OBSERVER(10726, Observer.class), + /** + * BlockData: {@link Hopper} + */ + HOPPER(31974, Hopper.class), + /** + * BlockData: {@link Dispenser} + */ + DISPENSER(20871, Dispenser.class), + /** + * BlockData: {@link Dispenser} + */ + DROPPER(31273, Dispenser.class), + /** + * BlockData: {@link Lectern} + */ + LECTERN(23490, Lectern.class), + /** + * BlockData: {@link AnaloguePowerable} + */ + TARGET(22637, AnaloguePowerable.class), + /** + * BlockData: {@link Switch} + */ + LEVER(15319, Switch.class), + /** + * BlockData: {@link LightningRod} + */ + LIGHTNING_ROD(30770, LightningRod.class), + /** + * BlockData: {@link DaylightDetector} + */ + DAYLIGHT_DETECTOR(8864, DaylightDetector.class), + /** + * BlockData: {@link SculkSensor} + */ + SCULK_SENSOR(5598, SculkSensor.class), + /** + * BlockData: {@link TripwireHook} + */ + TRIPWIRE_HOOK(8130, TripwireHook.class), + /** + * BlockData: {@link Chest} + */ + TRAPPED_CHEST(18970, Chest.class), + /** + * BlockData: {@link TNT} + */ + TNT(7896, TNT.class), + /** + * BlockData: {@link Lightable} + */ + REDSTONE_LAMP(8217, Lightable.class), + /** + * BlockData: {@link NoteBlock} + */ + NOTE_BLOCK(20979, NoteBlock.class), + /** + * BlockData: {@link Switch} + */ + STONE_BUTTON(12279, Switch.class), + /** + * BlockData: {@link Switch} + */ + POLISHED_BLACKSTONE_BUTTON(20760, Switch.class), + /** + * BlockData: {@link Switch} + */ + OAK_BUTTON(13510, Switch.class), + /** + * BlockData: {@link Switch} + */ + SPRUCE_BUTTON(23281, Switch.class), + /** + * BlockData: {@link Switch} + */ + BIRCH_BUTTON(26934, Switch.class), + /** + * BlockData: {@link Switch} + */ + JUNGLE_BUTTON(25317, Switch.class), + /** + * BlockData: {@link Switch} + */ + ACACIA_BUTTON(13993, Switch.class), + /** + * BlockData: {@link Switch} + */ + DARK_OAK_BUTTON(6214, Switch.class), + /** + * BlockData: {@link Switch} + */ + CRIMSON_BUTTON(26799, Switch.class), + /** + * BlockData: {@link Switch} + */ + WARPED_BUTTON(25264, Switch.class), + /** + * BlockData: {@link Powerable} + */ + STONE_PRESSURE_PLATE(22591, Powerable.class), + /** + * BlockData: {@link Powerable} + */ + POLISHED_BLACKSTONE_PRESSURE_PLATE(32340, Powerable.class), + /** + * BlockData: {@link AnaloguePowerable} + */ + LIGHT_WEIGHTED_PRESSURE_PLATE(14875, AnaloguePowerable.class), + /** + * BlockData: {@link AnaloguePowerable} + */ + HEAVY_WEIGHTED_PRESSURE_PLATE(16970, AnaloguePowerable.class), + /** + * BlockData: {@link Powerable} + */ + OAK_PRESSURE_PLATE(20108, Powerable.class), + /** + * BlockData: {@link Powerable} + */ + SPRUCE_PRESSURE_PLATE(15932, Powerable.class), + /** + * BlockData: {@link Powerable} + */ + BIRCH_PRESSURE_PLATE(9664, Powerable.class), + /** + * BlockData: {@link Powerable} + */ + JUNGLE_PRESSURE_PLATE(11376, Powerable.class), + /** + * BlockData: {@link Powerable} + */ + ACACIA_PRESSURE_PLATE(17586, Powerable.class), + /** + * BlockData: {@link Powerable} + */ + DARK_OAK_PRESSURE_PLATE(31375, Powerable.class), + /** + * BlockData: {@link Powerable} + */ + CRIMSON_PRESSURE_PLATE(18316, Powerable.class), + /** + * BlockData: {@link Powerable} + */ + WARPED_PRESSURE_PLATE(29516, Powerable.class), /** * BlockData: {@link Door} */ @@ -1640,13 +1794,104 @@ public enum Material implements Keyed { */ WARPED_DOOR(15062, Door.class), /** - * BlockData: {@link Repeater} + * BlockData: {@link TrapDoor} */ - REPEATER(28823, Repeater.class), + IRON_TRAPDOOR(17095, TrapDoor.class), /** - * BlockData: {@link Comparator} + * BlockData: {@link TrapDoor} */ - COMPARATOR(18911, Comparator.class), + OAK_TRAPDOOR(16927, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + SPRUCE_TRAPDOOR(10289, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + BIRCH_TRAPDOOR(32585, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + JUNGLE_TRAPDOOR(8626, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + ACACIA_TRAPDOOR(18343, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + DARK_OAK_TRAPDOOR(10355, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + CRIMSON_TRAPDOOR(25056, TrapDoor.class), + /** + * BlockData: {@link TrapDoor} + */ + WARPED_TRAPDOOR(7708, TrapDoor.class), + /** + * BlockData: {@link Gate} + */ + OAK_FENCE_GATE(16689, Gate.class), + /** + * BlockData: {@link Gate} + */ + SPRUCE_FENCE_GATE(26423, Gate.class), + /** + * BlockData: {@link Gate} + */ + BIRCH_FENCE_GATE(6322, Gate.class), + /** + * BlockData: {@link Gate} + */ + JUNGLE_FENCE_GATE(21360, Gate.class), + /** + * BlockData: {@link Gate} + */ + ACACIA_FENCE_GATE(14145, Gate.class), + /** + * BlockData: {@link Gate} + */ + DARK_OAK_FENCE_GATE(10679, Gate.class), + /** + * BlockData: {@link Gate} + */ + CRIMSON_FENCE_GATE(15602, Gate.class), + /** + * BlockData: {@link Gate} + */ + WARPED_FENCE_GATE(11115, Gate.class), + /** + * BlockData: {@link RedstoneRail} + */ + POWERED_RAIL(11064, RedstoneRail.class), + /** + * BlockData: {@link RedstoneRail} + */ + DETECTOR_RAIL(13475, RedstoneRail.class), + /** + * BlockData: {@link Rail} + */ + RAIL(13285, Rail.class), + /** + * BlockData: {@link RedstoneRail} + */ + ACTIVATOR_RAIL(5834, RedstoneRail.class), + SADDLE(30206, 1), + MINECART(14352, 1), + CHEST_MINECART(4497, 1), + FURNACE_MINECART(14196, 1), + TNT_MINECART(4277, 1), + HOPPER_MINECART(19024, 1), + CARROT_ON_A_STICK(27809, 1, 25), + WARPED_FUNGUS_ON_A_STICK(11706, 1, 100), + ELYTRA(23829, 1, 432), + OAK_BOAT(17570, 1), + SPRUCE_BOAT(31427, 1), + BIRCH_BOAT(28104, 1), + JUNGLE_BOAT(4495, 1), + ACACIA_BOAT(27326, 1), + DARK_OAK_BOAT(28618, 1), /** * BlockData: {@link StructureBlock} */ @@ -1664,7 +1909,15 @@ public enum Material implements Keyed { COAL(29067), CHARCOAL(5390), DIAMOND(20865), + EMERALD(5654), + LAPIS_LAZULI(11075), + QUARTZ(23608), + AMETHYST_SHARD(7613), + RAW_IRON(5329), IRON_INGOT(24895), + RAW_COPPER(6162), + COPPER_INGOT(12611), + RAW_GOLD(19564), GOLD_INGOT(28927), NETHERITE_INGOT(32457), NETHERITE_SCRAP(29331), @@ -1724,7 +1977,7 @@ public enum Material implements Keyed { IRON_BOOTS(8531, 1, 195), DIAMOND_HELMET(10755, 1, 363), DIAMOND_CHESTPLATE(32099, 1, 528), - DIAMOND_LEGGINGS(11202, 1, 495), + DIAMOND_LEGGINGS(26500, 1, 495), DIAMOND_BOOTS(16522, 1, 429), GOLDEN_HELMET(7945, 1, 77), GOLDEN_CHESTPLATE(4507, 1, 112), @@ -1775,29 +2028,27 @@ public enum Material implements Keyed { BUCKET(15215, 16), WATER_BUCKET(8802, 1), LAVA_BUCKET(9228, 1), - MINECART(14352, 1), - SADDLE(30206, 1), - REDSTONE(11233), + POWDER_SNOW_BUCKET(31101, 1), SNOWBALL(19487, 16), - OAK_BOAT(17570, 1), LEATHER(16414), MILK_BUCKET(9680, 1), PUFFERFISH_BUCKET(8861, 1), - SALMON_BUCKET(31427, 1), + SALMON_BUCKET(9606, 1), COD_BUCKET(28601, 1), TROPICAL_FISH_BUCKET(29995, 1), + AXOLOTL_BUCKET(20669, 1), BRICK(6820), CLAY_BALL(24603), DRIED_KELP_BLOCK(12966), PAPER(9923), BOOK(23097), SLIME_BALL(5242), - CHEST_MINECART(4497, 1), - FURNACE_MINECART(14196, 1), EGG(21603, 16), COMPASS(24139), + BUNDLE(16835, 1), FISHING_ROD(4167, 1, 64), CLOCK(14980), + SPYGLASS(27490, 1), GLOWSTONE_DUST(6665), COD(24691), SALMON(18516), @@ -1806,8 +2057,8 @@ public enum Material implements Keyed { COOKED_COD(9681), COOKED_SALMON(5615), INK_SAC(7184), + GLOW_INK_SAC(9686), COCOA_BEANS(30186), - LAPIS_LAZULI(11075), WHITE_DYE(10758), ORANGE_DYE(13866), MAGENTA_DYE(11788), @@ -1925,12 +2176,10 @@ public enum Material implements Keyed { * BlockData: {@link BrewingStand} */ BREWING_STAND(14539, BrewingStand.class), - /** - * BlockData: {@link Levelled} - */ - CAULDRON(26531, Levelled.class), + CAULDRON(26531), ENDER_EYE(24860), GLISTERING_MELON_SLICE(20158), + AXOLOTL_SPAWN_EGG(30381), BAT_SPAWN_EGG(14607), BEE_SPAWN_EGG(22924), BLAZE_SPAWN_EGG(4759), @@ -1949,6 +2198,8 @@ public enum Material implements Keyed { EVOKER_SPAWN_EGG(21271), FOX_SPAWN_EGG(22376), GHAST_SPAWN_EGG(9970), + GLOW_SQUID_SPAWN_EGG(31578), + GOAT_SPAWN_EGG(30639), GUARDIAN_SPAWN_EGG(20113), HOGLIN_SPAWN_EGG(14088), HORSE_SPAWN_EGG(25981), @@ -1999,8 +2250,8 @@ public enum Material implements Keyed { FIRE_CHARGE(4842), WRITABLE_BOOK(13393, 1), WRITTEN_BOOK(24164, 16), - EMERALD(5654), ITEM_FRAME(27318), + GLOW_ITEM_FRAME(26473), FLOWER_POT(30567), CARROT(22824), POTATO(21088), @@ -2032,17 +2283,12 @@ public enum Material implements Keyed { * BlockData: {@link Rotatable} */ DRAGON_HEAD(20084, Rotatable.class), - CARROT_ON_A_STICK(27809, 1, 25), - WARPED_FUNGUS_ON_A_STICK(11706, 1, 100), NETHER_STAR(12469), PUMPKIN_PIE(28725), FIREWORK_ROCKET(23841), FIREWORK_STAR(12190), ENCHANTED_BOOK(11741, 1), NETHER_BRICK(19996), - QUARTZ(23608), - TNT_MINECART(4277, 1), - HOPPER_MINECART(19024, 1), PRISMARINE_SHARD(10993), PRISMARINE_CRYSTALS(31546), RABBIT(23068), @@ -2136,12 +2382,6 @@ public enum Material implements Keyed { TIPPED_ARROW(25164), LINGERING_POTION(25857, 1), SHIELD(29943, 1, 336), - ELYTRA(23829, 1, 432), - SPRUCE_BOAT(9606, 1), - BIRCH_BOAT(28104, 1), - JUNGLE_BOAT(4495, 1), - ACACIA_BOAT(27326, 1), - DARK_OAK_BOAT(28618, 1), TOTEM_OF_UNDYING(10139, 1), SHULKER_SHELL(27848), IRON_NUGGET(13715), @@ -2151,7 +2391,7 @@ public enum Material implements Keyed { MUSIC_DISC_CAT(16246, 1), MUSIC_DISC_BLOCKS(26667, 1), MUSIC_DISC_CHIRP(19436, 1), - MUSIC_DISC_FAR(13823, 1), + MUSIC_DISC_FAR(31742, 1), MUSIC_DISC_MALL(11517, 1), MUSIC_DISC_MELLOHI(26117, 1), MUSIC_DISC_STAL(14989, 1), @@ -2198,10 +2438,6 @@ public enum Material implements Keyed { * BlockData: {@link Grindstone} */ GRINDSTONE(26260, Grindstone.class), - /** - * BlockData: {@link Lectern} - */ - LECTERN(23490, Lectern.class), SMITHING_TABLE(9082), /** * BlockData: {@link Directional} @@ -2220,6 +2456,7 @@ public enum Material implements Keyed { */ SOUL_LANTERN(27778, Lantern.class), SWEET_BERRIES(19747), + GLOW_BERRIES(11584), /** * BlockData: {@link Campfire} */ @@ -2239,15 +2476,8 @@ public enum Material implements Keyed { */ BEEHIVE(11830, Beehive.class), HONEY_BOTTLE(22927, 16), - HONEY_BLOCK(30615), HONEYCOMB_BLOCK(28780), LODESTONE(23127), - NETHERITE_BLOCK(6527), - ANCIENT_DEBRIS(18198), - /** - * BlockData: {@link AnaloguePowerable} - */ - TARGET(22637, AnaloguePowerable.class), CRYING_OBSIDIAN(31545), BLACKSTONE(7354), /** @@ -2283,6 +2513,94 @@ public enum Material implements Keyed { * BlockData: {@link RespawnAnchor} */ RESPAWN_ANCHOR(4099, RespawnAnchor.class), + /** + * BlockData: {@link Candle} + */ + CANDLE(16122, Candle.class), + /** + * BlockData: {@link Candle} + */ + WHITE_CANDLE(26410, Candle.class), + /** + * BlockData: {@link Candle} + */ + ORANGE_CANDLE(22668, Candle.class), + /** + * BlockData: {@link Candle} + */ + MAGENTA_CANDLE(25467, Candle.class), + /** + * BlockData: {@link Candle} + */ + LIGHT_BLUE_CANDLE(28681, Candle.class), + /** + * BlockData: {@link Candle} + */ + YELLOW_CANDLE(14351, Candle.class), + /** + * BlockData: {@link Candle} + */ + LIME_CANDLE(21778, Candle.class), + /** + * BlockData: {@link Candle} + */ + PINK_CANDLE(28259, Candle.class), + /** + * BlockData: {@link Candle} + */ + GRAY_CANDLE(10721, Candle.class), + /** + * BlockData: {@link Candle} + */ + LIGHT_GRAY_CANDLE(10031, Candle.class), + /** + * BlockData: {@link Candle} + */ + CYAN_CANDLE(24765, Candle.class), + /** + * BlockData: {@link Candle} + */ + PURPLE_CANDLE(19606, Candle.class), + /** + * BlockData: {@link Candle} + */ + BLUE_CANDLE(29047, Candle.class), + /** + * BlockData: {@link Candle} + */ + BROWN_CANDLE(26145, Candle.class), + /** + * BlockData: {@link Candle} + */ + GREEN_CANDLE(29756, Candle.class), + /** + * BlockData: {@link Candle} + */ + RED_CANDLE(4214, Candle.class), + /** + * BlockData: {@link Candle} + */ + BLACK_CANDLE(12617, Candle.class), + /** + * BlockData: {@link AmethystCluster} + */ + SMALL_AMETHYST_BUD(14958, AmethystCluster.class), + /** + * BlockData: {@link AmethystCluster} + */ + MEDIUM_AMETHYST_BUD(8429, AmethystCluster.class), + /** + * BlockData: {@link AmethystCluster} + */ + LARGE_AMETHYST_BUD(7279, AmethystCluster.class), + /** + * BlockData: {@link AmethystCluster} + */ + AMETHYST_CLUSTER(13142, AmethystCluster.class), + /** + * BlockData: {@link PointedDripstone} + */ + POINTED_DRIPSTONE(18755, PointedDripstone.class), /** * BlockData: {@link Levelled} */ @@ -2371,6 +2689,18 @@ public enum Material implements Keyed { * BlockData: {@link Ageable} */ MELON_STEM(8247, Ageable.class), + /** + * BlockData: {@link Levelled} + */ + WATER_CAULDRON(32008, Levelled.class), + /** + * BlockData: {@link Levelled} + */ + LAVA_CAULDRON(4514, Levelled.class), + /** + * BlockData: {@link Levelled} + */ + POWDER_SNOW_CAULDRON(31571, Levelled.class), END_PORTAL(16782), /** * BlockData: {@link Cocoa} @@ -2576,6 +2906,89 @@ public enum Material implements Keyed { POTTED_WARPED_FUNGUS(30800), POTTED_CRIMSON_ROOTS(13852), POTTED_WARPED_ROOTS(6403), + /** + * BlockData: {@link Lightable} + */ + CANDLE_CAKE(25423, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + WHITE_CANDLE_CAKE(12674, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + ORANGE_CANDLE_CAKE(24982, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + MAGENTA_CANDLE_CAKE(11022, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + LIGHT_BLUE_CANDLE_CAKE(7787, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + YELLOW_CANDLE_CAKE(17157, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + LIME_CANDLE_CAKE(14309, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + PINK_CANDLE_CAKE(20405, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + GRAY_CANDLE_CAKE(6777, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + LIGHT_GRAY_CANDLE_CAKE(11318, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + CYAN_CANDLE_CAKE(21202, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + PURPLE_CANDLE_CAKE(22663, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + BLUE_CANDLE_CAKE(26425, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + BROWN_CANDLE_CAKE(26024, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + GREEN_CANDLE_CAKE(16334, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + RED_CANDLE_CAKE(24151, Lightable.class), + /** + * BlockData: {@link Lightable} + */ + BLACK_CANDLE_CAKE(15191, Lightable.class), + POWDER_SNOW(24077), + /** + * BlockData: {@link CaveVines} + */ + CAVE_VINES(7339, CaveVines.class), + /** + * BlockData: {@link CaveVinesPlant} + */ + CAVE_VINES_PLANT(30645, CaveVinesPlant.class), + /** + * BlockData: {@link Dripleaf} + */ + BIG_DRIPLEAF_STEM(13167, Dripleaf.class), + POTTED_AZALEA_BUSH(20430), + POTTED_FLOWERING_AZALEA_BUSH(10609), // ----- Legacy Separator ----- @Deprecated LEGACY_AIR(0, 0), @@ -3712,6 +4125,8 @@ public enum Material implements Keyed { case ACTIVATOR_RAIL: case AIR: case ALLIUM: + case AMETHYST_BLOCK: + case AMETHYST_CLUSTER: case ANCIENT_DEBRIS: case ANDESITE: case ANDESITE_SLAB: @@ -3720,6 +4135,8 @@ public enum Material implements Keyed { case ANVIL: case ATTACHED_MELON_STEM: case ATTACHED_PUMPKIN_STEM: + case AZALEA: + case AZALEA_LEAVES: case AZURE_BLUET: case BAMBOO: case BAMBOO_SAPLING: @@ -3732,6 +4149,8 @@ public enum Material implements Keyed { case BEETROOTS: case BEE_NEST: case BELL: + case BIG_DRIPLEAF: + case BIG_DRIPLEAF_STEM: case BIRCH_BUTTON: case BIRCH_DOOR: case BIRCH_FENCE: @@ -3753,6 +4172,8 @@ public enum Material implements Keyed { case BLACKSTONE_WALL: case BLACK_BANNER: case BLACK_BED: + case BLACK_CANDLE: + case BLACK_CANDLE_CAKE: case BLACK_CARPET: case BLACK_CONCRETE: case BLACK_CONCRETE_POWDER: @@ -3766,6 +4187,8 @@ public enum Material implements Keyed { case BLAST_FURNACE: case BLUE_BANNER: case BLUE_BED: + case BLUE_CANDLE: + case BLUE_CANDLE_CAKE: case BLUE_CARPET: case BLUE_CONCRETE: case BLUE_CONCRETE_POWDER: @@ -3791,6 +4214,8 @@ public enum Material implements Keyed { case BRICK_WALL: case BROWN_BANNER: case BROWN_BED: + case BROWN_CANDLE: + case BROWN_CANDLE_CAKE: case BROWN_CARPET: case BROWN_CONCRETE: case BROWN_CONCRETE_POWDER: @@ -3808,18 +4233,25 @@ public enum Material implements Keyed { case BUBBLE_CORAL_BLOCK: case BUBBLE_CORAL_FAN: case BUBBLE_CORAL_WALL_FAN: + case BUDDING_AMETHYST: case CACTUS: case CAKE: + case CALCITE: case CAMPFIRE: + case CANDLE: + case CANDLE_CAKE: case CARROTS: case CARTOGRAPHY_TABLE: case CARVED_PUMPKIN: case CAULDRON: case CAVE_AIR: + case CAVE_VINES: + case CAVE_VINES_PLANT: case CHAIN: case CHAIN_COMMAND_BLOCK: case CHEST: case CHIPPED_ANVIL: + case CHISELED_DEEPSLATE: case CHISELED_NETHER_BRICKS: case CHISELED_POLISHED_BLACKSTONE: case CHISELED_QUARTZ_BLOCK: @@ -3832,6 +4264,10 @@ public enum Material implements Keyed { case COAL_BLOCK: case COAL_ORE: case COARSE_DIRT: + case COBBLED_DEEPSLATE: + case COBBLED_DEEPSLATE_SLAB: + case COBBLED_DEEPSLATE_STAIRS: + case COBBLED_DEEPSLATE_WALL: case COBBLESTONE: case COBBLESTONE_SLAB: case COBBLESTONE_STAIRS: @@ -3842,7 +4278,11 @@ public enum Material implements Keyed { case COMPARATOR: case COMPOSTER: case CONDUIT: + case COPPER_BLOCK: + case COPPER_ORE: case CORNFLOWER: + case CRACKED_DEEPSLATE_BRICKS: + case CRACKED_DEEPSLATE_TILES: case CRACKED_NETHER_BRICKS: case CRACKED_POLISHED_BLACKSTONE_BRICKS: case CRACKED_STONE_BRICKS: @@ -3866,12 +4306,17 @@ public enum Material implements Keyed { case CRIMSON_TRAPDOOR: case CRIMSON_WALL_SIGN: case CRYING_OBSIDIAN: + case CUT_COPPER: + case CUT_COPPER_SLAB: + case CUT_COPPER_STAIRS: case CUT_RED_SANDSTONE: case CUT_RED_SANDSTONE_SLAB: case CUT_SANDSTONE: case CUT_SANDSTONE_SLAB: case CYAN_BANNER: case CYAN_BED: + case CYAN_CANDLE: + case CYAN_CANDLE_CAKE: case CYAN_CARPET: case CYAN_CONCRETE: case CYAN_CONCRETE_POWDER: @@ -3924,6 +4369,23 @@ public enum Material implements Keyed { case DEAD_TUBE_CORAL_BLOCK: case DEAD_TUBE_CORAL_FAN: case DEAD_TUBE_CORAL_WALL_FAN: + case DEEPSLATE: + case DEEPSLATE_BRICKS: + case DEEPSLATE_BRICK_SLAB: + case DEEPSLATE_BRICK_STAIRS: + case DEEPSLATE_BRICK_WALL: + case DEEPSLATE_COAL_ORE: + case DEEPSLATE_COPPER_ORE: + case DEEPSLATE_DIAMOND_ORE: + case DEEPSLATE_EMERALD_ORE: + case DEEPSLATE_GOLD_ORE: + case DEEPSLATE_IRON_ORE: + case DEEPSLATE_LAPIS_ORE: + case DEEPSLATE_REDSTONE_ORE: + case DEEPSLATE_TILES: + case DEEPSLATE_TILE_SLAB: + case DEEPSLATE_TILE_STAIRS: + case DEEPSLATE_TILE_WALL: case DETECTOR_RAIL: case DIAMOND_BLOCK: case DIAMOND_ORE: @@ -3932,11 +4394,13 @@ public enum Material implements Keyed { case DIORITE_STAIRS: case DIORITE_WALL: case DIRT: + case DIRT_PATH: case DISPENSER: case DRAGON_EGG: case DRAGON_HEAD: case DRAGON_WALL_HEAD: case DRIED_KELP_BLOCK: + case DRIPSTONE_BLOCK: case DROPPER: case EMERALD_BLOCK: case EMERALD_ORE: @@ -3951,6 +4415,10 @@ public enum Material implements Keyed { case END_STONE_BRICK_SLAB: case END_STONE_BRICK_STAIRS: case END_STONE_BRICK_WALL: + case EXPOSED_COPPER: + case EXPOSED_CUT_COPPER: + case EXPOSED_CUT_COPPER_SLAB: + case EXPOSED_CUT_COPPER_STAIRS: case FARMLAND: case FERN: case FIRE: @@ -3959,6 +4427,8 @@ public enum Material implements Keyed { case FIRE_CORAL_FAN: case FIRE_CORAL_WALL_FAN: case FLETCHING_TABLE: + case FLOWERING_AZALEA: + case FLOWERING_AZALEA_LEAVES: case FLOWER_POT: case FROSTED_ICE: case FURNACE: @@ -3966,6 +4436,7 @@ public enum Material implements Keyed { case GLASS: case GLASS_PANE: case GLOWSTONE: + case GLOW_LICHEN: case GOLD_BLOCK: case GOLD_ORE: case GRANITE: @@ -3974,10 +4445,11 @@ public enum Material implements Keyed { case GRANITE_WALL: case GRASS: case GRASS_BLOCK: - case GRASS_PATH: case GRAVEL: case GRAY_BANNER: case GRAY_BED: + case GRAY_CANDLE: + case GRAY_CANDLE_CAKE: case GRAY_CARPET: case GRAY_CONCRETE: case GRAY_CONCRETE_POWDER: @@ -3990,6 +4462,8 @@ public enum Material implements Keyed { case GRAY_WOOL: case GREEN_BANNER: case GREEN_BED: + case GREEN_CANDLE: + case GREEN_CANDLE_CAKE: case GREEN_CARPET: case GREEN_CONCRETE: case GREEN_CONCRETE_POWDER: @@ -4001,6 +4475,7 @@ public enum Material implements Keyed { case GREEN_WALL_BANNER: case GREEN_WOOL: case GRINDSTONE: + case HANGING_ROOTS: case HAY_BLOCK: case HEAVY_WEIGHTED_PRESSURE_PLATE: case HONEYCOMB_BLOCK: @@ -4014,6 +4489,7 @@ public enum Material implements Keyed { case INFESTED_CHISELED_STONE_BRICKS: case INFESTED_COBBLESTONE: case INFESTED_CRACKED_STONE_BRICKS: + case INFESTED_DEEPSLATE: case INFESTED_MOSSY_STONE_BRICKS: case INFESTED_STONE: case INFESTED_STONE_BRICKS: @@ -4046,12 +4522,18 @@ public enum Material implements Keyed { case LANTERN: case LAPIS_BLOCK: case LAPIS_ORE: + case LARGE_AMETHYST_BUD: case LARGE_FERN: case LAVA: + case LAVA_CAULDRON: case LECTERN: case LEVER: + case LIGHT: + case LIGHTNING_ROD: case LIGHT_BLUE_BANNER: case LIGHT_BLUE_BED: + case LIGHT_BLUE_CANDLE: + case LIGHT_BLUE_CANDLE_CAKE: case LIGHT_BLUE_CARPET: case LIGHT_BLUE_CONCRETE: case LIGHT_BLUE_CONCRETE_POWDER: @@ -4064,6 +4546,8 @@ public enum Material implements Keyed { case LIGHT_BLUE_WOOL: case LIGHT_GRAY_BANNER: case LIGHT_GRAY_BED: + case LIGHT_GRAY_CANDLE: + case LIGHT_GRAY_CANDLE_CAKE: case LIGHT_GRAY_CARPET: case LIGHT_GRAY_CONCRETE: case LIGHT_GRAY_CONCRETE_POWDER: @@ -4080,6 +4564,8 @@ public enum Material implements Keyed { case LILY_PAD: case LIME_BANNER: case LIME_BED: + case LIME_CANDLE: + case LIME_CANDLE_CAKE: case LIME_CARPET: case LIME_CONCRETE: case LIME_CONCRETE_POWDER: @@ -4094,6 +4580,8 @@ public enum Material implements Keyed { case LOOM: case MAGENTA_BANNER: case MAGENTA_BED: + case MAGENTA_CANDLE: + case MAGENTA_CANDLE_CAKE: case MAGENTA_CARPET: case MAGENTA_CONCRETE: case MAGENTA_CONCRETE_POWDER: @@ -4105,6 +4593,7 @@ public enum Material implements Keyed { case MAGENTA_WALL_BANNER: case MAGENTA_WOOL: case MAGMA_BLOCK: + case MEDIUM_AMETHYST_BUD: case MELON: case MELON_STEM: case MOSSY_COBBLESTONE: @@ -4115,6 +4604,8 @@ public enum Material implements Keyed { case MOSSY_STONE_BRICK_SLAB: case MOSSY_STONE_BRICK_STAIRS: case MOSSY_STONE_BRICK_WALL: + case MOSS_BLOCK: + case MOSS_CARPET: case MOVING_PISTON: case MUSHROOM_STEM: case MYCELIUM: @@ -4151,6 +4642,8 @@ public enum Material implements Keyed { case OBSIDIAN: case ORANGE_BANNER: case ORANGE_BED: + case ORANGE_CANDLE: + case ORANGE_CANDLE_CAKE: case ORANGE_CARPET: case ORANGE_CONCRETE: case ORANGE_CONCRETE_POWDER: @@ -4163,11 +4656,17 @@ public enum Material implements Keyed { case ORANGE_WALL_BANNER: case ORANGE_WOOL: case OXEYE_DAISY: + case OXIDIZED_COPPER: + case OXIDIZED_CUT_COPPER: + case OXIDIZED_CUT_COPPER_SLAB: + case OXIDIZED_CUT_COPPER_STAIRS: case PACKED_ICE: case PEONY: case PETRIFIED_OAK_SLAB: case PINK_BANNER: case PINK_BED: + case PINK_CANDLE: + case PINK_CANDLE_CAKE: case PINK_CARPET: case PINK_CONCRETE: case PINK_CONCRETE_POWDER: @@ -4184,6 +4683,7 @@ public enum Material implements Keyed { case PLAYER_HEAD: case PLAYER_WALL_HEAD: case PODZOL: + case POINTED_DRIPSTONE: case POLISHED_ANDESITE: case POLISHED_ANDESITE_SLAB: case POLISHED_ANDESITE_STAIRS: @@ -4198,6 +4698,10 @@ public enum Material implements Keyed { case POLISHED_BLACKSTONE_SLAB: case POLISHED_BLACKSTONE_STAIRS: case POLISHED_BLACKSTONE_WALL: + case POLISHED_DEEPSLATE: + case POLISHED_DEEPSLATE_SLAB: + case POLISHED_DEEPSLATE_STAIRS: + case POLISHED_DEEPSLATE_WALL: case POLISHED_DIORITE: case POLISHED_DIORITE_SLAB: case POLISHED_DIORITE_STAIRS: @@ -4208,6 +4712,7 @@ public enum Material implements Keyed { case POTATOES: case POTTED_ACACIA_SAPLING: case POTTED_ALLIUM: + case POTTED_AZALEA_BUSH: case POTTED_AZURE_BLUET: case POTTED_BAMBOO: case POTTED_BIRCH_SAPLING: @@ -4221,6 +4726,7 @@ public enum Material implements Keyed { case POTTED_DARK_OAK_SAPLING: case POTTED_DEAD_BUSH: case POTTED_FERN: + case POTTED_FLOWERING_AZALEA_BUSH: case POTTED_JUNGLE_SAPLING: case POTTED_LILY_OF_THE_VALLEY: case POTTED_OAK_SAPLING: @@ -4235,6 +4741,8 @@ public enum Material implements Keyed { case POTTED_WARPED_ROOTS: case POTTED_WHITE_TULIP: case POTTED_WITHER_ROSE: + case POWDER_SNOW: + case POWDER_SNOW_CAULDRON: case POWERED_RAIL: case PRISMARINE: case PRISMARINE_BRICKS: @@ -4247,6 +4755,8 @@ public enum Material implements Keyed { case PUMPKIN_STEM: case PURPLE_BANNER: case PURPLE_BED: + case PURPLE_CANDLE: + case PURPLE_CANDLE_CAKE: case PURPLE_CARPET: case PURPLE_CONCRETE: case PURPLE_CONCRETE_POWDER: @@ -4267,6 +4777,9 @@ public enum Material implements Keyed { case QUARTZ_SLAB: case QUARTZ_STAIRS: case RAIL: + case RAW_COPPER_BLOCK: + case RAW_GOLD_BLOCK: + case RAW_IRON_BLOCK: case REDSTONE_BLOCK: case REDSTONE_LAMP: case REDSTONE_ORE: @@ -4275,6 +4788,8 @@ public enum Material implements Keyed { case REDSTONE_WIRE: case RED_BANNER: case RED_BED: + case RED_CANDLE: + case RED_CANDLE_CAKE: case RED_CARPET: case RED_CONCRETE: case RED_CONCRETE_POWDER: @@ -4300,6 +4815,7 @@ public enum Material implements Keyed { case REPEATER: case REPEATING_COMMAND_BLOCK: case RESPAWN_ANCHOR: + case ROOTED_DIRT: case ROSE_BUSH: case SAND: case SANDSTONE: @@ -4307,6 +4823,7 @@ public enum Material implements Keyed { case SANDSTONE_STAIRS: case SANDSTONE_WALL: case SCAFFOLDING: + case SCULK_SENSOR: case SEAGRASS: case SEA_LANTERN: case SEA_PICKLE: @@ -4315,8 +4832,11 @@ public enum Material implements Keyed { case SKELETON_SKULL: case SKELETON_WALL_SKULL: case SLIME_BLOCK: + case SMALL_AMETHYST_BUD: + case SMALL_DRIPLEAF: case SMITHING_TABLE: case SMOKER: + case SMOOTH_BASALT: case SMOOTH_QUARTZ: case SMOOTH_QUARTZ_SLAB: case SMOOTH_QUARTZ_STAIRS: @@ -4339,6 +4859,7 @@ public enum Material implements Keyed { case SOUL_WALL_TORCH: case SPAWNER: case SPONGE: + case SPORE_BLOSSOM: case SPRUCE_BUTTON: case SPRUCE_DOOR: case SPRUCE_FENCE: @@ -4390,6 +4911,7 @@ public enum Material implements Keyed { case TALL_SEAGRASS: case TARGET: case TERRACOTTA: + case TINTED_GLASS: case TNT: case TORCH: case TRAPPED_CHEST: @@ -4399,6 +4921,7 @@ public enum Material implements Keyed { case TUBE_CORAL_BLOCK: case TUBE_CORAL_FAN: case TUBE_CORAL_WALL_FAN: + case TUFF: case TURTLE_EGG: case TWISTING_VINES: case TWISTING_VINES_PLANT: @@ -4423,12 +4946,35 @@ public enum Material implements Keyed { case WARPED_WALL_SIGN: case WARPED_WART_BLOCK: case WATER: + case WATER_CAULDRON: + case WAXED_COPPER_BLOCK: + case WAXED_CUT_COPPER: + case WAXED_CUT_COPPER_SLAB: + case WAXED_CUT_COPPER_STAIRS: + case WAXED_EXPOSED_COPPER: + case WAXED_EXPOSED_CUT_COPPER: + case WAXED_EXPOSED_CUT_COPPER_SLAB: + case WAXED_EXPOSED_CUT_COPPER_STAIRS: + case WAXED_OXIDIZED_COPPER: + case WAXED_OXIDIZED_CUT_COPPER: + case WAXED_OXIDIZED_CUT_COPPER_SLAB: + case WAXED_OXIDIZED_CUT_COPPER_STAIRS: + case WAXED_WEATHERED_COPPER: + case WAXED_WEATHERED_CUT_COPPER: + case WAXED_WEATHERED_CUT_COPPER_SLAB: + case WAXED_WEATHERED_CUT_COPPER_STAIRS: + case WEATHERED_COPPER: + case WEATHERED_CUT_COPPER: + case WEATHERED_CUT_COPPER_SLAB: + case WEATHERED_CUT_COPPER_STAIRS: case WEEPING_VINES: case WEEPING_VINES_PLANT: case WET_SPONGE: case WHEAT: case WHITE_BANNER: case WHITE_BED: + case WHITE_CANDLE: + case WHITE_CANDLE_CAKE: case WHITE_CARPET: case WHITE_CONCRETE: case WHITE_CONCRETE_POWDER: @@ -4445,6 +4991,8 @@ public enum Material implements Keyed { case WITHER_SKELETON_WALL_SKULL: case YELLOW_BANNER: case YELLOW_BED: + case YELLOW_CANDLE: + case YELLOW_CANDLE_CAKE: case YELLOW_CARPET: case YELLOW_CONCRETE: case YELLOW_CONCRETE_POWDER: @@ -4492,6 +5040,7 @@ public enum Material implements Keyed { case COOKIE: case DRIED_KELP: case ENCHANTED_GOLDEN_APPLE: + case GLOW_BERRIES: case GOLDEN_APPLE: case GOLDEN_CARROT: case HONEY_BOTTLE: @@ -4690,12 +5239,15 @@ public enum Material implements Keyed { case ACACIA_TRAPDOOR: case ACACIA_WALL_SIGN: case ACACIA_WOOD: + case AMETHYST_BLOCK: + case AMETHYST_CLUSTER: case ANCIENT_DEBRIS: case ANDESITE: case ANDESITE_SLAB: case ANDESITE_STAIRS: case ANDESITE_WALL: case ANVIL: + case AZALEA_LEAVES: case BAMBOO: case BARREL: case BARRIER: @@ -4724,6 +5276,7 @@ public enum Material implements Keyed { case BLACKSTONE_WALL: case BLACK_BANNER: case BLACK_BED: + case BLACK_CANDLE_CAKE: case BLACK_CONCRETE: case BLACK_CONCRETE_POWDER: case BLACK_GLAZED_TERRACOTTA: @@ -4736,6 +5289,7 @@ public enum Material implements Keyed { case BLAST_FURNACE: case BLUE_BANNER: case BLUE_BED: + case BLUE_CANDLE_CAKE: case BLUE_CONCRETE: case BLUE_CONCRETE_POWDER: case BLUE_GLAZED_TERRACOTTA: @@ -4756,6 +5310,7 @@ public enum Material implements Keyed { case BRICK_WALL: case BROWN_BANNER: case BROWN_BED: + case BROWN_CANDLE_CAKE: case BROWN_CONCRETE: case BROWN_CONCRETE_POWDER: case BROWN_GLAZED_TERRACOTTA: @@ -4767,9 +5322,12 @@ public enum Material implements Keyed { case BROWN_WALL_BANNER: case BROWN_WOOL: case BUBBLE_CORAL_BLOCK: + case BUDDING_AMETHYST: case CACTUS: case CAKE: + case CALCITE: case CAMPFIRE: + case CANDLE_CAKE: case CARTOGRAPHY_TABLE: case CARVED_PUMPKIN: case CAULDRON: @@ -4777,6 +5335,7 @@ public enum Material implements Keyed { case CHAIN_COMMAND_BLOCK: case CHEST: case CHIPPED_ANVIL: + case CHISELED_DEEPSLATE: case CHISELED_NETHER_BRICKS: case CHISELED_POLISHED_BLACKSTONE: case CHISELED_QUARTZ_BLOCK: @@ -4787,6 +5346,10 @@ public enum Material implements Keyed { case COAL_BLOCK: case COAL_ORE: case COARSE_DIRT: + case COBBLED_DEEPSLATE: + case COBBLED_DEEPSLATE_SLAB: + case COBBLED_DEEPSLATE_STAIRS: + case COBBLED_DEEPSLATE_WALL: case COBBLESTONE: case COBBLESTONE_SLAB: case COBBLESTONE_STAIRS: @@ -4794,6 +5357,10 @@ public enum Material implements Keyed { case COMMAND_BLOCK: case COMPOSTER: case CONDUIT: + case COPPER_BLOCK: + case COPPER_ORE: + case CRACKED_DEEPSLATE_BRICKS: + case CRACKED_DEEPSLATE_TILES: case CRACKED_NETHER_BRICKS: case CRACKED_POLISHED_BLACKSTONE_BRICKS: case CRACKED_STONE_BRICKS: @@ -4812,12 +5379,16 @@ public enum Material implements Keyed { case CRIMSON_TRAPDOOR: case CRIMSON_WALL_SIGN: case CRYING_OBSIDIAN: + case CUT_COPPER: + case CUT_COPPER_SLAB: + case CUT_COPPER_STAIRS: case CUT_RED_SANDSTONE: case CUT_RED_SANDSTONE_SLAB: case CUT_SANDSTONE: case CUT_SANDSTONE_SLAB: case CYAN_BANNER: case CYAN_BED: + case CYAN_CANDLE_CAKE: case CYAN_CONCRETE: case CYAN_CONCRETE_POWDER: case CYAN_GLAZED_TERRACOTTA: @@ -4865,6 +5436,23 @@ public enum Material implements Keyed { case DEAD_TUBE_CORAL_BLOCK: case DEAD_TUBE_CORAL_FAN: case DEAD_TUBE_CORAL_WALL_FAN: + case DEEPSLATE: + case DEEPSLATE_BRICKS: + case DEEPSLATE_BRICK_SLAB: + case DEEPSLATE_BRICK_STAIRS: + case DEEPSLATE_BRICK_WALL: + case DEEPSLATE_COAL_ORE: + case DEEPSLATE_COPPER_ORE: + case DEEPSLATE_DIAMOND_ORE: + case DEEPSLATE_EMERALD_ORE: + case DEEPSLATE_GOLD_ORE: + case DEEPSLATE_IRON_ORE: + case DEEPSLATE_LAPIS_ORE: + case DEEPSLATE_REDSTONE_ORE: + case DEEPSLATE_TILES: + case DEEPSLATE_TILE_SLAB: + case DEEPSLATE_TILE_STAIRS: + case DEEPSLATE_TILE_WALL: case DIAMOND_BLOCK: case DIAMOND_ORE: case DIORITE: @@ -4872,9 +5460,11 @@ public enum Material implements Keyed { case DIORITE_STAIRS: case DIORITE_WALL: case DIRT: + case DIRT_PATH: case DISPENSER: case DRAGON_EGG: case DRIED_KELP_BLOCK: + case DRIPSTONE_BLOCK: case DROPPER: case EMERALD_BLOCK: case EMERALD_ORE: @@ -4886,9 +5476,14 @@ public enum Material implements Keyed { case END_STONE_BRICK_SLAB: case END_STONE_BRICK_STAIRS: case END_STONE_BRICK_WALL: + case EXPOSED_COPPER: + case EXPOSED_CUT_COPPER: + case EXPOSED_CUT_COPPER_SLAB: + case EXPOSED_CUT_COPPER_STAIRS: case FARMLAND: case FIRE_CORAL_BLOCK: case FLETCHING_TABLE: + case FLOWERING_AZALEA_LEAVES: case FROSTED_ICE: case FURNACE: case GILDED_BLACKSTONE: @@ -4902,10 +5497,10 @@ public enum Material implements Keyed { case GRANITE_STAIRS: case GRANITE_WALL: case GRASS_BLOCK: - case GRASS_PATH: case GRAVEL: case GRAY_BANNER: case GRAY_BED: + case GRAY_CANDLE_CAKE: case GRAY_CONCRETE: case GRAY_CONCRETE_POWDER: case GRAY_GLAZED_TERRACOTTA: @@ -4917,6 +5512,7 @@ public enum Material implements Keyed { case GRAY_WOOL: case GREEN_BANNER: case GREEN_BED: + case GREEN_CANDLE_CAKE: case GREEN_CONCRETE: case GREEN_CONCRETE_POWDER: case GREEN_GLAZED_TERRACOTTA: @@ -4937,6 +5533,7 @@ public enum Material implements Keyed { case INFESTED_CHISELED_STONE_BRICKS: case INFESTED_COBBLESTONE: case INFESTED_CRACKED_STONE_BRICKS: + case INFESTED_DEEPSLATE: case INFESTED_MOSSY_STONE_BRICKS: case INFESTED_STONE: case INFESTED_STONE_BRICKS: @@ -4964,9 +5561,13 @@ public enum Material implements Keyed { case LANTERN: case LAPIS_BLOCK: case LAPIS_ORE: + case LARGE_AMETHYST_BUD: + case LAVA_CAULDRON: case LECTERN: + case LIGHTNING_ROD: case LIGHT_BLUE_BANNER: case LIGHT_BLUE_BED: + case LIGHT_BLUE_CANDLE_CAKE: case LIGHT_BLUE_CONCRETE: case LIGHT_BLUE_CONCRETE_POWDER: case LIGHT_BLUE_GLAZED_TERRACOTTA: @@ -4978,6 +5579,7 @@ public enum Material implements Keyed { case LIGHT_BLUE_WOOL: case LIGHT_GRAY_BANNER: case LIGHT_GRAY_BED: + case LIGHT_GRAY_CANDLE_CAKE: case LIGHT_GRAY_CONCRETE: case LIGHT_GRAY_CONCRETE_POWDER: case LIGHT_GRAY_GLAZED_TERRACOTTA: @@ -4990,6 +5592,7 @@ public enum Material implements Keyed { case LIGHT_WEIGHTED_PRESSURE_PLATE: case LIME_BANNER: case LIME_BED: + case LIME_CANDLE_CAKE: case LIME_CONCRETE: case LIME_CONCRETE_POWDER: case LIME_GLAZED_TERRACOTTA: @@ -5003,6 +5606,7 @@ public enum Material implements Keyed { case LOOM: case MAGENTA_BANNER: case MAGENTA_BED: + case MAGENTA_CANDLE_CAKE: case MAGENTA_CONCRETE: case MAGENTA_CONCRETE_POWDER: case MAGENTA_GLAZED_TERRACOTTA: @@ -5013,6 +5617,7 @@ public enum Material implements Keyed { case MAGENTA_WALL_BANNER: case MAGENTA_WOOL: case MAGMA_BLOCK: + case MEDIUM_AMETHYST_BUD: case MELON: case MOSSY_COBBLESTONE: case MOSSY_COBBLESTONE_SLAB: @@ -5022,6 +5627,7 @@ public enum Material implements Keyed { case MOSSY_STONE_BRICK_SLAB: case MOSSY_STONE_BRICK_STAIRS: case MOSSY_STONE_BRICK_WALL: + case MOSS_BLOCK: case MOVING_PISTON: case MUSHROOM_STEM: case MYCELIUM: @@ -5053,6 +5659,7 @@ public enum Material implements Keyed { case OBSIDIAN: case ORANGE_BANNER: case ORANGE_BED: + case ORANGE_CANDLE_CAKE: case ORANGE_CONCRETE: case ORANGE_CONCRETE_POWDER: case ORANGE_GLAZED_TERRACOTTA: @@ -5062,10 +5669,15 @@ public enum Material implements Keyed { case ORANGE_TERRACOTTA: case ORANGE_WALL_BANNER: case ORANGE_WOOL: + case OXIDIZED_COPPER: + case OXIDIZED_CUT_COPPER: + case OXIDIZED_CUT_COPPER_SLAB: + case OXIDIZED_CUT_COPPER_STAIRS: case PACKED_ICE: case PETRIFIED_OAK_SLAB: case PINK_BANNER: case PINK_BED: + case PINK_CANDLE_CAKE: case PINK_CONCRETE: case PINK_CONCRETE_POWDER: case PINK_GLAZED_TERRACOTTA: @@ -5078,6 +5690,7 @@ public enum Material implements Keyed { case PISTON: case PISTON_HEAD: case PODZOL: + case POINTED_DRIPSTONE: case POLISHED_ANDESITE: case POLISHED_ANDESITE_SLAB: case POLISHED_ANDESITE_STAIRS: @@ -5091,12 +5704,17 @@ public enum Material implements Keyed { case POLISHED_BLACKSTONE_SLAB: case POLISHED_BLACKSTONE_STAIRS: case POLISHED_BLACKSTONE_WALL: + case POLISHED_DEEPSLATE: + case POLISHED_DEEPSLATE_SLAB: + case POLISHED_DEEPSLATE_STAIRS: + case POLISHED_DEEPSLATE_WALL: case POLISHED_DIORITE: case POLISHED_DIORITE_SLAB: case POLISHED_DIORITE_STAIRS: case POLISHED_GRANITE: case POLISHED_GRANITE_SLAB: case POLISHED_GRANITE_STAIRS: + case POWDER_SNOW_CAULDRON: case PRISMARINE: case PRISMARINE_BRICKS: case PRISMARINE_BRICK_SLAB: @@ -5107,6 +5725,7 @@ public enum Material implements Keyed { case PUMPKIN: case PURPLE_BANNER: case PURPLE_BED: + case PURPLE_CANDLE_CAKE: case PURPLE_CONCRETE: case PURPLE_CONCRETE_POWDER: case PURPLE_GLAZED_TERRACOTTA: @@ -5125,11 +5744,15 @@ public enum Material implements Keyed { case QUARTZ_PILLAR: case QUARTZ_SLAB: case QUARTZ_STAIRS: + case RAW_COPPER_BLOCK: + case RAW_GOLD_BLOCK: + case RAW_IRON_BLOCK: case REDSTONE_BLOCK: case REDSTONE_LAMP: case REDSTONE_ORE: case RED_BANNER: case RED_BED: + case RED_CANDLE_CAKE: case RED_CONCRETE: case RED_CONCRETE_POWDER: case RED_GLAZED_TERRACOTTA: @@ -5151,17 +5774,21 @@ public enum Material implements Keyed { case RED_WOOL: case REPEATING_COMMAND_BLOCK: case RESPAWN_ANCHOR: + case ROOTED_DIRT: case SAND: case SANDSTONE: case SANDSTONE_SLAB: case SANDSTONE_STAIRS: case SANDSTONE_WALL: + case SCULK_SENSOR: case SEA_LANTERN: case SHROOMLIGHT: case SHULKER_BOX: case SLIME_BLOCK: + case SMALL_AMETHYST_BUD: case SMITHING_TABLE: case SMOKER: + case SMOOTH_BASALT: case SMOOTH_QUARTZ: case SMOOTH_QUARTZ_SLAB: case SMOOTH_QUARTZ_STAIRS: @@ -5222,9 +5849,11 @@ public enum Material implements Keyed { case STRUCTURE_BLOCK: case TARGET: case TERRACOTTA: + case TINTED_GLASS: case TNT: case TRAPPED_CHEST: case TUBE_CORAL_BLOCK: + case TUFF: case TURTLE_EGG: case WARPED_DOOR: case WARPED_FENCE: @@ -5240,9 +5869,31 @@ public enum Material implements Keyed { case WARPED_TRAPDOOR: case WARPED_WALL_SIGN: case WARPED_WART_BLOCK: + case WATER_CAULDRON: + case WAXED_COPPER_BLOCK: + case WAXED_CUT_COPPER: + case WAXED_CUT_COPPER_SLAB: + case WAXED_CUT_COPPER_STAIRS: + case WAXED_EXPOSED_COPPER: + case WAXED_EXPOSED_CUT_COPPER: + case WAXED_EXPOSED_CUT_COPPER_SLAB: + case WAXED_EXPOSED_CUT_COPPER_STAIRS: + case WAXED_OXIDIZED_COPPER: + case WAXED_OXIDIZED_CUT_COPPER: + case WAXED_OXIDIZED_CUT_COPPER_SLAB: + case WAXED_OXIDIZED_CUT_COPPER_STAIRS: + case WAXED_WEATHERED_COPPER: + case WAXED_WEATHERED_CUT_COPPER: + case WAXED_WEATHERED_CUT_COPPER_SLAB: + case WAXED_WEATHERED_CUT_COPPER_STAIRS: + case WEATHERED_COPPER: + case WEATHERED_CUT_COPPER: + case WEATHERED_CUT_COPPER_SLAB: + case WEATHERED_CUT_COPPER_STAIRS: case WET_SPONGE: case WHITE_BANNER: case WHITE_BED: + case WHITE_CANDLE_CAKE: case WHITE_CONCRETE: case WHITE_CONCRETE_POWDER: case WHITE_GLAZED_TERRACOTTA: @@ -5254,6 +5905,7 @@ public enum Material implements Keyed { case WHITE_WOOL: case YELLOW_BANNER: case YELLOW_BED: + case YELLOW_CANDLE_CAKE: case YELLOW_CONCRETE: case YELLOW_CONCRETE_POWDER: case YELLOW_GLAZED_TERRACOTTA: @@ -5574,6 +6226,7 @@ public enum Material implements Keyed { case POTATOES: case POTTED_ACACIA_SAPLING: case POTTED_ALLIUM: + case POTTED_AZALEA_BUSH: case POTTED_AZURE_BLUET: case POTTED_BIRCH_SAPLING: case POTTED_BLUE_ORCHID: @@ -5583,6 +6236,7 @@ public enum Material implements Keyed { case POTTED_DARK_OAK_SAPLING: case POTTED_DEAD_BUSH: case POTTED_FERN: + case POTTED_FLOWERING_AZALEA_BUSH: case POTTED_JUNGLE_SAPLING: case POTTED_OAK_SAPLING: case POTTED_ORANGE_TULIP: @@ -5711,6 +6365,7 @@ public enum Material implements Keyed { case ACACIA_TRAPDOOR: case ACACIA_WALL_SIGN: case ACACIA_WOOD: + case AZALEA_LEAVES: case BAMBOO: case BAMBOO_SAPLING: case BARREL: @@ -5773,6 +6428,8 @@ public enum Material implements Keyed { case DEAD_BUSH: case FERN: case FLETCHING_TABLE: + case FLOWERING_AZALEA_LEAVES: + case GLOW_LICHEN: case GRASS: case GRAY_BANNER: case GRAY_BED: @@ -5784,6 +6441,7 @@ public enum Material implements Keyed { case GREEN_CARPET: case GREEN_WALL_BANNER: case GREEN_WOOL: + case HANGING_ROOTS: case JUKEBOX: case JUNGLE_DOOR: case JUNGLE_FENCE: @@ -5985,10 +6643,14 @@ public enum Material implements Keyed { case ACACIA_STAIRS: case ACACIA_WOOD: case ALLIUM: + case AZALEA: + case AZALEA_LEAVES: case AZURE_BLUET: case BAMBOO: case BEEHIVE: case BEE_NEST: + case BIG_DRIPLEAF: + case BIG_DRIPLEAF_STEM: case BIRCH_FENCE: case BIRCH_FENCE_GATE: case BIRCH_LEAVES: @@ -6005,6 +6667,8 @@ public enum Material implements Keyed { case BOOKSHELF: case BROWN_CARPET: case BROWN_WOOL: + case CAVE_VINES: + case CAVE_VINES_PLANT: case COAL_BLOCK: case COMPOSTER: case CORNFLOWER: @@ -6022,11 +6686,15 @@ public enum Material implements Keyed { case DEAD_BUSH: case DRIED_KELP_BLOCK: case FERN: + case FLOWERING_AZALEA: + case FLOWERING_AZALEA_LEAVES: + case GLOW_LICHEN: case GRASS: case GRAY_CARPET: case GRAY_WOOL: case GREEN_CARPET: case GREEN_WOOL: + case HANGING_ROOTS: case HAY_BLOCK: case JUNGLE_FENCE: case JUNGLE_FENCE_GATE: @@ -6072,6 +6740,8 @@ public enum Material implements Keyed { case RED_WOOL: case ROSE_BUSH: case SCAFFOLDING: + case SMALL_DRIPLEAF: + case SPORE_BLOSSOM: case SPRUCE_FENCE: case SPRUCE_FENCE_GATE: case SPRUCE_LEAVES: @@ -6171,6 +6841,7 @@ public enum Material implements Keyed { case ACACIA_STAIRS: case ACACIA_TRAPDOOR: case ACACIA_WOOD: + case AZALEA: case BAMBOO: case BARREL: case BIRCH_BOAT: @@ -6230,6 +6901,7 @@ public enum Material implements Keyed { case DRIED_KELP_BLOCK: case FISHING_ROD: case FLETCHING_TABLE: + case FLOWERING_AZALEA: case GRAY_BANNER: case GRAY_CARPET: case GRAY_WOOL: @@ -6420,6 +7092,7 @@ public enum Material implements Keyed { case ACACIA_LOG: case ACACIA_PLANKS: case ACACIA_WOOD: + case AMETHYST_BLOCK: case ANCIENT_DEBRIS: case ANDESITE: case BARREL: @@ -6458,9 +7131,12 @@ public enum Material implements Keyed { case BROWN_TERRACOTTA: case BROWN_WOOL: case BUBBLE_CORAL_BLOCK: + case BUDDING_AMETHYST: + case CALCITE: case CARTOGRAPHY_TABLE: case CARVED_PUMPKIN: case CHAIN_COMMAND_BLOCK: + case CHISELED_DEEPSLATE: case CHISELED_NETHER_BRICKS: case CHISELED_POLISHED_BLACKSTONE: case CHISELED_QUARTZ_BLOCK: @@ -6471,8 +7147,13 @@ public enum Material implements Keyed { case COAL_BLOCK: case COAL_ORE: case COARSE_DIRT: + case COBBLED_DEEPSLATE: case COBBLESTONE: case COMMAND_BLOCK: + case COPPER_BLOCK: + case COPPER_ORE: + case CRACKED_DEEPSLATE_BRICKS: + case CRACKED_DEEPSLATE_TILES: case CRACKED_NETHER_BRICKS: case CRACKED_POLISHED_BLACKSTONE_BRICKS: case CRACKED_STONE_BRICKS: @@ -6482,6 +7163,7 @@ public enum Material implements Keyed { case CRIMSON_PLANKS: case CRIMSON_STEM: case CRYING_OBSIDIAN: + case CUT_COPPER: case CUT_RED_SANDSTONE: case CUT_SANDSTONE: case CYAN_CONCRETE: @@ -6499,17 +7181,31 @@ public enum Material implements Keyed { case DEAD_FIRE_CORAL_BLOCK: case DEAD_HORN_CORAL_BLOCK: case DEAD_TUBE_CORAL_BLOCK: + case DEEPSLATE: + case DEEPSLATE_BRICKS: + case DEEPSLATE_COAL_ORE: + case DEEPSLATE_COPPER_ORE: + case DEEPSLATE_DIAMOND_ORE: + case DEEPSLATE_EMERALD_ORE: + case DEEPSLATE_GOLD_ORE: + case DEEPSLATE_IRON_ORE: + case DEEPSLATE_LAPIS_ORE: + case DEEPSLATE_REDSTONE_ORE: + case DEEPSLATE_TILES: case DIAMOND_BLOCK: case DIAMOND_ORE: case DIORITE: case DIRT: case DISPENSER: case DRIED_KELP_BLOCK: + case DRIPSTONE_BLOCK: case DROPPER: case EMERALD_BLOCK: case EMERALD_ORE: case END_STONE: case END_STONE_BRICKS: + case EXPOSED_COPPER: + case EXPOSED_CUT_COPPER: case FIRE_CORAL_BLOCK: case FLETCHING_TABLE: case FURNACE: @@ -6537,6 +7233,7 @@ public enum Material implements Keyed { case INFESTED_CHISELED_STONE_BRICKS: case INFESTED_COBBLESTONE: case INFESTED_CRACKED_STONE_BRICKS: + case INFESTED_DEEPSLATE: case INFESTED_MOSSY_STONE_BRICKS: case INFESTED_STONE: case INFESTED_STONE_BRICKS: @@ -6580,6 +7277,7 @@ public enum Material implements Keyed { case MELON: case MOSSY_COBBLESTONE: case MOSSY_STONE_BRICKS: + case MOSS_BLOCK: case MUSHROOM_STEM: case MYCELIUM: case NETHERITE_BLOCK: @@ -6599,6 +7297,8 @@ public enum Material implements Keyed { case ORANGE_SHULKER_BOX: case ORANGE_TERRACOTTA: case ORANGE_WOOL: + case OXIDIZED_COPPER: + case OXIDIZED_CUT_COPPER: case PACKED_ICE: case PINK_CONCRETE: case PINK_CONCRETE_POWDER: @@ -6611,6 +7311,7 @@ public enum Material implements Keyed { case POLISHED_BASALT: case POLISHED_BLACKSTONE: case POLISHED_BLACKSTONE_BRICKS: + case POLISHED_DEEPSLATE: case POLISHED_DIORITE: case POLISHED_GRANITE: case PRISMARINE: @@ -6627,6 +7328,9 @@ public enum Material implements Keyed { case QUARTZ_BLOCK: case QUARTZ_BRICKS: case QUARTZ_PILLAR: + case RAW_COPPER_BLOCK: + case RAW_GOLD_BLOCK: + case RAW_IRON_BLOCK: case REDSTONE_LAMP: case REDSTONE_ORE: case RED_CONCRETE: @@ -6641,6 +7345,7 @@ public enum Material implements Keyed { case RED_WOOL: case REPEATING_COMMAND_BLOCK: case RESPAWN_ANCHOR: + case ROOTED_DIRT: case SAND: case SANDSTONE: case SHROOMLIGHT: @@ -6648,6 +7353,7 @@ public enum Material implements Keyed { case SLIME_BLOCK: case SMITHING_TABLE: case SMOKER: + case SMOOTH_BASALT: case SMOOTH_QUARTZ: case SMOOTH_RED_SANDSTONE: case SMOOTH_SANDSTONE: @@ -6682,11 +7388,22 @@ public enum Material implements Keyed { case TARGET: case TERRACOTTA: case TUBE_CORAL_BLOCK: + case TUFF: case WARPED_HYPHAE: case WARPED_NYLIUM: case WARPED_PLANKS: case WARPED_STEM: case WARPED_WART_BLOCK: + case WAXED_COPPER_BLOCK: + case WAXED_CUT_COPPER: + case WAXED_EXPOSED_COPPER: + case WAXED_EXPOSED_CUT_COPPER: + case WAXED_OXIDIZED_COPPER: + case WAXED_OXIDIZED_CUT_COPPER: + case WAXED_WEATHERED_COPPER: + case WAXED_WEATHERED_CUT_COPPER: + case WEATHERED_COPPER: + case WEATHERED_CUT_COPPER: case WET_SPONGE: case WHITE_CONCRETE: case WHITE_CONCRETE_POWDER: @@ -6863,18 +7580,26 @@ public enum Material implements Keyed { case ATTACHED_PUMPKIN_STEM: case BAMBOO_SAPLING: case BEETROOTS: + case BIG_DRIPLEAF_STEM: case BIRCH_WALL_SIGN: + case BLACK_CANDLE_CAKE: case BLACK_WALL_BANNER: + case BLUE_CANDLE_CAKE: case BLUE_WALL_BANNER: case BRAIN_CORAL_WALL_FAN: + case BROWN_CANDLE_CAKE: case BROWN_WALL_BANNER: case BUBBLE_COLUMN: case BUBBLE_CORAL_WALL_FAN: + case CANDLE_CAKE: case CARROTS: case CAVE_AIR: + case CAVE_VINES: + case CAVE_VINES_PLANT: case COCOA: case CREEPER_WALL_HEAD: case CRIMSON_WALL_SIGN: + case CYAN_CANDLE_CAKE: case CYAN_WALL_BANNER: case DARK_OAK_WALL_SIGN: case DEAD_BRAIN_CORAL_WALL_FAN: @@ -6888,27 +7613,37 @@ public enum Material implements Keyed { case FIRE: case FIRE_CORAL_WALL_FAN: case FROSTED_ICE: + case GRAY_CANDLE_CAKE: case GRAY_WALL_BANNER: + case GREEN_CANDLE_CAKE: case GREEN_WALL_BANNER: case HORN_CORAL_WALL_FAN: case JUNGLE_WALL_SIGN: case KELP_PLANT: case LAVA: + case LAVA_CAULDRON: + case LIGHT_BLUE_CANDLE_CAKE: case LIGHT_BLUE_WALL_BANNER: + case LIGHT_GRAY_CANDLE_CAKE: case LIGHT_GRAY_WALL_BANNER: + case LIME_CANDLE_CAKE: case LIME_WALL_BANNER: + case MAGENTA_CANDLE_CAKE: case MAGENTA_WALL_BANNER: case MELON_STEM: case MOVING_PISTON: case NETHER_PORTAL: case OAK_WALL_SIGN: + case ORANGE_CANDLE_CAKE: case ORANGE_WALL_BANNER: + case PINK_CANDLE_CAKE: case PINK_WALL_BANNER: case PISTON_HEAD: case PLAYER_WALL_HEAD: case POTATOES: case POTTED_ACACIA_SAPLING: case POTTED_ALLIUM: + case POTTED_AZALEA_BUSH: case POTTED_AZURE_BLUET: case POTTED_BAMBOO: case POTTED_BIRCH_SAPLING: @@ -6922,6 +7657,7 @@ public enum Material implements Keyed { case POTTED_DARK_OAK_SAPLING: case POTTED_DEAD_BUSH: case POTTED_FERN: + case POTTED_FLOWERING_AZALEA_BUSH: case POTTED_JUNGLE_SAPLING: case POTTED_LILY_OF_THE_VALLEY: case POTTED_OAK_SAPLING: @@ -6936,10 +7672,14 @@ public enum Material implements Keyed { case POTTED_WARPED_ROOTS: case POTTED_WHITE_TULIP: case POTTED_WITHER_ROSE: + case POWDER_SNOW: + case POWDER_SNOW_CAULDRON: case PUMPKIN_STEM: + case PURPLE_CANDLE_CAKE: case PURPLE_WALL_BANNER: case REDSTONE_WALL_TORCH: case REDSTONE_WIRE: + case RED_CANDLE_CAKE: case RED_WALL_BANNER: case SKELETON_WALL_SKULL: case SOUL_FIRE: @@ -6954,9 +7694,12 @@ public enum Material implements Keyed { case WALL_TORCH: case WARPED_WALL_SIGN: case WATER: + case WATER_CAULDRON: case WEEPING_VINES_PLANT: + case WHITE_CANDLE_CAKE: case WHITE_WALL_BANNER: case WITHER_SKELETON_WALL_SKULL: + case YELLOW_CANDLE_CAKE: case YELLOW_WALL_BANNER: case ZOMBIE_WALL_HEAD: // ----- Legacy Separator ----- @@ -7063,21 +7806,32 @@ public enum Material implements Keyed { case BIRCH_WALL_SIGN: case BLACKSTONE_STAIRS: case BLACK_BED: + case BLACK_CANDLE: + case BLACK_CANDLE_CAKE: case BLACK_SHULKER_BOX: case BLAST_FURNACE: case BLUE_BED: + case BLUE_CANDLE: + case BLUE_CANDLE_CAKE: case BLUE_SHULKER_BOX: case BREWING_STAND: case BRICK_STAIRS: case BROWN_BED: + case BROWN_CANDLE: + case BROWN_CANDLE_CAKE: case BROWN_SHULKER_BOX: case CAKE: case CAMPFIRE: + case CANDLE: + case CANDLE_CAKE: case CARTOGRAPHY_TABLE: case CAULDRON: + case CAVE_VINES: + case CAVE_VINES_PLANT: case CHAIN_COMMAND_BLOCK: case CHEST: case CHIPPED_ANVIL: + case COBBLED_DEEPSLATE_STAIRS: case COBBLESTONE_STAIRS: case COMMAND_BLOCK: case COMPARATOR: @@ -7091,7 +7845,10 @@ public enum Material implements Keyed { case CRIMSON_STAIRS: case CRIMSON_TRAPDOOR: case CRIMSON_WALL_SIGN: + case CUT_COPPER_STAIRS: case CYAN_BED: + case CYAN_CANDLE: + case CYAN_CANDLE_CAKE: case CYAN_SHULKER_BOX: case DAMAGED_ANVIL: case DARK_OAK_BUTTON: @@ -7104,6 +7861,9 @@ public enum Material implements Keyed { case DARK_OAK_WALL_SIGN: case DARK_PRISMARINE_STAIRS: case DAYLIGHT_DETECTOR: + case DEEPSLATE_BRICK_STAIRS: + case DEEPSLATE_REDSTONE_ORE: + case DEEPSLATE_TILE_STAIRS: case DIORITE_STAIRS: case DISPENSER: case DRAGON_EGG: @@ -7111,13 +7871,18 @@ public enum Material implements Keyed { case ENCHANTING_TABLE: case ENDER_CHEST: case END_STONE_BRICK_STAIRS: + case EXPOSED_CUT_COPPER_STAIRS: case FLETCHING_TABLE: case FLOWER_POT: case FURNACE: case GRANITE_STAIRS: case GRAY_BED: + case GRAY_CANDLE: + case GRAY_CANDLE_CAKE: case GRAY_SHULKER_BOX: case GREEN_BED: + case GREEN_CANDLE: + case GREEN_CANDLE_CAKE: case GREEN_SHULKER_BOX: case GRINDSTONE: case HOPPER: @@ -7133,16 +7898,26 @@ public enum Material implements Keyed { case JUNGLE_STAIRS: case JUNGLE_TRAPDOOR: case JUNGLE_WALL_SIGN: + case LAVA_CAULDRON: case LECTERN: case LEVER: + case LIGHT: case LIGHT_BLUE_BED: + case LIGHT_BLUE_CANDLE: + case LIGHT_BLUE_CANDLE_CAKE: case LIGHT_BLUE_SHULKER_BOX: case LIGHT_GRAY_BED: + case LIGHT_GRAY_CANDLE: + case LIGHT_GRAY_CANDLE_CAKE: case LIGHT_GRAY_SHULKER_BOX: case LIME_BED: + case LIME_CANDLE: + case LIME_CANDLE_CAKE: case LIME_SHULKER_BOX: case LOOM: case MAGENTA_BED: + case MAGENTA_CANDLE: + case MAGENTA_CANDLE_CAKE: case MAGENTA_SHULKER_BOX: case MOSSY_COBBLESTONE_STAIRS: case MOSSY_STONE_BRICK_STAIRS: @@ -7159,17 +7934,24 @@ public enum Material implements Keyed { case OAK_TRAPDOOR: case OAK_WALL_SIGN: case ORANGE_BED: + case ORANGE_CANDLE: + case ORANGE_CANDLE_CAKE: case ORANGE_SHULKER_BOX: + case OXIDIZED_CUT_COPPER_STAIRS: 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: case POTTED_AZURE_BLUET: case POTTED_BAMBOO: case POTTED_BIRCH_SAPLING: @@ -7183,6 +7965,7 @@ public enum Material implements Keyed { case POTTED_DARK_OAK_SAPLING: case POTTED_DEAD_BUSH: case POTTED_FERN: + case POTTED_FLOWERING_AZALEA_BUSH: case POTTED_JUNGLE_SAPLING: case POTTED_LILY_OF_THE_VALLEY: case POTTED_OAK_SAPLING: @@ -7197,16 +7980,21 @@ public enum Material implements Keyed { case POTTED_WARPED_ROOTS: 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: @@ -7245,9 +8033,19 @@ public enum Material implements Keyed { case WARPED_STAIRS: case WARPED_TRAPDOOR: 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 WHITE_BED: + case WHITE_CANDLE: + case WHITE_CANDLE_CAKE: case WHITE_SHULKER_BOX: case YELLOW_BED: + case YELLOW_CANDLE: + case YELLOW_CANDLE_CAKE: case YELLOW_SHULKER_BOX: // return true; @@ -7277,30 +8075,53 @@ public enum Material implements Keyed { case END_PORTAL: case END_PORTAL_FRAME: case JIGSAW: + case LIGHT: case MOVING_PISTON: case NETHER_PORTAL: case REPEATING_COMMAND_BLOCK: case STRUCTURE_BLOCK: return -1.0F; + case BIG_DRIPLEAF: + case BIG_DRIPLEAF_STEM: + case BLACK_CANDLE: case BLACK_CARPET: + case BLUE_CANDLE: case BLUE_CARPET: + case BROWN_CANDLE: case BROWN_CARPET: + case CANDLE: + case CYAN_CANDLE: case CYAN_CARPET: + case GRAY_CANDLE: case GRAY_CARPET: + case GREEN_CANDLE: case GREEN_CARPET: + case LIGHT_BLUE_CANDLE: case LIGHT_BLUE_CARPET: + case LIGHT_GRAY_CANDLE: case LIGHT_GRAY_CARPET: + case LIME_CANDLE: case LIME_CARPET: + case MAGENTA_CANDLE: case MAGENTA_CARPET: + case MOSS_BLOCK: + case MOSS_CARPET: + case ORANGE_CANDLE: case ORANGE_CARPET: + case PINK_CANDLE: case PINK_CARPET: + case PURPLE_CANDLE: case PURPLE_CARPET: + case RED_CANDLE: case RED_CARPET: case SNOW: + case WHITE_CANDLE: case WHITE_CARPET: + case YELLOW_CANDLE: case YELLOW_CARPET: return 0.1F; case ACACIA_LEAVES: + case AZALEA_LEAVES: case BIRCH_LEAVES: case BLACK_BED: case BLUE_BED: @@ -7310,6 +8131,8 @@ public enum Material implements Keyed { case CYAN_BED: case DARK_OAK_LEAVES: case DAYLIGHT_DETECTOR: + case FLOWERING_AZALEA_LEAVES: + case GLOW_LICHEN: case GRAY_BED: case GREEN_BED: case JUNGLE_LEAVES: @@ -7330,6 +8153,8 @@ public enum Material implements Keyed { case WHITE_BED: case YELLOW_BED: return 0.2F; + case POWDER_SNOW: + return 0.25F; case BEE_NEST: case BLACK_STAINED_GLASS: case BLACK_STAINED_GLASS_PANE: @@ -7364,6 +8189,7 @@ public enum Material implements Keyed { case RED_STAINED_GLASS: case RED_STAINED_GLASS_PANE: case SEA_LANTERN: + case TINTED_GLASS: case WHITE_STAINED_GLASS: case WHITE_STAINED_GLASS_PANE: case YELLOW_STAINED_GLASS: @@ -7381,21 +8207,28 @@ public enum Material implements Keyed { case ACACIA_PRESSURE_PLATE: case BIRCH_BUTTON: case BIRCH_PRESSURE_PLATE: + case BLACK_CANDLE_CAKE: case BLACK_CONCRETE_POWDER: + case BLUE_CANDLE_CAKE: case BLUE_CONCRETE_POWDER: case BREWING_STAND: + case BROWN_CANDLE_CAKE: case BROWN_CONCRETE_POWDER: case CAKE: + case CANDLE_CAKE: case COARSE_DIRT: case CRIMSON_BUTTON: case CRIMSON_PRESSURE_PLATE: + case CYAN_CANDLE_CAKE: case CYAN_CONCRETE_POWDER: case DARK_OAK_BUTTON: case DARK_OAK_PRESSURE_PLATE: case DIRT: case DRIED_KELP_BLOCK: case FROSTED_ICE: + case GRAY_CANDLE_CAKE: case GRAY_CONCRETE_POWDER: + case GREEN_CANDLE_CAKE: case GREEN_CONCRETE_POWDER: case HAY_BLOCK: case HEAVY_WEIGHTED_PRESSURE_PLATE: @@ -7403,23 +8236,32 @@ public enum Material implements Keyed { case JUNGLE_BUTTON: case JUNGLE_PRESSURE_PLATE: case LEVER: + case LIGHT_BLUE_CANDLE_CAKE: case LIGHT_BLUE_CONCRETE_POWDER: + case LIGHT_GRAY_CANDLE_CAKE: case LIGHT_GRAY_CONCRETE_POWDER: case LIGHT_WEIGHTED_PRESSURE_PLATE: + case LIME_CANDLE_CAKE: case LIME_CONCRETE_POWDER: + case MAGENTA_CANDLE_CAKE: case MAGENTA_CONCRETE_POWDER: case MAGMA_BLOCK: case OAK_BUTTON: case OAK_PRESSURE_PLATE: + case ORANGE_CANDLE_CAKE: case ORANGE_CONCRETE_POWDER: case PACKED_ICE: + case PINK_CANDLE_CAKE: case PINK_CONCRETE_POWDER: case PODZOL: case POLISHED_BLACKSTONE_BUTTON: case POLISHED_BLACKSTONE_PRESSURE_PLATE: + case PURPLE_CANDLE_CAKE: case PURPLE_CONCRETE_POWDER: + case RED_CANDLE_CAKE: case RED_CONCRETE_POWDER: case RED_SAND: + case ROOTED_DIRT: case SAND: case SOUL_SAND: case SOUL_SOIL: @@ -7431,7 +8273,9 @@ public enum Material implements Keyed { case TURTLE_EGG: case WARPED_BUTTON: case WARPED_PRESSURE_PLATE: + case WHITE_CANDLE_CAKE: case WHITE_CONCRETE_POWDER: + case YELLOW_CANDLE_CAKE: case YELLOW_CONCRETE_POWDER: return 0.5F; case BEEHIVE: @@ -7445,664 +8289,15 @@ public enum Material implements Keyed { case SPONGE: case WET_SPONGE: return 0.6F; - case GRASS_PATH: - return 0.65F; - case ACTIVATOR_RAIL: - case DETECTOR_RAIL: - case POWERED_RAIL: - case RAIL: - return 0.7F; - case BLACK_WOOL: - case BLUE_WOOL: - case BROWN_WOOL: - case CHISELED_QUARTZ_BLOCK: - case CHISELED_RED_SANDSTONE: - case CHISELED_SANDSTONE: - case CUT_RED_SANDSTONE: - case CUT_SANDSTONE: - case CYAN_WOOL: - case GRAY_WOOL: - case GREEN_WOOL: - case LIGHT_BLUE_WOOL: - case LIGHT_GRAY_WOOL: - case LIME_WOOL: - case MAGENTA_WOOL: - case NOTE_BLOCK: - case ORANGE_WOOL: - case PINK_WOOL: - case PURPLE_WOOL: - case QUARTZ_BLOCK: - case QUARTZ_BRICKS: - case QUARTZ_PILLAR: - case QUARTZ_STAIRS: - case RED_SANDSTONE: - case RED_SANDSTONE_STAIRS: - case RED_SANDSTONE_WALL: - case RED_WOOL: - case SANDSTONE: - case SANDSTONE_STAIRS: - case SANDSTONE_WALL: - case WHITE_WOOL: - case YELLOW_WOOL: - return 0.8F; - case ACACIA_SIGN: - case ACACIA_WALL_SIGN: - case BAMBOO: - case BAMBOO_SAPLING: - case BIRCH_SIGN: - case BIRCH_WALL_SIGN: - case BLACK_BANNER: - case BLACK_WALL_BANNER: - case BLUE_BANNER: - case BLUE_WALL_BANNER: - case BROWN_BANNER: - case BROWN_WALL_BANNER: - case CARVED_PUMPKIN: - case CREEPER_HEAD: - case CREEPER_WALL_HEAD: - case CRIMSON_SIGN: - case CRIMSON_WALL_SIGN: - case CYAN_BANNER: - case CYAN_WALL_BANNER: - case DARK_OAK_SIGN: - case DARK_OAK_WALL_SIGN: - case DRAGON_HEAD: - case DRAGON_WALL_HEAD: - case GRAY_BANNER: - case GRAY_WALL_BANNER: - case GREEN_BANNER: - case GREEN_WALL_BANNER: - case JACK_O_LANTERN: - case JUNGLE_SIGN: - case JUNGLE_WALL_SIGN: - case LIGHT_BLUE_BANNER: - case LIGHT_BLUE_WALL_BANNER: - case LIGHT_GRAY_BANNER: - case LIGHT_GRAY_WALL_BANNER: - case LIME_BANNER: - case LIME_WALL_BANNER: - case MAGENTA_BANNER: - case MAGENTA_WALL_BANNER: - case MELON: - case NETHER_WART_BLOCK: - case OAK_SIGN: - case OAK_WALL_SIGN: - case ORANGE_BANNER: - case ORANGE_WALL_BANNER: - case PINK_BANNER: - case PINK_WALL_BANNER: - case PLAYER_HEAD: - case PLAYER_WALL_HEAD: - case PUMPKIN: - case PURPLE_BANNER: - case PURPLE_WALL_BANNER: - case RED_BANNER: - case RED_WALL_BANNER: - case SHROOMLIGHT: - case SKELETON_SKULL: - case SKELETON_WALL_SKULL: - case SPRUCE_SIGN: - case SPRUCE_WALL_SIGN: - case WARPED_SIGN: - case WARPED_WALL_SIGN: - case WARPED_WART_BLOCK: - case WHITE_BANNER: - case WHITE_WALL_BANNER: - case WITHER_SKELETON_SKULL: - case WITHER_SKELETON_WALL_SKULL: - case YELLOW_BANNER: - case YELLOW_WALL_BANNER: - case ZOMBIE_HEAD: - case ZOMBIE_WALL_HEAD: - return 1.0F; - case BASALT: - case BLACK_TERRACOTTA: - case BLUE_TERRACOTTA: - case BROWN_TERRACOTTA: - case CYAN_TERRACOTTA: - case GRAY_TERRACOTTA: - case GREEN_TERRACOTTA: - case LIGHT_BLUE_TERRACOTTA: - case LIGHT_GRAY_TERRACOTTA: - case LIME_TERRACOTTA: - case MAGENTA_TERRACOTTA: - case ORANGE_TERRACOTTA: - case PINK_TERRACOTTA: - case POLISHED_BASALT: - case PURPLE_TERRACOTTA: - case RED_TERRACOTTA: - case TERRACOTTA: - case WHITE_TERRACOTTA: - case YELLOW_TERRACOTTA: - return 1.25F; - case BLACK_GLAZED_TERRACOTTA: - case BLUE_GLAZED_TERRACOTTA: - case BROWN_GLAZED_TERRACOTTA: - case CYAN_GLAZED_TERRACOTTA: - case GRAY_GLAZED_TERRACOTTA: - case GREEN_GLAZED_TERRACOTTA: - case LIGHT_BLUE_GLAZED_TERRACOTTA: - case LIGHT_GRAY_GLAZED_TERRACOTTA: - case LIME_GLAZED_TERRACOTTA: - case MAGENTA_GLAZED_TERRACOTTA: - case ORANGE_GLAZED_TERRACOTTA: - case PINK_GLAZED_TERRACOTTA: - case PURPLE_GLAZED_TERRACOTTA: - case RED_GLAZED_TERRACOTTA: - case WHITE_GLAZED_TERRACOTTA: - case YELLOW_GLAZED_TERRACOTTA: - return 1.4F; - case ANDESITE: - case ANDESITE_SLAB: - case ANDESITE_STAIRS: - case ANDESITE_WALL: - case BLACKSTONE: - case BLACKSTONE_STAIRS: - case BLACKSTONE_WALL: - case BOOKSHELF: - case BRAIN_CORAL_BLOCK: - case BUBBLE_CORAL_BLOCK: - case CHISELED_POLISHED_BLACKSTONE: - case CHISELED_STONE_BRICKS: - case CRACKED_POLISHED_BLACKSTONE_BRICKS: - case CRACKED_STONE_BRICKS: - case DARK_PRISMARINE: - case DARK_PRISMARINE_SLAB: - case DARK_PRISMARINE_STAIRS: - case DEAD_BRAIN_CORAL_BLOCK: - case DEAD_BUBBLE_CORAL_BLOCK: - case DEAD_FIRE_CORAL_BLOCK: - case DEAD_HORN_CORAL_BLOCK: - case DEAD_TUBE_CORAL_BLOCK: - case DIORITE: - case DIORITE_SLAB: - case DIORITE_STAIRS: - case DIORITE_WALL: - case FIRE_CORAL_BLOCK: - case GILDED_BLACKSTONE: - case GRANITE: - case GRANITE_SLAB: - case GRANITE_STAIRS: - case GRANITE_WALL: - case HORN_CORAL_BLOCK: - case MOSSY_STONE_BRICKS: - case MOSSY_STONE_BRICK_SLAB: - case MOSSY_STONE_BRICK_STAIRS: - case MOSSY_STONE_BRICK_WALL: - case PISTON: - case PISTON_HEAD: - case POLISHED_ANDESITE: - case POLISHED_ANDESITE_SLAB: - case POLISHED_ANDESITE_STAIRS: - case POLISHED_BLACKSTONE_BRICKS: - case POLISHED_BLACKSTONE_BRICK_STAIRS: - case POLISHED_BLACKSTONE_BRICK_WALL: - case POLISHED_DIORITE: - case POLISHED_DIORITE_SLAB: - case POLISHED_DIORITE_STAIRS: - case POLISHED_GRANITE: - case POLISHED_GRANITE_SLAB: - case POLISHED_GRANITE_STAIRS: - case PRISMARINE: - case PRISMARINE_BRICKS: - case PRISMARINE_BRICK_SLAB: - case PRISMARINE_BRICK_STAIRS: - case PRISMARINE_SLAB: - case PRISMARINE_STAIRS: - case PRISMARINE_WALL: - case PURPUR_BLOCK: - case PURPUR_PILLAR: - case PURPUR_STAIRS: - case STICKY_PISTON: - case STONE: - case STONE_BRICKS: - case STONE_BRICK_STAIRS: - case STONE_BRICK_WALL: - case STONE_STAIRS: - case TUBE_CORAL_BLOCK: - return 1.5F; - case BLACK_CONCRETE: - case BLUE_CONCRETE: - case BROWN_CONCRETE: - case CYAN_CONCRETE: - case GRAY_CONCRETE: - case GREEN_CONCRETE: - case LIGHT_BLUE_CONCRETE: - case LIGHT_GRAY_CONCRETE: - case LIME_CONCRETE: - case MAGENTA_CONCRETE: - case ORANGE_CONCRETE: - case PINK_CONCRETE: - case PURPLE_CONCRETE: - case RED_CONCRETE: - case WHITE_CONCRETE: - case YELLOW_CONCRETE: - return 1.8F; - case ACACIA_FENCE: - case ACACIA_FENCE_GATE: - case ACACIA_LOG: - case ACACIA_PLANKS: - case ACACIA_SLAB: - case ACACIA_STAIRS: - case ACACIA_WOOD: - case BIRCH_FENCE: - case BIRCH_FENCE_GATE: - case BIRCH_LOG: - case BIRCH_PLANKS: - case BIRCH_SLAB: - case BIRCH_STAIRS: - case BIRCH_WOOD: - case BLACKSTONE_SLAB: - case BLACK_SHULKER_BOX: - case BLUE_SHULKER_BOX: - case BONE_BLOCK: - case BRICKS: - case BRICK_SLAB: - case BRICK_STAIRS: - case BRICK_WALL: - case BROWN_SHULKER_BOX: - case CAMPFIRE: - case CAULDRON: - case CHISELED_NETHER_BRICKS: - case COBBLESTONE: - case COBBLESTONE_SLAB: - case COBBLESTONE_STAIRS: - case COBBLESTONE_WALL: - case CRACKED_NETHER_BRICKS: - case CRIMSON_FENCE: - case CRIMSON_FENCE_GATE: - case CRIMSON_HYPHAE: - case CRIMSON_PLANKS: - case CRIMSON_SLAB: - case CRIMSON_STAIRS: - case CRIMSON_STEM: - case CUT_RED_SANDSTONE_SLAB: - case CUT_SANDSTONE_SLAB: - case CYAN_SHULKER_BOX: - case DARK_OAK_FENCE: - case DARK_OAK_FENCE_GATE: - case DARK_OAK_LOG: - case DARK_OAK_PLANKS: - case DARK_OAK_SLAB: - case DARK_OAK_STAIRS: - case DARK_OAK_WOOD: - case GRAY_SHULKER_BOX: - case GREEN_SHULKER_BOX: - case GRINDSTONE: - case JUKEBOX: - case JUNGLE_FENCE: - case JUNGLE_FENCE_GATE: - case JUNGLE_LOG: - case JUNGLE_PLANKS: - case JUNGLE_SLAB: - case JUNGLE_STAIRS: - case JUNGLE_WOOD: - case LIGHT_BLUE_SHULKER_BOX: - case LIGHT_GRAY_SHULKER_BOX: - case LIME_SHULKER_BOX: - case MAGENTA_SHULKER_BOX: - case MOSSY_COBBLESTONE: - case MOSSY_COBBLESTONE_SLAB: - case MOSSY_COBBLESTONE_STAIRS: - case MOSSY_COBBLESTONE_WALL: - case NETHER_BRICKS: - case NETHER_BRICK_FENCE: - case NETHER_BRICK_SLAB: - case NETHER_BRICK_STAIRS: - case NETHER_BRICK_WALL: - case OAK_FENCE: - case OAK_FENCE_GATE: - case OAK_LOG: - case OAK_PLANKS: - case OAK_SLAB: - case OAK_STAIRS: - case OAK_WOOD: - case ORANGE_SHULKER_BOX: - case PETRIFIED_OAK_SLAB: - case PINK_SHULKER_BOX: - case POLISHED_BLACKSTONE: - case POLISHED_BLACKSTONE_BRICK_SLAB: - case POLISHED_BLACKSTONE_SLAB: - case POLISHED_BLACKSTONE_STAIRS: - case POLISHED_BLACKSTONE_WALL: - case PURPLE_SHULKER_BOX: - case PURPUR_SLAB: - case QUARTZ_SLAB: - case RED_NETHER_BRICKS: - case RED_NETHER_BRICK_SLAB: - case RED_NETHER_BRICK_STAIRS: - case RED_NETHER_BRICK_WALL: - case RED_SANDSTONE_SLAB: - case RED_SHULKER_BOX: - case SANDSTONE_SLAB: - case SHULKER_BOX: - case SMOOTH_QUARTZ: - case SMOOTH_QUARTZ_SLAB: - case SMOOTH_QUARTZ_STAIRS: - case SMOOTH_RED_SANDSTONE: - case SMOOTH_RED_SANDSTONE_SLAB: - case SMOOTH_RED_SANDSTONE_STAIRS: - case SMOOTH_SANDSTONE: - case SMOOTH_SANDSTONE_SLAB: - case SMOOTH_SANDSTONE_STAIRS: - case SMOOTH_STONE: - case SMOOTH_STONE_SLAB: - case SOUL_CAMPFIRE: - case SPRUCE_FENCE: - case SPRUCE_FENCE_GATE: - case SPRUCE_LOG: - case SPRUCE_PLANKS: - case SPRUCE_SLAB: - case SPRUCE_STAIRS: - case SPRUCE_WOOD: - case STONE_BRICK_SLAB: - case STONE_SLAB: - case STRIPPED_ACACIA_LOG: - case STRIPPED_ACACIA_WOOD: - case STRIPPED_BIRCH_LOG: - case STRIPPED_BIRCH_WOOD: - case STRIPPED_CRIMSON_HYPHAE: - case STRIPPED_CRIMSON_STEM: - case STRIPPED_DARK_OAK_LOG: - case STRIPPED_DARK_OAK_WOOD: - case STRIPPED_JUNGLE_LOG: - case STRIPPED_JUNGLE_WOOD: - case STRIPPED_OAK_LOG: - case STRIPPED_OAK_WOOD: - case STRIPPED_SPRUCE_LOG: - case STRIPPED_SPRUCE_WOOD: - case STRIPPED_WARPED_HYPHAE: - case STRIPPED_WARPED_STEM: - case WARPED_FENCE: - case WARPED_FENCE_GATE: - case WARPED_HYPHAE: - case WARPED_PLANKS: - case WARPED_SLAB: - case WARPED_STAIRS: - case WARPED_STEM: - case WHITE_SHULKER_BOX: - case YELLOW_SHULKER_BOX: - return 2.0F; - case BARREL: - case CARTOGRAPHY_TABLE: - case CHEST: - case CRAFTING_TABLE: - case FLETCHING_TABLE: - case LECTERN: - case LOOM: - case SMITHING_TABLE: - case TRAPPED_CHEST: - return 2.5F; - case BLUE_ICE: - return 2.8F; - case ACACIA_DOOR: - case ACACIA_TRAPDOOR: - case BEACON: - case BIRCH_DOOR: - case BIRCH_TRAPDOOR: - case COAL_ORE: - case CONDUIT: - case CRIMSON_DOOR: - case CRIMSON_TRAPDOOR: - case DARK_OAK_DOOR: - case DARK_OAK_TRAPDOOR: - case DIAMOND_ORE: - case DRAGON_EGG: - case EMERALD_ORE: - case END_STONE: - case END_STONE_BRICKS: - case END_STONE_BRICK_SLAB: - case END_STONE_BRICK_STAIRS: - case END_STONE_BRICK_WALL: - case GOLD_BLOCK: - case GOLD_ORE: - case HOPPER: - case IRON_ORE: - case JUNGLE_DOOR: - case JUNGLE_TRAPDOOR: - case LAPIS_BLOCK: - case LAPIS_ORE: - case NETHER_GOLD_ORE: - case NETHER_QUARTZ_ORE: - case OAK_DOOR: - case OAK_TRAPDOOR: - case OBSERVER: - case REDSTONE_ORE: - case SPRUCE_DOOR: - case SPRUCE_TRAPDOOR: - case WARPED_DOOR: - case WARPED_TRAPDOOR: - return 3.0F; - case BLAST_FURNACE: - case DISPENSER: - case DROPPER: - case FURNACE: - case LANTERN: - case LODESTONE: - case SMOKER: - case SOUL_LANTERN: - case STONECUTTER: - return 3.5F; - case COBWEB: - return 4.0F; - case ANVIL: - case BELL: - case CHAIN: - case CHIPPED_ANVIL: - case COAL_BLOCK: - case DAMAGED_ANVIL: - case DIAMOND_BLOCK: - case EMERALD_BLOCK: - case ENCHANTING_TABLE: - case IRON_BARS: - case IRON_BLOCK: - case IRON_DOOR: - case IRON_TRAPDOOR: - case REDSTONE_BLOCK: - case SPAWNER: - return 5.0F; - case ENDER_CHEST: - return 22.5F; - case ANCIENT_DEBRIS: - return 30.0F; - case CRYING_OBSIDIAN: - case NETHERITE_BLOCK: - case OBSIDIAN: - case RESPAWN_ANCHOR: - return 50.0F; - case LAVA: - case WATER: - return 100.0F; - default: - return 0F; - // - } - } - - /** - * Obtains the blast resistance value (also known as block "durability"). - *
- * This value is used in explosions to calculate whether a block should be - * broken or not. - *
- * Only available when {@link #isBlock()} is true. - * - * @return the blast resistance of that material. - */ - public float getBlastResistance() { - Validate.isTrue(isBlock(), "The Material is not a block!"); - switch (this) { - // - case BLACK_CARPET: - case BLUE_CARPET: - case BROWN_CARPET: - case CYAN_CARPET: - case GRAY_CARPET: - case GREEN_CARPET: - case LIGHT_BLUE_CARPET: - case LIGHT_GRAY_CARPET: - case LIME_CARPET: - case MAGENTA_CARPET: - case ORANGE_CARPET: - case PINK_CARPET: - case PURPLE_CARPET: - case RED_CARPET: - case SNOW: - case WHITE_CARPET: - case YELLOW_CARPET: - return 0.1F; - case ACACIA_LEAVES: - case BIRCH_LEAVES: - case BLACK_BED: - case BLUE_BED: - case BROWN_BED: - case BROWN_MUSHROOM_BLOCK: - case CYAN_BED: - case DARK_OAK_LEAVES: - case DAYLIGHT_DETECTOR: - case GRAY_BED: - case GREEN_BED: - case JUNGLE_LEAVES: - case LIGHT_BLUE_BED: - case LIGHT_GRAY_BED: - case LIME_BED: - case MAGENTA_BED: - case MUSHROOM_STEM: - case OAK_LEAVES: - case ORANGE_BED: - case PINK_BED: - case PURPLE_BED: - case RED_BED: - case RED_MUSHROOM_BLOCK: - case SNOW_BLOCK: - case SPRUCE_LEAVES: - case VINE: - case WHITE_BED: - case YELLOW_BED: - return 0.2F; - case BEE_NEST: - case BLACK_STAINED_GLASS: - case BLACK_STAINED_GLASS_PANE: - case BLUE_STAINED_GLASS: - case BLUE_STAINED_GLASS_PANE: - case BROWN_STAINED_GLASS: - case BROWN_STAINED_GLASS_PANE: - case CYAN_STAINED_GLASS: - case CYAN_STAINED_GLASS_PANE: - case GLASS: - case GLASS_PANE: - case GLOWSTONE: - case GRAY_STAINED_GLASS: - case GRAY_STAINED_GLASS_PANE: - case GREEN_STAINED_GLASS: - case GREEN_STAINED_GLASS_PANE: - case LIGHT_BLUE_STAINED_GLASS: - case LIGHT_BLUE_STAINED_GLASS_PANE: - case LIGHT_GRAY_STAINED_GLASS: - case LIGHT_GRAY_STAINED_GLASS_PANE: - case LIME_STAINED_GLASS: - case LIME_STAINED_GLASS_PANE: - case MAGENTA_STAINED_GLASS: - case MAGENTA_STAINED_GLASS_PANE: - case ORANGE_STAINED_GLASS: - case ORANGE_STAINED_GLASS_PANE: - case PINK_STAINED_GLASS: - case PINK_STAINED_GLASS_PANE: - case PURPLE_STAINED_GLASS: - case PURPLE_STAINED_GLASS_PANE: - case REDSTONE_LAMP: - case RED_STAINED_GLASS: - case RED_STAINED_GLASS_PANE: - case SEA_LANTERN: - case WHITE_STAINED_GLASS: - case WHITE_STAINED_GLASS_PANE: - case YELLOW_STAINED_GLASS: - case YELLOW_STAINED_GLASS_PANE: - return 0.3F; - case CACTUS: - case CHORUS_FLOWER: - case CHORUS_PLANT: - case CRIMSON_NYLIUM: - case LADDER: - case NETHERRACK: - case WARPED_NYLIUM: - return 0.4F; - case ACACIA_BUTTON: - case ACACIA_PRESSURE_PLATE: - case BIRCH_BUTTON: - case BIRCH_PRESSURE_PLATE: - case BLACK_CONCRETE_POWDER: - case BLUE_CONCRETE_POWDER: - case BREWING_STAND: - case BROWN_CONCRETE_POWDER: - case CAKE: - case COARSE_DIRT: - case CRIMSON_BUTTON: - case CRIMSON_PRESSURE_PLATE: - case CYAN_CONCRETE_POWDER: - case DARK_OAK_BUTTON: - case DARK_OAK_PRESSURE_PLATE: - case DIRT: - case FROSTED_ICE: - case GRAY_CONCRETE_POWDER: - case GREEN_CONCRETE_POWDER: - case HAY_BLOCK: - case HEAVY_WEIGHTED_PRESSURE_PLATE: - case ICE: - case JUNGLE_BUTTON: - case JUNGLE_PRESSURE_PLATE: - case LEVER: - case LIGHT_BLUE_CONCRETE_POWDER: - case LIGHT_GRAY_CONCRETE_POWDER: - case LIGHT_WEIGHTED_PRESSURE_PLATE: - case LIME_CONCRETE_POWDER: - case MAGENTA_CONCRETE_POWDER: - case MAGMA_BLOCK: - case OAK_BUTTON: - case OAK_PRESSURE_PLATE: - case ORANGE_CONCRETE_POWDER: - case PACKED_ICE: - case PINK_CONCRETE_POWDER: - case PODZOL: - case POLISHED_BLACKSTONE_BUTTON: - case POLISHED_BLACKSTONE_PRESSURE_PLATE: - case PURPLE_CONCRETE_POWDER: - case RED_CONCRETE_POWDER: - case RED_SAND: - case SAND: - case SOUL_SAND: - case SOUL_SOIL: - case SPRUCE_BUTTON: - case SPRUCE_PRESSURE_PLATE: - case STONE_BUTTON: - case STONE_PRESSURE_PLATE: - case TARGET: - case TURTLE_EGG: - case WARPED_BUTTON: - case WARPED_PRESSURE_PLATE: - case WHITE_CONCRETE_POWDER: - case YELLOW_CONCRETE_POWDER: - return 0.5F; - case BEEHIVE: - case CLAY: - case COMPOSTER: - case FARMLAND: - case GRASS_BLOCK: - case GRAVEL: - case HONEYCOMB_BLOCK: - case MYCELIUM: - case SPONGE: - case WET_SPONGE: - return 0.6F; - case GRASS_PATH: + case DIRT_PATH: return 0.65F; case ACTIVATOR_RAIL: case DETECTOR_RAIL: case POWERED_RAIL: case RAIL: return 0.7F; + case CALCITE: case INFESTED_CHISELED_STONE_BRICKS: - case INFESTED_COBBLESTONE: case INFESTED_CRACKED_STONE_BRICKS: case INFESTED_MOSSY_STONE_BRICKS: case INFESTED_STONE: @@ -8168,6 +8363,792 @@ public enum Material implements Keyed { case GRAY_WALL_BANNER: case GREEN_BANNER: case GREEN_WALL_BANNER: + case INFESTED_COBBLESTONE: + case JACK_O_LANTERN: + case JUNGLE_SIGN: + case JUNGLE_WALL_SIGN: + case LIGHT_BLUE_BANNER: + case LIGHT_BLUE_WALL_BANNER: + case LIGHT_GRAY_BANNER: + case LIGHT_GRAY_WALL_BANNER: + case LIME_BANNER: + case LIME_WALL_BANNER: + case MAGENTA_BANNER: + case MAGENTA_WALL_BANNER: + case MELON: + case NETHER_WART_BLOCK: + case OAK_SIGN: + case OAK_WALL_SIGN: + case ORANGE_BANNER: + case ORANGE_WALL_BANNER: + case PINK_BANNER: + case PINK_WALL_BANNER: + case PLAYER_HEAD: + case PLAYER_WALL_HEAD: + case PUMPKIN: + case PURPLE_BANNER: + case PURPLE_WALL_BANNER: + case RED_BANNER: + case RED_WALL_BANNER: + case SHROOMLIGHT: + case SKELETON_SKULL: + case SKELETON_WALL_SKULL: + case SPRUCE_SIGN: + case SPRUCE_WALL_SIGN: + case WARPED_SIGN: + case WARPED_WALL_SIGN: + case WARPED_WART_BLOCK: + case WHITE_BANNER: + case WHITE_WALL_BANNER: + case WITHER_SKELETON_SKULL: + case WITHER_SKELETON_WALL_SKULL: + case YELLOW_BANNER: + case YELLOW_WALL_BANNER: + case ZOMBIE_HEAD: + case ZOMBIE_WALL_HEAD: + return 1.0F; + case BASALT: + case BLACK_TERRACOTTA: + case BLUE_TERRACOTTA: + case BROWN_TERRACOTTA: + case CYAN_TERRACOTTA: + case GRAY_TERRACOTTA: + case GREEN_TERRACOTTA: + case LIGHT_BLUE_TERRACOTTA: + case LIGHT_GRAY_TERRACOTTA: + case LIME_TERRACOTTA: + case MAGENTA_TERRACOTTA: + case ORANGE_TERRACOTTA: + case PINK_TERRACOTTA: + case POLISHED_BASALT: + case PURPLE_TERRACOTTA: + case RED_TERRACOTTA: + case SMOOTH_BASALT: + case TERRACOTTA: + case WHITE_TERRACOTTA: + case YELLOW_TERRACOTTA: + return 1.25F; + case BLACK_GLAZED_TERRACOTTA: + case BLUE_GLAZED_TERRACOTTA: + case BROWN_GLAZED_TERRACOTTA: + case CYAN_GLAZED_TERRACOTTA: + case GRAY_GLAZED_TERRACOTTA: + case GREEN_GLAZED_TERRACOTTA: + case LIGHT_BLUE_GLAZED_TERRACOTTA: + case LIGHT_GRAY_GLAZED_TERRACOTTA: + case LIME_GLAZED_TERRACOTTA: + case MAGENTA_GLAZED_TERRACOTTA: + case ORANGE_GLAZED_TERRACOTTA: + case PINK_GLAZED_TERRACOTTA: + case PURPLE_GLAZED_TERRACOTTA: + case RED_GLAZED_TERRACOTTA: + case WHITE_GLAZED_TERRACOTTA: + case YELLOW_GLAZED_TERRACOTTA: + return 1.4F; + case AMETHYST_BLOCK: + case AMETHYST_CLUSTER: + case ANDESITE: + case ANDESITE_SLAB: + case ANDESITE_STAIRS: + case ANDESITE_WALL: + case BLACKSTONE: + case BLACKSTONE_STAIRS: + case BLACKSTONE_WALL: + case BOOKSHELF: + case BRAIN_CORAL_BLOCK: + case BUBBLE_CORAL_BLOCK: + case BUDDING_AMETHYST: + case CHISELED_POLISHED_BLACKSTONE: + case CHISELED_STONE_BRICKS: + case CRACKED_POLISHED_BLACKSTONE_BRICKS: + case CRACKED_STONE_BRICKS: + case DARK_PRISMARINE: + case DARK_PRISMARINE_SLAB: + case DARK_PRISMARINE_STAIRS: + case DEAD_BRAIN_CORAL_BLOCK: + case DEAD_BUBBLE_CORAL_BLOCK: + case DEAD_FIRE_CORAL_BLOCK: + case DEAD_HORN_CORAL_BLOCK: + case DEAD_TUBE_CORAL_BLOCK: + case DIORITE: + case DIORITE_SLAB: + case DIORITE_STAIRS: + case DIORITE_WALL: + case DRIPSTONE_BLOCK: + case FIRE_CORAL_BLOCK: + case GILDED_BLACKSTONE: + case GRANITE: + case GRANITE_SLAB: + case GRANITE_STAIRS: + case GRANITE_WALL: + case HORN_CORAL_BLOCK: + case INFESTED_DEEPSLATE: + case LARGE_AMETHYST_BUD: + case MEDIUM_AMETHYST_BUD: + case MOSSY_STONE_BRICKS: + case MOSSY_STONE_BRICK_SLAB: + case MOSSY_STONE_BRICK_STAIRS: + case MOSSY_STONE_BRICK_WALL: + case PISTON: + case PISTON_HEAD: + case POINTED_DRIPSTONE: + case POLISHED_ANDESITE: + case POLISHED_ANDESITE_SLAB: + case POLISHED_ANDESITE_STAIRS: + case POLISHED_BLACKSTONE_BRICKS: + case POLISHED_BLACKSTONE_BRICK_STAIRS: + case POLISHED_BLACKSTONE_BRICK_WALL: + case POLISHED_DIORITE: + case POLISHED_DIORITE_SLAB: + case POLISHED_DIORITE_STAIRS: + case POLISHED_GRANITE: + case POLISHED_GRANITE_SLAB: + case POLISHED_GRANITE_STAIRS: + case PRISMARINE: + case PRISMARINE_BRICKS: + case PRISMARINE_BRICK_SLAB: + case PRISMARINE_BRICK_STAIRS: + case PRISMARINE_SLAB: + case PRISMARINE_STAIRS: + case PRISMARINE_WALL: + case PURPUR_BLOCK: + case PURPUR_PILLAR: + case PURPUR_STAIRS: + case SCULK_SENSOR: + case SMALL_AMETHYST_BUD: + case STICKY_PISTON: + case STONE: + case STONE_BRICKS: + case STONE_BRICK_STAIRS: + case STONE_BRICK_WALL: + case STONE_STAIRS: + case TUBE_CORAL_BLOCK: + case TUFF: + return 1.5F; + case BLACK_CONCRETE: + case BLUE_CONCRETE: + case BROWN_CONCRETE: + case CYAN_CONCRETE: + case GRAY_CONCRETE: + case GREEN_CONCRETE: + case LIGHT_BLUE_CONCRETE: + case LIGHT_GRAY_CONCRETE: + case LIME_CONCRETE: + case MAGENTA_CONCRETE: + case ORANGE_CONCRETE: + case PINK_CONCRETE: + case PURPLE_CONCRETE: + case RED_CONCRETE: + case WHITE_CONCRETE: + case YELLOW_CONCRETE: + return 1.8F; + case ACACIA_FENCE: + case ACACIA_FENCE_GATE: + case ACACIA_LOG: + case ACACIA_PLANKS: + case ACACIA_SLAB: + case ACACIA_STAIRS: + case ACACIA_WOOD: + case BIRCH_FENCE: + case BIRCH_FENCE_GATE: + case BIRCH_LOG: + case BIRCH_PLANKS: + case BIRCH_SLAB: + case BIRCH_STAIRS: + case BIRCH_WOOD: + case BLACKSTONE_SLAB: + case BLACK_SHULKER_BOX: + case BLUE_SHULKER_BOX: + case BONE_BLOCK: + case BRICKS: + case BRICK_SLAB: + case BRICK_STAIRS: + case BRICK_WALL: + case BROWN_SHULKER_BOX: + case CAMPFIRE: + case CAULDRON: + case CHISELED_NETHER_BRICKS: + case COBBLESTONE: + case COBBLESTONE_SLAB: + case COBBLESTONE_STAIRS: + case COBBLESTONE_WALL: + case CRACKED_NETHER_BRICKS: + case CRIMSON_FENCE: + case CRIMSON_FENCE_GATE: + case CRIMSON_HYPHAE: + case CRIMSON_PLANKS: + case CRIMSON_SLAB: + case CRIMSON_STAIRS: + case CRIMSON_STEM: + case CUT_RED_SANDSTONE_SLAB: + case CUT_SANDSTONE_SLAB: + case CYAN_SHULKER_BOX: + case DARK_OAK_FENCE: + case DARK_OAK_FENCE_GATE: + case DARK_OAK_LOG: + case DARK_OAK_PLANKS: + case DARK_OAK_SLAB: + case DARK_OAK_STAIRS: + case DARK_OAK_WOOD: + case GRAY_SHULKER_BOX: + case GREEN_SHULKER_BOX: + case GRINDSTONE: + case JUKEBOX: + case JUNGLE_FENCE: + case JUNGLE_FENCE_GATE: + case JUNGLE_LOG: + case JUNGLE_PLANKS: + case JUNGLE_SLAB: + case JUNGLE_STAIRS: + case JUNGLE_WOOD: + case LAVA_CAULDRON: + case LIGHT_BLUE_SHULKER_BOX: + case LIGHT_GRAY_SHULKER_BOX: + case LIME_SHULKER_BOX: + case MAGENTA_SHULKER_BOX: + case MOSSY_COBBLESTONE: + case MOSSY_COBBLESTONE_SLAB: + case MOSSY_COBBLESTONE_STAIRS: + case MOSSY_COBBLESTONE_WALL: + case NETHER_BRICKS: + case NETHER_BRICK_FENCE: + case NETHER_BRICK_SLAB: + case NETHER_BRICK_STAIRS: + case NETHER_BRICK_WALL: + case OAK_FENCE: + case OAK_FENCE_GATE: + case OAK_LOG: + case OAK_PLANKS: + case OAK_SLAB: + case OAK_STAIRS: + case OAK_WOOD: + case ORANGE_SHULKER_BOX: + case PETRIFIED_OAK_SLAB: + case PINK_SHULKER_BOX: + case POLISHED_BLACKSTONE: + case POLISHED_BLACKSTONE_BRICK_SLAB: + case POLISHED_BLACKSTONE_SLAB: + case POLISHED_BLACKSTONE_STAIRS: + case POLISHED_BLACKSTONE_WALL: + case POWDER_SNOW_CAULDRON: + case PURPLE_SHULKER_BOX: + case PURPUR_SLAB: + case QUARTZ_SLAB: + case RED_NETHER_BRICKS: + case RED_NETHER_BRICK_SLAB: + case RED_NETHER_BRICK_STAIRS: + case RED_NETHER_BRICK_WALL: + case RED_SANDSTONE_SLAB: + case RED_SHULKER_BOX: + case SANDSTONE_SLAB: + case SHULKER_BOX: + case SMOOTH_QUARTZ: + case SMOOTH_QUARTZ_SLAB: + case SMOOTH_QUARTZ_STAIRS: + case SMOOTH_RED_SANDSTONE: + case SMOOTH_RED_SANDSTONE_SLAB: + case SMOOTH_RED_SANDSTONE_STAIRS: + case SMOOTH_SANDSTONE: + case SMOOTH_SANDSTONE_SLAB: + case SMOOTH_SANDSTONE_STAIRS: + case SMOOTH_STONE: + case SMOOTH_STONE_SLAB: + case SOUL_CAMPFIRE: + case SPRUCE_FENCE: + case SPRUCE_FENCE_GATE: + case SPRUCE_LOG: + case SPRUCE_PLANKS: + case SPRUCE_SLAB: + case SPRUCE_STAIRS: + case SPRUCE_WOOD: + case STONE_BRICK_SLAB: + case STONE_SLAB: + case STRIPPED_ACACIA_LOG: + case STRIPPED_ACACIA_WOOD: + case STRIPPED_BIRCH_LOG: + case STRIPPED_BIRCH_WOOD: + case STRIPPED_CRIMSON_HYPHAE: + case STRIPPED_CRIMSON_STEM: + case STRIPPED_DARK_OAK_LOG: + case STRIPPED_DARK_OAK_WOOD: + case STRIPPED_JUNGLE_LOG: + case STRIPPED_JUNGLE_WOOD: + case STRIPPED_OAK_LOG: + case STRIPPED_OAK_WOOD: + case STRIPPED_SPRUCE_LOG: + case STRIPPED_SPRUCE_WOOD: + case STRIPPED_WARPED_HYPHAE: + case STRIPPED_WARPED_STEM: + case WARPED_FENCE: + case WARPED_FENCE_GATE: + case WARPED_HYPHAE: + case WARPED_PLANKS: + case WARPED_SLAB: + case WARPED_STAIRS: + case WARPED_STEM: + case WATER_CAULDRON: + case WHITE_SHULKER_BOX: + case YELLOW_SHULKER_BOX: + return 2.0F; + case BARREL: + case CARTOGRAPHY_TABLE: + case CHEST: + case CRAFTING_TABLE: + case FLETCHING_TABLE: + case LECTERN: + case LOOM: + case SMITHING_TABLE: + case TRAPPED_CHEST: + return 2.5F; + case BLUE_ICE: + return 2.8F; + case ACACIA_DOOR: + case ACACIA_TRAPDOOR: + case BEACON: + case BIRCH_DOOR: + case BIRCH_TRAPDOOR: + case COAL_ORE: + case CONDUIT: + case COPPER_BLOCK: + case COPPER_ORE: + case CRIMSON_DOOR: + case CRIMSON_TRAPDOOR: + case CUT_COPPER: + case CUT_COPPER_SLAB: + case CUT_COPPER_STAIRS: + case DARK_OAK_DOOR: + case DARK_OAK_TRAPDOOR: + case DEEPSLATE: + case DIAMOND_ORE: + case DRAGON_EGG: + case EMERALD_ORE: + case END_STONE: + case END_STONE_BRICKS: + case END_STONE_BRICK_SLAB: + case END_STONE_BRICK_STAIRS: + case END_STONE_BRICK_WALL: + case EXPOSED_COPPER: + case EXPOSED_CUT_COPPER: + case EXPOSED_CUT_COPPER_SLAB: + case EXPOSED_CUT_COPPER_STAIRS: + case GOLD_BLOCK: + case GOLD_ORE: + case HOPPER: + case IRON_ORE: + case JUNGLE_DOOR: + case JUNGLE_TRAPDOOR: + case LAPIS_BLOCK: + case LAPIS_ORE: + case LIGHTNING_ROD: + case NETHER_GOLD_ORE: + case NETHER_QUARTZ_ORE: + case OAK_DOOR: + case OAK_TRAPDOOR: + case OBSERVER: + case OXIDIZED_COPPER: + case OXIDIZED_CUT_COPPER: + case OXIDIZED_CUT_COPPER_SLAB: + case OXIDIZED_CUT_COPPER_STAIRS: + case REDSTONE_ORE: + case SPRUCE_DOOR: + case SPRUCE_TRAPDOOR: + case WARPED_DOOR: + case WARPED_TRAPDOOR: + case WAXED_COPPER_BLOCK: + case WAXED_CUT_COPPER: + case WAXED_CUT_COPPER_SLAB: + case WAXED_CUT_COPPER_STAIRS: + case WAXED_EXPOSED_COPPER: + case WAXED_EXPOSED_CUT_COPPER: + case WAXED_EXPOSED_CUT_COPPER_SLAB: + case WAXED_EXPOSED_CUT_COPPER_STAIRS: + case WAXED_OXIDIZED_COPPER: + case WAXED_OXIDIZED_CUT_COPPER: + case WAXED_OXIDIZED_CUT_COPPER_SLAB: + case WAXED_OXIDIZED_CUT_COPPER_STAIRS: + case WAXED_WEATHERED_COPPER: + case WAXED_WEATHERED_CUT_COPPER: + case WAXED_WEATHERED_CUT_COPPER_SLAB: + case WAXED_WEATHERED_CUT_COPPER_STAIRS: + case WEATHERED_COPPER: + case WEATHERED_CUT_COPPER: + case WEATHERED_CUT_COPPER_SLAB: + case WEATHERED_CUT_COPPER_STAIRS: + return 3.0F; + case BLAST_FURNACE: + case CHISELED_DEEPSLATE: + case COBBLED_DEEPSLATE: + case COBBLED_DEEPSLATE_SLAB: + case COBBLED_DEEPSLATE_STAIRS: + case COBBLED_DEEPSLATE_WALL: + case CRACKED_DEEPSLATE_BRICKS: + case CRACKED_DEEPSLATE_TILES: + case DEEPSLATE_BRICKS: + case DEEPSLATE_BRICK_SLAB: + case DEEPSLATE_BRICK_STAIRS: + case DEEPSLATE_BRICK_WALL: + case DEEPSLATE_TILES: + case DEEPSLATE_TILE_SLAB: + case DEEPSLATE_TILE_STAIRS: + case DEEPSLATE_TILE_WALL: + case DISPENSER: + case DROPPER: + case FURNACE: + case LANTERN: + case LODESTONE: + case POLISHED_DEEPSLATE: + case POLISHED_DEEPSLATE_SLAB: + case POLISHED_DEEPSLATE_STAIRS: + case POLISHED_DEEPSLATE_WALL: + case SMOKER: + case SOUL_LANTERN: + case STONECUTTER: + return 3.5F; + case COBWEB: + return 4.0F; + case DEEPSLATE_COAL_ORE: + case DEEPSLATE_COPPER_ORE: + case DEEPSLATE_DIAMOND_ORE: + case DEEPSLATE_EMERALD_ORE: + case DEEPSLATE_GOLD_ORE: + case DEEPSLATE_IRON_ORE: + case DEEPSLATE_LAPIS_ORE: + case DEEPSLATE_REDSTONE_ORE: + return 4.5F; + case ANVIL: + case BELL: + case CHAIN: + case CHIPPED_ANVIL: + case COAL_BLOCK: + case DAMAGED_ANVIL: + case DIAMOND_BLOCK: + case EMERALD_BLOCK: + case ENCHANTING_TABLE: + case IRON_BARS: + case IRON_BLOCK: + case IRON_DOOR: + case IRON_TRAPDOOR: + case RAW_COPPER_BLOCK: + case RAW_GOLD_BLOCK: + case RAW_IRON_BLOCK: + case REDSTONE_BLOCK: + case SPAWNER: + return 5.0F; + case ENDER_CHEST: + return 22.5F; + case ANCIENT_DEBRIS: + return 30.0F; + case CRYING_OBSIDIAN: + case NETHERITE_BLOCK: + case OBSIDIAN: + case RESPAWN_ANCHOR: + return 50.0F; + case LAVA: + case WATER: + return 100.0F; + default: + return 0F; + // + } + } + + /** + * Obtains the blast resistance value (also known as block "durability"). + *
+ * This value is used in explosions to calculate whether a block should be + * broken or not. + *
+ * Only available when {@link #isBlock()} is true. + * + * @return the blast resistance of that material. + */ + public float getBlastResistance() { + Validate.isTrue(isBlock(), "The Material is not a block!"); + switch (this) { + // + case BIG_DRIPLEAF: + case BIG_DRIPLEAF_STEM: + case BLACK_CANDLE: + case BLACK_CARPET: + case BLUE_CANDLE: + case BLUE_CARPET: + case BROWN_CANDLE: + case BROWN_CARPET: + case CANDLE: + case CYAN_CANDLE: + case CYAN_CARPET: + case GRAY_CANDLE: + case GRAY_CARPET: + case GREEN_CANDLE: + case GREEN_CARPET: + case LIGHT_BLUE_CANDLE: + case LIGHT_BLUE_CARPET: + case LIGHT_GRAY_CANDLE: + case LIGHT_GRAY_CARPET: + case LIME_CANDLE: + case LIME_CARPET: + case MAGENTA_CANDLE: + case MAGENTA_CARPET: + case MOSS_BLOCK: + case MOSS_CARPET: + case ORANGE_CANDLE: + case ORANGE_CARPET: + case PINK_CANDLE: + case PINK_CARPET: + case PURPLE_CANDLE: + case PURPLE_CARPET: + case RED_CANDLE: + case RED_CARPET: + case SNOW: + case WHITE_CANDLE: + case WHITE_CARPET: + case YELLOW_CANDLE: + case YELLOW_CARPET: + return 0.1F; + case ACACIA_LEAVES: + case AZALEA_LEAVES: + case BIRCH_LEAVES: + case BLACK_BED: + case BLUE_BED: + case BROWN_BED: + case BROWN_MUSHROOM_BLOCK: + case CYAN_BED: + case DARK_OAK_LEAVES: + case DAYLIGHT_DETECTOR: + case FLOWERING_AZALEA_LEAVES: + case GLOW_LICHEN: + case GRAY_BED: + case GREEN_BED: + case JUNGLE_LEAVES: + case LIGHT_BLUE_BED: + case LIGHT_GRAY_BED: + case LIME_BED: + case MAGENTA_BED: + case MUSHROOM_STEM: + case OAK_LEAVES: + case ORANGE_BED: + case PINK_BED: + case PURPLE_BED: + case RED_BED: + case RED_MUSHROOM_BLOCK: + case SNOW_BLOCK: + case SPRUCE_LEAVES: + case VINE: + case WHITE_BED: + case YELLOW_BED: + return 0.2F; + case POWDER_SNOW: + return 0.25F; + case BEE_NEST: + case BLACK_STAINED_GLASS: + case BLACK_STAINED_GLASS_PANE: + case BLUE_STAINED_GLASS: + case BLUE_STAINED_GLASS_PANE: + case BROWN_STAINED_GLASS: + case BROWN_STAINED_GLASS_PANE: + case CYAN_STAINED_GLASS: + case CYAN_STAINED_GLASS_PANE: + case GLASS: + case GLASS_PANE: + case GLOWSTONE: + case GRAY_STAINED_GLASS: + case GRAY_STAINED_GLASS_PANE: + case GREEN_STAINED_GLASS: + case GREEN_STAINED_GLASS_PANE: + case LIGHT_BLUE_STAINED_GLASS: + case LIGHT_BLUE_STAINED_GLASS_PANE: + case LIGHT_GRAY_STAINED_GLASS: + case LIGHT_GRAY_STAINED_GLASS_PANE: + case LIME_STAINED_GLASS: + case LIME_STAINED_GLASS_PANE: + case MAGENTA_STAINED_GLASS: + case MAGENTA_STAINED_GLASS_PANE: + case ORANGE_STAINED_GLASS: + case ORANGE_STAINED_GLASS_PANE: + case PINK_STAINED_GLASS: + case PINK_STAINED_GLASS_PANE: + case PURPLE_STAINED_GLASS: + case PURPLE_STAINED_GLASS_PANE: + case REDSTONE_LAMP: + case RED_STAINED_GLASS: + case RED_STAINED_GLASS_PANE: + case SEA_LANTERN: + case TINTED_GLASS: + case WHITE_STAINED_GLASS: + case WHITE_STAINED_GLASS_PANE: + case YELLOW_STAINED_GLASS: + case YELLOW_STAINED_GLASS_PANE: + return 0.3F; + case CACTUS: + case CHORUS_FLOWER: + case CHORUS_PLANT: + case CRIMSON_NYLIUM: + case LADDER: + case NETHERRACK: + case WARPED_NYLIUM: + return 0.4F; + case ACACIA_BUTTON: + case ACACIA_PRESSURE_PLATE: + case BIRCH_BUTTON: + case BIRCH_PRESSURE_PLATE: + case BLACK_CANDLE_CAKE: + case BLACK_CONCRETE_POWDER: + case BLUE_CANDLE_CAKE: + case BLUE_CONCRETE_POWDER: + case BREWING_STAND: + case BROWN_CANDLE_CAKE: + case BROWN_CONCRETE_POWDER: + case CAKE: + case CANDLE_CAKE: + case COARSE_DIRT: + case CRIMSON_BUTTON: + case CRIMSON_PRESSURE_PLATE: + case CYAN_CANDLE_CAKE: + case CYAN_CONCRETE_POWDER: + case DARK_OAK_BUTTON: + case DARK_OAK_PRESSURE_PLATE: + case DIRT: + case FROSTED_ICE: + case GRAY_CANDLE_CAKE: + case GRAY_CONCRETE_POWDER: + case GREEN_CANDLE_CAKE: + case GREEN_CONCRETE_POWDER: + case HAY_BLOCK: + case HEAVY_WEIGHTED_PRESSURE_PLATE: + case ICE: + case JUNGLE_BUTTON: + case JUNGLE_PRESSURE_PLATE: + case LEVER: + case LIGHT_BLUE_CANDLE_CAKE: + case LIGHT_BLUE_CONCRETE_POWDER: + case LIGHT_GRAY_CANDLE_CAKE: + case LIGHT_GRAY_CONCRETE_POWDER: + case LIGHT_WEIGHTED_PRESSURE_PLATE: + case LIME_CANDLE_CAKE: + case LIME_CONCRETE_POWDER: + case MAGENTA_CANDLE_CAKE: + case MAGENTA_CONCRETE_POWDER: + case MAGMA_BLOCK: + case OAK_BUTTON: + case OAK_PRESSURE_PLATE: + case ORANGE_CANDLE_CAKE: + case ORANGE_CONCRETE_POWDER: + case PACKED_ICE: + case PINK_CANDLE_CAKE: + case PINK_CONCRETE_POWDER: + case PODZOL: + case POLISHED_BLACKSTONE_BUTTON: + case POLISHED_BLACKSTONE_PRESSURE_PLATE: + case PURPLE_CANDLE_CAKE: + case PURPLE_CONCRETE_POWDER: + case RED_CANDLE_CAKE: + case RED_CONCRETE_POWDER: + case RED_SAND: + case ROOTED_DIRT: + case SAND: + case SOUL_SAND: + case SOUL_SOIL: + case SPRUCE_BUTTON: + case SPRUCE_PRESSURE_PLATE: + case STONE_BUTTON: + case STONE_PRESSURE_PLATE: + case TARGET: + case TURTLE_EGG: + case WARPED_BUTTON: + case WARPED_PRESSURE_PLATE: + case WHITE_CANDLE_CAKE: + case WHITE_CONCRETE_POWDER: + case YELLOW_CANDLE_CAKE: + case YELLOW_CONCRETE_POWDER: + return 0.5F; + case BEEHIVE: + case CLAY: + case COMPOSTER: + case FARMLAND: + case GRASS_BLOCK: + case GRAVEL: + case HONEYCOMB_BLOCK: + case MYCELIUM: + case SPONGE: + case WET_SPONGE: + return 0.6F; + case DIRT_PATH: + return 0.65F; + case ACTIVATOR_RAIL: + case DETECTOR_RAIL: + case POWERED_RAIL: + case RAIL: + return 0.7F; + case CALCITE: + case INFESTED_CHISELED_STONE_BRICKS: + case INFESTED_COBBLESTONE: + case INFESTED_CRACKED_STONE_BRICKS: + case INFESTED_DEEPSLATE: + case INFESTED_MOSSY_STONE_BRICKS: + case INFESTED_STONE: + case INFESTED_STONE_BRICKS: + return 0.75F; + case BLACK_WOOL: + case BLUE_WOOL: + case BROWN_WOOL: + case CHISELED_QUARTZ_BLOCK: + case CHISELED_RED_SANDSTONE: + case CHISELED_SANDSTONE: + case CUT_RED_SANDSTONE: + case CUT_SANDSTONE: + case CYAN_WOOL: + case GRAY_WOOL: + case GREEN_WOOL: + case LIGHT_BLUE_WOOL: + case LIGHT_GRAY_WOOL: + case LIME_WOOL: + case MAGENTA_WOOL: + case NOTE_BLOCK: + case ORANGE_WOOL: + case PINK_WOOL: + case PURPLE_WOOL: + case QUARTZ_BLOCK: + case QUARTZ_BRICKS: + case QUARTZ_PILLAR: + case QUARTZ_STAIRS: + case RED_SANDSTONE: + case RED_SANDSTONE_STAIRS: + case RED_SANDSTONE_WALL: + case RED_WOOL: + case SANDSTONE: + case SANDSTONE_STAIRS: + case SANDSTONE_WALL: + case WHITE_WOOL: + case YELLOW_WOOL: + return 0.8F; + case ACACIA_SIGN: + case ACACIA_WALL_SIGN: + case BAMBOO: + case BAMBOO_SAPLING: + case BIRCH_SIGN: + case BIRCH_WALL_SIGN: + case BLACK_BANNER: + case BLACK_WALL_BANNER: + case BLUE_BANNER: + case BLUE_WALL_BANNER: + case BROWN_BANNER: + case BROWN_WALL_BANNER: + case CARVED_PUMPKIN: + case CREEPER_HEAD: + case CREEPER_WALL_HEAD: + case CRIMSON_SIGN: + case CRIMSON_WALL_SIGN: + case CYAN_BANNER: + case CYAN_WALL_BANNER: + case DARK_OAK_SIGN: + case DARK_OAK_WALL_SIGN: + case DRAGON_HEAD: + case DRAGON_WALL_HEAD: + case DRIPSTONE_BLOCK: + case GRAY_BANNER: + case GRAY_WALL_BANNER: + case GREEN_BANNER: + case GREEN_WALL_BANNER: case JACK_O_LANTERN: case JUNGLE_SIGN: case JUNGLE_WALL_SIGN: @@ -8228,9 +9209,16 @@ public enum Material implements Keyed { case WHITE_GLAZED_TERRACOTTA: case YELLOW_GLAZED_TERRACOTTA: return 1.4F; + case AMETHYST_BLOCK: + case AMETHYST_CLUSTER: case BOOKSHELF: + case BUDDING_AMETHYST: + case LARGE_AMETHYST_BUD: + case MEDIUM_AMETHYST_BUD: case PISTON: case PISTON_HEAD: + case SCULK_SENSOR: + case SMALL_AMETHYST_BUD: case STICKY_PISTON: return 1.5F; case BLACK_CONCRETE: @@ -8269,6 +9257,7 @@ public enum Material implements Keyed { case GREEN_SHULKER_BOX: case JUNGLE_LOG: case JUNGLE_WOOD: + case LAVA_CAULDRON: case LIGHT_BLUE_SHULKER_BOX: case LIGHT_GRAY_SHULKER_BOX: case LIME_SHULKER_BOX: @@ -8277,6 +9266,7 @@ public enum Material implements Keyed { case OAK_WOOD: case ORANGE_SHULKER_BOX: case PINK_SHULKER_BOX: + case POWDER_SNOW_CAULDRON: case PURPLE_SHULKER_BOX: case RED_SHULKER_BOX: case SHULKER_BOX: @@ -8301,6 +9291,7 @@ public enum Material implements Keyed { case STRIPPED_WARPED_STEM: case WARPED_HYPHAE: case WARPED_STEM: + case WATER_CAULDRON: case WHITE_SHULKER_BOX: case YELLOW_SHULKER_BOX: return 2.0F; @@ -8335,6 +9326,7 @@ public enum Material implements Keyed { case COAL_ORE: case COCOA: case CONDUIT: + case COPPER_ORE: case CRIMSON_DOOR: case CRIMSON_FENCE: case CRIMSON_FENCE_GATE: @@ -8349,6 +9341,14 @@ public enum Material implements Keyed { case DARK_OAK_SLAB: case DARK_OAK_STAIRS: case DARK_OAK_TRAPDOOR: + case DEEPSLATE_COAL_ORE: + case DEEPSLATE_COPPER_ORE: + case DEEPSLATE_DIAMOND_ORE: + case DEEPSLATE_EMERALD_ORE: + case DEEPSLATE_GOLD_ORE: + case DEEPSLATE_IRON_ORE: + case DEEPSLATE_LAPIS_ORE: + case DEEPSLATE_REDSTONE_ORE: case DIAMOND_ORE: case EMERALD_ORE: case GOLD_ORE: @@ -8372,6 +9372,7 @@ public enum Material implements Keyed { case OAK_STAIRS: case OAK_TRAPDOOR: case OBSERVER: + case POINTED_DRIPSTONE: case REDSTONE_ORE: case SPRUCE_DOOR: case SPRUCE_FENCE: @@ -8416,6 +9417,7 @@ public enum Material implements Keyed { case POLISHED_BASALT: case PURPLE_TERRACOTTA: case RED_TERRACOTTA: + case SMOOTH_BASALT: case TERRACOTTA: case WHITE_TERRACOTTA: case YELLOW_TERRACOTTA: @@ -8442,17 +9444,28 @@ public enum Material implements Keyed { case BRICK_WALL: case BUBBLE_CORAL_BLOCK: case CHAIN: + case CHISELED_DEEPSLATE: case CHISELED_NETHER_BRICKS: case CHISELED_POLISHED_BLACKSTONE: case CHISELED_STONE_BRICKS: case COAL_BLOCK: + case COBBLED_DEEPSLATE: + case COBBLED_DEEPSLATE_SLAB: + case COBBLED_DEEPSLATE_STAIRS: + case COBBLED_DEEPSLATE_WALL: case COBBLESTONE: case COBBLESTONE_SLAB: case COBBLESTONE_STAIRS: case COBBLESTONE_WALL: + case COPPER_BLOCK: + case CRACKED_DEEPSLATE_BRICKS: + case CRACKED_DEEPSLATE_TILES: case CRACKED_NETHER_BRICKS: case CRACKED_POLISHED_BLACKSTONE_BRICKS: case CRACKED_STONE_BRICKS: + case CUT_COPPER: + case CUT_COPPER_SLAB: + case CUT_COPPER_STAIRS: case CUT_RED_SANDSTONE_SLAB: case CUT_SANDSTONE_SLAB: case DARK_PRISMARINE: @@ -8463,12 +9476,25 @@ public enum Material implements Keyed { case DEAD_FIRE_CORAL_BLOCK: case DEAD_HORN_CORAL_BLOCK: case DEAD_TUBE_CORAL_BLOCK: + case DEEPSLATE: + case DEEPSLATE_BRICKS: + case DEEPSLATE_BRICK_SLAB: + case DEEPSLATE_BRICK_STAIRS: + case DEEPSLATE_BRICK_WALL: + case DEEPSLATE_TILES: + case DEEPSLATE_TILE_SLAB: + case DEEPSLATE_TILE_STAIRS: + case DEEPSLATE_TILE_WALL: case DIAMOND_BLOCK: case DIORITE: case DIORITE_SLAB: case DIORITE_STAIRS: case DIORITE_WALL: case EMERALD_BLOCK: + case EXPOSED_COPPER: + case EXPOSED_CUT_COPPER: + case EXPOSED_CUT_COPPER_SLAB: + case EXPOSED_CUT_COPPER_STAIRS: case FIRE_CORAL_BLOCK: case GILDED_BLACKSTONE: case GOLD_BLOCK: @@ -8481,6 +9507,7 @@ public enum Material implements Keyed { case IRON_BARS: case IRON_BLOCK: case JUKEBOX: + case LIGHTNING_ROD: case MOSSY_COBBLESTONE: case MOSSY_COBBLESTONE_SLAB: case MOSSY_COBBLESTONE_STAIRS: @@ -8494,6 +9521,10 @@ public enum Material implements Keyed { case NETHER_BRICK_SLAB: case NETHER_BRICK_STAIRS: case NETHER_BRICK_WALL: + case OXIDIZED_COPPER: + case OXIDIZED_CUT_COPPER: + case OXIDIZED_CUT_COPPER_SLAB: + case OXIDIZED_CUT_COPPER_STAIRS: case PETRIFIED_OAK_SLAB: case POLISHED_ANDESITE: case POLISHED_ANDESITE_SLAB: @@ -8506,6 +9537,10 @@ public enum Material implements Keyed { case POLISHED_BLACKSTONE_SLAB: case POLISHED_BLACKSTONE_STAIRS: case POLISHED_BLACKSTONE_WALL: + case POLISHED_DEEPSLATE: + case POLISHED_DEEPSLATE_SLAB: + case POLISHED_DEEPSLATE_STAIRS: + case POLISHED_DEEPSLATE_WALL: case POLISHED_DIORITE: case POLISHED_DIORITE_SLAB: case POLISHED_DIORITE_STAIRS: @@ -8524,6 +9559,9 @@ public enum Material implements Keyed { case PURPUR_SLAB: case PURPUR_STAIRS: case QUARTZ_SLAB: + case RAW_COPPER_BLOCK: + case RAW_GOLD_BLOCK: + case RAW_IRON_BLOCK: case REDSTONE_BLOCK: case RED_NETHER_BRICKS: case RED_NETHER_BRICK_SLAB: @@ -8550,6 +9588,27 @@ public enum Material implements Keyed { case STONE_SLAB: case STONE_STAIRS: case TUBE_CORAL_BLOCK: + case TUFF: + case WAXED_COPPER_BLOCK: + case WAXED_CUT_COPPER: + case WAXED_CUT_COPPER_SLAB: + case WAXED_CUT_COPPER_STAIRS: + case WAXED_EXPOSED_COPPER: + case WAXED_EXPOSED_CUT_COPPER: + case WAXED_EXPOSED_CUT_COPPER_SLAB: + case WAXED_EXPOSED_CUT_COPPER_STAIRS: + case WAXED_OXIDIZED_COPPER: + case WAXED_OXIDIZED_CUT_COPPER: + case WAXED_OXIDIZED_CUT_COPPER_SLAB: + case WAXED_OXIDIZED_CUT_COPPER_STAIRS: + case WAXED_WEATHERED_COPPER: + case WAXED_WEATHERED_CUT_COPPER: + case WAXED_WEATHERED_CUT_COPPER_SLAB: + case WAXED_WEATHERED_CUT_COPPER_STAIRS: + case WEATHERED_COPPER: + case WEATHERED_CUT_COPPER: + case WEATHERED_CUT_COPPER_SLAB: + case WEATHERED_CUT_COPPER_STAIRS: return 6.0F; case DRAGON_EGG: case END_STONE: @@ -8584,6 +9643,7 @@ public enum Material implements Keyed { case STRUCTURE_BLOCK: return 3600000.0F; case BARRIER: + case LIGHT: return 3600000.8F; default: return 0; diff --git a/paper-api/src/main/java/org/bukkit/Particle.java b/paper-api/src/main/java/org/bukkit/Particle.java index b32de827cf..c5315ee1ed 100644 --- a/paper-api/src/main/java/org/bukkit/Particle.java +++ b/paper-api/src/main/java/org/bukkit/Particle.java @@ -82,6 +82,23 @@ public enum Particle { LANDING_OBSIDIAN_TEAR, REVERSE_PORTAL, WHITE_ASH, + LIGHT, + DUST_COLOR_TRANSITION(DustTransition.class), + VIBRATION(Vibration.class), + FALLING_SPORE_BLOSSOM, + SPORE_BLOSSOM_AIR, + SMALL_FLAME, + SNOWFLAKE, + DRIPPING_DRIPSTONE_LAVA, + FALLING_DRIPSTONE_LAVA, + DRIPPING_DRIPSTONE_WATER, + FALLING_DRIPSTONE_WATER, + GLOW_SQUID_INK, + GLOW, + WAX_ON, + WAX_OFF, + ELECTRIC_SPARK, + SCRAPE, // ----- Legacy Separator ----- LEGACY_BLOCK_CRACK(MaterialData.class), LEGACY_BLOCK_DUST(MaterialData.class), @@ -140,4 +157,29 @@ public enum Particle { return size; } } + + /** + * Options which can be applied to a color transitioning dust particles. + */ + public static class DustTransition extends DustOptions { + + private final Color toColor; + + public DustTransition(@NotNull Color fromColor, @NotNull Color toColor, float size) { + super(fromColor, size); + + Preconditions.checkArgument(toColor != null, "toColor"); + this.toColor = toColor; + } + + /** + * The final of the particles to be displayed. + * + * @return final particle color + */ + @NotNull + public Color getToColor() { + return toColor; + } + } } diff --git a/paper-api/src/main/java/org/bukkit/Registry.java b/paper-api/src/main/java/org/bukkit/Registry.java index 0fd586d605..a696fcaffa 100644 --- a/paper-api/src/main/java/org/bukkit/Registry.java +++ b/paper-api/src/main/java/org/bukkit/Registry.java @@ -170,6 +170,25 @@ public interface Registry extends Iterable { * @see Fluid */ Registry FLUID = new SimpleRegistry<>(Fluid.class); + /** + * Game events. + * + * @see GameEvent + */ + Registry GAME_EVENT = new Registry() { + + @NotNull + @Override + public Iterator iterator() { + return GameEvent.values().iterator(); + } + + @Nullable + @Override + public GameEvent get(@NotNull NamespacedKey key) { + return GameEvent.getByKey(key); + } + }; /** * Get the object by its key. diff --git a/paper-api/src/main/java/org/bukkit/Sound.java b/paper-api/src/main/java/org/bukkit/Sound.java index 768f35c19c..2c8cc0c2af 100644 --- a/paper-api/src/main/java/org/bukkit/Sound.java +++ b/paper-api/src/main/java/org/bukkit/Sound.java @@ -34,6 +34,17 @@ public enum Sound implements Keyed { AMBIENT_WARPED_FOREST_ADDITIONS("ambient.warped_forest.additions"), AMBIENT_WARPED_FOREST_LOOP("ambient.warped_forest.loop"), AMBIENT_WARPED_FOREST_MOOD("ambient.warped_forest.mood"), + BLOCK_AMETHYST_BLOCK_BREAK("block.amethyst_block.break"), + BLOCK_AMETHYST_BLOCK_CHIME("block.amethyst_block.chime"), + BLOCK_AMETHYST_BLOCK_FALL("block.amethyst_block.fall"), + BLOCK_AMETHYST_BLOCK_HIT("block.amethyst_block.hit"), + BLOCK_AMETHYST_BLOCK_PLACE("block.amethyst_block.place"), + BLOCK_AMETHYST_BLOCK_STEP("block.amethyst_block.step"), + BLOCK_AMETHYST_CLUSTER_BREAK("block.amethyst_cluster.break"), + BLOCK_AMETHYST_CLUSTER_FALL("block.amethyst_cluster.fall"), + BLOCK_AMETHYST_CLUSTER_HIT("block.amethyst_cluster.hit"), + BLOCK_AMETHYST_CLUSTER_PLACE("block.amethyst_cluster.place"), + BLOCK_AMETHYST_CLUSTER_STEP("block.amethyst_cluster.step"), BLOCK_ANCIENT_DEBRIS_BREAK("block.ancient_debris.break"), BLOCK_ANCIENT_DEBRIS_FALL("block.ancient_debris.fall"), BLOCK_ANCIENT_DEBRIS_HIT("block.ancient_debris.hit"), @@ -47,6 +58,16 @@ public enum Sound implements Keyed { BLOCK_ANVIL_PLACE("block.anvil.place"), BLOCK_ANVIL_STEP("block.anvil.step"), BLOCK_ANVIL_USE("block.anvil.use"), + BLOCK_AZALEA_BREAK("block.azalea.break"), + BLOCK_AZALEA_FALL("block.azalea.fall"), + BLOCK_AZALEA_HIT("block.azalea.hit"), + BLOCK_AZALEA_LEAVES_BREAK("block.azalea_leaves.break"), + BLOCK_AZALEA_LEAVES_FALL("block.azalea_leaves.fall"), + BLOCK_AZALEA_LEAVES_HIT("block.azalea_leaves.hit"), + BLOCK_AZALEA_LEAVES_PLACE("block.azalea_leaves.place"), + BLOCK_AZALEA_LEAVES_STEP("block.azalea_leaves.step"), + BLOCK_AZALEA_PLACE("block.azalea.place"), + BLOCK_AZALEA_STEP("block.azalea.step"), BLOCK_BAMBOO_BREAK("block.bamboo.break"), BLOCK_BAMBOO_FALL("block.bamboo.fall"), BLOCK_BAMBOO_HIT("block.bamboo.hit"), @@ -73,6 +94,13 @@ public enum Sound implements Keyed { BLOCK_BEEHIVE_WORK("block.beehive.work"), BLOCK_BELL_RESONATE("block.bell.resonate"), BLOCK_BELL_USE("block.bell.use"), + BLOCK_BIG_DRIPLEAF_BREAK("block.big_dripleaf.break"), + BLOCK_BIG_DRIPLEAF_FALL("block.big_dripleaf.fall"), + BLOCK_BIG_DRIPLEAF_HIT("block.big_dripleaf.hit"), + BLOCK_BIG_DRIPLEAF_PLACE("block.big_dripleaf.place"), + BLOCK_BIG_DRIPLEAF_STEP("block.big_dripleaf.step"), + BLOCK_BIG_DRIPLEAF_TILT_DOWN("block.big_dripleaf.tilt_down"), + BLOCK_BIG_DRIPLEAF_TILT_UP("block.big_dripleaf.tilt_up"), BLOCK_BLASTFURNACE_FIRE_CRACKLE("block.blastfurnace.fire_crackle"), BLOCK_BONE_BLOCK_BREAK("block.bone_block.break"), BLOCK_BONE_BLOCK_FALL("block.bone_block.fall"), @@ -85,7 +113,26 @@ public enum Sound implements Keyed { BLOCK_BUBBLE_COLUMN_UPWARDS_INSIDE("block.bubble_column.upwards_inside"), BLOCK_BUBBLE_COLUMN_WHIRLPOOL_AMBIENT("block.bubble_column.whirlpool_ambient"), BLOCK_BUBBLE_COLUMN_WHIRLPOOL_INSIDE("block.bubble_column.whirlpool_inside"), + BLOCK_CAKE_ADD_CANDLE("block.cake.add_candle"), + BLOCK_CALCITE_BREAK("block.calcite.break"), + BLOCK_CALCITE_FALL("block.calcite.fall"), + BLOCK_CALCITE_HIT("block.calcite.hit"), + BLOCK_CALCITE_PLACE("block.calcite.place"), + BLOCK_CALCITE_STEP("block.calcite.step"), BLOCK_CAMPFIRE_CRACKLE("block.campfire.crackle"), + BLOCK_CANDLE_AMBIENT("block.candle.ambient"), + BLOCK_CANDLE_BREAK("block.candle.break"), + BLOCK_CANDLE_EXTINGUISH("block.candle.extinguish"), + BLOCK_CANDLE_FALL("block.candle.fall"), + BLOCK_CANDLE_HIT("block.candle.hit"), + BLOCK_CANDLE_PLACE("block.candle.place"), + BLOCK_CANDLE_STEP("block.candle.step"), + BLOCK_CAVE_VINES_BREAK("block.cave_vines.break"), + BLOCK_CAVE_VINES_FALL("block.cave_vines.fall"), + BLOCK_CAVE_VINES_HIT("block.cave_vines.hit"), + BLOCK_CAVE_VINES_PICK_BERRIES("block.cave_vines.pick_berries"), + BLOCK_CAVE_VINES_PLACE("block.cave_vines.place"), + BLOCK_CAVE_VINES_STEP("block.cave_vines.step"), BLOCK_CHAIN_BREAK("block.chain.break"), BLOCK_CHAIN_FALL("block.chain.fall"), BLOCK_CHAIN_HIT("block.chain.hit"), @@ -106,15 +153,40 @@ public enum Sound implements Keyed { BLOCK_CONDUIT_AMBIENT_SHORT("block.conduit.ambient.short"), BLOCK_CONDUIT_ATTACK_TARGET("block.conduit.attack.target"), BLOCK_CONDUIT_DEACTIVATE("block.conduit.deactivate"), + BLOCK_COPPER_BREAK("block.copper.break"), + BLOCK_COPPER_FALL("block.copper.fall"), + BLOCK_COPPER_HIT("block.copper.hit"), + BLOCK_COPPER_PLACE("block.copper.place"), + BLOCK_COPPER_STEP("block.copper.step"), 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_CROP_BREAK("block.crop.break"), + BLOCK_DEEPSLATE_BREAK("block.deepslate.break"), + BLOCK_DEEPSLATE_BRICKS_BREAK("block.deepslate_bricks.break"), + BLOCK_DEEPSLATE_BRICKS_FALL("block.deepslate_bricks.fall"), + BLOCK_DEEPSLATE_BRICKS_HIT("block.deepslate_bricks.hit"), + BLOCK_DEEPSLATE_BRICKS_PLACE("block.deepslate_bricks.place"), + BLOCK_DEEPSLATE_BRICKS_STEP("block.deepslate_bricks.step"), + BLOCK_DEEPSLATE_FALL("block.deepslate.fall"), + BLOCK_DEEPSLATE_HIT("block.deepslate.hit"), + BLOCK_DEEPSLATE_PLACE("block.deepslate.place"), + BLOCK_DEEPSLATE_STEP("block.deepslate.step"), + BLOCK_DEEPSLATE_TILES_BREAK("block.deepslate_tiles.break"), + BLOCK_DEEPSLATE_TILES_FALL("block.deepslate_tiles.fall"), + BLOCK_DEEPSLATE_TILES_HIT("block.deepslate_tiles.hit"), + BLOCK_DEEPSLATE_TILES_PLACE("block.deepslate_tiles.place"), + BLOCK_DEEPSLATE_TILES_STEP("block.deepslate_tiles.step"), BLOCK_DISPENSER_DISPENSE("block.dispenser.dispense"), BLOCK_DISPENSER_FAIL("block.dispenser.fail"), BLOCK_DISPENSER_LAUNCH("block.dispenser.launch"), + BLOCK_DRIPSTONE_BLOCK_BREAK("block.dripstone_block.break"), + BLOCK_DRIPSTONE_BLOCK_FALL("block.dripstone_block.fall"), + BLOCK_DRIPSTONE_BLOCK_HIT("block.dripstone_block.hit"), + BLOCK_DRIPSTONE_BLOCK_PLACE("block.dripstone_block.place"), + BLOCK_DRIPSTONE_BLOCK_STEP("block.dripstone_block.step"), BLOCK_ENCHANTMENT_TABLE_USE("block.enchantment_table.use"), BLOCK_ENDER_CHEST_CLOSE("block.ender_chest.close"), BLOCK_ENDER_CHEST_OPEN("block.ender_chest.open"), @@ -125,6 +197,11 @@ public enum Sound implements Keyed { BLOCK_FENCE_GATE_OPEN("block.fence_gate.open"), BLOCK_FIRE_AMBIENT("block.fire.ambient"), BLOCK_FIRE_EXTINGUISH("block.fire.extinguish"), + BLOCK_FLOWERING_AZALEA_BREAK("block.flowering_azalea.break"), + BLOCK_FLOWERING_AZALEA_FALL("block.flowering_azalea.fall"), + BLOCK_FLOWERING_AZALEA_HIT("block.flowering_azalea.hit"), + BLOCK_FLOWERING_AZALEA_PLACE("block.flowering_azalea.place"), + BLOCK_FLOWERING_AZALEA_STEP("block.flowering_azalea.step"), BLOCK_FUNGUS_BREAK("block.fungus.break"), BLOCK_FUNGUS_FALL("block.fungus.fall"), BLOCK_FUNGUS_HIT("block.fungus.hit"), @@ -152,6 +229,11 @@ public enum Sound implements Keyed { BLOCK_GRAVEL_PLACE("block.gravel.place"), BLOCK_GRAVEL_STEP("block.gravel.step"), BLOCK_GRINDSTONE_USE("block.grindstone.use"), + BLOCK_HANGING_ROOTS_BREAK("block.hanging_roots.break"), + BLOCK_HANGING_ROOTS_FALL("block.hanging_roots.fall"), + BLOCK_HANGING_ROOTS_HIT("block.hanging_roots.hit"), + BLOCK_HANGING_ROOTS_PLACE("block.hanging_roots.place"), + BLOCK_HANGING_ROOTS_STEP("block.hanging_roots.step"), BLOCK_HONEY_BLOCK_BREAK("block.honey_block.break"), BLOCK_HONEY_BLOCK_FALL("block.honey_block.fall"), BLOCK_HONEY_BLOCK_HIT("block.honey_block.hit"), @@ -172,6 +254,8 @@ public enum Sound implements Keyed { BLOCK_LANTERN_HIT("block.lantern.hit"), BLOCK_LANTERN_PLACE("block.lantern.place"), BLOCK_LANTERN_STEP("block.lantern.step"), + BLOCK_LARGE_AMETHYST_BUD_BREAK("block.large_amethyst_bud.break"), + BLOCK_LARGE_AMETHYST_BUD_PLACE("block.large_amethyst_bud.place"), BLOCK_LAVA_AMBIENT("block.lava.ambient"), BLOCK_LAVA_EXTINGUISH("block.lava.extinguish"), BLOCK_LAVA_POP("block.lava.pop"), @@ -182,6 +266,8 @@ public enum Sound implements Keyed { BLOCK_LODESTONE_HIT("block.lodestone.hit"), BLOCK_LODESTONE_PLACE("block.lodestone.place"), BLOCK_LODESTONE_STEP("block.lodestone.step"), + BLOCK_MEDIUM_AMETHYST_BUD_BREAK("block.medium_amethyst_bud.break"), + BLOCK_MEDIUM_AMETHYST_BUD_PLACE("block.medium_amethyst_bud.place"), BLOCK_METAL_BREAK("block.metal.break"), BLOCK_METAL_FALL("block.metal.fall"), BLOCK_METAL_HIT("block.metal.hit"), @@ -189,6 +275,16 @@ public enum Sound implements Keyed { BLOCK_METAL_PRESSURE_PLATE_CLICK_OFF("block.metal_pressure_plate.click_off"), BLOCK_METAL_PRESSURE_PLATE_CLICK_ON("block.metal_pressure_plate.click_on"), BLOCK_METAL_STEP("block.metal.step"), + BLOCK_MOSS_BREAK("block.moss.break"), + BLOCK_MOSS_CARPET_BREAK("block.moss_carpet.break"), + BLOCK_MOSS_CARPET_FALL("block.moss_carpet.fall"), + BLOCK_MOSS_CARPET_HIT("block.moss_carpet.hit"), + BLOCK_MOSS_CARPET_PLACE("block.moss_carpet.place"), + BLOCK_MOSS_CARPET_STEP("block.moss_carpet.step"), + BLOCK_MOSS_FALL("block.moss.fall"), + BLOCK_MOSS_HIT("block.moss.hit"), + BLOCK_MOSS_PLACE("block.moss.place"), + BLOCK_MOSS_STEP("block.moss.step"), BLOCK_NETHERITE_BLOCK_BREAK("block.netherite_block.break"), BLOCK_NETHERITE_BLOCK_FALL("block.netherite_block.fall"), BLOCK_NETHERITE_BLOCK_HIT("block.netherite_block.hit"), @@ -243,15 +339,40 @@ public enum Sound implements Keyed { BLOCK_NYLIUM_STEP("block.nylium.step"), BLOCK_PISTON_CONTRACT("block.piston.contract"), BLOCK_PISTON_EXTEND("block.piston.extend"), + BLOCK_POINTED_DRIPSTONE_BREAK("block.pointed_dripstone.break"), + BLOCK_POINTED_DRIPSTONE_DRIP_LAVA("block.pointed_dripstone.drip_lava"), + BLOCK_POINTED_DRIPSTONE_DRIP_LAVA_INTO_CAULDRON("block.pointed_dripstone.drip_lava_into_cauldron"), + BLOCK_POINTED_DRIPSTONE_DRIP_WATER("block.pointed_dripstone.drip_water"), + BLOCK_POINTED_DRIPSTONE_DRIP_WATER_INTO_CAULDRON("block.pointed_dripstone.drip_water_into_cauldron"), + BLOCK_POINTED_DRIPSTONE_FALL("block.pointed_dripstone.fall"), + BLOCK_POINTED_DRIPSTONE_HIT("block.pointed_dripstone.hit"), + BLOCK_POINTED_DRIPSTONE_LAND("block.pointed_dripstone.land"), + BLOCK_POINTED_DRIPSTONE_PLACE("block.pointed_dripstone.place"), + BLOCK_POINTED_DRIPSTONE_STEP("block.pointed_dripstone.step"), + BLOCK_POLISHED_DEEPSLATE_BREAK("block.polished_deepslate.break"), + BLOCK_POLISHED_DEEPSLATE_FALL("block.polished_deepslate.fall"), + BLOCK_POLISHED_DEEPSLATE_HIT("block.polished_deepslate.hit"), + BLOCK_POLISHED_DEEPSLATE_PLACE("block.polished_deepslate.place"), + BLOCK_POLISHED_DEEPSLATE_STEP("block.polished_deepslate.step"), BLOCK_PORTAL_AMBIENT("block.portal.ambient"), BLOCK_PORTAL_TRAVEL("block.portal.travel"), BLOCK_PORTAL_TRIGGER("block.portal.trigger"), + BLOCK_POWDER_SNOW_BREAK("block.powder_snow.break"), + BLOCK_POWDER_SNOW_FALL("block.powder_snow.fall"), + BLOCK_POWDER_SNOW_HIT("block.powder_snow.hit"), + BLOCK_POWDER_SNOW_PLACE("block.powder_snow.place"), + BLOCK_POWDER_SNOW_STEP("block.powder_snow.step"), BLOCK_PUMPKIN_CARVE("block.pumpkin.carve"), BLOCK_REDSTONE_TORCH_BURNOUT("block.redstone_torch.burnout"), BLOCK_RESPAWN_ANCHOR_AMBIENT("block.respawn_anchor.ambient"), BLOCK_RESPAWN_ANCHOR_CHARGE("block.respawn_anchor.charge"), BLOCK_RESPAWN_ANCHOR_DEPLETE("block.respawn_anchor.deplete"), BLOCK_RESPAWN_ANCHOR_SET_SPAWN("block.respawn_anchor.set_spawn"), + BLOCK_ROOTED_DIRT_BREAK("block.rooted_dirt.break"), + BLOCK_ROOTED_DIRT_FALL("block.rooted_dirt.fall"), + BLOCK_ROOTED_DIRT_HIT("block.rooted_dirt.hit"), + BLOCK_ROOTED_DIRT_PLACE("block.rooted_dirt.place"), + BLOCK_ROOTED_DIRT_STEP("block.rooted_dirt.step"), BLOCK_ROOTS_BREAK("block.roots.break"), BLOCK_ROOTS_FALL("block.roots.fall"), BLOCK_ROOTS_HIT("block.roots.hit"), @@ -267,6 +388,13 @@ public enum Sound implements Keyed { BLOCK_SCAFFOLDING_HIT("block.scaffolding.hit"), BLOCK_SCAFFOLDING_PLACE("block.scaffolding.place"), BLOCK_SCAFFOLDING_STEP("block.scaffolding.step"), + BLOCK_SCULK_SENSOR_BREAK("block.sculk_sensor.break"), + BLOCK_SCULK_SENSOR_CLICKING("block.sculk_sensor.clicking"), + BLOCK_SCULK_SENSOR_CLICKING_STOP("block.sculk_sensor.clicking_stop"), + BLOCK_SCULK_SENSOR_FALL("block.sculk_sensor.fall"), + BLOCK_SCULK_SENSOR_HIT("block.sculk_sensor.hit"), + BLOCK_SCULK_SENSOR_PLACE("block.sculk_sensor.place"), + BLOCK_SCULK_SENSOR_STEP("block.sculk_sensor.step"), BLOCK_SHROOMLIGHT_BREAK("block.shroomlight.break"), BLOCK_SHROOMLIGHT_FALL("block.shroomlight.fall"), BLOCK_SHROOMLIGHT_HIT("block.shroomlight.hit"), @@ -279,6 +407,13 @@ public enum Sound implements Keyed { BLOCK_SLIME_BLOCK_HIT("block.slime_block.hit"), BLOCK_SLIME_BLOCK_PLACE("block.slime_block.place"), BLOCK_SLIME_BLOCK_STEP("block.slime_block.step"), + BLOCK_SMALL_AMETHYST_BUD_BREAK("block.small_amethyst_bud.break"), + BLOCK_SMALL_AMETHYST_BUD_PLACE("block.small_amethyst_bud.place"), + BLOCK_SMALL_DRIPLEAF_BREAK("block.small_dripleaf.break"), + BLOCK_SMALL_DRIPLEAF_FALL("block.small_dripleaf.fall"), + BLOCK_SMALL_DRIPLEAF_HIT("block.small_dripleaf.hit"), + BLOCK_SMALL_DRIPLEAF_PLACE("block.small_dripleaf.place"), + BLOCK_SMALL_DRIPLEAF_STEP("block.small_dripleaf.step"), BLOCK_SMITHING_TABLE_USE("block.smithing_table.use"), BLOCK_SMOKER_SMOKE("block.smoker.smoke"), BLOCK_SNOW_BREAK("block.snow.break"), @@ -296,6 +431,11 @@ public enum Sound implements Keyed { BLOCK_SOUL_SOIL_HIT("block.soul_soil.hit"), BLOCK_SOUL_SOIL_PLACE("block.soul_soil.place"), BLOCK_SOUL_SOIL_STEP("block.soul_soil.step"), + BLOCK_SPORE_BLOSSOM_BREAK("block.spore_blossom.break"), + BLOCK_SPORE_BLOSSOM_FALL("block.spore_blossom.fall"), + BLOCK_SPORE_BLOSSOM_HIT("block.spore_blossom.hit"), + BLOCK_SPORE_BLOSSOM_PLACE("block.spore_blossom.place"), + BLOCK_SPORE_BLOSSOM_STEP("block.spore_blossom.step"), BLOCK_STEM_BREAK("block.stem.break"), BLOCK_STEM_FALL("block.stem.fall"), BLOCK_STEM_HIT("block.stem.hit"), @@ -311,11 +451,21 @@ public enum Sound implements Keyed { BLOCK_STONE_PRESSURE_PLATE_CLICK_ON("block.stone_pressure_plate.click_on"), BLOCK_STONE_STEP("block.stone.step"), 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"), 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"), + BLOCK_TUFF_FALL("block.tuff.fall"), + BLOCK_TUFF_HIT("block.tuff.hit"), + BLOCK_TUFF_PLACE("block.tuff.place"), + BLOCK_TUFF_STEP("block.tuff.step"), + BLOCK_VINE_BREAK("block.vine.break"), + BLOCK_VINE_FALL("block.vine.fall"), + BLOCK_VINE_HIT("block.vine.hit"), + BLOCK_VINE_PLACE("block.vine.place"), BLOCK_VINE_STEP("block.vine.step"), BLOCK_WART_BLOCK_BREAK("block.wart_block.break"), BLOCK_WART_BLOCK_FALL("block.wart_block.fall"), @@ -359,6 +509,13 @@ public enum Sound implements Keyed { ENTITY_ARROW_HIT("entity.arrow.hit"), ENTITY_ARROW_HIT_PLAYER("entity.arrow.hit_player"), ENTITY_ARROW_SHOOT("entity.arrow.shoot"), + ENTITY_AXOLOTL_ATTACK("entity.axolotl.attack"), + ENTITY_AXOLOTL_DEATH("entity.axolotl.death"), + ENTITY_AXOLOTL_HURT("entity.axolotl.hurt"), + ENTITY_AXOLOTL_IDLE_AIR("entity.axolotl.idle_air"), + ENTITY_AXOLOTL_IDLE_WATER("entity.axolotl.idle_water"), + ENTITY_AXOLOTL_SPLASH("entity.axolotl.splash"), + ENTITY_AXOLOTL_SWIM("entity.axolotl.swim"), ENTITY_BAT_AMBIENT("entity.bat.ambient"), ENTITY_BAT_DEATH("entity.bat.death"), ENTITY_BAT_HURT("entity.bat.hurt"), @@ -508,6 +665,32 @@ public enum Sound implements Keyed { ENTITY_GHAST_SCREAM("entity.ghast.scream"), ENTITY_GHAST_SHOOT("entity.ghast.shoot"), ENTITY_GHAST_WARN("entity.ghast.warn"), + ENTITY_GLOW_ITEM_FRAME_ADD_ITEM("entity.glow_item_frame.add_item"), + ENTITY_GLOW_ITEM_FRAME_BREAK("entity.glow_item_frame.break"), + ENTITY_GLOW_ITEM_FRAME_PLACE("entity.glow_item_frame.place"), + ENTITY_GLOW_ITEM_FRAME_REMOVE_ITEM("entity.glow_item_frame.remove_item"), + ENTITY_GLOW_ITEM_FRAME_ROTATE_ITEM("entity.glow_item_frame.rotate_item"), + ENTITY_GLOW_SQUID_AMBIENT("entity.glow_squid.ambient"), + ENTITY_GLOW_SQUID_DEATH("entity.glow_squid.death"), + ENTITY_GLOW_SQUID_HURT("entity.glow_squid.hurt"), + ENTITY_GLOW_SQUID_SQUIRT("entity.glow_squid.squirt"), + ENTITY_GOAT_AMBIENT("entity.goat.ambient"), + ENTITY_GOAT_DEATH("entity.goat.death"), + ENTITY_GOAT_EAT("entity.goat.eat"), + ENTITY_GOAT_HURT("entity.goat.hurt"), + ENTITY_GOAT_LONG_JUMP("entity.goat.long_jump"), + ENTITY_GOAT_MILK("entity.goat.milk"), + ENTITY_GOAT_PREPARE_RAM("entity.goat.prepare_ram"), + ENTITY_GOAT_RAM_IMPACT("entity.goat.ram_impact"), + ENTITY_GOAT_SCREAMING_AMBIENT("entity.goat.screaming.ambient"), + ENTITY_GOAT_SCREAMING_DEATH("entity.goat.screaming.death"), + ENTITY_GOAT_SCREAMING_EAT("entity.goat.screaming.eat"), + ENTITY_GOAT_SCREAMING_HURT("entity.goat.screaming.hurt"), + ENTITY_GOAT_SCREAMING_LONG_JUMP("entity.goat.screaming.long_jump"), + ENTITY_GOAT_SCREAMING_MILK("entity.goat.screaming.milk"), + ENTITY_GOAT_SCREAMING_PREPARE_RAM("entity.goat.screaming.prepare_ram"), + ENTITY_GOAT_SCREAMING_RAM_IMPACT("entity.goat.screaming.ram_impact"), + ENTITY_GOAT_STEP("entity.goat.step"), ENTITY_GUARDIAN_AMBIENT("entity.guardian.ambient"), ENTITY_GUARDIAN_AMBIENT_LAND("entity.guardian.ambient_land"), ENTITY_GUARDIAN_ATTACK("entity.guardian.attack"), @@ -590,6 +773,7 @@ public enum Sound implements Keyed { ENTITY_MAGMA_CUBE_SQUISH("entity.magma_cube.squish"), ENTITY_MAGMA_CUBE_SQUISH_SMALL("entity.magma_cube.squish_small"), ENTITY_MINECART_INSIDE("entity.minecart.inside"), + ENTITY_MINECART_INSIDE_UNDERWATER("entity.minecart.inside.underwater"), ENTITY_MINECART_RIDING("entity.minecart.riding"), ENTITY_MOOSHROOM_CONVERT("entity.mooshroom.convert"), ENTITY_MOOSHROOM_EAT("entity.mooshroom.eat"), @@ -699,6 +883,7 @@ public enum Sound implements Keyed { ENTITY_PLAYER_DEATH("entity.player.death"), ENTITY_PLAYER_HURT("entity.player.hurt"), ENTITY_PLAYER_HURT_DROWN("entity.player.hurt_drown"), + ENTITY_PLAYER_HURT_FREEZE("entity.player.hurt_freeze"), ENTITY_PLAYER_HURT_ON_FIRE("entity.player.hurt_on_fire"), ENTITY_PLAYER_HURT_SWEET_BERRY_BUSH("entity.player.hurt_sweet_berry_bush"), ENTITY_PLAYER_LEVELUP("entity.player.levelup"), @@ -756,6 +941,7 @@ public enum Sound implements Keyed { ENTITY_SILVERFISH_HURT("entity.silverfish.hurt"), ENTITY_SILVERFISH_STEP("entity.silverfish.step"), ENTITY_SKELETON_AMBIENT("entity.skeleton.ambient"), + ENTITY_SKELETON_CONVERTED_TO_STRAY("entity.skeleton.converted_to_stray"), ENTITY_SKELETON_DEATH("entity.skeleton.death"), ENTITY_SKELETON_HORSE_AMBIENT("entity.skeleton_horse.ambient"), ENTITY_SKELETON_HORSE_AMBIENT_WATER("entity.skeleton_horse.ambient_water"), @@ -925,18 +1111,25 @@ public enum Sound implements Keyed { ITEM_ARMOR_EQUIP_LEATHER("item.armor.equip_leather"), ITEM_ARMOR_EQUIP_NETHERITE("item.armor.equip_netherite"), ITEM_ARMOR_EQUIP_TURTLE("item.armor.equip_turtle"), + ITEM_AXE_SCRAPE("item.axe.scrape"), ITEM_AXE_STRIP("item.axe.strip"), + ITEM_AXE_WAX_OFF("item.axe.wax_off"), + ITEM_BONE_MEAL_USE("item.bone_meal.use"), ITEM_BOOK_PAGE_TURN("item.book.page_turn"), ITEM_BOOK_PUT("item.book.put"), ITEM_BOTTLE_EMPTY("item.bottle.empty"), ITEM_BOTTLE_FILL("item.bottle.fill"), ITEM_BOTTLE_FILL_DRAGONBREATH("item.bottle.fill_dragonbreath"), ITEM_BUCKET_EMPTY("item.bucket.empty"), + ITEM_BUCKET_EMPTY_AXOLOTL("item.bucket.empty_axolotl"), ITEM_BUCKET_EMPTY_FISH("item.bucket.empty_fish"), ITEM_BUCKET_EMPTY_LAVA("item.bucket.empty_lava"), + ITEM_BUCKET_EMPTY_POWDER_SNOW("item.bucket.empty_powder_snow"), ITEM_BUCKET_FILL("item.bucket.fill"), + ITEM_BUCKET_FILL_AXOLOTL("item.bucket.fill_axolotl"), ITEM_BUCKET_FILL_FISH("item.bucket.fill_fish"), ITEM_BUCKET_FILL_LAVA("item.bucket.fill_lava"), + ITEM_BUCKET_FILL_POWDER_SNOW("item.bucket.fill_powder_snow"), ITEM_CHORUS_FRUIT_TELEPORT("item.chorus_fruit.teleport"), ITEM_CROP_PLANT("item.crop.plant"), ITEM_CROSSBOW_HIT("item.crossbow.hit"), @@ -947,17 +1140,22 @@ public enum Sound implements Keyed { ITEM_CROSSBOW_QUICK_CHARGE_2("item.crossbow.quick_charge_2"), ITEM_CROSSBOW_QUICK_CHARGE_3("item.crossbow.quick_charge_3"), ITEM_CROSSBOW_SHOOT("item.crossbow.shoot"), + ITEM_DYE_USE("item.dye.use"), ITEM_ELYTRA_FLYING("item.elytra.flying"), ITEM_FIRECHARGE_USE("item.firecharge.use"), ITEM_FLINTANDSTEEL_USE("item.flintandsteel.use"), + ITEM_GLOW_INK_SAC_USE("item.glow_ink_sac.use"), ITEM_HOE_TILL("item.hoe.till"), + ITEM_HONEYCOMB_WAX_ON("item.honeycomb.wax_on"), ITEM_HONEY_BOTTLE_DRINK("item.honey_bottle.drink"), + ITEM_INK_SAC_USE("item.ink_sac.use"), ITEM_LODESTONE_COMPASS_LOCK("item.lodestone_compass.lock"), ITEM_NETHER_WART_PLANT("item.nether_wart.plant"), ITEM_SHIELD_BLOCK("item.shield.block"), ITEM_SHIELD_BREAK("item.shield.break"), ITEM_SHOVEL_FLATTEN("item.shovel.flatten"), - ITEM_SWEET_BERRIES_PICK_FROM_BUSH("item.sweet_berries.pick_from_bush"), + ITEM_SPYGLASS_STOP_USING("item.spyglass.stop_using"), + ITEM_SPYGLASS_USE("item.spyglass.use"), ITEM_TOTEM_USE("item.totem.use"), ITEM_TRIDENT_HIT("item.trident.hit"), ITEM_TRIDENT_HIT_GROUND("item.trident.hit_ground"), diff --git a/paper-api/src/main/java/org/bukkit/Statistic.java b/paper-api/src/main/java/org/bukkit/Statistic.java index 5cb41f417e..4ce888688d 100644 --- a/paper-api/src/main/java/org/bukkit/Statistic.java +++ b/paper-api/src/main/java/org/bukkit/Statistic.java @@ -23,6 +23,7 @@ public enum Statistic implements Keyed { * Name is misleading, actually records ticks played. */ PLAY_ONE_MINUTE, + TOTAL_WORLD_TIME, WALK_ONE_CM, WALK_ON_WATER_ONE_CM, FALL_ONE_CM, diff --git a/paper-api/src/main/java/org/bukkit/Tag.java b/paper-api/src/main/java/org/bukkit/Tag.java index aacbfadc91..53b66c28f0 100644 --- a/paper-api/src/main/java/org/bukkit/Tag.java +++ b/paper-api/src/main/java/org/bukkit/Tag.java @@ -194,10 +194,46 @@ public interface Tag extends Keyed { * Vanilla block tag representing all gold ores. */ Tag GOLD_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("gold_ores"), Material.class); + /** + * Vanilla block tag representing all iron ores. + */ + Tag IRON_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("iron_ores"), Material.class); + /** + * Vanilla block tag representing all diamond ores. + */ + Tag DIAMOND_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("diamond_ores"), Material.class); + /** + * Vanilla block tag representing all redstone ores. + */ + Tag REDSTONE_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("redstone_ores"), Material.class); + /** + * Vanilla block tag representing all lapis ores. + */ + Tag LAPIS_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("lapis_ores"), Material.class); + /** + * Vanilla block tag representing all coal ores. + */ + Tag COAL_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("coal_ores"), Material.class); + /** + * Vanilla block tag representing all emerald ores. + */ + Tag EMERALD_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("emerald_ores"), Material.class); + /** + * Vanilla block tag representing all copper ores. + */ + Tag COPPER_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("copper_ores"), Material.class); /** * Vanilla block tag representing all non flammable wood. */ Tag NON_FLAMMABLE_WOOD = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("non_flammable_wood"), Material.class); + /** + * Vanilla block tag representing all candles. + */ + Tag CANDLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("candles"), Material.class); + /** + * Vanilla block tag representing all dirt. + */ + Tag DIRT = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dirt"), Material.class); /** * Vanilla block tag denoting blocks that enderman may pick up and hold. */ @@ -343,6 +379,8 @@ public interface Tag extends Keyed { * Vanilla block tag representing all unstable bottom center blocks. */ Tag UNSTABLE_BOTTOM_CENTER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("unstable_bottom_center"), Material.class); + Tag MUSHROOM_GROW_BLOCK = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mushroom_grow_block"), Material.class); + /** * Vanilla block tag representing all blocks that burn forever in the * overworld. @@ -357,6 +395,106 @@ public interface Tag extends Keyed { * Vanilla block tag representing all blocks that burn forever in the end. */ Tag INFINIBURN_END = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("infiniburn_end"), Material.class); + /** + * Vanilla block tag representing the overworld base material. + */ + Tag BASE_STONE_OVERWORLD = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("base_stone_overworld"), Material.class); + /** + * Vanilla block tag representing all blocks that may be replaced by ores. + */ + Tag STONE_ORE_REPLACEABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stone_ore_replaceables"), Material.class); + /** + * Vanilla block tag representing all blocks that may be replaced by deepslate ores. + */ + Tag DEEPSLATE_ORE_REPLACEABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("deepslate_ore_replaceables"), Material.class); + /** + * Vanilla block tag representing the nether base material. + */ + Tag BASE_STONE_NETHER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("base_stone_nether"), Material.class); + /** + * Vanilla block tag representing all candle cakes. + */ + Tag CANDLE_CAKES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("candle_cakes"), Material.class); + /** + * Vanilla block tag representing all cauldrons. + */ + Tag CAULDRONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("cauldrons"), Material.class); + /** + * Vanilla block tag representing all blocks that make cryustal sounds. + */ + Tag CRYSTAL_SOUND_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("crystal_sound_blocks"), Material.class); + /** + * Vanilla block tag representing all blocks that play muffled step sounds. + */ + Tag INSIDE_STEP_SOUND_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("inside_step_sound_blocks"), Material.class); + /** + * Vanilla block tag representing all blocks that block vibration signals. + */ + Tag OCCLUDES_VIBRATION_SIGNALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("occludes_vibration_signals"), Material.class); + /** + * Vanilla block tag representing all blocks that are replaceable by dripstone. + */ + Tag DRIPSTONE_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dripstone_replaceable_blocks"), Material.class); + /** + * Vanilla block tag representing all cave vines. + */ + Tag CAVE_VINES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("cave_vines"), Material.class); + /** + * Vanilla block tag representing all blocks replaceable by moss. + */ + Tag MOSS_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("moss_replaceable"), Material.class); + /** + * Vanilla block tag representing all blocks replaceable by lush ground. + */ + Tag LUSH_GROUND_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("lush_ground_replaceable"), Material.class); + /** + * Vanilla block tag representing all blocks which small dripleaf can be placed on. + */ + Tag SMALL_DRIPLEAF_PLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("small_dripleaf_placeable"), Material.class); + /** + * Vanilla block tag representing all snow blocks. + */ + Tag SNOW = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("snow"), Material.class); + /** + * Vanilla block tag representing all blocks mineable with an axe. + */ + Tag MINEABLE_AXE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/axe"), Material.class); + /** + * Vanilla block tag representing all blocks mineable with a hoe. + */ + Tag MINEABLE_HOE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/hoe"), Material.class); + /** + * Vanilla block tag representing all blocks mineable with a pickaxe. + */ + Tag MINEABLE_PICKAXE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/pickaxe"), Material.class); + /** + * Vanilla block tag representing all blocks mineable with a shovel. + */ + Tag MINEABLE_SHOVEL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/shovel"), Material.class); + /** + * Vanilla block tag representing all blocks which require a diamond tool. + */ + Tag NEEDS_DIAMOND_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("needs_diamond_tool"), Material.class); + /** + * Vanilla block tag representing all blocks which require an iron tool. + */ + Tag NEEDS_IRON_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("needs_iron_tool"), Material.class); + /** + * Vanilla block tag representing all blocks which require a stone tool. + */ + Tag NEEDS_STONE_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("needs_stone_tool"), Material.class); + /** + * Vanilla block tag representing all blocks which will not be replaced by world generation features. + */ + Tag FEATURES_CANNOT_REPLACE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("features_cannot_replace"), Material.class); + /** + * Vanilla block tag representing all blocks which lava pools will not replace. + */ + Tag LAVA_POOL_STONE_CANNOT_REPLACE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("lava_pool_stone_replaceables"), Material.class); + /** + * Vanilla block tag representing all blocks which geodes will not spawn in. + */ + Tag GEODE_INVALID_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("geode_invalid_blocks"), Material.class); /** * Key for the built in item registry. */ @@ -365,6 +503,18 @@ public interface Tag extends Keyed { * Vanilla item tag representing all items loved by piglins. */ Tag ITEMS_PIGLIN_LOVED = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_loved"), Material.class); + /** + * Vanilla item tag representing all items ignored by piglin babies. + */ + Tag IGNORED_BY_PIGLIN_BABIES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("ignored_by_piglin_babies"), Material.class); + /** + * Vanilla item tag representing all piglin food. + */ + Tag PIGLIN_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_food"), Material.class); + /** + * Vanilla item tag representing all fox food. + */ + Tag FOX_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("fox_food"), Material.class); /** * Vanilla item tag representing all banner items. */ @@ -409,6 +559,20 @@ public interface Tag extends Keyed { * Vanilla item tag representing all furnace materials. */ Tag ITEMS_FURNACE_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("furnace_materials"), Material.class); + /** + * Vanilla item tag representing all items that confer freeze immunity on + * the wearer. + */ + Tag FREEZE_IMMUNE_WEARABLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("freeze_immune_wearables"), Material.class); + /** + * Vanilla item tag representing all items which tempt axolotls. + */ + Tag AXOLOTL_TEMPT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("axolotl_tempt_items"), Material.class); + /** + * Vanilla item tag representing all items which are preferred for + * harvesting clusters (unused). + */ + Tag CLUSTER_MAX_HARVESTABLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("cluster_max_harvestables"), Material.class); /** * Key for the built in fluid registry. */ diff --git a/paper-api/src/main/java/org/bukkit/TreeType.java b/paper-api/src/main/java/org/bukkit/TreeType.java index e8a6eecfa2..fec99b03bb 100644 --- a/paper-api/src/main/java/org/bukkit/TreeType.java +++ b/paper-api/src/main/java/org/bukkit/TreeType.java @@ -80,5 +80,9 @@ public enum TreeType { /** * Large warped fungus native to the nether */ - WARPED_FUNGUS + WARPED_FUNGUS, + /** + * Tree with large roots which grows above lush caves + */ + AZALEA } diff --git a/paper-api/src/main/java/org/bukkit/Vibration.java b/paper-api/src/main/java/org/bukkit/Vibration.java new file mode 100644 index 0000000000..8d568d21fc --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/Vibration.java @@ -0,0 +1,90 @@ +package org.bukkit; + +import org.bukkit.block.Block; +import org.bukkit.entity.Entity; +import org.jetbrains.annotations.NotNull; + +/** + * Represents a vibration from a Skulk sensor. + */ +public class Vibration { + + private final Location origin; + private final Destination destination; + private final int arrivalTime; + + public Vibration(@NotNull Location origin, @NotNull Destination destination, @NotNull int arrivalTime) { + this.origin = origin; + this.destination = destination; + this.arrivalTime = arrivalTime; + } + + /** + * Get the origin of the vibration. + * + * @return origin + */ + @NotNull + public Location getOrigin() { + return origin; + } + + /** + * Get the vibration destination. + * + * @return destination + */ + @NotNull + public Destination getDestination() { + return destination; + } + + /** + * Get the vibration arrival time in ticks. + * + * @return arrival time + */ + public int getArrivalTime() { + return arrivalTime; + } + + public interface Destination { + + public static class EntityDestination implements Destination { + + private final Entity entity; + + public EntityDestination(@NotNull Entity entity) { + this.entity = entity; + } + + @NotNull + public Entity getEntity() { + return entity; + } + } + + public static class BlockDestination implements Destination { + + private final Location block; + + public BlockDestination(@NotNull Location block) { + this.block = block; + } + + public BlockDestination(@NotNull Block block) { + this(block.getLocation()); + } + + @NotNull + public Location getLocation() { + return block; + } + + @NotNull + public Block getBlock() { + return block.getBlock(); + } + } + } +} diff --git a/paper-api/src/main/java/org/bukkit/block/Biome.java b/paper-api/src/main/java/org/bukkit/block/Biome.java index 5650eeca7a..2d28eeeddb 100644 --- a/paper-api/src/main/java/org/bukkit/block/Biome.java +++ b/paper-api/src/main/java/org/bukkit/block/Biome.java @@ -88,6 +88,8 @@ public enum Biome implements Keyed { CRIMSON_FOREST, WARPED_FOREST, BASALT_DELTAS, + DRIPSTONE_CAVES, + LUSH_CAVES, /** * Represents a custom Biome */ diff --git a/paper-api/src/main/java/org/bukkit/block/SculkSensor.java b/paper-api/src/main/java/org/bukkit/block/SculkSensor.java new file mode 100644 index 0000000000..1896611782 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/SculkSensor.java @@ -0,0 +1,27 @@ +package org.bukkit.block; + +/** + * Represents a captured state of a sculk sensor + */ +public interface SculkSensor extends TileState { + + /** + * Gets the last vibration frequency of this sensor. + * + * Different activities detected by the sensor will produce different + * frequencies and dictate the output of connected comparators. + * + * @return frequency between 0-15. + */ + int getLastVibrationFrequency(); + + /** + * Sets the last vibration frequency of this sensor. + * + * Different activities detected by the sensor will produce different + * frequencies and dictate the output of connected comparators. + * + * @param lastVibrationFrequency frequency between 0-15. + */ + void setLastVibrationFrequency(int lastVibrationFrequency); +} diff --git a/paper-api/src/main/java/org/bukkit/block/Sign.java b/paper-api/src/main/java/org/bukkit/block/Sign.java index 7e3cf00e49..a52dff9ef1 100644 --- a/paper-api/src/main/java/org/bukkit/block/Sign.java +++ b/paper-api/src/main/java/org/bukkit/block/Sign.java @@ -61,4 +61,18 @@ public interface Sign extends TileState, Colorable { * @param editable if this sign is currently editable */ public void setEditable(boolean editable); + + /** + * Gets whether this sign has glowing text. + * + * @return if this sign has glowing text + */ + public boolean isGlowingText(); + + /** + * Sets whether this sign has glowing text. + * + * @param glowing if this sign has glowing text + */ + public void setGlowingText(boolean glowing); } diff --git a/paper-api/src/main/java/org/bukkit/block/data/Rail.java b/paper-api/src/main/java/org/bukkit/block/data/Rail.java index b899388001..c8bdab081a 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/Rail.java +++ b/paper-api/src/main/java/org/bukkit/block/data/Rail.java @@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull; * Some types of rail may not be able to be laid out in all shapes, use * {@link #getShapes()} to get those applicable to this block. */ -public interface Rail extends BlockData { +public interface Rail extends Waterlogged { /** * Gets the value of the 'shape' property. diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/AmethystCluster.java b/paper-api/src/main/java/org/bukkit/block/data/type/AmethystCluster.java new file mode 100644 index 0000000000..52b0ea4b3b --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/AmethystCluster.java @@ -0,0 +1,7 @@ +package org.bukkit.block.data.type; + +import org.bukkit.block.data.Directional; +import org.bukkit.block.data.Waterlogged; + +public interface AmethystCluster extends Directional, Waterlogged { +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/BigDripleaf.java b/paper-api/src/main/java/org/bukkit/block/data/type/BigDripleaf.java new file mode 100644 index 0000000000..04285684d3 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/BigDripleaf.java @@ -0,0 +1,46 @@ +package org.bukkit.block.data.type; + +import org.jetbrains.annotations.NotNull; + +/** + * 'tilt' indicates how far the leaf is tilted. + */ +public interface BigDripleaf extends Dripleaf { + + /** + * Gets the value of the 'tilt' property. + * + * @return the 'tilt' value + */ + @NotNull + Tilt getTilt(); + + /** + * Sets the value of the 'tilt' property. + * + * @param tilt the new 'tilt' value + */ + void setTilt(@NotNull Tilt tilt); + + /** + * The tilt of a leaf. + */ + public enum Tilt { + /** + * No tilt. + */ + NONE, + /** + * Unstable tilt. + */ + UNSTABLE, + /** + * Partial tilt. + */ + PARTIAL, + /** + * Pinball. + */ + FULL; + } +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Candle.java b/paper-api/src/main/java/org/bukkit/block/data/type/Candle.java new file mode 100644 index 0000000000..d4d08bd424 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Candle.java @@ -0,0 +1,31 @@ +package org.bukkit.block.data.type; + +import org.bukkit.block.data.Lightable; +import org.bukkit.block.data.Waterlogged; + +/** + * 'candles' represents the number of candles which are present. + */ +public interface Candle extends Lightable, Waterlogged { + + /** + * Gets the value of the 'candles' property. + * + * @return the 'candles' value + */ + int getCandles(); + + /** + * Sets the value of the 'candles' property. + * + * @param candles the new 'candles' value + */ + void setCandles(int candles); + + /** + * Gets the maximum allowed value of the 'candles' property. + * + * @return the maximum 'candles' value + */ + int getMaximumCandles(); +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/CaveVines.java b/paper-api/src/main/java/org/bukkit/block/data/type/CaveVines.java new file mode 100644 index 0000000000..859d52c8c2 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/CaveVines.java @@ -0,0 +1,6 @@ +package org.bukkit.block.data.type; + +import org.bukkit.block.data.Ageable; + +public interface CaveVines extends Ageable, CaveVinesPlant { +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/CaveVinesPlant.java b/paper-api/src/main/java/org/bukkit/block/data/type/CaveVinesPlant.java new file mode 100644 index 0000000000..2b814a188b --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/CaveVinesPlant.java @@ -0,0 +1,21 @@ +package org.bukkit.block.data.type; + +/** + * 'berries' indicates whether the block has berries. + */ +public interface CaveVinesPlant { + + /** + * Gets the value of the 'berries' property. + * + * @return the 'berries' value + */ + boolean isBerries(); + + /** + * Sets the value of the 'berries' property. + * + * @param berries the new 'berries' value + */ + void setBerries(boolean berries); +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Dripleaf.java b/paper-api/src/main/java/org/bukkit/block/data/type/Dripleaf.java new file mode 100644 index 0000000000..31347f52bb --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Dripleaf.java @@ -0,0 +1,7 @@ +package org.bukkit.block.data.type; + +import org.bukkit.block.data.Directional; +import org.bukkit.block.data.Waterlogged; + +public interface Dripleaf extends Directional, Waterlogged { +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/GlowLichen.java b/paper-api/src/main/java/org/bukkit/block/data/type/GlowLichen.java new file mode 100644 index 0000000000..93b8ad4fba --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/GlowLichen.java @@ -0,0 +1,7 @@ +package org.bukkit.block.data.type; + +import org.bukkit.block.data.MultipleFacing; +import org.bukkit.block.data.Waterlogged; + +public interface GlowLichen extends MultipleFacing, Waterlogged { +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Light.java b/paper-api/src/main/java/org/bukkit/block/data/type/Light.java new file mode 100644 index 0000000000..832ca18ed4 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Light.java @@ -0,0 +1,7 @@ +package org.bukkit.block.data.type; + +import org.bukkit.block.data.Levelled; +import org.bukkit.block.data.Waterlogged; + +public interface Light extends Levelled, Waterlogged { +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/LightningRod.java b/paper-api/src/main/java/org/bukkit/block/data/type/LightningRod.java new file mode 100644 index 0000000000..c99c57cbe5 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/LightningRod.java @@ -0,0 +1,8 @@ +package org.bukkit.block.data.type; + +import org.bukkit.block.data.Directional; +import org.bukkit.block.data.Powerable; +import org.bukkit.block.data.Waterlogged; + +public interface LightningRod extends Directional, Powerable, Waterlogged { +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/PointedDripstone.java b/paper-api/src/main/java/org/bukkit/block/data/type/PointedDripstone.java new file mode 100644 index 0000000000..ae604692f7 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/PointedDripstone.java @@ -0,0 +1,83 @@ +package org.bukkit.block.data.type; + +import java.util.Set; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Waterlogged; +import org.jetbrains.annotations.NotNull; + +/** + * 'thickness' represents the dripstone thickness. + *
+ * 'vertical_direction' represents the dripstone orientation. + *
+ * Some blocks may not be able to face in all directions, use + * {@link #getVerticalDirections()} to get all possible directions for this + * block. + */ +public interface PointedDripstone extends Waterlogged { + + /** + * Gets the value of the 'vertical_direction' property. + * + * @return the 'vertical_direction' value + */ + @NotNull + BlockFace getVerticalDirection(); + + /** + * Sets the value of the 'vertical_direction' property. + * + * @param direction the new 'vertical_direction' value + */ + void setVerticalDirection(@NotNull BlockFace direction); + + /** + * Gets the faces which are applicable to this block. + * + * @return the allowed 'vertical_direction' values + */ + @NotNull + Set getVerticalDirections(); + + /** + * Gets the value of the 'thickness' property. + * + * @return the 'thickness' value + */ + @NotNull + Thickness getThickness(); + + /** + * Sets the value of the 'thickness' property. + * + * @param thickness the new 'thickness' value + */ + void setThickness(@NotNull Thickness thickness); + + /** + * Represents the thickness of the dripstone, corresponding to its position + * within a multi-block dripstone formation. + */ + public enum Thickness { + /** + * Extended tip. + */ + TIP_MERGE, + /** + * Just the tip. + */ + TIP, + /** + * Top section. + */ + FRUSTUM, + /** + * Middle section. + */ + MIDDLE, + /** + * Base. + */ + BASE; + } +} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/SculkSensor.java b/paper-api/src/main/java/org/bukkit/block/data/type/SculkSensor.java new file mode 100644 index 0000000000..1af390e2ec --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/SculkSensor.java @@ -0,0 +1,45 @@ +package org.bukkit.block.data.type; + +import org.bukkit.block.data.AnaloguePowerable; +import org.bukkit.block.data.Waterlogged; +import org.jetbrains.annotations.NotNull; + +/** + * 'sculk_sensor_phase' indicates the current operational phase of the sensor. + */ +public interface SculkSensor extends AnaloguePowerable, Waterlogged { + + /** + * Gets the value of the 'sculk_sensor_phase' property. + * + * @return the 'sculk_sensor_phase' value + */ + @NotNull + Phase getPhase(); + + /** + * Sets the value of the 'sculk_sensor_phase' property. + * + * @param phase the new 'sculk_sensor_phase' value + */ + void setPhase(@NotNull Phase phase); + + /** + * The Phase of the sensor. + */ + public enum Phase { + + /** + * The sensor is inactive. + */ + INACTIVE, + /** + * The sensor is active. + */ + ACTIVE, + /** + * The sensor is cooling down. + */ + COOLDOWN; + } +} diff --git a/paper-api/src/main/java/org/bukkit/entity/Axolotl.java b/paper-api/src/main/java/org/bukkit/entity/Axolotl.java new file mode 100644 index 0000000000..9763f3b9ac --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/entity/Axolotl.java @@ -0,0 +1,69 @@ +package org.bukkit.entity; + +import org.jetbrains.annotations.NotNull; + +/** + * An Axolotl. + */ +public interface Axolotl extends Animals { + + /** + * Gets if this axolotl is playing dead. + * + * An axolotl may play dead when it is damaged underwater. + * + * @return playing dead status + */ + boolean isPlayingDead(); + + /** + * Sets if this axolotl is playing dead. + * + * An axolotl may play dead when it is damaged underwater. + * + * @param playingDead playing dead status + */ + void setPlayingDead(boolean playingDead); + + /** + * Get the variant of this axolotl. + * + * @return axolotl variant + */ + @NotNull + Variant getVariant(); + + /** + * Set the variant of this axolotl. + * + * @param variant axolotl variant + */ + void setVariant(@NotNull Variant variant); + + /** + * Represents the variant of a axolotl - ie its color. + */ + public enum Variant { + + /** + * Leucistic (pink) axolotl. + */ + LUCY, + /** + * Brown axolotl. + */ + WILD, + /** + * Gold axolotl. + */ + GOLD, + /** + * Cyan axolotl. + */ + CYAN, + /** + * Blue axolotl. + */ + BLUE; + } +} diff --git a/paper-api/src/main/java/org/bukkit/entity/Endermite.java b/paper-api/src/main/java/org/bukkit/entity/Endermite.java index d9be83961b..9e7f42caab 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Endermite.java +++ b/paper-api/src/main/java/org/bukkit/entity/Endermite.java @@ -8,7 +8,9 @@ public interface Endermite extends Monster { * An Endermite spawned by a player will be attacked by nearby Enderman. * * @return player spawned status + * @deprecated this functionality no longer exists */ + @Deprecated boolean isPlayerSpawned(); /** @@ -17,6 +19,8 @@ public interface Endermite extends Monster { * An Endermite spawned by a player will be attacked by nearby Enderman. * * @param playerSpawned player spawned status + * @deprecated this functionality no longer exists */ + @Deprecated void setPlayerSpawned(boolean playerSpawned); } diff --git a/paper-api/src/main/java/org/bukkit/entity/Entity.java b/paper-api/src/main/java/org/bukkit/entity/Entity.java index 28e2ef4312..beafbcdebe 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Entity.java +++ b/paper-api/src/main/java/org/bukkit/entity/Entity.java @@ -204,6 +204,52 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ public void setFireTicks(int ticks); + /** + * Gets if the entity has visual fire (it will always appear to be on fire). + * + * @param fire whether visual fire is enabled + */ + void setVisualFire(boolean fire); + + /** + * Sets if the entity has visual fire (it will always appear to be on fire). + * + * @return whether visual fire is enabled + */ + boolean isVisualFire(); + + /** + * Returns the entity's current freeze ticks (amount of ticks the entity has + * been in powdered snow). + * + * @return int freeze ticks + */ + int getFreezeTicks(); + + /** + * Returns the entity's maximum freeze ticks (amount of ticks before it will + * be fully frozen) + * + * @return int max freeze ticks + */ + int getMaxFreezeTicks(); + + /** + * Sets the entity's current freeze ticks (amount of ticks the entity has + * been in powdered snow). + * + * @param ticks Current ticks + */ + void setFreezeTicks(int ticks); + + /** + * Gets if the entity is fully frozen (it has been in powdered snow for max + * freeze ticks). + * + * @return freeze status + */ + boolean isFrozen(); + /** * Mark the entity's removal. */ 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 774363a818..9be5371c7f 100644 --- a/paper-api/src/main/java/org/bukkit/entity/EntityType.java +++ b/paper-api/src/main/java/org/bukkit/entity/EntityType.java @@ -266,6 +266,11 @@ public enum EntityType implements Keyed { STRIDER("strider", Strider.class, -1), ZOGLIN("zoglin", Zoglin.class, -1), PIGLIN_BRUTE("piglin_brute", PiglinBrute.class, -1), + AXOLOTL("axolotl", Axolotl.class, -1), + GLOW_ITEM_FRAME("glow_item_frame", GlowItemFrame.class, -1), + GLOW_SQUID("glow_squid", GlowSquid.class, -1), + GOAT("goat", Goat.class, -1), + MARKER("marker", Marker.class, -1), /** * A fishing line and bobber. */ diff --git a/paper-api/src/main/java/org/bukkit/entity/GlowItemFrame.java b/paper-api/src/main/java/org/bukkit/entity/GlowItemFrame.java new file mode 100644 index 0000000000..749803e603 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/entity/GlowItemFrame.java @@ -0,0 +1,7 @@ +package org.bukkit.entity; + +/** + * A Glow Item Frame. + */ +public interface GlowItemFrame extends ItemFrame { +} diff --git a/paper-api/src/main/java/org/bukkit/entity/GlowSquid.java b/paper-api/src/main/java/org/bukkit/entity/GlowSquid.java new file mode 100644 index 0000000000..fc80cb3da7 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/entity/GlowSquid.java @@ -0,0 +1,25 @@ +package org.bukkit.entity; + +/** + * A Glow Squid. + */ +public interface GlowSquid extends Squid { + + /** + * Get the number of dark ticks remaining for this squid. + * + * Bravo Six will go dark for 100 ticks (5 seconds) if damaged. + * + * @return dark ticks remaining + */ + int getDarkTicksRemaining(); + + /** + * Sets the number of dark ticks remaining for this squid. + * + * Bravo Six will go dark for 100 ticks (5 seconds) if damaged. + * + * @param darkTicksRemaining dark ticks remaining + */ + void setDarkTicksRemaining(int darkTicksRemaining); +} diff --git a/paper-api/src/main/java/org/bukkit/entity/Goat.java b/paper-api/src/main/java/org/bukkit/entity/Goat.java new file mode 100644 index 0000000000..90e9028b5e --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/entity/Goat.java @@ -0,0 +1,27 @@ +package org.bukkit.entity; + +/** + * A Goat. + */ +public interface Goat extends Animals { + + /** + * Gets if this is a screaming goat. + * + * A screaming goat makes screaming sounds and rams more often. They do not + * offer home loans. + * + * @return screaming status + */ + boolean isScreaming(); + + /** + * Sets if this is a screaming goat. + * + * A screaming goat makes screaming sounds and rams more often. They do not + * offer home loans. + * + * @param screaming screaming status + */ + void setScreaming(boolean screaming); +} diff --git a/paper-api/src/main/java/org/bukkit/entity/Marker.java b/paper-api/src/main/java/org/bukkit/entity/Marker.java new file mode 100644 index 0000000000..5591013a70 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/entity/Marker.java @@ -0,0 +1,7 @@ +package org.bukkit.entity; + +/** + * A Marker entity, exists only on the server. + */ +public interface Marker extends Entity { +} diff --git a/paper-api/src/main/java/org/bukkit/entity/Pose.java b/paper-api/src/main/java/org/bukkit/entity/Pose.java index b6e0c6f534..b236da56d5 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Pose.java +++ b/paper-api/src/main/java/org/bukkit/entity/Pose.java @@ -30,6 +30,10 @@ public enum Pose { * Entity is sneaking. */ SNEAKING, + /** + * Entity is long jumping. + */ + LONG_JUMPING, /** * Entity is dead. */ diff --git a/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java b/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java index 905d5f6d16..d023b6497c 100644 --- a/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java +++ b/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java @@ -59,6 +59,12 @@ public final class MemoryKey implements Keyed { public static final MemoryKey ADMIRING_ITEM = new MemoryKey<>(NamespacedKey.minecraft("admiring_item"), Boolean.class); public static final MemoryKey ADMIRING_DISABLED = new MemoryKey<>(NamespacedKey.minecraft("admiring_disabled"), Boolean.class); public static final MemoryKey HUNTED_RECENTLY = new MemoryKey<>(NamespacedKey.minecraft("hunted_recently"), Boolean.class); + public static final MemoryKey PLAY_DEAD_TICKS = new MemoryKey<>(NamespacedKey.minecraft("play_dead_ticks"), Integer.class); + public static final MemoryKey TEMPTATION_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("temptation_cooldown_ticks"), Integer.class); + public static final MemoryKey IS_TEMPTED = new MemoryKey<>(NamespacedKey.minecraft("is_tempted"), Boolean.class); + public static final MemoryKey LONG_JUMP_COOLING_DOWN = new MemoryKey<>(NamespacedKey.minecraft("long_jump_cooling_down"), Integer.class); + public static final MemoryKey HAS_HUNTING_COOLDOWN = new MemoryKey<>(NamespacedKey.minecraft("has_hunting_cooldown"), Boolean.class); + public static final MemoryKey RAM_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("ram_cooldown_ticks"), Integer.class); /** * Returns a {@link MemoryKey} by a {@link NamespacedKey}. diff --git a/paper-api/src/main/java/org/bukkit/event/block/CauldronLevelChangeEvent.java b/paper-api/src/main/java/org/bukkit/event/block/CauldronLevelChangeEvent.java index 4aaa78afdd..2519e3eb9c 100644 --- a/paper-api/src/main/java/org/bukkit/event/block/CauldronLevelChangeEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/block/CauldronLevelChangeEvent.java @@ -1,7 +1,11 @@ package org.bukkit.event.block; import com.google.common.base.Preconditions; +import org.bukkit.Material; import org.bukkit.block.Block; +import org.bukkit.block.BlockState; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Levelled; import org.bukkit.entity.Entity; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; @@ -15,15 +19,13 @@ public class CauldronLevelChangeEvent extends BlockEvent implements Cancellable // private final Entity entity; private final ChangeReason reason; - private final int oldLevel; - private int newLevel; + private final BlockState newState; - public CauldronLevelChangeEvent(@NotNull Block block, @Nullable Entity entity, @NotNull ChangeReason reason, int oldLevel, int newLevel) { + public CauldronLevelChangeEvent(@NotNull Block block, @Nullable Entity entity, @NotNull ChangeReason reason, @NotNull BlockState newBlock) { super(block); this.entity = entity; this.reason = reason; - this.oldLevel = oldLevel; - this.newLevel = newLevel; + this.newState = newBlock; } /** @@ -41,17 +43,59 @@ public class CauldronLevelChangeEvent extends BlockEvent implements Cancellable return reason; } + /** + * Gets the new state of the cauldron. + * + * @return The block state of the block that will be changed + */ + @NotNull + public BlockState getNewState() { + return newState; + } + + /** + * Gets the old level of the cauldron. + * + * @return old level + * @deprecated not all cauldron contents are Levelled + * @see #getBlock() + */ + @Deprecated public int getOldLevel() { - return oldLevel; + BlockData oldBlock = getBlock().getBlockData(); + return (oldBlock instanceof Levelled) ? ((Levelled) oldBlock).getLevel() : ((oldBlock.getMaterial() == Material.CAULDRON) ? 0 : 3); } + /** + * Gets the new level of the cauldron. + * + * @return new level + * @deprecated not all cauldron contents are Levelled + * @see #getNewState() + */ + @Deprecated public int getNewLevel() { - return newLevel; + BlockData newBlock = newState.getBlockData(); + return (newBlock instanceof Levelled) ? ((Levelled) newBlock).getLevel() : ((newBlock.getMaterial() == Material.CAULDRON) ? 0 : 3); } + /** + * Sets the new level of the cauldron. + * + * @param newLevel new level + * @deprecated not all cauldron contents are Levelled + * @see #getNewState() + */ + @Deprecated public void setNewLevel(int newLevel) { Preconditions.checkArgument(0 <= newLevel && newLevel <= 3, "Cauldron level out of bounds 0 <= %s <= 3", newLevel); - this.newLevel = newLevel; + if (newLevel == 0) { + newState.setType(Material.CAULDRON); + } else if (newState.getBlockData() instanceof Levelled) { + ((Levelled) newState.getBlockData()).setLevel(newLevel); + } else { + // Error, non-levellable block + } } @Override @@ -100,6 +144,10 @@ public class CauldronLevelChangeEvent extends BlockEvent implements Cancellable * Player cleaning their armor. */ ARMOR_WASH, + /** + * Player cleaning a shulker box. + */ + SHULKER_WASH, /** * Entity being extinguished. */ @@ -108,6 +156,10 @@ public class CauldronLevelChangeEvent extends BlockEvent implements Cancellable * Evaporating due to biome dryness. */ EVAPORATE, + /** + * Filling due to natural fluid sources, eg rain. + */ + NATURAL_FILL, /** * Unknown. */ diff --git a/paper-api/src/main/java/org/bukkit/event/entity/EntityDamageEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/EntityDamageEvent.java index feec8b1e15..196e6d2ab5 100644 --- a/paper-api/src/main/java/org/bukkit/event/entity/EntityDamageEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/entity/EntityDamageEvent.java @@ -429,6 +429,12 @@ public class EntityDamageEvent extends EntityEvent implements Cancellable { *

* Damage: 1 */ - DRYOUT + DRYOUT, + /** + * Damage caused from freezing. + *

+ * Damage: 1 or 5 + */ + FREEZE; } } diff --git a/paper-api/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java index 16b5fd279b..b915c3cab1 100644 --- a/paper-api/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java @@ -170,6 +170,10 @@ public class EntityPotionEffectEvent extends EntityEvent implements Cancellable * attack (e.g. a cave spider or a shulker bullet). */ ATTACK, + /** + * When an entity gets the effect from an axolotl. + */ + AXOLOTL, /** * When beacon effects get applied due to the entity being nearby. */ diff --git a/paper-api/src/main/java/org/bukkit/event/world/GenericGameEvent.java b/paper-api/src/main/java/org/bukkit/event/world/GenericGameEvent.java new file mode 100644 index 0000000000..fed29b2cb2 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/event/world/GenericGameEvent.java @@ -0,0 +1,103 @@ +package org.bukkit.event.world; + +import com.google.common.base.Preconditions; +import org.bukkit.GameEvent; +import org.bukkit.Location; +import org.bukkit.entity.Entity; +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Represents a generic Mojang game event. + * + * Specific Bukkit events should be used where possible, this event is mainly + * used internally by Sculk sensors. + */ +public class GenericGameEvent extends WorldEvent implements Cancellable { + + private static final HandlerList handlers = new HandlerList(); + private final GameEvent event; + private final Location location; + private final Entity entity; + private int radius; + private boolean cancelled; + + public GenericGameEvent(@NotNull GameEvent event, @NotNull Location location, @Nullable Entity entity, int radius) { + super(location.getWorld()); + this.event = event; + this.location = location; + this.entity = entity; + } + + /** + * Get the underlying event. + * + * @return the event + */ + @NotNull + public GameEvent getEvent() { + return event; + } + + /** + * Get the location where the event occurred. + * + * @return event location + */ + @NotNull + public Location getLocation() { + return location; + } + + /** + * Get the entity which triggered this event, if present. + * + * @return triggering entity or null + */ + @Nullable + public Entity getEntity() { + return entity; + } + + /** + * Get the block radius to which this event will be broadcast. + * + * @return broadcast radius + */ + public int getRadius() { + return radius; + } + + /** + * Set the radius to which the event should be broadcast. + * + * @param radius radius, must be greater than or equal to 0 + */ + public void setRadius(int radius) { + Preconditions.checkArgument(radius >= 0, "Radius must be >= 0"); + this.radius = radius; + } + + @Override + public void setCancelled(boolean cancel) { + this.cancelled = cancel; + } + + @Override + public boolean isCancelled() { + return cancelled; + } + + @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + + @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/paper-api/src/main/java/org/bukkit/generator/ChunkGenerator.java b/paper-api/src/main/java/org/bukkit/generator/ChunkGenerator.java index 7caef27682..9d7592988a 100644 --- a/paper-api/src/main/java/org/bukkit/generator/ChunkGenerator.java +++ b/paper-api/src/main/java/org/bukkit/generator/ChunkGenerator.java @@ -231,6 +231,15 @@ public abstract class ChunkGenerator { * Data for a Chunk. */ public static interface ChunkData { + /** + * Get the minimum height for the chunk. + * + * Setting blocks below this height will do nothing. + * + * @return the minimum height + */ + public int getMinHeight(); + /** * Get the maximum height for the chunk. * @@ -246,7 +255,7 @@ public abstract class ChunkGenerator { * Note: setting blocks outside the chunk's bounds does nothing. * * @param x the x location in the chunk from 0-15 inclusive - * @param y the y location in the chunk from 0 (inclusive) - maxHeight (exclusive) + * @param y the y location in the chunk from minHeight (inclusive) - maxHeight (exclusive) * @param z the z location in the chunk from 0-15 inclusive * @param material the type to set the block to */ @@ -258,7 +267,7 @@ public abstract class ChunkGenerator { * Setting blocks outside the chunk's bounds does nothing. * * @param x the x location in the chunk from 0-15 inclusive - * @param y the y location in the chunk from 0 (inclusive) - maxHeight (exclusive) + * @param y the y location in the chunk from minHeight (inclusive) - maxHeight (exclusive) * @param z the z location in the chunk from 0-15 inclusive * @param material the type to set the block to */ @@ -270,7 +279,7 @@ public abstract class ChunkGenerator { * Setting blocks outside the chunk's bounds does nothing. * * @param x the x location in the chunk from 0-15 inclusive - * @param y the y location in the chunk from 0 (inclusive) - maxHeight (exclusive) + * @param y the y location in the chunk from minHeight (inclusive) - maxHeight (exclusive) * @param z the z location in the chunk from 0-15 inclusive * @param blockData the type to set the block to */ @@ -330,7 +339,7 @@ public abstract class ChunkGenerator { * Getting blocks outside the chunk's bounds returns air. * * @param x the x location in the chunk from 0-15 inclusive - * @param y the y location in the chunk from 0 (inclusive) - maxHeight (exclusive) + * @param y the y location in the chunk from minHeight (inclusive) - maxHeight (exclusive) * @param z the z location in the chunk from 0-15 inclusive * @return the type of the block or Material.AIR if x, y or z are outside the chunk's bounds */ @@ -343,7 +352,7 @@ public abstract class ChunkGenerator { * Getting blocks outside the chunk's bounds returns air. * * @param x the x location in the chunk from 0-15 inclusive - * @param y the y location in the chunk from 0 (inclusive) - maxHeight (exclusive) + * @param y the y location in the chunk from minHeight (inclusive) - maxHeight (exclusive) * @param z the z location in the chunk from 0-15 inclusive * @return the type and data of the block or the MaterialData for air if x, y or z are outside the chunk's bounds */ @@ -356,7 +365,7 @@ public abstract class ChunkGenerator { * Getting blocks outside the chunk's bounds returns air. * * @param x the x location in the chunk from 0-15 inclusive - * @param y the y location in the chunk from 0 (inclusive) - maxHeight (exclusive) + * @param y the y location in the chunk from minHeight (inclusive) - maxHeight (exclusive) * @param z the z location in the chunk from 0-15 inclusive * @return the data of the block or the BlockData for air if x, y or z are outside the chunk's bounds */ @@ -369,7 +378,7 @@ public abstract class ChunkGenerator { * Getting blocks outside the chunk's bounds returns 0. * * @param x the x location in the chunk from 0-15 inclusive - * @param y the y location in the chunk from 0 (inclusive) - maxHeight (exclusive) + * @param y the y location in the chunk from minHeight (inclusive) - maxHeight (exclusive) * @param z the z location in the chunk from 0-15 inclusive * @return the block data value or air if x, y or z are outside the chunk's bounds * @deprecated Uses magic values diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java b/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java new file mode 100644 index 0000000000..bc992fdf6d --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/BundleMeta.java @@ -0,0 +1,40 @@ +package org.bukkit.inventory.meta; + +import java.util.List; +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public interface BundleMeta extends ItemMeta { + + /** + * Returns whether the item has any items. + * + * @return whether items are present + */ + boolean hasItems(); + + /** + * Returns an immutable list of the items stored in this item. + * + * @return items + */ + @NotNull + List getItems(); + + /** + * Sets the items stored in this item. + * + * Removes all items when given null. + * + * @param items the items to set + */ + void setItems(@Nullable List items); + + /** + * Adds an item to this item. + * + * @param item item to add + */ + void addItem(@NotNull ItemStack item); +} 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 0ca9d41414..036da4056d 100644 --- a/paper-api/src/main/java/org/bukkit/loot/LootTables.java +++ b/paper-api/src/main/java/org/bukkit/loot/LootTables.java @@ -60,6 +60,7 @@ public enum LootTables implements Keyed { WOODLAND_MANSION("chests/woodland_mansion"), // Entities ARMOR_STAND("entities/armor_stand"), + AXOLOTL("entities/axolotl"), BAT("entities/bat"), BEE("entities/bee"), BLAZE("entities/blaze"), @@ -73,13 +74,15 @@ public enum LootTables implements Keyed { DONKEY("entities/donkey"), DROWNED("entities/drowned"), ELDER_GUARDIAN("entities/elder_guardian"), + ENDER_DRAGON("entities/ender_dragon"), ENDERMAN("entities/enderman"), ENDERMITE("entities/endermite"), - ENDER_DRAGON("entities/ender_dragon"), EVOKER("entities/evoker"), FOX("entities/fox"), GHAST("entities/ghast"), GIANT("entities/giant"), + GLOW_SQUID("entities/glow_squid"), + GOAT("entities/goat"), GUARDIAN("entities/guardian"), HOGLIN("entities/hoglin"), HORSE("entities/horse"), diff --git a/paper-api/src/main/java/org/bukkit/map/MapPalette.java b/paper-api/src/main/java/org/bukkit/map/MapPalette.java index 95fe3f4d08..198c4c39d1 100644 --- a/paper-api/src/main/java/org/bukkit/map/MapPalette.java +++ b/paper-api/src/main/java/org/bukkit/map/MapPalette.java @@ -93,7 +93,10 @@ public final class MapPalette { c(15, 88, 94), c(18, 108, 115), c(22, 126, 134), c(11, 66, 70), c(40, 100, 98), c(50, 122, 120), c(58, 142, 140), c(30, 75, 74), c(60, 31, 43), c(74, 37, 53), c(86, 44, 62), c(45, 23, 32), - c(14, 127, 93), c(17, 155, 114), c(20, 180, 133), c(10, 95, 70) + c(14, 127, 93), c(17, 155, 114), c(20, 180, 133), c(10, 95, 70), + c(70, 70, 70), c(86, 86, 86), c(100, 100, 100), c(52, 52, 52), + c(152, 123, 103), c(186, 150, 126), c(216, 175, 147), c(114, 92, 77), + c(89, 117, 105), c(109, 144, 129), c(127, 167, 150), c(67, 88, 79) }; // Interface