diff --git a/paper-api/pom.xml b/paper-api/pom.xml
index fe3531a12..de35ebbd2 100644
--- a/paper-api/pom.xml
+++ b/paper-api/pom.xml
@@ -5,7 +5,7 @@
org.bukkit
bukkit
- 1.19.2-R0.1-SNAPSHOT
+ 1.19.3-R0.1-SNAPSHOT
jar
Bukkit
@@ -35,14 +35,14 @@
com.google.guava
guava
- 31.0.1-jre
+ 31.1-jre
compile
com.google.code.gson
gson
- 2.8.9
+ 2.10
compile
diff --git a/paper-api/src/main/java/org/bukkit/Bukkit.java b/paper-api/src/main/java/org/bukkit/Bukkit.java
index 4bc8b661f..5a884154a 100644
--- a/paper-api/src/main/java/org/bukkit/Bukkit.java
+++ b/paper-api/src/main/java/org/bukkit/Bukkit.java
@@ -1013,7 +1013,9 @@ public final class Bukkit {
* message to the client when the player sends a message
*
* @return true if the server should send a preview, false otherwise
+ * @deprecated chat previews have been removed
*/
+ @Deprecated
public static boolean shouldSendChatPreviews() {
return server.shouldSendChatPreviews();
}
diff --git a/paper-api/src/main/java/org/bukkit/GameRule.java b/paper-api/src/main/java/org/bukkit/GameRule.java
index dddc450e1..0a66077d1 100644
--- a/paper-api/src/main/java/org/bukkit/GameRule.java
+++ b/paper-api/src/main/java/org/bukkit/GameRule.java
@@ -177,6 +177,31 @@ public final class GameRule {
* Whether mobs will target all player entities once angered.
*/
public static final GameRule UNIVERSAL_ANGER = new GameRule<>("universalAnger", Boolean.class);
+ /**
+ * Whether block explosions will destroy dropped items.
+ */
+ public static final GameRule BLOCK_EXPLOSION_DROP_DECAY = new GameRule<>("blockExplosionDropDecay", Boolean.class);
+ /**
+ * * Whether mob explosions will destroy dropped items.
+ */
+ public static final GameRule MOB_EXPLOSION_DROP_DECAY = new GameRule<>("mobExplosionDropDecay", Boolean.class);
+ /**
+ * Whether tnt explosions will destroy dropped items.
+ */
+ public static final GameRule TNT_EXPLOSION_DROP_DECAY = new GameRule<>("tntExplosionDropDecay", Boolean.class);
+ /**
+ * Whether water blocks can convert into water source blocks.
+ */
+ public static final GameRule WATER_SOURCE_CONVERSION = new GameRule<>("waterSourceConversion", Boolean.class);
+ /**
+ * Whether lava blocks can convert into lava source blocks.
+ */
+ public static final GameRule LAVA_SOURCE_CONVERSION = new GameRule<>("lavaSourceConversion", Boolean.class);
+ /**
+ * Whether global level events such as ender dragon, wither, and completed
+ * end portal effects will propagate across the entire server.
+ */
+ public static final GameRule GLOBAL_SOUND_EVENTS = new GameRule<>("globalSoundEvents", Boolean.class);
// Numerical rules
/**
@@ -215,6 +240,7 @@ public final class GameRule {
* advance.
*/
public static final GameRule PLAYERS_SLEEPING_PERCENTAGE = new GameRule<>("playersSleepingPercentage", Integer.class);
+ public static final GameRule SNOW_ACCUMULATION_HEIGHT = new GameRule<>("snowAccumulationHeight", Integer.class);
// All GameRules instantiated above this for organizational purposes
private final String name;
diff --git a/paper-api/src/main/java/org/bukkit/Material.java b/paper-api/src/main/java/org/bukkit/Material.java
index 47d14a334..bcf746a61 100644
--- a/paper-api/src/main/java/org/bukkit/Material.java
+++ b/paper-api/src/main/java/org/bukkit/Material.java
@@ -40,6 +40,7 @@ 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.ChiseledBookshelf;
import org.bukkit.block.data.type.Cocoa;
import org.bukkit.block.data.type.CommandBlock;
import org.bukkit.block.data.type.Comparator;
@@ -58,6 +59,7 @@ 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.HangingSign;
import org.bukkit.block.data.type.Hopper;
import org.bukkit.block.data.type.Jigsaw;
import org.bukkit.block.data.type.Jukebox;
@@ -99,6 +101,7 @@ import org.bukkit.block.data.type.Tripwire;
import org.bukkit.block.data.type.TripwireHook;
import org.bukkit.block.data.type.TurtleEgg;
import org.bukkit.block.data.type.Wall;
+import org.bukkit.block.data.type.WallHangingSign;
import org.bukkit.block.data.type.WallSign;
import org.bukkit.inventory.CreativeCategory;
import org.bukkit.inventory.EquipmentSlot;
@@ -150,8 +153,10 @@ public enum Material implements Keyed {
ACACIA_PLANKS(31312),
DARK_OAK_PLANKS(20869),
MANGROVE_PLANKS(7078),
+ BAMBOO_PLANKS(8520),
CRIMSON_PLANKS(18812),
WARPED_PLANKS(16045),
+ BAMBOO_MOSAIC(10715),
/**
* BlockData: {@link Sapling}
*/
@@ -343,6 +348,10 @@ public enum Material implements Keyed {
* BlockData: {@link Orientable}
*/
WARPED_STEM(28920, Orientable.class),
+ /**
+ * BlockData: {@link Orientable}
+ */
+ BAMBOO_BLOCK(20770, Orientable.class),
/**
* BlockData: {@link Orientable}
*/
@@ -415,6 +424,10 @@ public enum Material implements Keyed {
* BlockData: {@link Orientable}
*/
STRIPPED_WARPED_HYPHAE(7422, Orientable.class),
+ /**
+ * BlockData: {@link Orientable}
+ */
+ STRIPPED_BAMBOO_BLOCK(14799, Orientable.class),
/**
* BlockData: {@link Orientable}
*/
@@ -605,6 +618,14 @@ public enum Material implements Keyed {
* BlockData: {@link Slab}
*/
MANGROVE_SLAB(13704, Slab.class),
+ /**
+ * BlockData: {@link Slab}
+ */
+ BAMBOO_SLAB(17798, Slab.class),
+ /**
+ * BlockData: {@link Slab}
+ */
+ BAMBOO_MOSAIC_SLAB(22118, Slab.class),
/**
* BlockData: {@link Slab}
*/
@@ -687,6 +708,10 @@ public enum Material implements Keyed {
SMOOTH_STONE(21910),
BRICKS(14165),
BOOKSHELF(10069),
+ /**
+ * BlockData: {@link ChiseledBookshelf}
+ */
+ CHISELED_BOOKSHELF(8099, ChiseledBookshelf.class),
MOSSY_COBBLESTONE(21900),
OBSIDIAN(32723),
TORCH(6063),
@@ -776,6 +801,10 @@ public enum Material implements Keyed {
* BlockData: {@link Fence}
*/
MANGROVE_FENCE(15021, Fence.class),
+ /**
+ * BlockData: {@link Fence}
+ */
+ BAMBOO_FENCE(17207, Fence.class),
/**
* BlockData: {@link Fence}
*/
@@ -948,6 +977,14 @@ public enum Material implements Keyed {
* BlockData: {@link Stairs}
*/
MANGROVE_STAIRS(27641, Stairs.class),
+ /**
+ * BlockData: {@link Stairs}
+ */
+ BAMBOO_STAIRS(25674, Stairs.class),
+ /**
+ * BlockData: {@link Stairs}
+ */
+ BAMBOO_MOSAIC_STAIRS(20977, Stairs.class),
/**
* BlockData: {@link Stairs}
*/
@@ -1646,7 +1683,7 @@ public enum Material implements Keyed {
/**
* BlockData: {@link Slab}
*/
- DIORITE_SLAB(10715, Slab.class),
+ DIORITE_SLAB(25526, Slab.class),
/**
* BlockData: {@link Slab}
*/
@@ -1786,7 +1823,11 @@ public enum Material implements Keyed {
/**
* BlockData: {@link Switch}
*/
- MANGROVE_BUTTON(17207, Switch.class),
+ MANGROVE_BUTTON(9838, Switch.class),
+ /**
+ * BlockData: {@link Switch}
+ */
+ BAMBOO_BUTTON(21810, Switch.class),
/**
* BlockData: {@link Switch}
*/
@@ -1839,6 +1880,10 @@ public enum Material implements Keyed {
* BlockData: {@link Powerable}
*/
MANGROVE_PRESSURE_PLATE(9748, Powerable.class),
+ /**
+ * BlockData: {@link Powerable}
+ */
+ BAMBOO_PRESSURE_PLATE(26740, Powerable.class),
/**
* BlockData: {@link Powerable}
*/
@@ -1879,6 +1924,10 @@ public enum Material implements Keyed {
* BlockData: {@link Door}
*/
MANGROVE_DOOR(18964, Door.class),
+ /**
+ * BlockData: {@link Door}
+ */
+ BAMBOO_DOOR(19971, Door.class),
/**
* BlockData: {@link Door}
*/
@@ -1919,6 +1968,10 @@ public enum Material implements Keyed {
* BlockData: {@link TrapDoor}
*/
MANGROVE_TRAPDOOR(17066, TrapDoor.class),
+ /**
+ * BlockData: {@link TrapDoor}
+ */
+ BAMBOO_TRAPDOOR(9174, TrapDoor.class),
/**
* BlockData: {@link TrapDoor}
*/
@@ -1955,6 +2008,10 @@ public enum Material implements Keyed {
* BlockData: {@link Gate}
*/
MANGROVE_FENCE_GATE(28476, Gate.class),
+ /**
+ * BlockData: {@link Gate}
+ */
+ BAMBOO_FENCE_GATE(14290, Gate.class),
/**
* BlockData: {@link Gate}
*/
@@ -2002,6 +2059,8 @@ public enum Material implements Keyed {
DARK_OAK_CHEST_BOAT(8733, 1),
MANGROVE_BOAT(20792, 1),
MANGROVE_CHEST_BOAT(18572, 1),
+ BAMBOO_RAFT(25901, 1),
+ BAMBOO_CHEST_RAFT(20056, 1),
/**
* BlockData: {@link StructureBlock}
*/
@@ -2131,6 +2190,10 @@ public enum Material implements Keyed {
* BlockData: {@link Sign}
*/
MANGROVE_SIGN(21975, 16, Sign.class),
+ /**
+ * BlockData: {@link Sign}
+ */
+ BAMBOO_SIGN(26139, 16, Sign.class),
/**
* BlockData: {@link Sign}
*/
@@ -2139,6 +2202,46 @@ public enum Material implements Keyed {
* BlockData: {@link Sign}
*/
WARPED_SIGN(10407, 16, Sign.class),
+ /**
+ * BlockData: {@link HangingSign}
+ */
+ OAK_HANGING_SIGN(20116, 16, HangingSign.class),
+ /**
+ * BlockData: {@link HangingSign}
+ */
+ SPRUCE_HANGING_SIGN(24371, 16, HangingSign.class),
+ /**
+ * BlockData: {@link HangingSign}
+ */
+ BIRCH_HANGING_SIGN(17938, 16, HangingSign.class),
+ /**
+ * BlockData: {@link HangingSign}
+ */
+ JUNGLE_HANGING_SIGN(27671, 16, HangingSign.class),
+ /**
+ * BlockData: {@link HangingSign}
+ */
+ ACACIA_HANGING_SIGN(30257, 16, HangingSign.class),
+ /**
+ * BlockData: {@link HangingSign}
+ */
+ DARK_OAK_HANGING_SIGN(23360, 16, HangingSign.class),
+ /**
+ * BlockData: {@link HangingSign}
+ */
+ MANGROVE_HANGING_SIGN(25106, 16, HangingSign.class),
+ /**
+ * BlockData: {@link HangingSign}
+ */
+ BAMBOO_HANGING_SIGN(4726, 16, HangingSign.class),
+ /**
+ * BlockData: {@link HangingSign}
+ */
+ CRIMSON_HANGING_SIGN(20696, 16, HangingSign.class),
+ /**
+ * BlockData: {@link HangingSign}
+ */
+ WARPED_HANGING_SIGN(8195, 16, HangingSign.class),
BUCKET(15215, 16),
WATER_BUCKET(8802, 1),
LAVA_BUCKET(9228, 1),
@@ -2301,6 +2404,7 @@ public enum Material implements Keyed {
BEE_SPAWN_EGG(22924),
BLAZE_SPAWN_EGG(4759),
CAT_SPAWN_EGG(29583),
+ CAMEL_SPAWN_EGG(14760),
CAVE_SPIDER_SPAWN_EGG(23341),
CHICKEN_SPAWN_EGG(5462),
COD_SPAWN_EGG(27248),
@@ -2310,6 +2414,7 @@ public enum Material implements Keyed {
DONKEY_SPAWN_EGG(14513),
DROWNED_SPAWN_EGG(19368),
ELDER_GUARDIAN_SPAWN_EGG(11418),
+ ENDER_DRAGON_SPAWN_EGG(28092),
ENDERMAN_SPAWN_EGG(29488),
ENDERMITE_SPAWN_EGG(16617),
EVOKER_SPAWN_EGG(21271),
@@ -2322,6 +2427,7 @@ public enum Material implements Keyed {
HOGLIN_SPAWN_EGG(14088),
HORSE_SPAWN_EGG(25981),
HUSK_SPAWN_EGG(20178),
+ IRON_GOLEM_SPAWN_EGG(12781),
LLAMA_SPAWN_EGG(23640),
MAGMA_CUBE_SPAWN_EGG(26638),
MOOSHROOM_SPAWN_EGG(22125),
@@ -2345,6 +2451,7 @@ public enum Material implements Keyed {
SKELETON_SPAWN_EGG(15261),
SKELETON_HORSE_SPAWN_EGG(21356),
SLIME_SPAWN_EGG(17196),
+ SNOW_GOLEM_SPAWN_EGG(24732),
SPIDER_SPAWN_EGG(14984),
SQUID_SPAWN_EGG(10682),
STRAY_SPAWN_EGG(30153),
@@ -2359,6 +2466,7 @@ public enum Material implements Keyed {
WANDERING_TRADER_SPAWN_EGG(17904),
WARDEN_SPAWN_EGG(27553),
WITCH_SPAWN_EGG(11837),
+ WITHER_SPAWN_EGG(8024),
WITHER_SKELETON_SPAWN_EGG(10073),
WOLF_SPAWN_EGG(21692),
ZOGLIN_SPAWN_EGG(7442),
@@ -2403,6 +2511,10 @@ public enum Material implements Keyed {
* BlockData: {@link Rotatable}
*/
DRAGON_HEAD(20084, Rotatable.class),
+ /**
+ * BlockData: {@link Rotatable}
+ */
+ PIGLIN_HEAD(5512, Rotatable.class),
NETHER_STAR(12469),
PUMPKIN_PIE(28725),
FIREWORK_ROCKET(23841),
@@ -2800,6 +2912,50 @@ public enum Material implements Keyed {
* BlockData: {@link WallSign}
*/
MANGROVE_WALL_SIGN(27203, 16, WallSign.class),
+ /**
+ * BlockData: {@link WallSign}
+ */
+ BAMBOO_WALL_SIGN(18857, 16, WallSign.class),
+ /**
+ * BlockData: {@link WallHangingSign}
+ */
+ OAK_WALL_HANGING_SIGN(15637, WallHangingSign.class),
+ /**
+ * BlockData: {@link WallHangingSign}
+ */
+ SPRUCE_WALL_HANGING_SIGN(18833, WallHangingSign.class),
+ /**
+ * BlockData: {@link WallHangingSign}
+ */
+ BIRCH_WALL_HANGING_SIGN(15937, WallHangingSign.class),
+ /**
+ * BlockData: {@link WallHangingSign}
+ */
+ ACACIA_WALL_HANGING_SIGN(22477, WallHangingSign.class),
+ /**
+ * BlockData: {@link WallHangingSign}
+ */
+ JUNGLE_WALL_HANGING_SIGN(16691, WallHangingSign.class),
+ /**
+ * BlockData: {@link WallHangingSign}
+ */
+ DARK_OAK_WALL_HANGING_SIGN(14296, WallHangingSign.class),
+ /**
+ * BlockData: {@link WallHangingSign}
+ */
+ MANGROVE_WALL_HANGING_SIGN(16974, WallHangingSign.class),
+ /**
+ * BlockData: {@link WallHangingSign}
+ */
+ CRIMSON_WALL_HANGING_SIGN(28982, WallHangingSign.class),
+ /**
+ * BlockData: {@link WallHangingSign}
+ */
+ WARPED_WALL_HANGING_SIGN(20605, WallHangingSign.class),
+ /**
+ * BlockData: {@link WallHangingSign}
+ */
+ BAMBOO_WALL_HANGING_SIGN(6669, WallHangingSign.class),
/**
* BlockData: {@link RedstoneWallTorch}
*/
@@ -2903,6 +3059,10 @@ public enum Material implements Keyed {
* BlockData: {@link Directional}
*/
DRAGON_WALL_HEAD(19818, Directional.class),
+ /**
+ * BlockData: {@link Directional}
+ */
+ PIGLIN_WALL_HEAD(4446, Directional.class),
/**
* BlockData: {@link Directional}
*/
@@ -4248,6 +4408,7 @@ public enum Material implements Keyed {
case ACACIA_DOOR:
case ACACIA_FENCE:
case ACACIA_FENCE_GATE:
+ case ACACIA_HANGING_SIGN:
case ACACIA_LEAVES:
case ACACIA_LOG:
case ACACIA_PLANKS:
@@ -4257,6 +4418,7 @@ public enum Material implements Keyed {
case ACACIA_SLAB:
case ACACIA_STAIRS:
case ACACIA_TRAPDOOR:
+ case ACACIA_WALL_HANGING_SIGN:
case ACACIA_WALL_SIGN:
case ACACIA_WOOD:
case ACTIVATOR_RAIL:
@@ -4276,7 +4438,24 @@ public enum Material implements Keyed {
case AZALEA_LEAVES:
case AZURE_BLUET:
case BAMBOO:
+ case BAMBOO_BLOCK:
+ case BAMBOO_BUTTON:
+ case BAMBOO_DOOR:
+ case BAMBOO_FENCE:
+ case BAMBOO_FENCE_GATE:
+ case BAMBOO_HANGING_SIGN:
+ case BAMBOO_MOSAIC:
+ case BAMBOO_MOSAIC_SLAB:
+ case BAMBOO_MOSAIC_STAIRS:
+ case BAMBOO_PLANKS:
+ case BAMBOO_PRESSURE_PLATE:
case BAMBOO_SAPLING:
+ case BAMBOO_SIGN:
+ case BAMBOO_SLAB:
+ case BAMBOO_STAIRS:
+ case BAMBOO_TRAPDOOR:
+ case BAMBOO_WALL_HANGING_SIGN:
+ case BAMBOO_WALL_SIGN:
case BARREL:
case BARRIER:
case BASALT:
@@ -4292,6 +4471,7 @@ public enum Material implements Keyed {
case BIRCH_DOOR:
case BIRCH_FENCE:
case BIRCH_FENCE_GATE:
+ case BIRCH_HANGING_SIGN:
case BIRCH_LEAVES:
case BIRCH_LOG:
case BIRCH_PLANKS:
@@ -4301,6 +4481,7 @@ public enum Material implements Keyed {
case BIRCH_SLAB:
case BIRCH_STAIRS:
case BIRCH_TRAPDOOR:
+ case BIRCH_WALL_HANGING_SIGN:
case BIRCH_WALL_SIGN:
case BIRCH_WOOD:
case BLACKSTONE:
@@ -4388,6 +4569,7 @@ public enum Material implements Keyed {
case CHAIN_COMMAND_BLOCK:
case CHEST:
case CHIPPED_ANVIL:
+ case CHISELED_BOOKSHELF:
case CHISELED_DEEPSLATE:
case CHISELED_NETHER_BRICKS:
case CHISELED_POLISHED_BLACKSTONE:
@@ -4431,6 +4613,7 @@ public enum Material implements Keyed {
case CRIMSON_FENCE:
case CRIMSON_FENCE_GATE:
case CRIMSON_FUNGUS:
+ case CRIMSON_HANGING_SIGN:
case CRIMSON_HYPHAE:
case CRIMSON_NYLIUM:
case CRIMSON_PLANKS:
@@ -4441,6 +4624,7 @@ public enum Material implements Keyed {
case CRIMSON_STAIRS:
case CRIMSON_STEM:
case CRIMSON_TRAPDOOR:
+ case CRIMSON_WALL_HANGING_SIGN:
case CRIMSON_WALL_SIGN:
case CRYING_OBSIDIAN:
case CUT_COPPER:
@@ -4470,6 +4654,7 @@ public enum Material implements Keyed {
case DARK_OAK_DOOR:
case DARK_OAK_FENCE:
case DARK_OAK_FENCE_GATE:
+ case DARK_OAK_HANGING_SIGN:
case DARK_OAK_LEAVES:
case DARK_OAK_LOG:
case DARK_OAK_PLANKS:
@@ -4479,6 +4664,7 @@ public enum Material implements Keyed {
case DARK_OAK_SLAB:
case DARK_OAK_STAIRS:
case DARK_OAK_TRAPDOOR:
+ case DARK_OAK_WALL_HANGING_SIGN:
case DARK_OAK_WALL_SIGN:
case DARK_OAK_WOOD:
case DARK_PRISMARINE:
@@ -4643,6 +4829,7 @@ public enum Material implements Keyed {
case JUNGLE_DOOR:
case JUNGLE_FENCE:
case JUNGLE_FENCE_GATE:
+ case JUNGLE_HANGING_SIGN:
case JUNGLE_LEAVES:
case JUNGLE_LOG:
case JUNGLE_PLANKS:
@@ -4652,6 +4839,7 @@ public enum Material implements Keyed {
case JUNGLE_SLAB:
case JUNGLE_STAIRS:
case JUNGLE_TRAPDOOR:
+ case JUNGLE_WALL_HANGING_SIGN:
case JUNGLE_WALL_SIGN:
case JUNGLE_WOOD:
case KELP:
@@ -4735,6 +4923,7 @@ public enum Material implements Keyed {
case MANGROVE_DOOR:
case MANGROVE_FENCE:
case MANGROVE_FENCE_GATE:
+ case MANGROVE_HANGING_SIGN:
case MANGROVE_LEAVES:
case MANGROVE_LOG:
case MANGROVE_PLANKS:
@@ -4745,6 +4934,7 @@ public enum Material implements Keyed {
case MANGROVE_SLAB:
case MANGROVE_STAIRS:
case MANGROVE_TRAPDOOR:
+ case MANGROVE_WALL_HANGING_SIGN:
case MANGROVE_WALL_SIGN:
case MANGROVE_WOOD:
case MEDIUM_AMETHYST_BUD:
@@ -4787,6 +4977,7 @@ public enum Material implements Keyed {
case OAK_DOOR:
case OAK_FENCE:
case OAK_FENCE_GATE:
+ case OAK_HANGING_SIGN:
case OAK_LEAVES:
case OAK_LOG:
case OAK_PLANKS:
@@ -4796,6 +4987,7 @@ public enum Material implements Keyed {
case OAK_SLAB:
case OAK_STAIRS:
case OAK_TRAPDOOR:
+ case OAK_WALL_HANGING_SIGN:
case OAK_WALL_SIGN:
case OAK_WOOD:
case OBSERVER:
@@ -4826,6 +5018,8 @@ public enum Material implements Keyed {
case PEARLESCENT_FROGLIGHT:
case PEONY:
case PETRIFIED_OAK_SLAB:
+ case PIGLIN_HEAD:
+ case PIGLIN_WALL_HEAD:
case PINK_BANNER:
case PINK_BED:
case PINK_CANDLE:
@@ -5033,6 +5227,7 @@ public enum Material implements Keyed {
case SPRUCE_DOOR:
case SPRUCE_FENCE:
case SPRUCE_FENCE_GATE:
+ case SPRUCE_HANGING_SIGN:
case SPRUCE_LEAVES:
case SPRUCE_LOG:
case SPRUCE_PLANKS:
@@ -5042,6 +5237,7 @@ public enum Material implements Keyed {
case SPRUCE_SLAB:
case SPRUCE_STAIRS:
case SPRUCE_TRAPDOOR:
+ case SPRUCE_WALL_HANGING_SIGN:
case SPRUCE_WALL_SIGN:
case SPRUCE_WOOD:
case STICKY_PISTON:
@@ -5057,6 +5253,7 @@ public enum Material implements Keyed {
case STONE_STAIRS:
case STRIPPED_ACACIA_LOG:
case STRIPPED_ACACIA_WOOD:
+ case STRIPPED_BAMBOO_BLOCK:
case STRIPPED_BIRCH_LOG:
case STRIPPED_BIRCH_WOOD:
case STRIPPED_CRIMSON_HYPHAE:
@@ -5105,6 +5302,7 @@ public enum Material implements Keyed {
case WARPED_FENCE:
case WARPED_FENCE_GATE:
case WARPED_FUNGUS:
+ case WARPED_HANGING_SIGN:
case WARPED_HYPHAE:
case WARPED_NYLIUM:
case WARPED_PLANKS:
@@ -5115,6 +5313,7 @@ public enum Material implements Keyed {
case WARPED_STAIRS:
case WARPED_STEM:
case WARPED_TRAPDOOR:
+ case WARPED_WALL_HANGING_SIGN:
case WARPED_WALL_SIGN:
case WARPED_WART_BLOCK:
case WATER:
@@ -5403,6 +5602,7 @@ public enum Material implements Keyed {
case ACACIA_DOOR:
case ACACIA_FENCE:
case ACACIA_FENCE_GATE:
+ case ACACIA_HANGING_SIGN:
case ACACIA_LEAVES:
case ACACIA_LOG:
case ACACIA_PLANKS:
@@ -5411,6 +5611,7 @@ public enum Material implements Keyed {
case ACACIA_SLAB:
case ACACIA_STAIRS:
case ACACIA_TRAPDOOR:
+ case ACACIA_WALL_HANGING_SIGN:
case ACACIA_WALL_SIGN:
case ACACIA_WOOD:
case AMETHYST_BLOCK:
@@ -5423,6 +5624,22 @@ public enum Material implements Keyed {
case ANVIL:
case AZALEA_LEAVES:
case BAMBOO:
+ case BAMBOO_BLOCK:
+ case BAMBOO_DOOR:
+ case BAMBOO_FENCE:
+ case BAMBOO_FENCE_GATE:
+ case BAMBOO_HANGING_SIGN:
+ case BAMBOO_MOSAIC:
+ case BAMBOO_MOSAIC_SLAB:
+ case BAMBOO_MOSAIC_STAIRS:
+ case BAMBOO_PLANKS:
+ case BAMBOO_PRESSURE_PLATE:
+ case BAMBOO_SIGN:
+ case BAMBOO_SLAB:
+ case BAMBOO_STAIRS:
+ case BAMBOO_TRAPDOOR:
+ case BAMBOO_WALL_HANGING_SIGN:
+ case BAMBOO_WALL_SIGN:
case BARREL:
case BARRIER:
case BASALT:
@@ -5434,6 +5651,7 @@ public enum Material implements Keyed {
case BIRCH_DOOR:
case BIRCH_FENCE:
case BIRCH_FENCE_GATE:
+ case BIRCH_HANGING_SIGN:
case BIRCH_LEAVES:
case BIRCH_LOG:
case BIRCH_PLANKS:
@@ -5442,6 +5660,7 @@ public enum Material implements Keyed {
case BIRCH_SLAB:
case BIRCH_STAIRS:
case BIRCH_TRAPDOOR:
+ case BIRCH_WALL_HANGING_SIGN:
case BIRCH_WALL_SIGN:
case BIRCH_WOOD:
case BLACKSTONE:
@@ -5509,6 +5728,7 @@ public enum Material implements Keyed {
case CHAIN_COMMAND_BLOCK:
case CHEST:
case CHIPPED_ANVIL:
+ case CHISELED_BOOKSHELF:
case CHISELED_DEEPSLATE:
case CHISELED_NETHER_BRICKS:
case CHISELED_POLISHED_BLACKSTONE:
@@ -5542,6 +5762,7 @@ public enum Material implements Keyed {
case CRIMSON_DOOR:
case CRIMSON_FENCE:
case CRIMSON_FENCE_GATE:
+ case CRIMSON_HANGING_SIGN:
case CRIMSON_HYPHAE:
case CRIMSON_NYLIUM:
case CRIMSON_PLANKS:
@@ -5551,6 +5772,7 @@ public enum Material implements Keyed {
case CRIMSON_STAIRS:
case CRIMSON_STEM:
case CRIMSON_TRAPDOOR:
+ case CRIMSON_WALL_HANGING_SIGN:
case CRIMSON_WALL_SIGN:
case CRYING_OBSIDIAN:
case CUT_COPPER:
@@ -5576,6 +5798,7 @@ public enum Material implements Keyed {
case DARK_OAK_DOOR:
case DARK_OAK_FENCE:
case DARK_OAK_FENCE_GATE:
+ case DARK_OAK_HANGING_SIGN:
case DARK_OAK_LEAVES:
case DARK_OAK_LOG:
case DARK_OAK_PLANKS:
@@ -5584,6 +5807,7 @@ public enum Material implements Keyed {
case DARK_OAK_SLAB:
case DARK_OAK_STAIRS:
case DARK_OAK_TRAPDOOR:
+ case DARK_OAK_WALL_HANGING_SIGN:
case DARK_OAK_WALL_SIGN:
case DARK_OAK_WOOD:
case DARK_PRISMARINE:
@@ -5722,6 +5946,7 @@ public enum Material implements Keyed {
case JUNGLE_DOOR:
case JUNGLE_FENCE:
case JUNGLE_FENCE_GATE:
+ case JUNGLE_HANGING_SIGN:
case JUNGLE_LEAVES:
case JUNGLE_LOG:
case JUNGLE_PLANKS:
@@ -5730,6 +5955,7 @@ public enum Material implements Keyed {
case JUNGLE_SLAB:
case JUNGLE_STAIRS:
case JUNGLE_TRAPDOOR:
+ case JUNGLE_WALL_HANGING_SIGN:
case JUNGLE_WALL_SIGN:
case JUNGLE_WOOD:
case LANTERN:
@@ -5794,6 +6020,7 @@ public enum Material implements Keyed {
case MANGROVE_DOOR:
case MANGROVE_FENCE:
case MANGROVE_FENCE_GATE:
+ case MANGROVE_HANGING_SIGN:
case MANGROVE_LEAVES:
case MANGROVE_LOG:
case MANGROVE_PLANKS:
@@ -5803,6 +6030,7 @@ public enum Material implements Keyed {
case MANGROVE_SLAB:
case MANGROVE_STAIRS:
case MANGROVE_TRAPDOOR:
+ case MANGROVE_WALL_HANGING_SIGN:
case MANGROVE_WALL_SIGN:
case MANGROVE_WOOD:
case MEDIUM_AMETHYST_BUD:
@@ -5839,6 +6067,7 @@ public enum Material implements Keyed {
case OAK_DOOR:
case OAK_FENCE:
case OAK_FENCE_GATE:
+ case OAK_HANGING_SIGN:
case OAK_LEAVES:
case OAK_LOG:
case OAK_PLANKS:
@@ -5847,6 +6076,7 @@ public enum Material implements Keyed {
case OAK_SLAB:
case OAK_STAIRS:
case OAK_TRAPDOOR:
+ case OAK_WALL_HANGING_SIGN:
case OAK_WALL_SIGN:
case OAK_WOOD:
case OBSERVER:
@@ -6012,6 +6242,7 @@ public enum Material implements Keyed {
case SPRUCE_DOOR:
case SPRUCE_FENCE:
case SPRUCE_FENCE_GATE:
+ case SPRUCE_HANGING_SIGN:
case SPRUCE_LEAVES:
case SPRUCE_LOG:
case SPRUCE_PLANKS:
@@ -6020,6 +6251,7 @@ public enum Material implements Keyed {
case SPRUCE_SLAB:
case SPRUCE_STAIRS:
case SPRUCE_TRAPDOOR:
+ case SPRUCE_WALL_HANGING_SIGN:
case SPRUCE_WALL_SIGN:
case SPRUCE_WOOD:
case STICKY_PISTON:
@@ -6034,6 +6266,7 @@ public enum Material implements Keyed {
case STONE_STAIRS:
case STRIPPED_ACACIA_LOG:
case STRIPPED_ACACIA_WOOD:
+ case STRIPPED_BAMBOO_BLOCK:
case STRIPPED_BIRCH_LOG:
case STRIPPED_BIRCH_WOOD:
case STRIPPED_CRIMSON_HYPHAE:
@@ -6063,6 +6296,7 @@ public enum Material implements Keyed {
case WARPED_DOOR:
case WARPED_FENCE:
case WARPED_FENCE_GATE:
+ case WARPED_HANGING_SIGN:
case WARPED_HYPHAE:
case WARPED_NYLIUM:
case WARPED_PLANKS:
@@ -6072,6 +6306,7 @@ public enum Material implements Keyed {
case WARPED_STAIRS:
case WARPED_STEM:
case WARPED_TRAPDOOR:
+ case WARPED_WALL_HANGING_SIGN:
case WARPED_WALL_SIGN:
case WARPED_WART_BLOCK:
case WATER_CAULDRON:
@@ -6560,6 +6795,7 @@ public enum Material implements Keyed {
case ACACIA_DOOR:
case ACACIA_FENCE:
case ACACIA_FENCE_GATE:
+ case ACACIA_HANGING_SIGN:
case ACACIA_LEAVES:
case ACACIA_LOG:
case ACACIA_PLANKS:
@@ -6568,17 +6804,35 @@ public enum Material implements Keyed {
case ACACIA_SLAB:
case ACACIA_STAIRS:
case ACACIA_TRAPDOOR:
+ case ACACIA_WALL_HANGING_SIGN:
case ACACIA_WALL_SIGN:
case ACACIA_WOOD:
case AZALEA_LEAVES:
case BAMBOO:
+ case BAMBOO_BLOCK:
+ case BAMBOO_DOOR:
+ case BAMBOO_FENCE:
+ case BAMBOO_FENCE_GATE:
+ case BAMBOO_HANGING_SIGN:
+ case BAMBOO_MOSAIC:
+ case BAMBOO_MOSAIC_SLAB:
+ case BAMBOO_MOSAIC_STAIRS:
+ case BAMBOO_PLANKS:
+ case BAMBOO_PRESSURE_PLATE:
case BAMBOO_SAPLING:
+ case BAMBOO_SIGN:
+ case BAMBOO_SLAB:
+ case BAMBOO_STAIRS:
+ case BAMBOO_TRAPDOOR:
+ case BAMBOO_WALL_HANGING_SIGN:
+ case BAMBOO_WALL_SIGN:
case BARREL:
case BEEHIVE:
case BEE_NEST:
case BIRCH_DOOR:
case BIRCH_FENCE:
case BIRCH_FENCE_GATE:
+ case BIRCH_HANGING_SIGN:
case BIRCH_LEAVES:
case BIRCH_LOG:
case BIRCH_PLANKS:
@@ -6609,8 +6863,11 @@ public enum Material implements Keyed {
case CAMPFIRE:
case CARTOGRAPHY_TABLE:
case CHEST:
+ case CHISELED_BOOKSHELF:
case COMPOSTER:
case CRAFTING_TABLE:
+ case CRIMSON_HANGING_SIGN:
+ case CRIMSON_WALL_HANGING_SIGN:
case CYAN_BANNER:
case CYAN_BED:
case CYAN_CARPET:
@@ -6619,6 +6876,7 @@ public enum Material implements Keyed {
case DARK_OAK_DOOR:
case DARK_OAK_FENCE:
case DARK_OAK_FENCE_GATE:
+ case DARK_OAK_HANGING_SIGN:
case DARK_OAK_LEAVES:
case DARK_OAK_LOG:
case DARK_OAK_PLANKS:
@@ -6627,6 +6885,7 @@ public enum Material implements Keyed {
case DARK_OAK_SLAB:
case DARK_OAK_STAIRS:
case DARK_OAK_TRAPDOOR:
+ case DARK_OAK_WALL_HANGING_SIGN:
case DARK_OAK_WALL_SIGN:
case DARK_OAK_WOOD:
case DAYLIGHT_DETECTOR:
@@ -6651,6 +6910,7 @@ public enum Material implements Keyed {
case JUNGLE_DOOR:
case JUNGLE_FENCE:
case JUNGLE_FENCE_GATE:
+ case JUNGLE_HANGING_SIGN:
case JUNGLE_LEAVES:
case JUNGLE_LOG:
case JUNGLE_PLANKS:
@@ -6659,6 +6919,7 @@ public enum Material implements Keyed {
case JUNGLE_SLAB:
case JUNGLE_STAIRS:
case JUNGLE_TRAPDOOR:
+ case JUNGLE_WALL_HANGING_SIGN:
case JUNGLE_WALL_SIGN:
case JUNGLE_WOOD:
case LARGE_FERN:
@@ -6688,6 +6949,7 @@ public enum Material implements Keyed {
case MANGROVE_DOOR:
case MANGROVE_FENCE:
case MANGROVE_FENCE_GATE:
+ case MANGROVE_HANGING_SIGN:
case MANGROVE_LEAVES:
case MANGROVE_LOG:
case MANGROVE_PLANKS:
@@ -6697,6 +6959,7 @@ public enum Material implements Keyed {
case MANGROVE_SLAB:
case MANGROVE_STAIRS:
case MANGROVE_TRAPDOOR:
+ case MANGROVE_WALL_HANGING_SIGN:
case MANGROVE_WALL_SIGN:
case MANGROVE_WOOD:
case MUSHROOM_STEM:
@@ -6704,6 +6967,7 @@ public enum Material implements Keyed {
case OAK_DOOR:
case OAK_FENCE:
case OAK_FENCE_GATE:
+ case OAK_HANGING_SIGN:
case OAK_LEAVES:
case OAK_LOG:
case OAK_PLANKS:
@@ -6712,6 +6976,7 @@ public enum Material implements Keyed {
case OAK_SLAB:
case OAK_STAIRS:
case OAK_TRAPDOOR:
+ case OAK_WALL_HANGING_SIGN:
case OAK_WALL_SIGN:
case OAK_WOOD:
case ORANGE_BANNER:
@@ -6742,6 +7007,7 @@ public enum Material implements Keyed {
case SPRUCE_DOOR:
case SPRUCE_FENCE:
case SPRUCE_FENCE_GATE:
+ case SPRUCE_HANGING_SIGN:
case SPRUCE_LEAVES:
case SPRUCE_LOG:
case SPRUCE_PLANKS:
@@ -6750,10 +7016,12 @@ public enum Material implements Keyed {
case SPRUCE_SLAB:
case SPRUCE_STAIRS:
case SPRUCE_TRAPDOOR:
+ case SPRUCE_WALL_HANGING_SIGN:
case SPRUCE_WALL_SIGN:
case SPRUCE_WOOD:
case STRIPPED_ACACIA_LOG:
case STRIPPED_ACACIA_WOOD:
+ case STRIPPED_BAMBOO_BLOCK:
case STRIPPED_BIRCH_LOG:
case STRIPPED_BIRCH_WOOD:
case STRIPPED_DARK_OAK_LOG:
@@ -6771,6 +7039,8 @@ public enum Material implements Keyed {
case TNT:
case TRAPPED_CHEST:
case VINE:
+ case WARPED_HANGING_SIGN:
+ case WARPED_WALL_HANGING_SIGN:
case WHITE_BANNER:
case WHITE_BED:
case WHITE_CARPET:
@@ -6868,6 +7138,15 @@ public enum Material implements Keyed {
case AZALEA_LEAVES:
case AZURE_BLUET:
case BAMBOO:
+ case BAMBOO_BLOCK:
+ case BAMBOO_FENCE:
+ case BAMBOO_FENCE_GATE:
+ case BAMBOO_MOSAIC:
+ case BAMBOO_MOSAIC_SLAB:
+ case BAMBOO_MOSAIC_STAIRS:
+ case BAMBOO_PLANKS:
+ case BAMBOO_SLAB:
+ case BAMBOO_STAIRS:
case BEEHIVE:
case BEE_NEST:
case BIG_DRIPLEAF:
@@ -6982,6 +7261,7 @@ public enum Material implements Keyed {
case SPRUCE_WOOD:
case STRIPPED_ACACIA_LOG:
case STRIPPED_ACACIA_WOOD:
+ case STRIPPED_BAMBOO_BLOCK:
case STRIPPED_BIRCH_LOG:
case STRIPPED_BIRCH_WOOD:
case STRIPPED_DARK_OAK_LOG:
@@ -7076,6 +7356,9 @@ public enum Material implements Keyed {
case ACACIA_WOOD:
case AZALEA:
case BAMBOO:
+ case BAMBOO_MOSAIC:
+ case BAMBOO_MOSAIC_SLAB:
+ case BAMBOO_MOSAIC_STAIRS:
case BARREL:
case BIRCH_BOAT:
case BIRCH_BUTTON:
@@ -7108,6 +7391,7 @@ public enum Material implements Keyed {
case CARTOGRAPHY_TABLE:
case CHARCOAL:
case CHEST:
+ case CHISELED_BOOKSHELF:
case COAL:
case COAL_BLOCK:
case COMPOSTER:
@@ -7364,6 +7648,9 @@ public enum Material implements Keyed {
case AMETHYST_BLOCK:
case ANCIENT_DEBRIS:
case ANDESITE:
+ case BAMBOO_BLOCK:
+ case BAMBOO_MOSAIC:
+ case BAMBOO_PLANKS:
case BARREL:
case BARRIER:
case BASALT:
@@ -7405,6 +7692,7 @@ public enum Material implements Keyed {
case CARTOGRAPHY_TABLE:
case CARVED_PUMPKIN:
case CHAIN_COMMAND_BLOCK:
+ case CHISELED_BOOKSHELF:
case CHISELED_DEEPSLATE:
case CHISELED_NETHER_BRICKS:
case CHISELED_POLISHED_BLACKSTONE:
@@ -7652,6 +7940,7 @@ public enum Material implements Keyed {
case STONE_BRICKS:
case STRIPPED_ACACIA_LOG:
case STRIPPED_ACACIA_WOOD:
+ case STRIPPED_BAMBOO_BLOCK:
case STRIPPED_BIRCH_LOG:
case STRIPPED_BIRCH_WOOD:
case STRIPPED_CRIMSON_HYPHAE:
@@ -7860,12 +8149,16 @@ public enum Material implements Keyed {
public boolean isItem() {
switch (this) {
//
+ case ACACIA_WALL_HANGING_SIGN:
case ACACIA_WALL_SIGN:
case ATTACHED_MELON_STEM:
case ATTACHED_PUMPKIN_STEM:
case BAMBOO_SAPLING:
+ case BAMBOO_WALL_HANGING_SIGN:
+ case BAMBOO_WALL_SIGN:
case BEETROOTS:
case BIG_DRIPLEAF_STEM:
+ case BIRCH_WALL_HANGING_SIGN:
case BIRCH_WALL_SIGN:
case BLACK_CANDLE_CAKE:
case BLACK_WALL_BANNER:
@@ -7883,9 +8176,11 @@ public enum Material implements Keyed {
case CAVE_VINES_PLANT:
case COCOA:
case CREEPER_WALL_HEAD:
+ case CRIMSON_WALL_HANGING_SIGN:
case CRIMSON_WALL_SIGN:
case CYAN_CANDLE_CAKE:
case CYAN_WALL_BANNER:
+ case DARK_OAK_WALL_HANGING_SIGN:
case DARK_OAK_WALL_SIGN:
case DEAD_BRAIN_CORAL_WALL_FAN:
case DEAD_BUBBLE_CORAL_WALL_FAN:
@@ -7903,6 +8198,7 @@ public enum Material implements Keyed {
case GREEN_CANDLE_CAKE:
case GREEN_WALL_BANNER:
case HORN_CORAL_WALL_FAN:
+ case JUNGLE_WALL_HANGING_SIGN:
case JUNGLE_WALL_SIGN:
case KELP_PLANT:
case LAVA:
@@ -7915,13 +8211,16 @@ public enum Material implements Keyed {
case LIME_WALL_BANNER:
case MAGENTA_CANDLE_CAKE:
case MAGENTA_WALL_BANNER:
+ case MANGROVE_WALL_HANGING_SIGN:
case MANGROVE_WALL_SIGN:
case MELON_STEM:
case MOVING_PISTON:
case NETHER_PORTAL:
+ case OAK_WALL_HANGING_SIGN:
case OAK_WALL_SIGN:
case ORANGE_CANDLE_CAKE:
case ORANGE_WALL_BANNER:
+ case PIGLIN_WALL_HEAD:
case PINK_CANDLE_CAKE:
case PINK_WALL_BANNER:
case PISTON_HEAD:
@@ -7971,6 +8270,7 @@ public enum Material implements Keyed {
case SKELETON_WALL_SKULL:
case SOUL_FIRE:
case SOUL_WALL_TORCH:
+ case SPRUCE_WALL_HANGING_SIGN:
case SPRUCE_WALL_SIGN:
case SWEET_BERRY_BUSH:
case TALL_SEAGRASS:
@@ -7979,6 +8279,7 @@ public enum Material implements Keyed {
case TWISTING_VINES_PLANT:
case VOID_AIR:
case WALL_TORCH:
+ case WARPED_WALL_HANGING_SIGN:
case WARPED_WALL_SIGN:
case WATER:
case WATER_CAULDRON:
@@ -8072,12 +8373,25 @@ public enum Material implements Keyed {
case ACACIA_DOOR:
case ACACIA_FENCE:
case ACACIA_FENCE_GATE:
+ case ACACIA_HANGING_SIGN:
case ACACIA_SIGN:
case ACACIA_STAIRS:
case ACACIA_TRAPDOOR:
+ case ACACIA_WALL_HANGING_SIGN:
case ACACIA_WALL_SIGN:
case ANDESITE_STAIRS:
case ANVIL:
+ case BAMBOO_BUTTON:
+ case BAMBOO_DOOR:
+ case BAMBOO_FENCE:
+ case BAMBOO_FENCE_GATE:
+ case BAMBOO_HANGING_SIGN:
+ case BAMBOO_MOSAIC_STAIRS:
+ case BAMBOO_SIGN:
+ case BAMBOO_STAIRS:
+ case BAMBOO_TRAPDOOR:
+ case BAMBOO_WALL_HANGING_SIGN:
+ case BAMBOO_WALL_SIGN:
case BARREL:
case BEACON:
case BEEHIVE:
@@ -8087,9 +8401,11 @@ public enum Material implements Keyed {
case BIRCH_DOOR:
case BIRCH_FENCE:
case BIRCH_FENCE_GATE:
+ case BIRCH_HANGING_SIGN:
case BIRCH_SIGN:
case BIRCH_STAIRS:
case BIRCH_TRAPDOOR:
+ case BIRCH_WALL_HANGING_SIGN:
case BIRCH_WALL_SIGN:
case BLACKSTONE_STAIRS:
case BLACK_BED:
@@ -8118,6 +8434,7 @@ public enum Material implements Keyed {
case CHAIN_COMMAND_BLOCK:
case CHEST:
case CHIPPED_ANVIL:
+ case CHISELED_BOOKSHELF:
case COBBLED_DEEPSLATE_STAIRS:
case COBBLESTONE_STAIRS:
case COMMAND_BLOCK:
@@ -8128,9 +8445,11 @@ public enum Material implements Keyed {
case CRIMSON_DOOR:
case CRIMSON_FENCE:
case CRIMSON_FENCE_GATE:
+ case CRIMSON_HANGING_SIGN:
case CRIMSON_SIGN:
case CRIMSON_STAIRS:
case CRIMSON_TRAPDOOR:
+ case CRIMSON_WALL_HANGING_SIGN:
case CRIMSON_WALL_SIGN:
case CUT_COPPER_STAIRS:
case CYAN_BED:
@@ -8142,9 +8461,11 @@ public enum Material implements Keyed {
case DARK_OAK_DOOR:
case DARK_OAK_FENCE:
case DARK_OAK_FENCE_GATE:
+ case DARK_OAK_HANGING_SIGN:
case DARK_OAK_SIGN:
case DARK_OAK_STAIRS:
case DARK_OAK_TRAPDOOR:
+ case DARK_OAK_WALL_HANGING_SIGN:
case DARK_OAK_WALL_SIGN:
case DARK_PRISMARINE_STAIRS:
case DAYLIGHT_DETECTOR:
@@ -8181,9 +8502,11 @@ public enum Material implements Keyed {
case JUNGLE_DOOR:
case JUNGLE_FENCE:
case JUNGLE_FENCE_GATE:
+ case JUNGLE_HANGING_SIGN:
case JUNGLE_SIGN:
case JUNGLE_STAIRS:
case JUNGLE_TRAPDOOR:
+ case JUNGLE_WALL_HANGING_SIGN:
case JUNGLE_WALL_SIGN:
case LAVA_CAULDRON:
case LECTERN:
@@ -8210,9 +8533,11 @@ public enum Material implements Keyed {
case MANGROVE_DOOR:
case MANGROVE_FENCE:
case MANGROVE_FENCE_GATE:
+ case MANGROVE_HANGING_SIGN:
case MANGROVE_SIGN:
case MANGROVE_STAIRS:
case MANGROVE_TRAPDOOR:
+ case MANGROVE_WALL_HANGING_SIGN:
case MANGROVE_WALL_SIGN:
case MOSSY_COBBLESTONE_STAIRS:
case MOSSY_STONE_BRICK_STAIRS:
@@ -8225,9 +8550,11 @@ public enum Material implements Keyed {
case OAK_DOOR:
case OAK_FENCE:
case OAK_FENCE_GATE:
+ case OAK_HANGING_SIGN:
case OAK_SIGN:
case OAK_STAIRS:
case OAK_TRAPDOOR:
+ case OAK_WALL_HANGING_SIGN:
case OAK_WALL_SIGN:
case ORANGE_BED:
case ORANGE_CANDLE:
@@ -8310,9 +8637,11 @@ public enum Material implements Keyed {
case SPRUCE_DOOR:
case SPRUCE_FENCE:
case SPRUCE_FENCE_GATE:
+ case SPRUCE_HANGING_SIGN:
case SPRUCE_SIGN:
case SPRUCE_STAIRS:
case SPRUCE_TRAPDOOR:
+ case SPRUCE_WALL_HANGING_SIGN:
case SPRUCE_WALL_SIGN:
case STONECUTTER:
case STONE_BRICK_STAIRS:
@@ -8326,9 +8655,11 @@ public enum Material implements Keyed {
case WARPED_DOOR:
case WARPED_FENCE:
case WARPED_FENCE_GATE:
+ case WARPED_HANGING_SIGN:
case WARPED_SIGN:
case WARPED_STAIRS:
case WARPED_TRAPDOOR:
+ case WARPED_WALL_HANGING_SIGN:
case WARPED_WALL_SIGN:
case WATER_CAULDRON:
case WAXED_CUT_COPPER_STAIRS:
@@ -8508,6 +8839,8 @@ public enum Material implements Keyed {
return 0.4F;
case ACACIA_BUTTON:
case ACACIA_PRESSURE_PLATE:
+ case BAMBOO_BUTTON:
+ case BAMBOO_PRESSURE_PLATE:
case BIRCH_BUTTON:
case BIRCH_PRESSURE_PLATE:
case BLACK_CANDLE_CAKE:
@@ -8644,11 +8977,19 @@ public enum Material implements Keyed {
case WHITE_WOOL:
case YELLOW_WOOL:
return 0.8F;
+ case ACACIA_HANGING_SIGN:
case ACACIA_SIGN:
+ case ACACIA_WALL_HANGING_SIGN:
case ACACIA_WALL_SIGN:
case BAMBOO:
+ case BAMBOO_HANGING_SIGN:
case BAMBOO_SAPLING:
+ case BAMBOO_SIGN:
+ case BAMBOO_WALL_HANGING_SIGN:
+ case BAMBOO_WALL_SIGN:
+ case BIRCH_HANGING_SIGN:
case BIRCH_SIGN:
+ case BIRCH_WALL_HANGING_SIGN:
case BIRCH_WALL_SIGN:
case BLACK_BANNER:
case BLACK_WALL_BANNER:
@@ -8659,11 +9000,15 @@ public enum Material implements Keyed {
case CARVED_PUMPKIN:
case CREEPER_HEAD:
case CREEPER_WALL_HEAD:
+ case CRIMSON_HANGING_SIGN:
case CRIMSON_SIGN:
+ case CRIMSON_WALL_HANGING_SIGN:
case CRIMSON_WALL_SIGN:
case CYAN_BANNER:
case CYAN_WALL_BANNER:
+ case DARK_OAK_HANGING_SIGN:
case DARK_OAK_SIGN:
+ case DARK_OAK_WALL_HANGING_SIGN:
case DARK_OAK_WALL_SIGN:
case DRAGON_HEAD:
case DRAGON_WALL_HEAD:
@@ -8673,7 +9018,9 @@ public enum Material implements Keyed {
case GREEN_WALL_BANNER:
case INFESTED_COBBLESTONE:
case JACK_O_LANTERN:
+ case JUNGLE_HANGING_SIGN:
case JUNGLE_SIGN:
+ case JUNGLE_WALL_HANGING_SIGN:
case JUNGLE_WALL_SIGN:
case LIGHT_BLUE_BANNER:
case LIGHT_BLUE_WALL_BANNER:
@@ -8683,15 +9030,21 @@ public enum Material implements Keyed {
case LIME_WALL_BANNER:
case MAGENTA_BANNER:
case MAGENTA_WALL_BANNER:
+ case MANGROVE_HANGING_SIGN:
case MANGROVE_SIGN:
+ case MANGROVE_WALL_HANGING_SIGN:
case MANGROVE_WALL_SIGN:
case MELON:
case NETHER_WART_BLOCK:
+ case OAK_HANGING_SIGN:
case OAK_SIGN:
+ case OAK_WALL_HANGING_SIGN:
case OAK_WALL_SIGN:
case ORANGE_BANNER:
case ORANGE_WALL_BANNER:
case PACKED_MUD:
+ case PIGLIN_HEAD:
+ case PIGLIN_WALL_HEAD:
case PINK_BANNER:
case PINK_WALL_BANNER:
case PLAYER_HEAD:
@@ -8704,9 +9057,13 @@ public enum Material implements Keyed {
case SHROOMLIGHT:
case SKELETON_SKULL:
case SKELETON_WALL_SKULL:
+ case SPRUCE_HANGING_SIGN:
case SPRUCE_SIGN:
+ case SPRUCE_WALL_HANGING_SIGN:
case SPRUCE_WALL_SIGN:
+ case WARPED_HANGING_SIGN:
case WARPED_SIGN:
+ case WARPED_WALL_HANGING_SIGN:
case WARPED_WALL_SIGN:
case WARPED_WART_BLOCK:
case WHITE_BANNER:
@@ -8769,6 +9126,7 @@ public enum Material implements Keyed {
case BRAIN_CORAL_BLOCK:
case BUBBLE_CORAL_BLOCK:
case BUDDING_AMETHYST:
+ case CHISELED_BOOKSHELF:
case CHISELED_POLISHED_BLACKSTONE:
case CHISELED_STONE_BRICKS:
case CRACKED_POLISHED_BLACKSTONE_BRICKS:
@@ -8864,6 +9222,15 @@ public enum Material implements Keyed {
case ACACIA_SLAB:
case ACACIA_STAIRS:
case ACACIA_WOOD:
+ case BAMBOO_BLOCK:
+ case BAMBOO_FENCE:
+ case BAMBOO_FENCE_GATE:
+ case BAMBOO_MOSAIC:
+ case BAMBOO_MOSAIC_SLAB:
+ case BAMBOO_MOSAIC_STAIRS:
+ case BAMBOO_PLANKS:
+ case BAMBOO_SLAB:
+ case BAMBOO_STAIRS:
case BIRCH_FENCE:
case BIRCH_FENCE_GATE:
case BIRCH_LOG:
@@ -8987,6 +9354,7 @@ public enum Material implements Keyed {
case STONE_SLAB:
case STRIPPED_ACACIA_LOG:
case STRIPPED_ACACIA_WOOD:
+ case STRIPPED_BAMBOO_BLOCK:
case STRIPPED_BIRCH_LOG:
case STRIPPED_BIRCH_WOOD:
case STRIPPED_CRIMSON_HYPHAE:
@@ -9028,6 +9396,8 @@ public enum Material implements Keyed {
return 2.8F;
case ACACIA_DOOR:
case ACACIA_TRAPDOOR:
+ case BAMBOO_DOOR:
+ case BAMBOO_TRAPDOOR:
case BEACON:
case BIRCH_DOOR:
case BIRCH_TRAPDOOR:
@@ -9325,6 +9695,8 @@ public enum Material implements Keyed {
return 0.4F;
case ACACIA_BUTTON:
case ACACIA_PRESSURE_PLATE:
+ case BAMBOO_BUTTON:
+ case BAMBOO_PRESSURE_PLATE:
case BIRCH_BUTTON:
case BIRCH_PRESSURE_PLATE:
case BLACK_CANDLE_CAKE:
@@ -9462,11 +9834,19 @@ public enum Material implements Keyed {
case WHITE_WOOL:
case YELLOW_WOOL:
return 0.8F;
+ case ACACIA_HANGING_SIGN:
case ACACIA_SIGN:
+ case ACACIA_WALL_HANGING_SIGN:
case ACACIA_WALL_SIGN:
case BAMBOO:
+ case BAMBOO_HANGING_SIGN:
case BAMBOO_SAPLING:
+ case BAMBOO_SIGN:
+ case BAMBOO_WALL_HANGING_SIGN:
+ case BAMBOO_WALL_SIGN:
+ case BIRCH_HANGING_SIGN:
case BIRCH_SIGN:
+ case BIRCH_WALL_HANGING_SIGN:
case BIRCH_WALL_SIGN:
case BLACK_BANNER:
case BLACK_WALL_BANNER:
@@ -9477,11 +9857,15 @@ public enum Material implements Keyed {
case CARVED_PUMPKIN:
case CREEPER_HEAD:
case CREEPER_WALL_HEAD:
+ case CRIMSON_HANGING_SIGN:
case CRIMSON_SIGN:
+ case CRIMSON_WALL_HANGING_SIGN:
case CRIMSON_WALL_SIGN:
case CYAN_BANNER:
case CYAN_WALL_BANNER:
+ case DARK_OAK_HANGING_SIGN:
case DARK_OAK_SIGN:
+ case DARK_OAK_WALL_HANGING_SIGN:
case DARK_OAK_WALL_SIGN:
case DRAGON_HEAD:
case DRAGON_WALL_HEAD:
@@ -9491,7 +9875,9 @@ public enum Material implements Keyed {
case GREEN_BANNER:
case GREEN_WALL_BANNER:
case JACK_O_LANTERN:
+ case JUNGLE_HANGING_SIGN:
case JUNGLE_SIGN:
+ case JUNGLE_WALL_HANGING_SIGN:
case JUNGLE_WALL_SIGN:
case LIGHT_BLUE_BANNER:
case LIGHT_BLUE_WALL_BANNER:
@@ -9501,14 +9887,20 @@ public enum Material implements Keyed {
case LIME_WALL_BANNER:
case MAGENTA_BANNER:
case MAGENTA_WALL_BANNER:
+ case MANGROVE_HANGING_SIGN:
case MANGROVE_SIGN:
+ case MANGROVE_WALL_HANGING_SIGN:
case MANGROVE_WALL_SIGN:
case MELON:
case NETHER_WART_BLOCK:
+ case OAK_HANGING_SIGN:
case OAK_SIGN:
+ case OAK_WALL_HANGING_SIGN:
case OAK_WALL_SIGN:
case ORANGE_BANNER:
case ORANGE_WALL_BANNER:
+ case PIGLIN_HEAD:
+ case PIGLIN_WALL_HEAD:
case PINK_BANNER:
case PINK_WALL_BANNER:
case PLAYER_HEAD:
@@ -9521,9 +9913,13 @@ public enum Material implements Keyed {
case SHROOMLIGHT:
case SKELETON_SKULL:
case SKELETON_WALL_SKULL:
+ case SPRUCE_HANGING_SIGN:
case SPRUCE_SIGN:
+ case SPRUCE_WALL_HANGING_SIGN:
case SPRUCE_WALL_SIGN:
+ case WARPED_HANGING_SIGN:
case WARPED_SIGN:
+ case WARPED_WALL_HANGING_SIGN:
case WARPED_WALL_SIGN:
case WARPED_WART_BLOCK:
case WHITE_BANNER:
@@ -9556,6 +9952,7 @@ public enum Material implements Keyed {
case AMETHYST_CLUSTER:
case BOOKSHELF:
case BUDDING_AMETHYST:
+ case CHISELED_BOOKSHELF:
case LARGE_AMETHYST_BUD:
case MEDIUM_AMETHYST_BUD:
case PISTON:
@@ -9583,6 +9980,7 @@ public enum Material implements Keyed {
return 1.8F;
case ACACIA_LOG:
case ACACIA_WOOD:
+ case BAMBOO_BLOCK:
case BIRCH_LOG:
case BIRCH_WOOD:
case BLACK_SHULKER_BOX:
@@ -9620,6 +10018,7 @@ public enum Material implements Keyed {
case SPRUCE_WOOD:
case STRIPPED_ACACIA_LOG:
case STRIPPED_ACACIA_WOOD:
+ case STRIPPED_BAMBOO_BLOCK:
case STRIPPED_BIRCH_LOG:
case STRIPPED_BIRCH_WOOD:
case STRIPPED_CRIMSON_HYPHAE:
@@ -9662,6 +10061,16 @@ public enum Material implements Keyed {
case ACACIA_SLAB:
case ACACIA_STAIRS:
case ACACIA_TRAPDOOR:
+ case BAMBOO_DOOR:
+ case BAMBOO_FENCE:
+ case BAMBOO_FENCE_GATE:
+ case BAMBOO_MOSAIC:
+ case BAMBOO_MOSAIC_SLAB:
+ case BAMBOO_MOSAIC_STAIRS:
+ case BAMBOO_PLANKS:
+ case BAMBOO_SLAB:
+ case BAMBOO_STAIRS:
+ case BAMBOO_TRAPDOOR:
case BEACON:
case BIRCH_DOOR:
case BIRCH_FENCE:
@@ -10091,6 +10500,7 @@ public enum Material implements Keyed {
case LEATHER_HELMET:
case NETHERITE_HELMET:
case PLAYER_HEAD:
+ case PIGLIN_HEAD:
case SKELETON_SKULL:
case TURTLE_HELMET:
case WITHER_SKELETON_SKULL:
diff --git a/paper-api/src/main/java/org/bukkit/Server.java b/paper-api/src/main/java/org/bukkit/Server.java
index b1ed8a51c..ac380d4f4 100644
--- a/paper-api/src/main/java/org/bukkit/Server.java
+++ b/paper-api/src/main/java/org/bukkit/Server.java
@@ -859,7 +859,9 @@ public interface Server extends PluginMessageRecipient {
* message to the client when the player types a message
*
* @return true if the server should send a preview, false otherwise
+ * @deprecated chat previews have been removed
*/
+ @Deprecated
public boolean shouldSendChatPreviews();
/**
diff --git a/paper-api/src/main/java/org/bukkit/SkullType.java b/paper-api/src/main/java/org/bukkit/SkullType.java
index 1c3d9ae9b..49f2f1128 100644
--- a/paper-api/src/main/java/org/bukkit/SkullType.java
+++ b/paper-api/src/main/java/org/bukkit/SkullType.java
@@ -11,5 +11,6 @@ public enum SkullType {
ZOMBIE,
PLAYER,
CREEPER,
- DRAGON;
+ DRAGON,
+ PIGLIN;
}
diff --git a/paper-api/src/main/java/org/bukkit/Sound.java b/paper-api/src/main/java/org/bukkit/Sound.java
index 21b95d404..6b360758c 100644
--- a/paper-api/src/main/java/org/bukkit/Sound.java
+++ b/paper-api/src/main/java/org/bukkit/Sound.java
@@ -76,6 +76,26 @@ public enum Sound implements Keyed {
BLOCK_BAMBOO_SAPLING_HIT("block.bamboo_sapling.hit"),
BLOCK_BAMBOO_SAPLING_PLACE("block.bamboo_sapling.place"),
BLOCK_BAMBOO_STEP("block.bamboo.step"),
+ BLOCK_BAMBOO_WOOD_BREAK("block.bamboo_wood.break"),
+ BLOCK_BAMBOO_WOOD_BUTTON_CLICK_OFF("block.bamboo_wood_button.click_off"),
+ BLOCK_BAMBOO_WOOD_BUTTON_CLICK_ON("block.bamboo_wood_button.click_on"),
+ BLOCK_BAMBOO_WOOD_DOOR_CLOSE("block.bamboo_wood_door.close"),
+ BLOCK_BAMBOO_WOOD_DOOR_OPEN("block.bamboo_wood_door.open"),
+ BLOCK_BAMBOO_WOOD_FALL("block.bamboo_wood.fall"),
+ BLOCK_BAMBOO_WOOD_FENCE_GATE_CLOSE("block.bamboo_wood_fence_gate.close"),
+ BLOCK_BAMBOO_WOOD_FENCE_GATE_OPEN("block.bamboo_wood_fence_gate.open"),
+ BLOCK_BAMBOO_WOOD_HANGING_SIGN_BREAK("block.bamboo_wood_hanging_sign.break"),
+ BLOCK_BAMBOO_WOOD_HANGING_SIGN_FALL("block.bamboo_wood_hanging_sign.fall"),
+ BLOCK_BAMBOO_WOOD_HANGING_SIGN_HIT("block.bamboo_wood_hanging_sign.hit"),
+ BLOCK_BAMBOO_WOOD_HANGING_SIGN_PLACE("block.bamboo_wood_hanging_sign.place"),
+ BLOCK_BAMBOO_WOOD_HANGING_SIGN_STEP("block.bamboo_wood_hanging_sign.step"),
+ BLOCK_BAMBOO_WOOD_HIT("block.bamboo_wood.hit"),
+ BLOCK_BAMBOO_WOOD_PLACE("block.bamboo_wood.place"),
+ BLOCK_BAMBOO_WOOD_PRESSURE_PLATE_CLICK_OFF("block.bamboo_wood_pressure_plate.click_off"),
+ BLOCK_BAMBOO_WOOD_PRESSURE_PLATE_CLICK_ON("block.bamboo_wood_pressure_plate.click_on"),
+ BLOCK_BAMBOO_WOOD_STEP("block.bamboo_wood.step"),
+ BLOCK_BAMBOO_WOOD_TRAPDOOR_CLOSE("block.bamboo_wood_trapdoor.close"),
+ BLOCK_BAMBOO_WOOD_TRAPDOOR_OPEN("block.bamboo_wood_trapdoor.open"),
BLOCK_BARREL_CLOSE("block.barrel.close"),
BLOCK_BARREL_OPEN("block.barrel.open"),
BLOCK_BASALT_BREAK("block.basalt.break"),
@@ -141,6 +161,15 @@ public enum Sound implements Keyed {
BLOCK_CHEST_CLOSE("block.chest.close"),
BLOCK_CHEST_LOCKED("block.chest.locked"),
BLOCK_CHEST_OPEN("block.chest.open"),
+ BLOCK_CHISELED_BOOKSHELF_BREAK("block.chiseled_bookshelf.break"),
+ BLOCK_CHISELED_BOOKSHELF_FALL("block.chiseled_bookshelf.fall"),
+ BLOCK_CHISELED_BOOKSHELF_HIT("block.chiseled_bookshelf.hit"),
+ BLOCK_CHISELED_BOOKSHELF_INSERT("block.chiseled_bookshelf.insert"),
+ BLOCK_CHISELED_BOOKSHELF_INSERT_ENCHANTED("block.chiseled_bookshelf.insert.enchanted"),
+ BLOCK_CHISELED_BOOKSHELF_PICKUP("block.chiseled_bookshelf.pickup"),
+ BLOCK_CHISELED_BOOKSHELF_PICKUP_ENCHANTED("block.chiseled_bookshelf.pickup.enchanted"),
+ BLOCK_CHISELED_BOOKSHELF_PLACE("block.chiseled_bookshelf.place"),
+ BLOCK_CHISELED_BOOKSHELF_STEP("block.chiseled_bookshelf.step"),
BLOCK_CHORUS_FLOWER_DEATH("block.chorus_flower.death"),
BLOCK_CHORUS_FLOWER_GROW("block.chorus_flower.grow"),
BLOCK_COMPARATOR_CLICK("block.comparator.click"),
@@ -246,6 +275,11 @@ public enum Sound implements Keyed {
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_HANGING_SIGN_BREAK("block.hanging_sign.break"),
+ BLOCK_HANGING_SIGN_FALL("block.hanging_sign.fall"),
+ BLOCK_HANGING_SIGN_HIT("block.hanging_sign.hit"),
+ BLOCK_HANGING_SIGN_PLACE("block.hanging_sign.place"),
+ BLOCK_HANGING_SIGN_STEP("block.hanging_sign.step"),
BLOCK_HONEY_BLOCK_BREAK("block.honey_block.break"),
BLOCK_HONEY_BLOCK_FALL("block.honey_block.fall"),
BLOCK_HONEY_BLOCK_HIT("block.honey_block.hit"),
@@ -348,6 +382,26 @@ public enum Sound implements Keyed {
BLOCK_NETHER_SPROUTS_PLACE("block.nether_sprouts.place"),
BLOCK_NETHER_SPROUTS_STEP("block.nether_sprouts.step"),
BLOCK_NETHER_WART_BREAK("block.nether_wart.break"),
+ BLOCK_NETHER_WOOD_BREAK("block.nether_wood.break"),
+ BLOCK_NETHER_WOOD_BUTTON_CLICK_OFF("block.nether_wood_button.click_off"),
+ BLOCK_NETHER_WOOD_BUTTON_CLICK_ON("block.nether_wood_button.click_on"),
+ BLOCK_NETHER_WOOD_DOOR_CLOSE("block.nether_wood_door.close"),
+ BLOCK_NETHER_WOOD_DOOR_OPEN("block.nether_wood_door.open"),
+ BLOCK_NETHER_WOOD_FALL("block.nether_wood.fall"),
+ BLOCK_NETHER_WOOD_FENCE_GATE_CLOSE("block.nether_wood_fence_gate.close"),
+ BLOCK_NETHER_WOOD_FENCE_GATE_OPEN("block.nether_wood_fence_gate.open"),
+ BLOCK_NETHER_WOOD_HANGING_SIGN_BREAK("block.nether_wood_hanging_sign.break"),
+ BLOCK_NETHER_WOOD_HANGING_SIGN_FALL("block.nether_wood_hanging_sign.fall"),
+ BLOCK_NETHER_WOOD_HANGING_SIGN_HIT("block.nether_wood_hanging_sign.hit"),
+ BLOCK_NETHER_WOOD_HANGING_SIGN_PLACE("block.nether_wood_hanging_sign.place"),
+ BLOCK_NETHER_WOOD_HANGING_SIGN_STEP("block.nether_wood_hanging_sign.step"),
+ BLOCK_NETHER_WOOD_HIT("block.nether_wood.hit"),
+ BLOCK_NETHER_WOOD_PLACE("block.nether_wood.place"),
+ BLOCK_NETHER_WOOD_PRESSURE_PLATE_CLICK_OFF("block.nether_wood_pressure_plate.click_off"),
+ BLOCK_NETHER_WOOD_PRESSURE_PLATE_CLICK_ON("block.nether_wood_pressure_plate.click_on"),
+ BLOCK_NETHER_WOOD_STEP("block.nether_wood.step"),
+ BLOCK_NETHER_WOOD_TRAPDOOR_CLOSE("block.nether_wood_trapdoor.close"),
+ BLOCK_NETHER_WOOD_TRAPDOOR_OPEN("block.nether_wood_trapdoor.open"),
BLOCK_NOTE_BLOCK_BANJO("block.note_block.banjo"),
BLOCK_NOTE_BLOCK_BASEDRUM("block.note_block.basedrum"),
BLOCK_NOTE_BLOCK_BASS("block.note_block.bass"),
@@ -360,6 +414,12 @@ public enum Sound implements Keyed {
BLOCK_NOTE_BLOCK_GUITAR("block.note_block.guitar"),
BLOCK_NOTE_BLOCK_HARP("block.note_block.harp"),
BLOCK_NOTE_BLOCK_HAT("block.note_block.hat"),
+ BLOCK_NOTE_BLOCK_IMITATE_CREEPER("block.note_block.imitate.creeper"),
+ BLOCK_NOTE_BLOCK_IMITATE_ENDER_DRAGON("block.note_block.imitate.ender_dragon"),
+ BLOCK_NOTE_BLOCK_IMITATE_PIGLIN("block.note_block.imitate.piglin"),
+ BLOCK_NOTE_BLOCK_IMITATE_SKELETON("block.note_block.imitate.skeleton"),
+ BLOCK_NOTE_BLOCK_IMITATE_WITHER_SKELETON("block.note_block.imitate.wither_skeleton"),
+ BLOCK_NOTE_BLOCK_IMITATE_ZOMBIE("block.note_block.imitate.zombie"),
BLOCK_NOTE_BLOCK_IRON_XYLOPHONE("block.note_block.iron_xylophone"),
BLOCK_NOTE_BLOCK_PLING("block.note_block.pling"),
BLOCK_NOTE_BLOCK_SNARE("block.note_block.snare"),
@@ -602,6 +662,17 @@ public enum Sound implements Keyed {
ENTITY_BLAZE_SHOOT("entity.blaze.shoot"),
ENTITY_BOAT_PADDLE_LAND("entity.boat.paddle_land"),
ENTITY_BOAT_PADDLE_WATER("entity.boat.paddle_water"),
+ ENTITY_CAMEL_AMBIENT("entity.camel.ambient"),
+ ENTITY_CAMEL_DASH("entity.camel.dash"),
+ ENTITY_CAMEL_DASH_READY("entity.camel.dash_ready"),
+ ENTITY_CAMEL_DEATH("entity.camel.death"),
+ ENTITY_CAMEL_EAT("entity.camel.eat"),
+ ENTITY_CAMEL_HURT("entity.camel.hurt"),
+ ENTITY_CAMEL_SADDLE("entity.camel.saddle"),
+ ENTITY_CAMEL_SIT("entity.camel.sit"),
+ ENTITY_CAMEL_STAND("entity.camel.stand"),
+ ENTITY_CAMEL_STEP("entity.camel.step"),
+ ENTITY_CAMEL_STEP_SAND("entity.camel.step_sand"),
ENTITY_CAT_AMBIENT("entity.cat.ambient"),
ENTITY_CAT_BEG_FOR_FOOD("entity.cat.beg_for_food"),
ENTITY_CAT_DEATH("entity.cat.death"),
diff --git a/paper-api/src/main/java/org/bukkit/Tag.java b/paper-api/src/main/java/org/bukkit/Tag.java
index 6f6e359df..bceaa1a97 100644
--- a/paper-api/src/main/java/org/bukkit/Tag.java
+++ b/paper-api/src/main/java/org/bukkit/Tag.java
@@ -95,11 +95,6 @@ public interface Tag extends Keyed {
* Vanilla block tag representing all log and bark variants that burn.
*/
Tag LOGS_THAT_BURN = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("logs_that_burn"), Material.class);
- /**
- * Vanilla block tag representing all log bark variants that appear
- * naturally in the overworld.
- */
- Tag OVERWORLD_NATURAL_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("overworld_natural_logs"), Material.class);
/**
* Vanilla block tag representing all log and bark variants.
*/
@@ -140,6 +135,10 @@ public interface Tag extends Keyed {
* Vanilla block tag representing all warped stems.
*/
Tag WARPED_STEMS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("warped_stems"), Material.class);
+ /**
+ * Vanilla block tag representing all bamboo blocks.
+ */
+ Tag BAMBOO_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bamboo_blocks"), Material.class);
/**
* Vanilla block tag representing all banner blocks.
*/
@@ -237,10 +236,6 @@ public interface Tag extends Keyed {
* 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.
*/
@@ -307,9 +302,25 @@ public interface Tag extends Keyed {
*/
Tag WALL_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_signs"), Material.class);
/**
- * Vanilla block tag representing all signs.
+ * Vanilla block tag representing all regular signs.
*/
Tag SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("signs"), Material.class);
+ /**
+ * Vanilla block tag representing all ceiling signs.
+ */
+ Tag CEILING_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("ceiling_hanging_signs"), Material.class);
+ /**
+ * Vanilla block tag representing all wall hanging signs.
+ */
+ Tag WALL_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_hanging_signs"), Material.class);
+ /**
+ * Vanilla block tag representing all hanging signs.
+ */
+ Tag ALL_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("all_hanging_signs"), Material.class);
+ /**
+ * Vanilla block tag representing all signs, regardless of type.
+ */
+ Tag ALL_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("all_signs"), Material.class);
/**
* Vanilla block tag representing all blocks immune to dragons.
*/
@@ -661,6 +672,10 @@ public interface Tag extends Keyed {
* Vanilla block tag representing blocks which snow can survive on.
*/
Tag SNOW_LAYER_CAN_SURVIVE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("snow_layer_can_survive_on"), Material.class);
+ /**
+ * Vanilla block tag representing blocks which cannot be dismounted into.
+ */
+ Tag INVALID_SPAWN_INSIDE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("invalid_spawn_inside"), Material.class);
/**
* Key for the built in item registry.
*/
@@ -717,6 +732,10 @@ public interface Tag extends Keyed {
* Vanilla item tag representing all books that may be placed on lecterns.
*/
Tag ITEMS_LECTERN_BOOKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("lectern_books"), Material.class);
+ /**
+ * Vanilla item tag representing all books that may be placed on bookshelves.
+ */
+ Tag ITEMS_BOOKSHELF_BOOKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bookshelf_books"), Material.class);
/**
* Vanilla item tag representing all items that may be placed in beacons.
*/
@@ -733,6 +752,15 @@ public interface Tag extends Keyed {
* Vanilla item tag representing all compasses.
*/
Tag ITEMS_COMPASSES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("compasses"), Material.class);
+ /**
+ * Vanilla item tag representing all hanging signs.
+ */
+ Tag ITEMS_HANGING_SIGNS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("hanging_signs"), Material.class);
+ /**
+ * Vanilla item tag representing all items which will ignite creepers when
+ * interacted with.
+ */
+ Tag ITEMS_CREEPER_IGNITERS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("creeper_igniters"), Material.class);
/**
* Vanilla item tag representing all items that confer freeze immunity on
* the wearer.
diff --git a/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java b/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java
new file mode 100644
index 000000000..4cae298f1
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java
@@ -0,0 +1,40 @@
+package org.bukkit.block;
+
+import org.bukkit.inventory.BlockInventoryHolder;
+import org.bukkit.inventory.ChiseledBookshelfInventory;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * Represents a captured state of a chiseled bookshelf.
+ */
+public interface ChiseledBookshelf extends TileState, BlockInventoryHolder {
+
+ /**
+ * Gets the last interacted inventory slot.
+ *
+ * @return the last interacted slot
+ */
+ int getLastInteractedSlot();
+
+ /**
+ * Sets the last interacted inventory slot.
+ *
+ * @param lastInteractedSlot the new last interacted slot
+ */
+ void setLastInteractedSlot(int lastInteractedSlot);
+
+ /**
+ * @return inventory
+ * @see Container#getInventory()
+ */
+ @NotNull
+ @Override
+ ChiseledBookshelfInventory getInventory();
+
+ /**
+ * @return snapshot inventory
+ * @see Container#getSnapshotInventory()
+ */
+ @NotNull
+ ChiseledBookshelfInventory getSnapshotInventory();
+}
diff --git a/paper-api/src/main/java/org/bukkit/block/HangingSign.java b/paper-api/src/main/java/org/bukkit/block/HangingSign.java
new file mode 100644
index 000000000..9bef6c659
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/block/HangingSign.java
@@ -0,0 +1,7 @@
+package org.bukkit.block;
+
+/**
+ * Represents a captured state of a hanging sign.
+ */
+public interface HangingSign extends Sign {
+}
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java b/paper-api/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java
new file mode 100644
index 000000000..a172e22ce
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/ChiseledBookshelf.java
@@ -0,0 +1,46 @@
+package org.bukkit.block.data.type;
+
+import java.util.Set;
+import org.bukkit.block.data.Directional;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * Interface to the 'slot_0_occupied', 'slow_1_occupied' ... 'slot_5_occupied'
+ * flags on a bookshelf which indicate which slots are occupied rendered on the
+ * outside.
+ *
+ * Block may have 0, 1... {@link #getMaximumOccupiedSlots()}-1 occupied slots.
+ */
+public interface ChiseledBookshelf extends Directional {
+
+ /**
+ * Checks if the following slot is occupied.
+ *
+ * @param slot to check
+ * @return if slot is occupied
+ */
+ boolean isSlotOccupied(int slot);
+
+ /**
+ * Sets whether the following slot is occupied.
+ *
+ * @param slot to set
+ * @param occupied book
+ */
+ void setSlotOccupied(int slot, boolean occupied);
+
+ /**
+ * Get the indexes of all the occupied slots present on this block.
+ *
+ * @return set of all occupied slots
+ */
+ @NotNull
+ Set getOccupiedSlots();
+
+ /**
+ * Get the maximum amount of slots on this block.
+ *
+ * @return maximum occupied slots count
+ */
+ int getMaximumOccupiedSlots();
+}
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/HangingSign.java b/paper-api/src/main/java/org/bukkit/block/data/type/HangingSign.java
new file mode 100644
index 000000000..c5a0c1476
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/HangingSign.java
@@ -0,0 +1,8 @@
+package org.bukkit.block.data.type;
+
+import org.bukkit.block.data.Attachable;
+import org.bukkit.block.data.Rotatable;
+import org.bukkit.block.data.Waterlogged;
+
+public interface HangingSign extends Attachable, Rotatable, Waterlogged {
+}
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/WallHangingSign.java b/paper-api/src/main/java/org/bukkit/block/data/type/WallHangingSign.java
new file mode 100644
index 000000000..283b21024
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/WallHangingSign.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 WallHangingSign extends Directional, Waterlogged {
+}
diff --git a/paper-api/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java b/paper-api/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
index 635e07a6b..cb9e8b53d 100644
--- a/paper-api/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
+++ b/paper-api/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
@@ -192,6 +192,7 @@ public enum EnchantmentTarget {
|| item.equals(Material.SKELETON_SKULL)
|| item.equals(Material.WITHER_SKELETON_SKULL)
|| item.equals(Material.ZOMBIE_HEAD)
+ || item.equals(Material.PIGLIN_HEAD)
|| item.equals(Material.PLAYER_HEAD)
|| item.equals(Material.CREEPER_HEAD)
|| item.equals(Material.DRAGON_HEAD);
diff --git a/paper-api/src/main/java/org/bukkit/entity/Boat.java b/paper-api/src/main/java/org/bukkit/entity/Boat.java
index e5d5d2c94..ebab99bd0 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Boat.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Boat.java
@@ -143,6 +143,7 @@ public interface Boat extends Vehicle {
ACACIA(Material.ACACIA_PLANKS),
DARK_OAK(Material.DARK_OAK_PLANKS),
MANGROVE(Material.MANGROVE_PLANKS),
+ BAMBOO(Material.BAMBOO_PLANKS),
;
private final Material materialBlock;
diff --git a/paper-api/src/main/java/org/bukkit/entity/Camel.java b/paper-api/src/main/java/org/bukkit/entity/Camel.java
new file mode 100644
index 000000000..07052a142
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/Camel.java
@@ -0,0 +1,21 @@
+package org.bukkit.entity;
+
+/**
+ * Represents a Camel.
+ */
+public interface Camel extends AbstractHorse {
+
+ /**
+ * Gets whether this camel is dashing (sprinting).
+ *
+ * @return dashing status
+ */
+ boolean isDashing();
+
+ /**
+ * Sets whether this camel is dashing (sprinting).
+ *
+ * @param dashing new dashing status
+ */
+ void setDashing(boolean dashing);
+}
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 e4a1dac89..df9d315cf 100644
--- a/paper-api/src/main/java/org/bukkit/entity/EntityType.java
+++ b/paper-api/src/main/java/org/bukkit/entity/EntityType.java
@@ -276,6 +276,7 @@ public enum EntityType implements Keyed {
FROG("frog", Frog.class, -1),
TADPOLE("tadpole", Tadpole.class, -1),
WARDEN("warden", Warden.class, -1),
+ CAMEL("camel", Camel.class, -1),
/**
* A fishing line and bobber.
*/
diff --git a/paper-api/src/main/java/org/bukkit/entity/Horse.java b/paper-api/src/main/java/org/bukkit/entity/Horse.java
index 9e1bb136c..48453875e 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Horse.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Horse.java
@@ -36,7 +36,11 @@ public interface Horse extends AbstractHorse {
/**
* Not really a horse :)
*/
- LLAMA
+ LLAMA,
+ /**
+ * Also not really a horse :)
+ */
+ CAMEL,
;
}
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 af1acfa18..5122194ac 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Pose.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Pose.java
@@ -46,6 +46,10 @@ public enum Pose {
* Entity is using its tongue.
*/
USING_TONGUE,
+ /**
+ * Entity is sitting.
+ */
+ SITTING,
/**
* Entity is roaring.
*/
diff --git a/paper-api/src/main/java/org/bukkit/event/inventory/InventoryType.java b/paper-api/src/main/java/org/bukkit/event/inventory/InventoryType.java
index 441362d2f..21ef4150d 100644
--- a/paper-api/src/main/java/org/bukkit/event/inventory/InventoryType.java
+++ b/paper-api/src/main/java/org/bukkit/event/inventory/InventoryType.java
@@ -133,7 +133,11 @@ public enum InventoryType {
/**
* Pseudo composter inventory with 0 or 1 slots of undefined type.
*/
- COMPOSTER(1, "Composter")
+ COMPOSTER(1, "Composter"),
+ /**
+ * Pseudo chiseled bookshelf inventory, with 6 slots of undefined type.
+ */
+ CHISELED_BOOKSHELF(6, "Chiseled Bookshelf"),
;
private final int size;
diff --git a/paper-api/src/main/java/org/bukkit/event/player/AsyncPlayerChatPreviewEvent.java b/paper-api/src/main/java/org/bukkit/event/player/AsyncPlayerChatPreviewEvent.java
index 9bb17fde6..2ce4d3b25 100644
--- a/paper-api/src/main/java/org/bukkit/event/player/AsyncPlayerChatPreviewEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/player/AsyncPlayerChatPreviewEvent.java
@@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull;
* of the corresponding {@link AsyncPlayerChatEvent} must be formatted in
* the same way.
*
- * @deprecated draft API
+ * @deprecated chat previews have been removed
*/
@Deprecated
@Warning(false)
diff --git a/paper-api/src/main/java/org/bukkit/event/server/ServerListPingEvent.java b/paper-api/src/main/java/org/bukkit/event/server/ServerListPingEvent.java
index cf13380b2..5adbe0514 100644
--- a/paper-api/src/main/java/org/bukkit/event/server/ServerListPingEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/server/ServerListPingEvent.java
@@ -22,32 +22,20 @@ public class ServerListPingEvent extends ServerEvent implements Iterable
private static final HandlerList handlers = new HandlerList();
private final String hostname;
private final InetAddress address;
- private final boolean shouldSendChatPreviews;
private String motd;
private final int numPlayers;
private int maxPlayers;
- @Deprecated
- public ServerListPingEvent(@NotNull final InetAddress address, @NotNull final String motd, final boolean shouldSendChatPreviews, final int numPlayers, final int maxPlayers) {
- this("", address, motd, shouldSendChatPreviews, numPlayers, maxPlayers);
- }
-
- public ServerListPingEvent(@NotNull final String hostname, @NotNull final InetAddress address, @NotNull final String motd, final boolean shouldSendChatPreviews, final int numPlayers, final int maxPlayers) {
+ public ServerListPingEvent(@NotNull final String hostname, @NotNull final InetAddress address, @NotNull final String motd, final int numPlayers, final int maxPlayers) {
super(true);
Preconditions.checkArgument(numPlayers >= 0, "Cannot have negative number of players online", numPlayers);
this.hostname = hostname;
this.address = address;
this.motd = motd;
- this.shouldSendChatPreviews = shouldSendChatPreviews;
this.numPlayers = numPlayers;
this.maxPlayers = maxPlayers;
}
- @Deprecated
- protected ServerListPingEvent(@NotNull final InetAddress address, @NotNull final String motd, boolean shouldSendChatPreviews, final int maxPlayers) {
- this("", address, motd, shouldSendChatPreviews, maxPlayers);
- }
-
/**
* This constructor is intended for implementations that provide the
* {@link #iterator()} method, thus provided the {@link #getNumPlayers()}
@@ -56,16 +44,14 @@ public class ServerListPingEvent extends ServerEvent implements Iterable
* @param hostname The hostname that was used to connect to the server
* @param address the address of the pinger
* @param motd the message of the day
- * @param shouldSendChatPreviews if the server should send chat previews
* @param maxPlayers the max number of players
*/
- protected ServerListPingEvent(@NotNull final String hostname, @NotNull final InetAddress address, @NotNull final String motd, boolean shouldSendChatPreviews, final int maxPlayers) {
+ protected ServerListPingEvent(@NotNull final String hostname, @NotNull final InetAddress address, @NotNull final String motd, final int maxPlayers) {
super(true);
this.numPlayers = MAGIC_PLAYER_COUNT;
this.hostname = hostname;
this.address = address;
this.motd = motd;
- this.shouldSendChatPreviews = shouldSendChatPreviews;
this.maxPlayers = maxPlayers;
}
@@ -139,9 +125,11 @@ public class ServerListPingEvent extends ServerEvent implements Iterable
* client.
*
* @return true if chat preview is enabled, false otherwise
+ * @deprecated chat previews have been removed
*/
+ @Deprecated
public boolean shouldSendChatPreviews() {
- return shouldSendChatPreviews;
+ return false;
}
/**
diff --git a/paper-api/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java b/paper-api/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java
new file mode 100644
index 000000000..b99f26079
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/inventory/ChiseledBookshelfInventory.java
@@ -0,0 +1,14 @@
+package org.bukkit.inventory;
+
+import org.bukkit.block.ChiseledBookshelf;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * Interface to the inventory of a chiseled bookshelf.
+ */
+public interface ChiseledBookshelfInventory extends Inventory {
+
+ @Nullable
+ @Override
+ public ChiseledBookshelf getHolder();
+}
diff --git a/paper-api/src/main/java/org/bukkit/inventory/CookingRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/CookingRecipe.java
index 6f251252a..571652ba8 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/CookingRecipe.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/CookingRecipe.java
@@ -5,6 +5,7 @@ import java.util.Collections;
import org.bukkit.Keyed;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
+import org.bukkit.inventory.recipe.CookingBookCategory;
import org.jetbrains.annotations.NotNull;
/**
@@ -18,6 +19,7 @@ public abstract class CookingRecipe implements Recipe,
private float experience;
private int cookingTime;
private String group = "";
+ private CookingBookCategory category = CookingBookCategory.MISC;
/**
* Create a cooking recipe to craft the specified ItemStack.
@@ -167,7 +169,31 @@ public abstract class CookingRecipe implements Recipe,
* null.
*/
public void setGroup(@NotNull String group) {
- Preconditions.checkArgument(group != null, "group");
+ Preconditions.checkArgument(group != null, "group cannot be null");
this.group = group;
}
+
+ /**
+ * Gets the category which this recipe will appear in the recipe book under.
+ *
+ * Defaults to {@link CookingBookCategory#MISC} if not set.
+ *
+ * @return recipe book category
+ */
+ @NotNull
+ public CookingBookCategory getCategory() {
+ return category;
+ }
+
+ /**
+ * Sets the category which this recipe will appear in the recipe book under.
+ *
+ * Defaults to {@link CookingBookCategory#MISC} if not set.
+ *
+ * @param category recipe book category
+ */
+ public void setCategory(@NotNull CookingBookCategory category) {
+ Preconditions.checkArgument(category != null, "category cannot be null");
+ this.category = category;
+ }
}
diff --git a/paper-api/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/ShapedRecipe.java
index fde34da0f..e57e60028 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/ShapedRecipe.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/ShapedRecipe.java
@@ -7,6 +7,7 @@ import java.util.Map;
import org.bukkit.Keyed;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
+import org.bukkit.inventory.recipe.CraftingBookCategory;
import org.bukkit.material.MaterialData;
import org.jetbrains.annotations.NotNull;
@@ -19,6 +20,7 @@ public class ShapedRecipe implements Recipe, Keyed {
private String[] rows;
private Map ingredients = new HashMap<>();
private String group = "";
+ private CraftingBookCategory category = CraftingBookCategory.MISC;
@Deprecated
public ShapedRecipe(@NotNull ItemStack result) {
@@ -221,7 +223,31 @@ public class ShapedRecipe implements Recipe, Keyed {
* null.
*/
public void setGroup(@NotNull String group) {
- Preconditions.checkArgument(group != null, "group");
+ Preconditions.checkArgument(group != null, "group cannot be null");
this.group = group;
}
+
+ /**
+ * Gets the category which this recipe will appear in the recipe book under.
+ *
+ * Defaults to {@link CraftingBookCategory#MISC} if not set.
+ *
+ * @return recipe book category
+ */
+ @NotNull
+ public CraftingBookCategory getCategory() {
+ return category;
+ }
+
+ /**
+ * Sets the category which this recipe will appear in the recipe book under.
+ *
+ * Defaults to {@link CraftingBookCategory#MISC} if not set.
+ *
+ * @param category recipe book category
+ */
+ public void setCategory(@NotNull CraftingBookCategory category) {
+ Preconditions.checkArgument(category != null, "category cannot be null");
+ this.category = category;
+ }
}
diff --git a/paper-api/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
index cc3f7cccf..df4c52f1f 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
@@ -8,6 +8,7 @@ import java.util.List;
import org.bukkit.Keyed;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
+import org.bukkit.inventory.recipe.CraftingBookCategory;
import org.bukkit.material.MaterialData;
import org.jetbrains.annotations.NotNull;
@@ -20,6 +21,7 @@ public class ShapelessRecipe implements Recipe, Keyed {
private final ItemStack output;
private final List ingredients = new ArrayList<>();
private String group = "";
+ private CraftingBookCategory category = CraftingBookCategory.MISC;
@Deprecated
public ShapelessRecipe(@NotNull ItemStack result) {
@@ -308,7 +310,31 @@ public class ShapelessRecipe implements Recipe, Keyed {
* null.
*/
public void setGroup(@NotNull String group) {
- Preconditions.checkArgument(group != null, "group");
+ Preconditions.checkArgument(group != null, "group cannot be null");
this.group = group;
}
+
+ /**
+ * Gets the category which this recipe will appear in the recipe book under.
+ *
+ * Defaults to {@link CraftingBookCategory#MISC} if not set.
+ *
+ * @return recipe book category
+ */
+ @NotNull
+ public CraftingBookCategory getCategory() {
+ return category;
+ }
+
+ /**
+ * Sets the category which this recipe will appear in the recipe book under.
+ *
+ * Defaults to {@link CraftingBookCategory#MISC} if not set.
+ *
+ * @param category recipe book category
+ */
+ public void setCategory(@NotNull CraftingBookCategory category) {
+ Preconditions.checkArgument(category != null, "category cannot be null");
+ this.category = category;
+ }
}
diff --git a/paper-api/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java
index d8ef781d6..07c3dff4d 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java
@@ -121,7 +121,7 @@ public class StonecuttingRecipe implements Recipe, Keyed {
* null.
*/
public void setGroup(@NotNull String group) {
- Preconditions.checkArgument(group != null, "group");
+ Preconditions.checkArgument(group != null, "group cannot be null");
this.group = group;
}
}
diff --git a/paper-api/src/main/java/org/bukkit/inventory/recipe/CookingBookCategory.java b/paper-api/src/main/java/org/bukkit/inventory/recipe/CookingBookCategory.java
new file mode 100644
index 000000000..9990a7abf
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/inventory/recipe/CookingBookCategory.java
@@ -0,0 +1,11 @@
+package org.bukkit.inventory.recipe;
+
+/**
+ * Represents categories within the cooking recipe book.
+ */
+public enum CookingBookCategory {
+
+ FOOD,
+ BLOCKS,
+ MISC;
+}
diff --git a/paper-api/src/main/java/org/bukkit/inventory/recipe/CraftingBookCategory.java b/paper-api/src/main/java/org/bukkit/inventory/recipe/CraftingBookCategory.java
new file mode 100644
index 000000000..09a6a1b9b
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/inventory/recipe/CraftingBookCategory.java
@@ -0,0 +1,12 @@
+package org.bukkit.inventory.recipe;
+
+/**
+ * Represents categories within the crafting recipe book.
+ */
+public enum CraftingBookCategory {
+
+ BUILDING,
+ REDSTONE,
+ EQUIPMENT,
+ MISC;
+}
diff --git a/paper-api/src/main/java/org/bukkit/inventory/recipe/package-info.java b/paper-api/src/main/java/org/bukkit/inventory/recipe/package-info.java
new file mode 100644
index 000000000..3e87cdf7c
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/inventory/recipe/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * New location for recipe-related classes.
+ */
+package org.bukkit.inventory.recipe;