PALE_MOSS_BLOCK = getBlockType("pale_moss_block");
/**
* BlockData: {@link BigDripleaf}
*/
diff --git a/paper-api/src/main/java/org/bukkit/block/CreakingHeart.java b/paper-api/src/main/java/org/bukkit/block/CreakingHeart.java
new file mode 100644
index 0000000000..dba403a83f
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/block/CreakingHeart.java
@@ -0,0 +1,12 @@
+package org.bukkit.block;
+
+import org.bukkit.MinecraftExperimental;
+import org.jetbrains.annotations.ApiStatus;
+
+/**
+ * Represents a captured state of a creaking heart.
+ */
+@ApiStatus.Experimental
+@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+public interface CreakingHeart extends TileState {
+}
diff --git a/paper-api/src/main/java/org/bukkit/block/Lockable.java b/paper-api/src/main/java/org/bukkit/block/Lockable.java
index f307cb1701..fc0c78381a 100644
--- a/paper-api/src/main/java/org/bukkit/block/Lockable.java
+++ b/paper-api/src/main/java/org/bukkit/block/Lockable.java
@@ -1,5 +1,7 @@
package org.bukkit.block;
+import org.bukkit.inventory.ItemStack;
+import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -21,8 +23,10 @@ public interface Lockable {
* Gets the key needed to access the container.
*
* @return the key needed.
+ * @deprecated locks are not necessarily pure strings
*/
@NotNull
+ @Deprecated
String getLock();
/**
@@ -30,6 +34,18 @@ public interface Lockable {
* string) to remove key.
*
* @param key the key required to access the container.
+ * @deprecated locks are not necessarily pure strings
*/
+ @Deprecated
void setLock(@Nullable String key);
+
+ /**
+ * Sets the key required to access this container. All explicit
+ * modifications to the set key will be required to match on the opening
+ * key. Set to null to remove key.
+ *
+ * @param key the key required to access the container.
+ */
+ @ApiStatus.Experimental
+ void setLockItem(@Nullable ItemStack key);
}
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/CreakingHeart.java b/paper-api/src/main/java/org/bukkit/block/data/type/CreakingHeart.java
new file mode 100644
index 0000000000..c0d22e3edd
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/CreakingHeart.java
@@ -0,0 +1,48 @@
+package org.bukkit.block.data.type;
+
+import org.bukkit.MinecraftExperimental;
+import org.bukkit.block.data.Orientable;
+import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * 'creaking' is the creaking status of this block.
+ */
+@ApiStatus.Experimental
+@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+public interface CreakingHeart extends Orientable {
+
+ /**
+ * Gets the value of the 'creaking' property.
+ *
+ * @return the 'creaking' value
+ */
+ @NotNull
+ Creaking getCreaking();
+
+ /**
+ * Sets the value of the 'creaking' property.
+ *
+ * @param creaking the new 'creaking' value
+ */
+ void setCreaking(@NotNull Creaking creaking);
+
+ /**
+ * Creaking status.
+ */
+ public enum Creaking {
+
+ /**
+ * The block is disabled.
+ */
+ DISABLED,
+ /**
+ * The block is dormant.
+ */
+ DORMANT,
+ /**
+ * The block is active.
+ */
+ ACTIVE;
+ }
+}
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/HangingMoss.java b/paper-api/src/main/java/org/bukkit/block/data/type/HangingMoss.java
new file mode 100644
index 0000000000..11f6629f73
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/HangingMoss.java
@@ -0,0 +1,27 @@
+package org.bukkit.block.data.type;
+
+import org.bukkit.MinecraftExperimental;
+import org.bukkit.block.data.BlockData;
+import org.jetbrains.annotations.ApiStatus;
+
+/**
+ * 'tip' indicates whether this block is a tip.
+ */
+@ApiStatus.Experimental
+@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+public interface HangingMoss extends BlockData {
+
+ /**
+ * Gets the value of the 'tip' property.
+ *
+ * @return the 'tip' value
+ */
+ boolean isTip();
+
+ /**
+ * Sets the value of the 'tip' property.
+ *
+ * @param tip the new 'tip' value
+ */
+ void setTip(boolean tip);
+}
diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java b/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java
new file mode 100644
index 0000000000..e8463c71f9
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java
@@ -0,0 +1,67 @@
+package org.bukkit.block.data.type;
+
+import org.bukkit.MinecraftExperimental;
+import org.bukkit.block.BlockFace;
+import org.bukkit.block.data.BlockData;
+import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * This class encompasses the 'north', 'east', 'south', 'west', height flags
+ * which are used to set the height of a face.
+ *
+ * 'bottom' denotes whether this is a bottom block.
+ */
+@ApiStatus.Experimental
+@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+public interface MossyCarpet extends BlockData {
+
+ /**
+ * Gets the value of the 'bottom' property.
+ *
+ * @return the 'bottom' value
+ */
+ boolean isBottom();
+
+ /**
+ * Sets the value of the 'bottom' property.
+ *
+ * @param bottom the new 'bottom' value
+ */
+ void setBottom(boolean bottom);
+
+ /**
+ * Gets the height of the specified face.
+ *
+ * @param face to check
+ * @return if face is enabled
+ */
+ @NotNull
+ Height getHeight(@NotNull BlockFace face);
+
+ /**
+ * Set the height of the specified face.
+ *
+ * @param face to set
+ * @param height the height
+ */
+ void setHeight(@NotNull BlockFace face, @NotNull Height height);
+
+ /**
+ * The different heights a face may have.
+ */
+ public enum Height {
+ /**
+ * Not present.
+ */
+ NONE,
+ /**
+ * Low face present.
+ */
+ LOW,
+ /**
+ * Tall face present.
+ */
+ TALL;
+ }
+}
diff --git a/paper-api/src/main/java/org/bukkit/block/spawner/SpawnerEntry.java b/paper-api/src/main/java/org/bukkit/block/spawner/SpawnerEntry.java
index 02b3471774..fc1c0435df 100644
--- a/paper-api/src/main/java/org/bukkit/block/spawner/SpawnerEntry.java
+++ b/paper-api/src/main/java/org/bukkit/block/spawner/SpawnerEntry.java
@@ -5,7 +5,6 @@ import java.util.Map;
import org.bukkit.entity.EntitySnapshot;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.loot.LootTable;
-import org.bukkit.loot.LootTables;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -128,8 +127,7 @@ public class SpawnerEntry {
/**
* Set the loot table for the entity.
*
- * To remove a loot table use null. Do not use {@link LootTables#EMPTY}
- * to clear a LootTable.
+ * To remove a loot table use null.
*
* @param table this {@link org.bukkit.entity.Mob} will have.
*/
diff --git a/paper-api/src/main/java/org/bukkit/damage/DamageType.java b/paper-api/src/main/java/org/bukkit/damage/DamageType.java
index f36ff676be..14f90d8d4c 100644
--- a/paper-api/src/main/java/org/bukkit/damage/DamageType.java
+++ b/paper-api/src/main/java/org/bukkit/damage/DamageType.java
@@ -31,6 +31,7 @@ public interface DamageType extends Keyed, Translatable {
public static final DamageType STARVE = getDamageType("starve");
public static final DamageType CACTUS = getDamageType("cactus");
public static final DamageType FALL = getDamageType("fall");
+ public static final DamageType ENDER_PEARL = getDamageType("ender_pearl");
public static final DamageType FLY_INTO_WALL = getDamageType("fly_into_wall");
public static final DamageType OUT_OF_WORLD = getDamageType("out_of_world");
public static final DamageType GENERIC = getDamageType("generic");
@@ -66,6 +67,7 @@ public interface DamageType extends Keyed, Translatable {
public static final DamageType OUTSIDE_BORDER = getDamageType("outside_border");
public static final DamageType GENERIC_KILL = getDamageType("generic_kill");
public static final DamageType WIND_CHARGE = getDamageType("wind_charge");
+ public static final DamageType MACE_SMASH = getDamageType("mace_smash");
@NotNull
private static DamageType getDamageType(@NotNull String key) {
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 88852215d0..dbdd2c1ad7 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Boat.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Boat.java
@@ -32,7 +32,9 @@ public interface Boat extends Vehicle {
* Gets the type of the boat.
*
* @return the boat type
+ * @deprecated different boats types are now different entity types
*/
+ @Deprecated
@NotNull
Type getBoatType();
@@ -40,7 +42,9 @@ public interface Boat extends Vehicle {
* Sets the type of the boat.
*
* @param type the new type
+ * @deprecated different boats types are now different entity types
*/
+ @Deprecated
void setBoatType(@NotNull Type type);
/**
@@ -134,7 +138,9 @@ public interface Boat extends Vehicle {
/**
* Represents the type of boats.
+ * @deprecated different boats types are now different entity types
*/
+ @Deprecated
public enum Type {
OAK(Material.OAK_PLANKS),
SPRUCE(Material.SPRUCE_PLANKS),
diff --git a/paper-api/src/main/java/org/bukkit/entity/Creaking.java b/paper-api/src/main/java/org/bukkit/entity/Creaking.java
new file mode 100644
index 0000000000..9264ec8a03
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/Creaking.java
@@ -0,0 +1,13 @@
+package org.bukkit.entity;
+
+import org.bukkit.MinecraftExperimental;
+import org.jetbrains.annotations.ApiStatus;
+
+/**
+ * Represents a Creaking.
+ */
+@ApiStatus.Experimental
+@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+public interface Creaking extends Monster {
+
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/CreakingTransient.java b/paper-api/src/main/java/org/bukkit/entity/CreakingTransient.java
new file mode 100644
index 0000000000..93fad9ca72
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/CreakingTransient.java
@@ -0,0 +1,13 @@
+package org.bukkit.entity;
+
+import org.bukkit.MinecraftExperimental;
+import org.jetbrains.annotations.ApiStatus;
+
+/**
+ * Represents a Creaking spawned from a creaking heart which will not persist.
+ */
+@ApiStatus.Experimental
+@MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+public interface CreakingTransient extends Creaking {
+
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/Dolphin.java b/paper-api/src/main/java/org/bukkit/entity/Dolphin.java
index f00eaadcdd..fcf09afd38 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Dolphin.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Dolphin.java
@@ -1,3 +1,3 @@
package org.bukkit.entity;
-public interface Dolphin extends WaterMob { }
+public interface Dolphin extends Ageable, WaterMob { }
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 4047f026ab..f5b0ff195b 100644
--- a/paper-api/src/main/java/org/bukkit/entity/EntityType.java
+++ b/paper-api/src/main/java/org/bukkit/entity/EntityType.java
@@ -7,9 +7,30 @@ import java.util.Map;
import org.bukkit.Bukkit;
import org.bukkit.Keyed;
import org.bukkit.Location;
+import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.Translatable;
import org.bukkit.World;
+import org.bukkit.entity.boat.AcaciaBoat;
+import org.bukkit.entity.boat.AcaciaChestBoat;
+import org.bukkit.entity.boat.BambooChestRaft;
+import org.bukkit.entity.boat.BambooRaft;
+import org.bukkit.entity.boat.BirchBoat;
+import org.bukkit.entity.boat.BirchChestBoat;
+import org.bukkit.entity.boat.CherryBoat;
+import org.bukkit.entity.boat.CherryChestBoat;
+import org.bukkit.entity.boat.DarkOakBoat;
+import org.bukkit.entity.boat.DarkOakChestBoat;
+import org.bukkit.entity.boat.JungleBoat;
+import org.bukkit.entity.boat.JungleChestBoat;
+import org.bukkit.entity.boat.MangroveBoat;
+import org.bukkit.entity.boat.MangroveChestBoat;
+import org.bukkit.entity.boat.OakBoat;
+import org.bukkit.entity.boat.OakChestBoat;
+import org.bukkit.entity.boat.PaleOakBoat;
+import org.bukkit.entity.boat.PaleOakChestBoat;
+import org.bukkit.entity.boat.SpruceBoat;
+import org.bukkit.entity.boat.SpruceChestBoat;
import org.bukkit.entity.minecart.CommandMinecart;
import org.bukkit.entity.minecart.ExplosiveMinecart;
import org.bukkit.entity.minecart.HopperMinecart;
@@ -19,6 +40,7 @@ import org.bukkit.entity.minecart.SpawnerMinecart;
import org.bukkit.entity.minecart.StorageMinecart;
import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffectType;
+import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -181,10 +203,6 @@ public enum EntityType implements Keyed, Translatable {
* @see CommandMinecart
*/
COMMAND_BLOCK_MINECART("command_block_minecart", CommandMinecart.class, 40),
- /**
- * A placed boat.
- */
- BOAT("boat", Boat.class, 41),
/**
* @see RideableMinecart
*/
@@ -275,7 +293,6 @@ public enum EntityType implements Keyed, Translatable {
GOAT("goat", Goat.class, -1),
MARKER("marker", Marker.class, -1),
ALLAY("allay", Allay.class, -1),
- CHEST_BOAT("chest_boat", ChestBoat.class, -1),
FROG("frog", Frog.class, -1),
TADPOLE("tadpole", Tadpole.class, -1),
WARDEN("warden", Warden.class, -1),
@@ -291,6 +308,32 @@ public enum EntityType implements Keyed, Translatable {
ARMADILLO("armadillo", Armadillo.class, -1),
BOGGED("bogged", Bogged.class, -1),
OMINOUS_ITEM_SPAWNER("ominous_item_spawner", OminousItemSpawner.class, -1),
+ ACACIA_BOAT("acacia_boat", AcaciaBoat.class, -1),
+ ACACIA_CHEST_BOAT("acacia_chest_boat", AcaciaChestBoat.class, -1),
+ BAMBOO_RAFT("bamboo_raft", BambooRaft.class, -1),
+ BAMBOO_CHEST_RAFT("bamboo_chest_raft", BambooChestRaft.class, -1),
+ BIRCH_BOAT("birch_boat", BirchBoat.class, -1),
+ BIRCH_CHEST_BOAT("birch_chest_boat", BirchChestBoat.class, -1),
+ CHERRY_BOAT("cherry_boat", CherryBoat.class, -1),
+ CHERRY_CHEST_BOAT("cherry_chest_boat", CherryChestBoat.class, -1),
+ DARK_OAK_BOAT("dark_oak_boat", DarkOakBoat.class, -1),
+ DARK_OAK_CHEST_BOAT("dark_oak_chest_boat", DarkOakChestBoat.class, -1),
+ JUNGLE_BOAT("jungle_boat", JungleBoat.class, -1),
+ JUNGLE_CHEST_BOAT("jungle_chest_boat", JungleChestBoat.class, -1),
+ MANGROVE_BOAT("mangrove_boat", MangroveBoat.class, -1),
+ MANGROVE_CHEST_BOAT("mangrove_chest_boat", MangroveChestBoat.class, -1),
+ OAK_BOAT("oak_boat", OakBoat.class, -1),
+ OAK_CHEST_BOAT("oak_chest_boat", OakChestBoat.class, -1),
+ PALE_OAK_BOAT("pale_oak_boat", PaleOakBoat.class, -1),
+ PALE_OAK_CHEST_BOAT("pale_oak_chest_boat", PaleOakChestBoat.class, -1),
+ SPRUCE_BOAT("spruce_boat", SpruceBoat.class, -1),
+ SPRUCE_CHEST_BOAT("spruce_chest_boat", SpruceChestBoat.class, -1),
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ CREAKING("creaking", Creaking.class, -1),
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ CREAKING_TRANSIENT("creaking_transient", CreakingTransient.class, -1),
/**
* A fishing line and bobber.
*/
diff --git a/paper-api/src/main/java/org/bukkit/entity/Explosive.java b/paper-api/src/main/java/org/bukkit/entity/Explosive.java
index 48650f6ab8..e3919359b6 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Explosive.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Explosive.java
@@ -6,14 +6,18 @@ package org.bukkit.entity;
public interface Explosive extends Entity {
/**
- * Set the radius affected by this explosive's explosion
+ * Set the radius affected by this explosive's explosion.
+ *
+ * This is the base yield, which may be affected by other entity attributes.
*
* @param yield The explosive yield
*/
public void setYield(float yield);
/**
- * Return the radius or yield of this explosive's explosion
+ * Return the radius or yield of this explosive's explosion.
+ *
+ * This is the base yield, which may be affected by other entity attributes.
*
* @return the radius of blocks affected
*/
diff --git a/paper-api/src/main/java/org/bukkit/entity/HumanEntity.java b/paper-api/src/main/java/org/bukkit/entity/HumanEntity.java
index 40214a1368..29f9b380dd 100644
--- a/paper-api/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/paper-api/src/main/java/org/bukkit/entity/HumanEntity.java
@@ -256,6 +256,37 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
*/
public void setCooldown(@NotNull Material material, int ticks);
+ /**
+ * Check whether a cooldown is active on the specified item.
+ *
+ * @param item the item to check
+ * @return if a cooldown is active on the item
+ */
+ public boolean hasCooldown(@NotNull ItemStack item);
+
+ /**
+ * Get the cooldown time in ticks remaining for the specified item.
+ *
+ * @param item the item to check
+ * @return the remaining cooldown time in ticks
+ */
+ public int getCooldown(@NotNull ItemStack item);
+
+ /**
+ * Set a cooldown on the specified item for a certain amount of ticks.
+ * ticks. 0 ticks will result in the removal of the cooldown.
+ *
+ * Cooldowns are used by the server for items such as ender pearls and
+ * shields to prevent them from being used repeatedly.
+ *
+ * Note that cooldowns will not by themselves stop an item from being used
+ * for attacking.
+ *
+ * @param item the item to set the cooldown for
+ * @param ticks the amount of ticks to set or 0 to remove
+ */
+ public void setCooldown(@NotNull ItemStack item, int ticks);
+
/**
* Get the sleep ticks of the player. This value may be capped.
*
diff --git a/paper-api/src/main/java/org/bukkit/entity/Minecart.java b/paper-api/src/main/java/org/bukkit/entity/Minecart.java
index 95c79c5fa0..4910075d0f 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Minecart.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Minecart.java
@@ -1,5 +1,6 @@
package org.bukkit.entity;
+import org.bukkit.GameRule;
import org.bukkit.block.data.BlockData;
import org.bukkit.material.MaterialData;
import org.bukkit.util.Vector;
@@ -30,7 +31,9 @@ public interface Minecart extends Vehicle {
* velocity.
*
* @return The max speed
+ * @see GameRule#MINECART_MAX_SPEED
*/
+ @Deprecated
public double getMaxSpeed();
/**
@@ -38,7 +41,9 @@ public interface Minecart extends Vehicle {
* 0.4D.
*
* @param speed The max speed
+ * @see GameRule#MINECART_MAX_SPEED
*/
+ @Deprecated
public void setMaxSpeed(double speed);
/**
diff --git a/paper-api/src/main/java/org/bukkit/entity/Player.java b/paper-api/src/main/java/org/bukkit/entity/Player.java
index c91e64066f..a5cbf0f41f 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Player.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Player.java
@@ -106,6 +106,21 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void setPlayerListName(@Nullable String name);
+ /**
+ * Gets the relative order that the player is shown on the player list.
+ *
+ * @return the player list order
+ */
+ public int getPlayerListOrder();
+
+ /**
+ * Sets the relative order that the player is shown on the in-game player
+ * list.
+ *
+ * @param order new player list order, must be positive
+ */
+ public void setPlayerListOrder(int order);
+
/**
* Gets the currently displayed player list header for this player.
*
diff --git a/paper-api/src/main/java/org/bukkit/entity/Salmon.java b/paper-api/src/main/java/org/bukkit/entity/Salmon.java
index a52a7af219..407aa5de17 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Salmon.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Salmon.java
@@ -1,7 +1,43 @@
-
package org.bukkit.entity;
+import org.jetbrains.annotations.NotNull;
+
/**
* Represents a salmon fish.
*/
-public interface Salmon extends Fish { }
+public interface Salmon extends Fish {
+
+ /**
+ * Get the variant of this salmon.
+ *
+ * @return salmon variant
+ */
+ @NotNull
+ public Variant getVariant();
+
+ /**
+ * Set the variant of this salmon.
+ *
+ * @param variant salmon variant
+ */
+ public void setVariant(@NotNull Variant variant);
+
+ /**
+ * Represents the variant of a salmon - ie its size.
+ */
+ public enum Variant {
+
+ /**
+ * Small salmon.
+ */
+ SMALL,
+ /**
+ * Default salmon.
+ */
+ MEDIUM,
+ /**
+ * Large salmon.
+ */
+ LARGE;
+ }
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/Squid.java b/paper-api/src/main/java/org/bukkit/entity/Squid.java
index fb47968ef9..f5ebdb3d56 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Squid.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Squid.java
@@ -3,4 +3,4 @@ package org.bukkit.entity;
/**
* Represents a Squid.
*/
-public interface Squid extends WaterMob {}
+public interface Squid extends Ageable, WaterMob {}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/AcaciaBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/AcaciaBoat.java
new file mode 100644
index 0000000000..889eba923d
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/AcaciaBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.Boat;
+
+/**
+ * Represents an acacia boat.
+ */
+public interface AcaciaBoat extends Boat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/AcaciaChestBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/AcaciaChestBoat.java
new file mode 100644
index 0000000000..892d60a22b
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/AcaciaChestBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.ChestBoat;
+
+/**
+ * Represents an acacia chest boat.
+ */
+public interface AcaciaChestBoat extends ChestBoat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/BambooChestRaft.java b/paper-api/src/main/java/org/bukkit/entity/boat/BambooChestRaft.java
new file mode 100644
index 0000000000..34e03c0852
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/BambooChestRaft.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.ChestBoat;
+
+/**
+ * Represents a bamboo chest raft.
+ */
+public interface BambooChestRaft extends ChestBoat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/BambooRaft.java b/paper-api/src/main/java/org/bukkit/entity/boat/BambooRaft.java
new file mode 100644
index 0000000000..9e49f65eed
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/BambooRaft.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.Boat;
+
+/**
+ * Represents a bamboo raft.
+ */
+public interface BambooRaft extends Boat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/BirchBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/BirchBoat.java
new file mode 100644
index 0000000000..def3cb215a
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/BirchBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.Boat;
+
+/**
+ * Represents a birch boat.
+ */
+public interface BirchBoat extends Boat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/BirchChestBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/BirchChestBoat.java
new file mode 100644
index 0000000000..88e6b88c2c
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/BirchChestBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.ChestBoat;
+
+/**
+ * Represents a birch chest boat.
+ */
+public interface BirchChestBoat extends ChestBoat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/CherryBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/CherryBoat.java
new file mode 100644
index 0000000000..91f8a20437
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/CherryBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.Boat;
+
+/**
+ * Represents a cherry boat.
+ */
+public interface CherryBoat extends Boat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/CherryChestBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/CherryChestBoat.java
new file mode 100644
index 0000000000..0b68d971a0
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/CherryChestBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.ChestBoat;
+
+/**
+ * Represents a cherry chest boat.
+ */
+public interface CherryChestBoat extends ChestBoat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/DarkOakBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/DarkOakBoat.java
new file mode 100644
index 0000000000..c2493b3cd9
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/DarkOakBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.Boat;
+
+/**
+ * Represents a dark oak boat.
+ */
+public interface DarkOakBoat extends Boat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/DarkOakChestBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/DarkOakChestBoat.java
new file mode 100644
index 0000000000..a18dfac694
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/DarkOakChestBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.ChestBoat;
+
+/**
+ * Represents a dark oak chest boat.
+ */
+public interface DarkOakChestBoat extends ChestBoat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/JungleBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/JungleBoat.java
new file mode 100644
index 0000000000..60f0e0d3fc
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/JungleBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.Boat;
+
+/**
+ * Represents a jungle boat.
+ */
+public interface JungleBoat extends Boat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/JungleChestBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/JungleChestBoat.java
new file mode 100644
index 0000000000..eda4aa1ba1
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/JungleChestBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.ChestBoat;
+
+/**
+ * Represents a jungle chest boat.
+ */
+public interface JungleChestBoat extends ChestBoat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/MangroveBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/MangroveBoat.java
new file mode 100644
index 0000000000..579697161d
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/MangroveBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.Boat;
+
+/**
+ * Represents a mangrove boat.
+ */
+public interface MangroveBoat extends Boat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/MangroveChestBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/MangroveChestBoat.java
new file mode 100644
index 0000000000..957ba1dbec
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/MangroveChestBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.ChestBoat;
+
+/**
+ * Represents a mangrove chest boat.
+ */
+public interface MangroveChestBoat extends ChestBoat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/OakBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/OakBoat.java
new file mode 100644
index 0000000000..48be7bcbf5
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/OakBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.Boat;
+
+/**
+ * Represents an oak boat.
+ */
+public interface OakBoat extends Boat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/OakChestBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/OakChestBoat.java
new file mode 100644
index 0000000000..f432ec8bed
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/OakChestBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.ChestBoat;
+
+/**
+ * Represents an oak chest boat.
+ */
+public interface OakChestBoat extends ChestBoat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakBoat.java
new file mode 100644
index 0000000000..55a6a1b697
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.Boat;
+
+/**
+ * Represents an pale oak boat.
+ */
+public interface PaleOakBoat extends Boat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakChestBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakChestBoat.java
new file mode 100644
index 0000000000..f3c0ab1433
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/PaleOakChestBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.ChestBoat;
+
+/**
+ * Represents an pale oak chest boat.
+ */
+public interface PaleOakChestBoat extends ChestBoat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/SpruceBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/SpruceBoat.java
new file mode 100644
index 0000000000..d9bf4480f5
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/SpruceBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.Boat;
+
+/**
+ * Represents a spruce boat.
+ */
+public interface SpruceBoat extends Boat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/SpruceChestBoat.java b/paper-api/src/main/java/org/bukkit/entity/boat/SpruceChestBoat.java
new file mode 100644
index 0000000000..fa8986b1e4
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/SpruceChestBoat.java
@@ -0,0 +1,9 @@
+package org.bukkit.entity.boat;
+
+import org.bukkit.entity.ChestBoat;
+
+/**
+ * Represents a spruce chest boat.
+ */
+public interface SpruceChestBoat extends ChestBoat {
+}
diff --git a/paper-api/src/main/java/org/bukkit/entity/boat/package-info.java b/paper-api/src/main/java/org/bukkit/entity/boat/package-info.java
new file mode 100644
index 0000000000..1167ee2bca
--- /dev/null
+++ b/paper-api/src/main/java/org/bukkit/entity/boat/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * Interfaces for various {@link org.bukkit.entity.Boat} types.
+ */
+package org.bukkit.entity.boat;
diff --git a/paper-api/src/main/java/org/bukkit/entity/minecart/ExplosiveMinecart.java b/paper-api/src/main/java/org/bukkit/entity/minecart/ExplosiveMinecart.java
index 8636fe6c4d..aaadb1c401 100644
--- a/paper-api/src/main/java/org/bukkit/entity/minecart/ExplosiveMinecart.java
+++ b/paper-api/src/main/java/org/bukkit/entity/minecart/ExplosiveMinecart.java
@@ -1,11 +1,12 @@
package org.bukkit.entity.minecart;
+import org.bukkit.entity.Explosive;
import org.bukkit.entity.Minecart;
/**
* Represents a Minecart with TNT inside it that can explode when triggered.
*/
-public interface ExplosiveMinecart extends Minecart {
+public interface ExplosiveMinecart extends Minecart, Explosive {
/**
* Set the fuse ticks of this minecart.
diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemType.java b/paper-api/src/main/java/org/bukkit/inventory/ItemType.java
index ae72b587bf..9a28c9dfe8 100644
--- a/paper-api/src/main/java/org/bukkit/inventory/ItemType.java
+++ b/paper-api/src/main/java/org/bukkit/inventory/ItemType.java
@@ -4,6 +4,7 @@ import com.google.common.collect.Multimap;
import java.util.function.Consumer;
import org.bukkit.Keyed;
import org.bukkit.Material;
+import org.bukkit.MinecraftExperimental;
import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
import org.bukkit.Translatable;
@@ -135,6 +136,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_PLANKS = getItemType("acacia_planks");
ItemType.Typed CHERRY_PLANKS = getItemType("cherry_planks");
ItemType.Typed DARK_OAK_PLANKS = getItemType("dark_oak_planks");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_PLANKS = getItemType("pale_oak_planks");
ItemType.Typed MANGROVE_PLANKS = getItemType("mangrove_planks");
ItemType.Typed BAMBOO_PLANKS = getItemType("bamboo_planks");
ItemType.Typed CRIMSON_PLANKS = getItemType("crimson_planks");
@@ -147,6 +151,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_SAPLING = getItemType("acacia_sapling");
ItemType.Typed CHERRY_SAPLING = getItemType("cherry_sapling");
ItemType.Typed DARK_OAK_SAPLING = getItemType("dark_oak_sapling");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_SAPLING = getItemType("pale_oak_sapling");
ItemType.Typed MANGROVE_PROPAGULE = getItemType("mangrove_propagule");
ItemType.Typed BEDROCK = getItemType("bedrock");
ItemType.Typed SAND = getItemType("sand");
@@ -237,6 +244,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_LOG = getItemType("acacia_log");
ItemType.Typed CHERRY_LOG = getItemType("cherry_log");
ItemType.Typed DARK_OAK_LOG = getItemType("dark_oak_log");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_LOG = getItemType("pale_oak_log");
ItemType.Typed MANGROVE_LOG = getItemType("mangrove_log");
ItemType.Typed MANGROVE_ROOTS = getItemType("mangrove_roots");
ItemType.Typed MUDDY_MANGROVE_ROOTS = getItemType("muddy_mangrove_roots");
@@ -250,6 +260,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed STRIPPED_ACACIA_LOG = getItemType("stripped_acacia_log");
ItemType.Typed STRIPPED_CHERRY_LOG = getItemType("stripped_cherry_log");
ItemType.Typed STRIPPED_DARK_OAK_LOG = getItemType("stripped_dark_oak_log");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed STRIPPED_PALE_OAK_LOG = getItemType("stripped_pale_oak_log");
ItemType.Typed STRIPPED_MANGROVE_LOG = getItemType("stripped_mangrove_log");
ItemType.Typed STRIPPED_CRIMSON_STEM = getItemType("stripped_crimson_stem");
ItemType.Typed STRIPPED_WARPED_STEM = getItemType("stripped_warped_stem");
@@ -260,6 +273,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed STRIPPED_ACACIA_WOOD = getItemType("stripped_acacia_wood");
ItemType.Typed STRIPPED_CHERRY_WOOD = getItemType("stripped_cherry_wood");
ItemType.Typed STRIPPED_DARK_OAK_WOOD = getItemType("stripped_dark_oak_wood");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed STRIPPED_PALE_OAK_WOOD = getItemType("stripped_pale_oak_wood");
ItemType.Typed STRIPPED_MANGROVE_WOOD = getItemType("stripped_mangrove_wood");
ItemType.Typed STRIPPED_CRIMSON_HYPHAE = getItemType("stripped_crimson_hyphae");
ItemType.Typed STRIPPED_WARPED_HYPHAE = getItemType("stripped_warped_hyphae");
@@ -271,6 +287,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_WOOD = getItemType("acacia_wood");
ItemType.Typed CHERRY_WOOD = getItemType("cherry_wood");
ItemType.Typed DARK_OAK_WOOD = getItemType("dark_oak_wood");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_WOOD = getItemType("pale_oak_wood");
ItemType.Typed MANGROVE_WOOD = getItemType("mangrove_wood");
ItemType.Typed CRIMSON_HYPHAE = getItemType("crimson_hyphae");
ItemType.Typed WARPED_HYPHAE = getItemType("warped_hyphae");
@@ -281,6 +300,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_LEAVES = getItemType("acacia_leaves");
ItemType.Typed CHERRY_LEAVES = getItemType("cherry_leaves");
ItemType.Typed DARK_OAK_LEAVES = getItemType("dark_oak_leaves");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_LEAVES = getItemType("pale_oak_leaves");
ItemType.Typed MANGROVE_LEAVES = getItemType("mangrove_leaves");
ItemType.Typed AZALEA_LEAVES = getItemType("azalea_leaves");
ItemType.Typed FLOWERING_AZALEA_LEAVES = getItemType("flowering_azalea_leaves");
@@ -343,9 +365,18 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed TWISTING_VINES = getItemType("twisting_vines");
ItemType.Typed SUGAR_CANE = getItemType("sugar_cane");
ItemType.Typed KELP = getItemType("kelp");
- ItemType.Typed MOSS_CARPET = getItemType("moss_carpet");
ItemType.Typed PINK_PETALS = getItemType("pink_petals");
+ ItemType.Typed MOSS_CARPET = getItemType("moss_carpet");
ItemType.Typed MOSS_BLOCK = getItemType("moss_block");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_MOSS_CARPET = getItemType("pale_moss_carpet");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_HANGING_MOSS = getItemType("pale_hanging_moss");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_MOSS_BLOCK = getItemType("pale_moss_block");
ItemType.Typed HANGING_ROOTS = getItemType("hanging_roots");
ItemType.Typed BIG_DRIPLEAF = getItemType("big_dripleaf");
ItemType.Typed SMALL_DRIPLEAF = getItemType("small_dripleaf");
@@ -357,6 +388,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_SLAB = getItemType("acacia_slab");
ItemType.Typed CHERRY_SLAB = getItemType("cherry_slab");
ItemType.Typed DARK_OAK_SLAB = getItemType("dark_oak_slab");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_SLAB = getItemType("pale_oak_slab");
ItemType.Typed MANGROVE_SLAB = getItemType("mangrove_slab");
ItemType.Typed BAMBOO_SLAB = getItemType("bamboo_slab");
ItemType.Typed BAMBOO_MOSAIC_SLAB = getItemType("bamboo_mosaic_slab");
@@ -406,6 +440,12 @@ public interface ItemType extends Keyed, Translatable {
* ItemMeta: {@link BlockStateMeta}
*/
ItemType.Typed SPAWNER = getItemType("spawner");
+ /**
+ * ItemMeta: {@link BlockStateMeta}
+ */
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed CREAKING_HEART = getItemType("creaking_heart");
/**
* ItemMeta: {@link BlockStateMeta}
*/
@@ -434,6 +474,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_FENCE = getItemType("acacia_fence");
ItemType.Typed CHERRY_FENCE = getItemType("cherry_fence");
ItemType.Typed DARK_OAK_FENCE = getItemType("dark_oak_fence");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_FENCE = getItemType("pale_oak_fence");
ItemType.Typed MANGROVE_FENCE = getItemType("mangrove_fence");
ItemType.Typed BAMBOO_FENCE = getItemType("bamboo_fence");
ItemType.Typed CRIMSON_FENCE = getItemType("crimson_fence");
@@ -518,6 +561,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_STAIRS = getItemType("acacia_stairs");
ItemType.Typed CHERRY_STAIRS = getItemType("cherry_stairs");
ItemType.Typed DARK_OAK_STAIRS = getItemType("dark_oak_stairs");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_STAIRS = getItemType("pale_oak_stairs");
ItemType.Typed MANGROVE_STAIRS = getItemType("mangrove_stairs");
ItemType.Typed BAMBOO_STAIRS = getItemType("bamboo_stairs");
ItemType.Typed BAMBOO_MOSAIC_STAIRS = getItemType("bamboo_mosaic_stairs");
@@ -909,6 +955,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_BUTTON = getItemType("acacia_button");
ItemType.Typed CHERRY_BUTTON = getItemType("cherry_button");
ItemType.Typed DARK_OAK_BUTTON = getItemType("dark_oak_button");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_BUTTON = getItemType("pale_oak_button");
ItemType.Typed MANGROVE_BUTTON = getItemType("mangrove_button");
ItemType.Typed BAMBOO_BUTTON = getItemType("bamboo_button");
ItemType.Typed CRIMSON_BUTTON = getItemType("crimson_button");
@@ -924,6 +973,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_PRESSURE_PLATE = getItemType("acacia_pressure_plate");
ItemType.Typed CHERRY_PRESSURE_PLATE = getItemType("cherry_pressure_plate");
ItemType.Typed DARK_OAK_PRESSURE_PLATE = getItemType("dark_oak_pressure_plate");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_PRESSURE_PLATE = getItemType("pale_oak_pressure_plate");
ItemType.Typed MANGROVE_PRESSURE_PLATE = getItemType("mangrove_pressure_plate");
ItemType.Typed BAMBOO_PRESSURE_PLATE = getItemType("bamboo_pressure_plate");
ItemType.Typed CRIMSON_PRESSURE_PLATE = getItemType("crimson_pressure_plate");
@@ -936,6 +988,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_DOOR = getItemType("acacia_door");
ItemType.Typed CHERRY_DOOR = getItemType("cherry_door");
ItemType.Typed DARK_OAK_DOOR = getItemType("dark_oak_door");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_DOOR = getItemType("pale_oak_door");
ItemType.Typed MANGROVE_DOOR = getItemType("mangrove_door");
ItemType.Typed BAMBOO_DOOR = getItemType("bamboo_door");
ItemType.Typed CRIMSON_DOOR = getItemType("crimson_door");
@@ -956,6 +1011,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_TRAPDOOR = getItemType("acacia_trapdoor");
ItemType.Typed CHERRY_TRAPDOOR = getItemType("cherry_trapdoor");
ItemType.Typed DARK_OAK_TRAPDOOR = getItemType("dark_oak_trapdoor");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_TRAPDOOR = getItemType("pale_oak_trapdoor");
ItemType.Typed MANGROVE_TRAPDOOR = getItemType("mangrove_trapdoor");
ItemType.Typed BAMBOO_TRAPDOOR = getItemType("bamboo_trapdoor");
ItemType.Typed CRIMSON_TRAPDOOR = getItemType("crimson_trapdoor");
@@ -975,6 +1033,9 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed ACACIA_FENCE_GATE = getItemType("acacia_fence_gate");
ItemType.Typed CHERRY_FENCE_GATE = getItemType("cherry_fence_gate");
ItemType.Typed DARK_OAK_FENCE_GATE = getItemType("dark_oak_fence_gate");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_FENCE_GATE = getItemType("pale_oak_fence_gate");
ItemType.Typed MANGROVE_FENCE_GATE = getItemType("mangrove_fence_gate");
ItemType.Typed BAMBOO_FENCE_GATE = getItemType("bamboo_fence_gate");
ItemType.Typed CRIMSON_FENCE_GATE = getItemType("crimson_fence_gate");
@@ -991,6 +1052,7 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed HOPPER_MINECART = getItemType("hopper_minecart");
ItemType.Typed CARROT_ON_A_STICK = getItemType("carrot_on_a_stick");
ItemType.Typed WARPED_FUNGUS_ON_A_STICK = getItemType("warped_fungus_on_a_stick");
+ ItemType.Typed PHANTOM_MEMBRANE = getItemType("phantom_membrane");
ItemType.Typed ELYTRA = getItemType("elytra");
ItemType.Typed OAK_BOAT = getItemType("oak_boat");
ItemType.Typed OAK_CHEST_BOAT = getItemType("oak_chest_boat");
@@ -1006,6 +1068,12 @@ public interface ItemType extends Keyed, Translatable {
ItemType.Typed CHERRY_CHEST_BOAT = getItemType("cherry_chest_boat");
ItemType.Typed DARK_OAK_BOAT = getItemType("dark_oak_boat");
ItemType.Typed DARK_OAK_CHEST_BOAT = getItemType("dark_oak_chest_boat");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_BOAT = getItemType("pale_oak_boat");
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_CHEST_BOAT = getItemType("pale_oak_chest_boat");
ItemType.Typed MANGROVE_BOAT = getItemType("mangrove_boat");
ItemType.Typed MANGROVE_CHEST_BOAT = getItemType("mangrove_chest_boat");
ItemType.Typed BAMBOO_RAFT = getItemType("bamboo_raft");
@@ -1216,6 +1284,12 @@ public interface ItemType extends Keyed, Translatable {
* ItemMeta: {@link BlockStateMeta}
*/
ItemType.Typed DARK_OAK_SIGN = getItemType("dark_oak_sign");
+ /**
+ * ItemMeta: {@link BlockStateMeta}
+ */
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_SIGN = getItemType("pale_oak_sign");
/**
* ItemMeta: {@link BlockStateMeta}
*/
@@ -1260,6 +1334,12 @@ public interface ItemType extends Keyed, Translatable {
* ItemMeta: {@link BlockStateMeta}
*/
ItemType.Typed DARK_OAK_HANGING_SIGN = getItemType("dark_oak_hanging_sign");
+ /**
+ * ItemMeta: {@link BlockStateMeta}
+ */
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ ItemType.Typed PALE_OAK_HANGING_SIGN = getItemType("pale_oak_hanging_sign");
/**
* ItemMeta: {@link BlockStateMeta}
*/
@@ -1311,6 +1391,70 @@ public interface ItemType extends Keyed, Translatable {
* ItemMeta: {@link BundleMeta}
*/
ItemType.Typed BUNDLE = getItemType("bundle");
+ /**
+ * ItemMeta: {@link BundleMeta}
+ */
+ ItemType.Typed WHITE_BUNDLE = getItemType("white_bundle");
+ /**
+ * ItemMeta: {@link BundleMeta}
+ */
+ ItemType.Typed ORANGE_BUNDLE = getItemType("orange_bundle");
+ /**
+ * ItemMeta: {@link BundleMeta}
+ */
+ ItemType.Typed