diff --git a/paper-api/pom.xml b/paper-api/pom.xml index 42fc61e95a..d352aaf2e1 100644 --- a/paper-api/pom.xml +++ b/paper-api/pom.xml @@ -5,7 +5,7 @@ org.bukkit bukkit - 1.14.4-R0.1-SNAPSHOT + 1.15-R0.1-SNAPSHOT jar Bukkit @@ -74,14 +74,14 @@ org.yaml snakeyaml - 1.23 + 1.25 compile org.jetbrains annotations-java5 - 17.0.0 + 18.0.0 provided @@ -100,7 +100,7 @@ org.ow2.asm asm-tree - 7.1 + 7.2 test @@ -110,7 +110,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.0 + 3.8.1 eclipse @@ -139,7 +139,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.1.1 + 3.2.1 package @@ -167,7 +167,7 @@ org.apache.maven.plugins maven-checkstyle-plugin - 3.0.0 + 3.1.0 process-classes @@ -184,14 +184,14 @@ com.puppycrawl.tools checkstyle - 8.19 + 8.27 org.codehaus.mojo animal-sniffer-maven-plugin - 1.17 + 1.18 process-classes diff --git a/paper-api/src/main/java/org/bukkit/Achievement.java b/paper-api/src/main/java/org/bukkit/Achievement.java deleted file mode 100644 index 0080e0fea2..0000000000 --- a/paper-api/src/main/java/org/bukkit/Achievement.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.bukkit; - -import org.jetbrains.annotations.Nullable; - -/** - * Represents an achievement, which may be given to players. - * @deprecated future versions of Minecraft do not have achievements - */ -@Deprecated -public enum Achievement { - OPEN_INVENTORY, - MINE_WOOD (OPEN_INVENTORY), - BUILD_WORKBENCH (MINE_WOOD), - BUILD_PICKAXE (BUILD_WORKBENCH), - BUILD_FURNACE (BUILD_PICKAXE), - ACQUIRE_IRON (BUILD_FURNACE), - BUILD_HOE (BUILD_WORKBENCH), - MAKE_BREAD (BUILD_HOE), - BAKE_CAKE (BUILD_HOE), - BUILD_BETTER_PICKAXE (BUILD_PICKAXE), - COOK_FISH (BUILD_FURNACE), - ON_A_RAIL (ACQUIRE_IRON), - BUILD_SWORD (BUILD_WORKBENCH), - KILL_ENEMY (BUILD_SWORD), - KILL_COW (BUILD_SWORD), - FLY_PIG (KILL_COW), - SNIPE_SKELETON (KILL_ENEMY), - GET_DIAMONDS (ACQUIRE_IRON), - NETHER_PORTAL (GET_DIAMONDS), - GHAST_RETURN (NETHER_PORTAL), - GET_BLAZE_ROD (NETHER_PORTAL), - BREW_POTION (GET_BLAZE_ROD), - END_PORTAL (GET_BLAZE_ROD), - THE_END (END_PORTAL), - ENCHANTMENTS (GET_DIAMONDS), - OVERKILL (ENCHANTMENTS), - BOOKCASE (ENCHANTMENTS), - EXPLORE_ALL_BIOMES (END_PORTAL), - SPAWN_WITHER (THE_END), - KILL_WITHER (SPAWN_WITHER), - FULL_BEACON (KILL_WITHER), - BREED_COW (KILL_COW), - DIAMONDS_TO_YOU (GET_DIAMONDS), - OVERPOWERED (BUILD_BETTER_PICKAXE) - ; - - private final Achievement parent; - - private Achievement() { - parent = null; - } - - private Achievement(/*@Nullable*/ Achievement parent) { - this.parent = parent; - } - - /** - * Returns whether or not this achievement has a parent achievement. - * - * @return whether the achievement has a parent achievement - */ - public boolean hasParent() { - return parent != null; - } - - /** - * Returns the parent achievement of this achievement, or null if none. - * - * @return the parent achievement or null - */ - @Nullable - public Achievement getParent() { - return parent; - } -} diff --git a/paper-api/src/main/java/org/bukkit/Bukkit.java b/paper-api/src/main/java/org/bukkit/Bukkit.java index d24d99e713..4eecd55546 100644 --- a/paper-api/src/main/java/org/bukkit/Bukkit.java +++ b/paper-api/src/main/java/org/bukkit/Bukkit.java @@ -358,12 +358,9 @@ public final class Bukkit { *

* This method may not return objects for offline players. * - * @deprecated Use {@link #getPlayer(UUID)} as player names are no longer - * guaranteed to be unique * @param name the name to look up * @return a player if one was found, null otherwise */ - @Deprecated @Nullable public static Player getPlayer(@NotNull String name) { return server.getPlayer(name); @@ -372,12 +369,9 @@ public final class Bukkit { /** * Gets the player with the exact given name, case insensitive. * - * @deprecated Use {@link #getPlayer(UUID)} as player names are no longer - * guaranteed to be unique * @param name Exact name of the player to retrieve * @return a player object if one was found, null otherwise */ - @Deprecated @Nullable public static Player getPlayerExact(@NotNull String name) { return server.getPlayerExact(name); @@ -390,12 +384,9 @@ public final class Bukkit { * This list is not sorted in any particular order. If an exact match is * found, the returned list will only contain a single result. * - * @deprecated Use {@link #getPlayer(UUID)} as player names are no longer - * guaranteed to be unique * @param name the (partial) name to match * @return list of all possible players */ - @Deprecated @NotNull public static List matchPlayer(@NotNull String name) { return server.matchPlayer(name); diff --git a/paper-api/src/main/java/org/bukkit/GameRule.java b/paper-api/src/main/java/org/bukkit/GameRule.java index ee7ae56f92..a7020d5c14 100644 --- a/paper-api/src/main/java/org/bukkit/GameRule.java +++ b/paper-api/src/main/java/org/bukkit/GameRule.java @@ -121,6 +121,31 @@ public final class GameRule { */ public static final GameRule DISABLE_RAIDS = new GameRule<>("disableRaids", Boolean.class); + /** + * Whether phantoms will appear without sleeping or not. + */ + public static final GameRule DO_INSOMNIA = new GameRule<>("doInsomnia", Boolean.class); + + /** + * Whether clients will respawn immediately after death or not. + */ + public static final GameRule DO_IMMEDIATE_RESPAWN = new GameRule<>("doImmediateRespawn", Boolean.class); + + /** + * Whether drowning damage is enabled or not. + */ + public static final GameRule DROWNING_DAMAGE = new GameRule<>("drowningDamage", Boolean.class); + + /** + * Whether fall damage is enabled or not. + */ + public static final GameRule FALL_DAMAGE = new GameRule<>("fallDamage", Boolean.class); + + /** + * Whether fire damage is enabled or not. + */ + public static final GameRule FIRE_DAMAGE = new GameRule<>("fireDamage", Boolean.class); + // Numerical rules /** * How often a random block tick occurs (such as plant growth, leaf decay, diff --git a/paper-api/src/main/java/org/bukkit/Material.java b/paper-api/src/main/java/org/bukkit/Material.java index ce3bb9155d..9dc0ed03f3 100644 --- a/paper-api/src/main/java/org/bukkit/Material.java +++ b/paper-api/src/main/java/org/bukkit/Material.java @@ -22,6 +22,7 @@ import org.bukkit.block.data.Snowable; import org.bukkit.block.data.Waterlogged; import org.bukkit.block.data.type.Bamboo; import org.bukkit.block.data.type.Bed; +import org.bukkit.block.data.type.Beehive; import org.bukkit.block.data.type.Bell; import org.bukkit.block.data.type.BrewingStand; import org.bukkit.block.data.type.BubbleColumn; @@ -190,6 +191,10 @@ public enum Material implements Keyed { BEACON(6608), BEDROCK(23130), BEEF(4803), + /** + * BlockData: {@link Beehive} + */ + BEEHIVE(11830, Beehive.class), BEETROOT(23305), /** * BlockData: {@link Ageable} @@ -197,6 +202,11 @@ public enum Material implements Keyed { BEETROOTS(22075, Ageable.class), BEETROOT_SEEDS(21282), BEETROOT_SOUP(16036, 1), + /** + * BlockData: {@link Beehive} + */ + BEE_NEST(8825, Beehive.class), + BEE_SPAWN_EGG(22924), /** * BlockData: {@link Bell} */ @@ -1010,6 +1020,10 @@ public enum Material implements Keyed { * BlockData: {@link AnaloguePowerable} */ HEAVY_WEIGHTED_PRESSURE_PLATE(16970, AnaloguePowerable.class), + HONEYCOMB(9482), + HONEYCOMB_BLOCK(28780), + HONEY_BLOCK(30615), + HONEY_BOTTLE(22927, 16), /** * BlockData: {@link Hopper} */ @@ -3454,7 +3468,9 @@ public enum Material implements Keyed { case BARRIER: case BEACON: case BEDROCK: + case BEEHIVE: case BEETROOTS: + case BEE_NEST: case BELL: case BIRCH_BUTTON: case BIRCH_DOOR: @@ -3700,6 +3716,8 @@ public enum Material implements Keyed { case GRINDSTONE: case HAY_BLOCK: case HEAVY_WEIGHTED_PRESSURE_PLATE: + case HONEYCOMB_BLOCK: + case HONEY_BLOCK: case HOPPER: case HORN_CORAL: case HORN_CORAL_BLOCK: @@ -4135,6 +4153,7 @@ public enum Material implements Keyed { case ENCHANTED_GOLDEN_APPLE: case GOLDEN_APPLE: case GOLDEN_CARROT: + case HONEY_BOTTLE: case MELON_SLICE: case MUSHROOM_STEW: case MUTTON: @@ -4333,6 +4352,8 @@ public enum Material implements Keyed { case BARRIER: case BEACON: case BEDROCK: + case BEEHIVE: + case BEE_NEST: case BELL: case BIRCH_DOOR: case BIRCH_FENCE: @@ -4534,6 +4555,8 @@ public enum Material implements Keyed { case GRINDSTONE: case HAY_BLOCK: case HEAVY_WEIGHTED_PRESSURE_PLATE: + case HONEYCOMB_BLOCK: + case HONEY_BLOCK: case HOPPER: case HORN_CORAL_BLOCK: case ICE: @@ -5279,6 +5302,8 @@ public enum Material implements Keyed { case BAMBOO: case BAMBOO_SAPLING: case BARREL: + case BEEHIVE: + case BEE_NEST: case BIRCH_DOOR: case BIRCH_FENCE: case BIRCH_FENCE_GATE: @@ -5549,6 +5574,8 @@ public enum Material implements Keyed { case ALLIUM: case AZURE_BLUET: case BAMBOO: + case BEEHIVE: + case BEE_NEST: case BIRCH_FENCE: case BIRCH_FENCE_GATE: case BIRCH_LEAVES: @@ -5983,6 +6010,8 @@ public enum Material implements Keyed { case BARREL: case BARRIER: case BEDROCK: + case BEEHIVE: + case BEE_NEST: case BIRCH_LOG: case BIRCH_PLANKS: case BIRCH_WOOD: @@ -6076,6 +6105,7 @@ public enum Material implements Keyed { case GREEN_TERRACOTTA: case GREEN_WOOL: case HAY_BLOCK: + case HONEYCOMB_BLOCK: case HORN_CORAL_BLOCK: case INFESTED_CHISELED_STONE_BRICKS: case INFESTED_COBBLESTONE: @@ -6563,6 +6593,8 @@ public enum Material implements Keyed { case ANVIL: case BARREL: case BEACON: + case BEEHIVE: + case BEE_NEST: case BELL: case BIRCH_BUTTON: case BIRCH_DOOR: @@ -6814,6 +6846,7 @@ public enum Material implements Keyed { case WHITE_BED: case YELLOW_BED: return 0.2F; + case BEE_NEST: case BLACK_STAINED_GLASS: case BLACK_STAINED_GLASS_PANE: case BLUE_STAINED_GLASS: @@ -6910,11 +6943,13 @@ public enum Material implements Keyed { case WHITE_CONCRETE_POWDER: case YELLOW_CONCRETE_POWDER: return 0.5F; + case BEEHIVE: case CLAY: case COMPOSTER: case FARMLAND: case GRASS_BLOCK: case GRAVEL: + case HONEYCOMB_BLOCK: case MYCELIUM: case SPONGE: case WET_SPONGE: @@ -6935,10 +6970,6 @@ public enum Material implements Keyed { case CUT_RED_SANDSTONE: case CUT_SANDSTONE: case CYAN_WOOL: - case END_STONE_BRICKS: - case END_STONE_BRICK_SLAB: - case END_STONE_BRICK_STAIRS: - case END_STONE_BRICK_WALL: case GRAY_WOOL: case GREEN_WOOL: case LIGHT_BLUE_WOOL: @@ -7278,6 +7309,10 @@ public enum Material implements Keyed { case DRAGON_EGG: case EMERALD_ORE: case END_STONE: + case END_STONE_BRICKS: + case END_STONE_BRICK_SLAB: + case END_STONE_BRICK_STAIRS: + case END_STONE_BRICK_WALL: case GOLD_BLOCK: case GOLD_ORE: case HOPPER: @@ -7393,6 +7428,7 @@ public enum Material implements Keyed { case WHITE_BED: case YELLOW_BED: return 0.2F; + case BEE_NEST: case BLACK_STAINED_GLASS: case BLACK_STAINED_GLASS_PANE: case BLUE_STAINED_GLASS: @@ -7488,11 +7524,13 @@ public enum Material implements Keyed { case WHITE_CONCRETE_POWDER: case YELLOW_CONCRETE_POWDER: return 0.5F; + case BEEHIVE: case CLAY: case COMPOSTER: case FARMLAND: case GRASS_BLOCK: case GRAVEL: + case HONEYCOMB_BLOCK: case MYCELIUM: case SPONGE: case WET_SPONGE: @@ -7520,10 +7558,6 @@ public enum Material implements Keyed { case CUT_RED_SANDSTONE: case CUT_SANDSTONE: case CYAN_WOOL: - case END_STONE_BRICKS: - case END_STONE_BRICK_SLAB: - case END_STONE_BRICK_STAIRS: - case END_STONE_BRICK_WALL: case GRAY_WOOL: case GREEN_WOOL: case LIGHT_BLUE_WOOL: @@ -7904,6 +7938,10 @@ public enum Material implements Keyed { return 6.0F; case DRAGON_EGG: case END_STONE: + case END_STONE_BRICKS: + case END_STONE_BRICK_SLAB: + case END_STONE_BRICK_STAIRS: + case END_STONE_BRICK_WALL: return 9.0F; case LAVA: case WATER: diff --git a/paper-api/src/main/java/org/bukkit/Particle.java b/paper-api/src/main/java/org/bukkit/Particle.java index 68cb74420f..49467ac70a 100644 --- a/paper-api/src/main/java/org/bukkit/Particle.java +++ b/paper-api/src/main/java/org/bukkit/Particle.java @@ -68,6 +68,10 @@ public enum Particle { FALLING_LAVA, LANDING_LAVA, FALLING_WATER, + DRIPPING_HONEY, + FALLING_HONEY, + LANDING_HONEY, + FALLING_NECTAR, // ----- Legacy Separator ----- LEGACY_BLOCK_CRACK(MaterialData.class), LEGACY_BLOCK_DUST(MaterialData.class), diff --git a/paper-api/src/main/java/org/bukkit/Server.java b/paper-api/src/main/java/org/bukkit/Server.java index b4fb052229..7a03e93eb5 100644 --- a/paper-api/src/main/java/org/bukkit/Server.java +++ b/paper-api/src/main/java/org/bukkit/Server.java @@ -299,24 +299,18 @@ public interface Server extends PluginMessageRecipient { *

* This method may not return objects for offline players. * - * @deprecated Use {@link #getPlayer(UUID)} as player names are no longer - * guaranteed to be unique * @param name the name to look up * @return a player if one was found, null otherwise */ - @Deprecated @Nullable public Player getPlayer(@NotNull String name); /** * Gets the player with the exact given name, case insensitive. * - * @deprecated Use {@link #getPlayer(UUID)} as player names are no longer - * guaranteed to be unique * @param name Exact name of the player to retrieve * @return a player object if one was found, null otherwise */ - @Deprecated @Nullable public Player getPlayerExact(@NotNull String name); @@ -327,12 +321,9 @@ public interface Server extends PluginMessageRecipient { * This list is not sorted in any particular order. If an exact match is * found, the returned list will only contain a single result. * - * @deprecated Use {@link #getPlayer(UUID)} as player names are no longer - * guaranteed to be unique * @param name the (partial) name to match * @return list of all possible players */ - @Deprecated @NotNull public List matchPlayer(@NotNull String name); diff --git a/paper-api/src/main/java/org/bukkit/Sound.java b/paper-api/src/main/java/org/bukkit/Sound.java index 91e5f0f09b..e857cf84ec 100644 --- a/paper-api/src/main/java/org/bukkit/Sound.java +++ b/paper-api/src/main/java/org/bukkit/Sound.java @@ -38,6 +38,11 @@ public enum Sound { BLOCK_BEACON_AMBIENT, BLOCK_BEACON_DEACTIVATE, BLOCK_BEACON_POWER_SELECT, + BLOCK_BEEHIVE_DRIP, + BLOCK_BEEHIVE_ENTER, + BLOCK_BEEHIVE_EXIT, + BLOCK_BEEHIVE_SHEAR, + BLOCK_BEEHIVE_WORK, BLOCK_BELL_RESONATE, BLOCK_BELL_USE, BLOCK_BLASTFURNACE_FIRE_CRACKLE, @@ -99,6 +104,12 @@ public enum Sound { BLOCK_GRAVEL_PLACE, BLOCK_GRAVEL_STEP, BLOCK_GRINDSTONE_USE, + BLOCK_HONEY_BLOCK_BREAK, + BLOCK_HONEY_BLOCK_FALL, + BLOCK_HONEY_BLOCK_HIT, + BLOCK_HONEY_BLOCK_PLACE, + BLOCK_HONEY_BLOCK_SLIDE, + BLOCK_HONEY_BLOCK_STEP, BLOCK_IRON_DOOR_CLOSE, BLOCK_IRON_DOOR_OPEN, BLOCK_IRON_TRAPDOOR_CLOSE, @@ -224,6 +235,12 @@ public enum Sound { ENTITY_BAT_HURT, ENTITY_BAT_LOOP, ENTITY_BAT_TAKEOFF, + ENTITY_BEE_DEATH, + ENTITY_BEE_HURT, + ENTITY_BEE_LOOP, + ENTITY_BEE_LOOP_AGGRESSIVE, + ENTITY_BEE_POLLINATE, + ENTITY_BEE_STING, ENTITY_BLAZE_AMBIENT, ENTITY_BLAZE_BURN, ENTITY_BLAZE_DEATH, @@ -400,8 +417,10 @@ public enum Sound { ENTITY_ILLUSIONER_PREPARE_BLINDNESS, ENTITY_ILLUSIONER_PREPARE_MIRROR, ENTITY_IRON_GOLEM_ATTACK, + ENTITY_IRON_GOLEM_DAMAGE, ENTITY_IRON_GOLEM_DEATH, ENTITY_IRON_GOLEM_HURT, + ENTITY_IRON_GOLEM_REPAIR, ENTITY_IRON_GOLEM_STEP, ENTITY_ITEM_BREAK, ENTITY_ITEM_FRAME_ADD_ITEM, @@ -467,7 +486,6 @@ public enum Sound { ENTITY_PARROT_IMITATE_CREEPER, ENTITY_PARROT_IMITATE_DROWNED, ENTITY_PARROT_IMITATE_ELDER_GUARDIAN, - ENTITY_PARROT_IMITATE_ENDERMAN, ENTITY_PARROT_IMITATE_ENDERMITE, ENTITY_PARROT_IMITATE_ENDER_DRAGON, ENTITY_PARROT_IMITATE_EVOKER, @@ -476,10 +494,8 @@ public enum Sound { ENTITY_PARROT_IMITATE_HUSK, ENTITY_PARROT_IMITATE_ILLUSIONER, ENTITY_PARROT_IMITATE_MAGMA_CUBE, - ENTITY_PARROT_IMITATE_PANDA, ENTITY_PARROT_IMITATE_PHANTOM, ENTITY_PARROT_IMITATE_PILLAGER, - ENTITY_PARROT_IMITATE_POLAR_BEAR, ENTITY_PARROT_IMITATE_RAVAGER, ENTITY_PARROT_IMITATE_SHULKER, ENTITY_PARROT_IMITATE_SILVERFISH, @@ -492,9 +508,7 @@ public enum Sound { ENTITY_PARROT_IMITATE_WITCH, ENTITY_PARROT_IMITATE_WITHER, ENTITY_PARROT_IMITATE_WITHER_SKELETON, - ENTITY_PARROT_IMITATE_WOLF, ENTITY_PARROT_IMITATE_ZOMBIE, - ENTITY_PARROT_IMITATE_ZOMBIE_PIGMAN, ENTITY_PARROT_IMITATE_ZOMBIE_VILLAGER, ENTITY_PARROT_STEP, ENTITY_PHANTOM_AMBIENT, @@ -759,6 +773,7 @@ public enum Sound { ITEM_FIRECHARGE_USE, ITEM_FLINTANDSTEEL_USE, ITEM_HOE_TILL, + ITEM_HONEY_BOTTLE_DRINK, ITEM_NETHER_WART_PLANT, ITEM_SHIELD_BLOCK, ITEM_SHIELD_BREAK, diff --git a/paper-api/src/main/java/org/bukkit/Statistic.java b/paper-api/src/main/java/org/bukkit/Statistic.java index c54c001286..bda1940333 100644 --- a/paper-api/src/main/java/org/bukkit/Statistic.java +++ b/paper-api/src/main/java/org/bukkit/Statistic.java @@ -86,7 +86,9 @@ public enum Statistic implements Keyed { INTERACT_WITH_STONECUTTER, BELL_RING, RAID_TRIGGER, - RAID_WIN; + RAID_WIN, + INTERACT_WITH_ANVIL, + INTERACT_WITH_GRINDSTONE; private final Type type; private final NamespacedKey key; diff --git a/paper-api/src/main/java/org/bukkit/Tag.java b/paper-api/src/main/java/org/bukkit/Tag.java index 1d9021b0b0..1d93a12345 100644 --- a/paper-api/src/main/java/org/bukkit/Tag.java +++ b/paper-api/src/main/java/org/bukkit/Tag.java @@ -158,6 +158,18 @@ public interface Tag extends Keyed { * Vanilla block tag representing all fences. */ Tag FENCES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("fences"), Material.class); + /** + * Vanilla block tag representing all tall flowers. + */ + Tag TALL_FLOWERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("tall_flowers"), Material.class); + /** + * Vanilla block tag representing all flowers. + */ + Tag FLOWERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("flowers"), Material.class); + /** + * Vanilla block tag representing all shulker boxes. + */ + Tag SHULKER_BOXES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("shulker_boxes"), Material.class); /** * Vanilla block tag denoting blocks that enderman may pick up and hold. */ @@ -198,10 +210,6 @@ public interface Tag extends Keyed { * Vanilla block tag denoting all blocks bamboo may be planted on. */ Tag BAMBOO_PLANTABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bamboo_plantable_on"), Material.class); - /** - * Vanilla block tag denoting dirt like blocks. - */ - Tag DIRT_LIKE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dirt_like"), Material.class); /** * Vanilla block tag representing all standing signs. */ @@ -214,6 +222,30 @@ public interface Tag extends Keyed { * Vanilla block tag representing all signs. */ Tag SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("signs"), Material.class); + /** + * Vanilla block tag representing all blocks immune to dragons. + */ + Tag DRAGON_IMMUNE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dragon_immune"), Material.class); + /** + * Vanilla block tag representing all blocks immune to withers. + */ + Tag WITHER_IMMUNE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wither_immune"), Material.class); + /** + * Vanilla block tag representing all beehives. + */ + Tag BEEHIVES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("beehives"), Material.class); + /** + * Vanilla block tag representing all crops. + */ + Tag CROPS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("crops"), Material.class); + /** + * Vanilla block tag representing all bee growables. + */ + Tag BEE_GROWABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bee_growables"), Material.class); + /** + * Vanilla block tag representing all portals. + */ + Tag PORTALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("portals"), Material.class); /** * Key for the built in item registry. */ @@ -242,6 +274,10 @@ public interface Tag extends Keyed { * Vanilla item tag representing all arrow items. */ Tag ITEMS_ARROWS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("arrows"), Material.class); + /** + * 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); /** * Returns whether or not this tag has an entry for the specified item. diff --git a/paper-api/src/main/java/org/bukkit/block/Beehive.java b/paper-api/src/main/java/org/bukkit/block/Beehive.java new file mode 100644 index 0000000000..c1c47c246f --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/Beehive.java @@ -0,0 +1,25 @@ +package org.bukkit.block; + +import org.bukkit.Location; +import org.jetbrains.annotations.Nullable; + +/** + * Represents a captured state of a bee hive. + */ +public interface Beehive extends TileState { + + /** + * Get the hive's flower location. + * + * @return flower location or null + */ + @Nullable + Location getFlower(); + + /** + * Set the hive's flower location. + * + * @param location or null + */ + void setFlower(@Nullable Location location); +} diff --git a/paper-api/src/main/java/org/bukkit/block/FlowerPot.java b/paper-api/src/main/java/org/bukkit/block/FlowerPot.java deleted file mode 100644 index 1155edc3a0..0000000000 --- a/paper-api/src/main/java/org/bukkit/block/FlowerPot.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.bukkit.block; - -import org.bukkit.material.MaterialData; -import org.jetbrains.annotations.Nullable; - -/** - * Represents a captured state of a flower pot. - * @deprecated not a tile entity in future versions of Minecraft - */ -@Deprecated -public interface FlowerPot extends BlockState { - - /** - * Gets the item present in this flower pot. - * - * @return item present, or null for empty. - */ - @Nullable - MaterialData getContents(); - - /** - * Sets the item present in this flower pot. - * - * NOTE: The Vanilla Minecraft client will currently not refresh this until - * a block update is triggered. - * - * @param item new item, or null for empty. - */ - void setContents(@Nullable MaterialData item); -} diff --git a/paper-api/src/main/java/org/bukkit/block/NoteBlock.java b/paper-api/src/main/java/org/bukkit/block/NoteBlock.java deleted file mode 100644 index 14bb68baea..0000000000 --- a/paper-api/src/main/java/org/bukkit/block/NoteBlock.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.bukkit.block; - -import org.bukkit.Instrument; -import org.bukkit.Note; - -/** - * Represents a captured state of a note block. - * @deprecated not a tile entity in future versions of Minecraft - */ -@Deprecated -public interface NoteBlock extends BlockState { - - /** - * Gets the note. - * - * @return The note. - */ - public Note getNote(); - - /** - * Gets the note. - * - * @return The note ID. - * @deprecated Magic value - */ - @Deprecated - public byte getRawNote(); - - /** - * Set the note. - * - * @param note The note. - */ - public void setNote(Note note); - - /** - * Set the note. - * - * @param note The note ID. - * @deprecated Magic value - */ - @Deprecated - public void setRawNote(byte note); - - /** - * Attempts to play the note at the block. - *

- * If the block represented by this block state is no longer a note block, - * this will return false. - * - * @return true if successful, otherwise false - * @throws IllegalStateException if this block state is not placed - */ - public boolean play(); - - /** - * Plays an arbitrary note with an arbitrary instrument at the block. - *

- * If the block represented by this block state is no longer a note block, - * this will return false. - * - * @param instrument Instrument ID - * @param note Note ID - * @return true if successful, otherwise false - * @throws IllegalStateException if this block state is not placed - * @deprecated Magic value - */ - @Deprecated - public boolean play(byte instrument, byte note); - - /** - * Plays an arbitrary note with an arbitrary instrument at the block. - *

- * If the block represented by this block state is no longer a note block, - * this will return false. - * - * @param instrument The instrument - * @param note The note - * @return true if successful, otherwise false - * @throws IllegalStateException if this block state is not placed - * @see Instrument Note - */ - public boolean play(Instrument instrument, Note note); -} diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Beehive.java b/paper-api/src/main/java/org/bukkit/block/data/type/Beehive.java new file mode 100644 index 0000000000..7cfa05d7a7 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Beehive.java @@ -0,0 +1,30 @@ +package org.bukkit.block.data.type; + +import org.bukkit.block.data.Directional; + +/** + * 'honey_level' represents the amount of honey stored in the hive. + */ +public interface Beehive extends Directional { + + /** + * Gets the value of the 'honey_level' property. + * + * @return the 'honey_level' value + */ + int getHoneyLevel(); + + /** + * Sets the value of the 'honey_level' property. + * + * @param honeyLevel the new 'honey_level' value + */ + void setHoneyLevel(int honeyLevel); + + /** + * Gets the maximum allowed value of the 'honey_level' property. + * + * @return the maximum 'honey_level' value + */ + int getMaximumHoneyLevel(); +} diff --git a/paper-api/src/main/java/org/bukkit/command/defaults/VersionCommand.java b/paper-api/src/main/java/org/bukkit/command/defaults/VersionCommand.java index 9d8360f764..cbce524442 100644 --- a/paper-api/src/main/java/org/bukkit/command/defaults/VersionCommand.java +++ b/paper-api/src/main/java/org/bukkit/command/defaults/VersionCommand.java @@ -41,8 +41,7 @@ public class VersionCommand extends BukkitCommand { if (args.length == 0) { sender.sendMessage("This server is running " + Bukkit.getName() + " version " + Bukkit.getVersion() + " (Implementing API version " + Bukkit.getBukkitVersion() + ")"); - sender.sendMessage(ChatColor.YELLOW + "This is a final build for 1.14.4. Please see https://www.spigotmc.org/go/1.14.4 for details about upgrading."); - // sendVersion(sender); + sendVersion(sender); } else { StringBuilder name = new StringBuilder(); diff --git a/paper-api/src/main/java/org/bukkit/entity/Bee.java b/paper-api/src/main/java/org/bukkit/entity/Bee.java new file mode 100644 index 0000000000..41b23d87a1 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/entity/Bee.java @@ -0,0 +1,82 @@ +package org.bukkit.entity; + +import org.bukkit.Location; +import org.jetbrains.annotations.Nullable; + +/** + * Represents a Bee. + */ +public interface Bee extends Animals { + + /** + * Get the bee's hive location. + * + * @return hive location or null + */ + @Nullable + Location getHive(); + + /** + * Set the bee's hive location. + * + * @param location or null + */ + void setHive(@Nullable Location location); + + /** + * Get the bee's flower location. + * + * @return flower location or null + */ + @Nullable + Location getFlower(); + + /** + * Set the bee's flower location. + * + * @param location or null + */ + void setFlower(@Nullable Location location); + + /** + * Get if the bee has nectar. + * + * @return nectar + */ + boolean hasNectar(); + + /** + * Set if the bee has nectar. + * + * @param nectar whether the entity has nectar + */ + void setHasNectar(boolean nectar); + + /** + * Get if the bee has stung. + * + * @return has stung + */ + boolean hasStung(); + + /** + * Set if the bee has stung. + * + * @param stung has stung + */ + void setHasStung(boolean stung); + + /** + * Get the bee's anger level. + * + * @return anger level + */ + int getAnger(); + + /** + * Set the bee's new anger level. + * + * @param anger new anger + */ + void setAnger(int anger); +} 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 527cb045f3..0ab001b7e2 100644 --- a/paper-api/src/main/java/org/bukkit/entity/EntityType.java +++ b/paper-api/src/main/java/org/bukkit/entity/EntityType.java @@ -260,6 +260,7 @@ public enum EntityType implements Keyed { TRADER_LLAMA("trader_llama", TraderLlama.class, -1), WANDERING_TRADER("wandering_trader", WanderingTrader.class, -1), FOX("fox", Fox.class, -1), + BEE("bee", Bee.class, -1), /** * A fishing line and bobber. */ diff --git a/paper-api/src/main/java/org/bukkit/entity/Player.java b/paper-api/src/main/java/org/bukkit/entity/Player.java index ea112e4534..89d05d9fd5 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Player.java +++ b/paper-api/src/main/java/org/bukkit/entity/Player.java @@ -1,7 +1,6 @@ package org.bukkit.entity; import java.net.InetSocketAddress; -import org.bukkit.Achievement; import org.bukkit.DyeColor; import org.bukkit.Effect; import org.bukkit.GameMode; @@ -452,39 +451,6 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Deprecated public void updateInventory(); - /** - * Awards the given achievement and any parent achievements that the - * player does not have. - * - * @param achievement Achievement to award - * @throws IllegalArgumentException if achievement is null - * @deprecated future versions of Minecraft do not have achievements - */ - @Deprecated - public void awardAchievement(@NotNull Achievement achievement); - - /** - * Removes the given achievement and any children achievements that the - * player has. - * - * @param achievement Achievement to remove - * @throws IllegalArgumentException if achievement is null - * @deprecated future versions of Minecraft do not have achievements - */ - @Deprecated - public void removeAchievement(@NotNull Achievement achievement); - - /** - * Gets whether this player has the given achievement. - * - * @param achievement the achievement to check - * @return whether the player has the achievement - * @throws IllegalArgumentException if achievement is null - * @deprecated future versions of Minecraft do not have achievements - */ - @Deprecated - public boolean hasAchievement(@NotNull Achievement achievement); - /** * Increments the given statistic for this player. *

diff --git a/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java b/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java index dd33800d9f..8a5c92a68b 100644 --- a/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java +++ b/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java @@ -49,6 +49,7 @@ public final class MemoryKey implements Keyed { public static final MemoryKey MEETING_POINT = new MemoryKey<>(NamespacedKey.minecraft("meeting_point"), Location.class); public static final MemoryKey JOB_SITE = new MemoryKey<>(NamespacedKey.minecraft("job_site"), Location.class); public static final MemoryKey LAST_SLEPT = new MemoryKey<>(NamespacedKey.minecraft("last_slept"), Long.class); + public static final MemoryKey LAST_WOKEN = new MemoryKey<>(NamespacedKey.minecraft("last_woken"), Long.class); public static final MemoryKey LAST_WORKED_AT_POI = new MemoryKey<>(NamespacedKey.minecraft("last_worked_at_poi"), Long.class); /** diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerAchievementAwardedEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerAchievementAwardedEvent.java deleted file mode 100644 index 07fa439a4f..0000000000 --- a/paper-api/src/main/java/org/bukkit/event/player/PlayerAchievementAwardedEvent.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.bukkit.event.player; - -import org.bukkit.Achievement; -import org.bukkit.entity.Player; -import org.bukkit.event.Cancellable; -import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.NotNull; - -/** - * Called when a player earns an achievement. - * @deprecated future versions of Minecraft do not have achievements - */ -@Deprecated -public class PlayerAchievementAwardedEvent extends PlayerEvent implements Cancellable { - private static final HandlerList handlers = new HandlerList(); - private final Achievement achievement; - private boolean isCancelled = false; - - public PlayerAchievementAwardedEvent(Player player, Achievement achievement) { - super(player); - this.achievement = achievement; - } - - /** - * Gets the Achievement being awarded. - * - * @return the achievement being awarded - */ - public Achievement getAchievement() { - return achievement; - } - - @Override - public boolean isCancelled() { - return isCancelled; - } - - @Override - public void setCancelled(boolean cancel) { - this.isCancelled = cancel; - } - - @NotNull - @Override - public HandlerList getHandlers() { - return handlers; - } - - public static HandlerList getHandlerList() { - return handlers; - } -} diff --git a/paper-api/src/main/java/org/bukkit/inventory/ComplexRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/ComplexRecipe.java new file mode 100644 index 0000000000..46381c8f97 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/inventory/ComplexRecipe.java @@ -0,0 +1,12 @@ +package org.bukkit.inventory; + +import org.bukkit.Keyed; + +/** + * Represents a complex recipe which has imperative server-defined behavior, eg + * armor dyeing. + * + * Note: Since a complex recipe has dynamic outputs, {@link #getResult()} will + * sometimes return an AIR ItemStack. + */ +public interface ComplexRecipe extends Recipe, Keyed {}