package org.bukkit; import java.util.Set; /** * Represents a tag that may be defined by the server or a resource pack to * group like things together. * * Note that whilst all tags defined within this interface must be present in * implementations, their existence is not guaranteed across future versions. * * @param the type of things grouped by this tag */ public interface Tag { /** * Key for the built in block registry. */ String REGISTRY_BLOCKS = "blocks"; /** * Vanilla block tag representing all colors of wool. */ Tag WOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wool"), Material.class); /** * Vanilla block tag representing all plank variants. */ Tag PLANKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("planks"), Material.class); /** * Vanilla block tag representing all regular/mossy/cracked/chiseled stone * bricks. */ Tag STONE_BRICKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stone_bricks"), Material.class); /** * Vanilla block tag representing all wooden buttons. */ Tag WOODEN_BUTTONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_buttons"), Material.class); /** * Vanilla block tag representing all buttons (inherits from * {@link #WOODEN_BUTTONS}. */ Tag BUTTONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("buttons"), Material.class); /** * Vanilla block tag representing all colors of carpet. */ Tag CARPETS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("carpets"), Material.class); /** * Vanilla block tag representing all wooden doors. */ Tag WOODEN_DOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_doors"), Material.class); /** * Vanilla block tag representing all wooden stairs. */ Tag WOODEN_STAIRS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_stairs"), Material.class); /** * Vanilla block tag representing all wooden slabs. */ Tag WOODEN_SLABS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_slabs"), Material.class); /** * Vanilla block tag representing all wooden pressure plates. */ Tag WOODEN_PRESSURE_PLATES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_pressure_plates"), Material.class); /** * Vanilla block tag representing all wooden trapdoors. */ Tag WOODEN_TRAPDOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_trapdoors"), Material.class); /** * Vanilla block tag representing all doors (inherits from * {@link #WOODEN_DOORS}. */ Tag DOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("doors"), Material.class); /** * Vanilla block tag representing all sapling variants. */ Tag SAPLINGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("saplings"), Material.class); /** * Vanilla block tag representing all log and bark variants. */ Tag LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("logs"), Material.class); /** * Vanilla block tag representing all dark oak log and bark variants. */ Tag DARK_OAK_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dark_oak_logs"), Material.class); /** * Vanilla block tag representing all oak log and bark variants. */ Tag OAK_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("oak_logs"), Material.class); /** * Vanilla block tag representing all birch log and bark variants. */ Tag BIRCH_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("birch_logs"), Material.class); /** * Vanilla block tag representing all acacia log and bark variants. */ Tag ACACIA_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("acacia_logs"), Material.class); /** * Vanilla block tag representing all jungle log and bark variants. */ Tag JUNGLE_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("jungle_logs"), Material.class); /** * Vanilla block tag representing all spruce log and bark variants. */ Tag SPRUCE_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("spruce_logs"), Material.class); /** * Vanilla block tag representing all banner blocks. */ Tag BANNERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("banners"), Material.class); /** * Vanilla block tag representing all sand blocks. */ Tag SAND = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sand"), Material.class); /** * Vanilla block tag representing all stairs. */ Tag STAIRS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stairs"), Material.class); /** * Vanilla block tag representing all slabs. */ Tag SLABS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("slabs"), Material.class); /** * Vanilla block tag representing all damaged and undamaged anvils. */ Tag ANVIL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("anvil"), Material.class); /** * Vanilla block tag representing all Minecart rails. */ Tag RAILS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("rails"), Material.class); /** * Vanilla block tag representing all coral blocks. */ Tag CORAL_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("coral_blocks"), Material.class); /** * Vanilla block tag representing all coral. */ Tag CORALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("corals"), Material.class); /** * Vanilla block tag representing all wall corals. */ Tag WALL_CORALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_corals"), Material.class); /** * Vanilla block tag representing all leaves fans. */ Tag LEAVES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("leaves"), Material.class); /** * Vanilla block tag representing all trapdoors (inherits from * {@link #WOODEN_TRAPDOORS}. */ Tag TRAPDOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("trapdoors"), Material.class); /** * Vanilla block tag representing all empty and filled flower pots. */ Tag FLOWER_POTS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("flower_pots"), Material.class); /** * Vanilla block tag denoting blocks that enderman may pick up and hold. */ Tag ENDERMAN_HOLDABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("enderman_holdable"), Material.class); /** * Vanilla block tag denoting ice blocks. */ Tag ICE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("ice"), Material.class); /** * Vanilla block tag denoting all valid mob spawn positions. */ Tag VALID_SPAWN = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("valid_spawn"), Material.class); /** * Vanilla block tag denoting impermeable blocks which do not drip fluids. */ Tag IMPERMEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("impermeable"), Material.class); /** * Key for the built in item registry. */ String REGISTRY_ITEMS = "items"; /** * Vanilla item tag representing all banner items. */ Tag ITEMS_BANNERS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("banners"), Material.class); /** * Vanilla item tag representing all boat items. */ Tag ITEMS_BOATS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("boats"), Material.class); /** * Vanilla item tag representing all fish items. */ Tag ITEMS_FISHES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("fishes"), Material.class); /** * Returns whether or not this tag has an entry for the specified item. * * @param item to check * @return if it is tagged */ boolean isTagged(T item); /** * Gets an immutable set of all tagged items. * * @return set of tagged items */ Set getValues(); }