|
@@ -0,0 +1,120 @@
|
|
|
+package com.gmail.nossr50;
|
|
|
+
|
|
|
+import org.bukkit.Material;
|
|
|
+import org.bukkit.block.Block;
|
|
|
+
|
|
|
+import com.gmail.nossr50.config.LoadProperties;
|
|
|
+
|
|
|
+public class BlockChecks {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Checks to see if a block type awards XP.
|
|
|
+ *
|
|
|
+ * @param material {@link Block} type to check
|
|
|
+ * @return true if the block type awards XP, false otherwise
|
|
|
+ */
|
|
|
+ public static boolean shouldBeWatched(Material material) {
|
|
|
+ switch (material) {
|
|
|
+ case BROWN_MUSHROOM:
|
|
|
+ case CACTUS:
|
|
|
+ case CLAY:
|
|
|
+ case COAL_ORE:
|
|
|
+ case DIAMOND_ORE:
|
|
|
+ case DIRT:
|
|
|
+ case ENDER_STONE:
|
|
|
+ case GLOWING_REDSTONE_ORE:
|
|
|
+ case GLOWSTONE:
|
|
|
+ case GOLD_ORE:
|
|
|
+ case GRASS:
|
|
|
+ case GRAVEL:
|
|
|
+ case IRON_ORE:
|
|
|
+ case JACK_O_LANTERN:
|
|
|
+ case LAPIS_ORE:
|
|
|
+ case LOG:
|
|
|
+ case MELON_BLOCK:
|
|
|
+ case MOSSY_COBBLESTONE:
|
|
|
+ case MYCEL:
|
|
|
+ case NETHERRACK:
|
|
|
+ case OBSIDIAN:
|
|
|
+ case PUMPKIN:
|
|
|
+ case RED_MUSHROOM:
|
|
|
+ case RED_ROSE:
|
|
|
+ case REDSTONE_ORE:
|
|
|
+ case SAND:
|
|
|
+ case SANDSTONE:
|
|
|
+ case SOUL_SAND:
|
|
|
+ case STONE:
|
|
|
+ case SUGAR_CANE_BLOCK:
|
|
|
+ case VINE:
|
|
|
+ case WATER_LILY:
|
|
|
+ case YELLOW_FLOWER:
|
|
|
+ return true;
|
|
|
+
|
|
|
+ default:
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Check if a block should allow for the activation of abilities.
|
|
|
+ *
|
|
|
+ * @param material Type of {@link Block} to check
|
|
|
+ * @return true if the block should allow ability activation, false otherwise
|
|
|
+ */
|
|
|
+ public static boolean abilityBlockCheck(Material material) {
|
|
|
+ switch (material) {
|
|
|
+ case BED_BLOCK:
|
|
|
+ case BREWING_STAND:
|
|
|
+ case BOOKSHELF:
|
|
|
+ case BURNING_FURNACE:
|
|
|
+ case CAKE_BLOCK:
|
|
|
+ case CHEST:
|
|
|
+ case DISPENSER:
|
|
|
+ case ENCHANTMENT_TABLE:
|
|
|
+ case FENCE_GATE:
|
|
|
+ case FURNACE:
|
|
|
+ case IRON_DOOR_BLOCK:
|
|
|
+ case JUKEBOX:
|
|
|
+ case LEVER:
|
|
|
+ case NOTE_BLOCK:
|
|
|
+ case STONE_BUTTON:
|
|
|
+ case TRAP_DOOR:
|
|
|
+ case WALL_SIGN:
|
|
|
+ case WOODEN_DOOR:
|
|
|
+ case WORKBENCH:
|
|
|
+ return false;
|
|
|
+
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Material.getMaterial(LoadProperties.anvilID).equals(material)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Check if a block type is an ore.
|
|
|
+ *
|
|
|
+ * @param material The type of {@link Block} to check
|
|
|
+ * @return true if the Block is an ore, false otherwise
|
|
|
+ */
|
|
|
+ public static boolean isOre(Material material) {
|
|
|
+ switch (material) {
|
|
|
+ case COAL_ORE:
|
|
|
+ case DIAMOND_ORE:
|
|
|
+ case GLOWING_REDSTONE_ORE:
|
|
|
+ case GOLD_ORE:
|
|
|
+ case IRON_ORE:
|
|
|
+ case LAPIS_ORE:
|
|
|
+ case REDSTONE_ORE:
|
|
|
+ return true;
|
|
|
+
|
|
|
+ default:
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|