summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristos Miniotis <chrismin1302@gmail.com>2018-08-02 15:48:14 +0300
committermd_5 <git@md-5.net>2018-08-03 09:05:56 +1000
commitc9a81b7d281f1583a75f4c3e443433f5f836fbb8 (patch)
tree6ea9be54b3e97ae3800aa941e2dbf250293210e5
parentcab9d86f6ccc8399010c0eac9d7986f55b4d8f23 (diff)
downloadbukkit-c9a81b7d281f1583a75f4c3e443433f5f836fbb8.tar
bukkit-c9a81b7d281f1583a75f4c3e443433f5f836fbb8.tar.gz
bukkit-c9a81b7d281f1583a75f4c3e443433f5f836fbb8.tar.lz
bukkit-c9a81b7d281f1583a75f4c3e443433f5f836fbb8.tar.xz
bukkit-c9a81b7d281f1583a75f4c3e443433f5f836fbb8.zip
SPIGOT-3936: Add isInteractable to Material
-rw-r--r--src/main/java/org/bukkit/Material.java165
1 files changed, 165 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index af0ec817..359187da 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -4888,4 +4888,169 @@ public enum Material implements Keyed {
return true;
}
}
+
+ /**
+ * Checks if this Material can be interacted with.
+ *
+ * Interactable materials include those with functionality when they are
+ * interacted with by a player such as chests, furnaces, etc.
+ *
+ * Some blocks such as piston heads and stairs are considered interactable
+ * though may not perform any additional functionality.
+ *
+ * Note that the interactability of some materials may be dependant on their
+ * state as well. This method will return true if there is at least one
+ * state in which additional interact handling is performed for the
+ * material.
+ *
+ * @return true if this material can be interacted with.
+ */
+ public boolean isInteractable() {
+ switch (this) {
+ // <editor-fold defaultstate="collapsed" desc="isInteractable">
+ case ACACIA_BUTTON:
+ case ACACIA_DOOR:
+ case ACACIA_FENCE:
+ case ACACIA_FENCE_GATE:
+ case ACACIA_STAIRS:
+ case ACACIA_TRAPDOOR:
+ case ANVIL:
+ case BEACON:
+ case BIRCH_BUTTON:
+ case BIRCH_DOOR:
+ case BIRCH_FENCE:
+ case BIRCH_FENCE_GATE:
+ case BIRCH_STAIRS:
+ case BIRCH_TRAPDOOR:
+ case BLACK_BED:
+ case BLACK_SHULKER_BOX:
+ case BLUE_BED:
+ case BLUE_SHULKER_BOX:
+ case BREWING_STAND:
+ case BRICK_STAIRS:
+ case BROWN_BED:
+ case BROWN_SHULKER_BOX:
+ case CAKE:
+ case CAULDRON:
+ case CHAIN_COMMAND_BLOCK:
+ case CHEST:
+ case CHIPPED_ANVIL:
+ case COBBLESTONE_STAIRS:
+ case COMMAND_BLOCK:
+ case COMPARATOR:
+ case CRAFTING_TABLE:
+ case CYAN_BED:
+ case CYAN_SHULKER_BOX:
+ case DAMAGED_ANVIL:
+ case DARK_OAK_BUTTON:
+ case DARK_OAK_DOOR:
+ case DARK_OAK_FENCE:
+ case DARK_OAK_FENCE_GATE:
+ case DARK_OAK_STAIRS:
+ case DARK_OAK_TRAPDOOR:
+ case DARK_PRISMARINE_STAIRS:
+ case DAYLIGHT_DETECTOR:
+ case DISPENSER:
+ case DRAGON_EGG:
+ case DROPPER:
+ case ENCHANTING_TABLE:
+ case ENDER_CHEST:
+ case FLOWER_POT:
+ case FURNACE:
+ case GRAY_BED:
+ case GRAY_SHULKER_BOX:
+ case GREEN_BED:
+ case GREEN_SHULKER_BOX:
+ case HOPPER:
+ case IRON_DOOR:
+ case IRON_TRAPDOOR:
+ case JUKEBOX:
+ case JUNGLE_BUTTON:
+ case JUNGLE_DOOR:
+ case JUNGLE_FENCE:
+ case JUNGLE_FENCE_GATE:
+ case JUNGLE_STAIRS:
+ case JUNGLE_TRAPDOOR:
+ case LEVER:
+ case LIGHT_BLUE_BED:
+ case LIGHT_BLUE_SHULKER_BOX:
+ case LIGHT_GRAY_BED:
+ case LIGHT_GRAY_SHULKER_BOX:
+ case LIME_BED:
+ case LIME_SHULKER_BOX:
+ case MAGENTA_BED:
+ case MAGENTA_SHULKER_BOX:
+ case MOVING_PISTON:
+ case NETHER_BRICK_FENCE:
+ case NETHER_BRICK_STAIRS:
+ case NOTE_BLOCK:
+ case OAK_BUTTON:
+ case OAK_DOOR:
+ case OAK_FENCE:
+ case OAK_FENCE_GATE:
+ case OAK_STAIRS:
+ case OAK_TRAPDOOR:
+ case ORANGE_BED:
+ case ORANGE_SHULKER_BOX:
+ case PINK_BED:
+ case PINK_SHULKER_BOX:
+ case POTTED_ACACIA_SAPLING:
+ case POTTED_ALLIUM:
+ case POTTED_AZURE_BLUET:
+ case POTTED_BIRCH_SAPLING:
+ case POTTED_BLUE_ORCHID:
+ case POTTED_BROWN_MUSHROOM:
+ case POTTED_CACTUS:
+ case POTTED_DANDELION:
+ case POTTED_DARK_OAK_SAPLING:
+ case POTTED_DEAD_BUSH:
+ case POTTED_FERN:
+ case POTTED_JUNGLE_SAPLING:
+ case POTTED_OAK_SAPLING:
+ case POTTED_ORANGE_TULIP:
+ case POTTED_OXEYE_DAISY:
+ case POTTED_PINK_TULIP:
+ case POTTED_POPPY:
+ case POTTED_RED_MUSHROOM:
+ case POTTED_RED_TULIP:
+ case POTTED_SPRUCE_SAPLING:
+ case POTTED_WHITE_TULIP:
+ case PRISMARINE_BRICK_STAIRS:
+ case PRISMARINE_STAIRS:
+ case PUMPKIN:
+ case PURPLE_BED:
+ case PURPLE_SHULKER_BOX:
+ case PURPUR_STAIRS:
+ case QUARTZ_STAIRS:
+ case REDSTONE_ORE:
+ case RED_BED:
+ case RED_SANDSTONE_STAIRS:
+ case RED_SHULKER_BOX:
+ case REPEATER:
+ case REPEATING_COMMAND_BLOCK:
+ case SANDSTONE_STAIRS:
+ case SHULKER_BOX:
+ case SIGN:
+ case SPRUCE_BUTTON:
+ case SPRUCE_DOOR:
+ case SPRUCE_FENCE:
+ case SPRUCE_FENCE_GATE:
+ case SPRUCE_STAIRS:
+ case SPRUCE_TRAPDOOR:
+ case STONE_BRICK_STAIRS:
+ case STONE_BUTTON:
+ case STRUCTURE_BLOCK:
+ case TNT:
+ case TRAPPED_CHEST:
+ case WALL_SIGN:
+ case WHITE_BED:
+ case WHITE_SHULKER_BOX:
+ case YELLOW_BED:
+ case YELLOW_SHULKER_BOX:
+ // </editor-fold>
+ return true;
+ default:
+ return false;
+ }
+ }
}