diff --git a/src/main/java/net/coreprotect/command/parser/MaterialParser.java b/src/main/java/net/coreprotect/command/parser/MaterialParser.java index ba4c62bbe..3c566b2f3 100644 --- a/src/main/java/net/coreprotect/command/parser/MaterialParser.java +++ b/src/main/java/net/coreprotect/command/parser/MaterialParser.java @@ -225,6 +225,7 @@ else if (iMaterial != null) { public static Map> getTags() { Map> tagMap = new HashMap<>(); tagMap.put("#button", BlockGroup.BUTTONS); + tagMap.put("#sign", BlockGroup.SIGNS); tagMap.put("#container", BlockGroup.CONTAINERS); tagMap.put("#door", BlockGroup.DOORS); tagMap.put("#natural", BlockGroup.NATURAL_BLOCKS); diff --git a/src/main/java/net/coreprotect/model/BlockGroup.java b/src/main/java/net/coreprotect/model/BlockGroup.java index 2b6146829..ab5838e33 100644 --- a/src/main/java/net/coreprotect/model/BlockGroup.java +++ b/src/main/java/net/coreprotect/model/BlockGroup.java @@ -4,6 +4,7 @@ import java.util.HashSet; import java.util.Set; +import net.coreprotect.bukkit.BukkitAdapter; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.NamespacedKey; @@ -35,6 +36,7 @@ public final class BlockGroup { public static Set UPDATE_STATE = new HashSet<>(Arrays.asList(Material.TORCH, Material.WALL_TORCH, Material.REDSTONE_WIRE, Material.RAIL, Material.POWERED_RAIL, Material.DETECTOR_RAIL, Material.FURNACE, Material.BLAST_FURNACE, Material.SMOKER, Material.LEVER, Material.REDSTONE_TORCH, Material.REDSTONE_WALL_TORCH, Material.GLOWSTONE, Material.JACK_O_LANTERN, Material.REPEATER, Material.REDSTONE_LAMP, Material.BEACON, Material.COMPARATOR, Material.DAYLIGHT_DETECTOR, Material.REDSTONE_BLOCK, Material.HOPPER, Material.CHEST, Material.TRAPPED_CHEST, Material.ACTIVATOR_RAIL, Material.SOUL_TORCH, Material.SOUL_WALL_TORCH, Material.SHROOMLIGHT, Material.RESPAWN_ANCHOR, Material.CRYING_OBSIDIAN, Material.TARGET)); public static Set NATURAL_BLOCKS = new HashSet<>(Arrays.asList(Material.STONE, Material.GOLD_ORE, Material.IRON_ORE, Material.COAL_ORE, Material.LAPIS_ORE, Material.SANDSTONE, Material.COBWEB, Material.FERN, Material.DEAD_BUSH, Material.DANDELION, Material.POPPY, Material.BLUE_ORCHID, Material.ALLIUM, Material.AZURE_BLUET, Material.RED_TULIP, Material.ORANGE_TULIP, Material.WHITE_TULIP, Material.PINK_TULIP, Material.OXEYE_DAISY, Material.BROWN_MUSHROOM, Material.RED_MUSHROOM, Material.OBSIDIAN, Material.DIAMOND_ORE, Material.WHEAT, Material.REDSTONE_ORE, Material.SNOW, Material.ICE, Material.CACTUS, Material.CLAY, Material.SUGAR_CANE, Material.PUMPKIN, Material.NETHERRACK, Material.SOUL_SAND, Material.MELON, Material.PUMPKIN_STEM, Material.MELON_STEM, Material.MYCELIUM, Material.LILY_PAD, Material.NETHER_WART, Material.END_STONE, Material.EMERALD_ORE, Material.CARROT, Material.POTATO, Material.KELP, Material.CHORUS_FLOWER, Material.CHORUS_PLANT, Material.CORNFLOWER, Material.LILY_OF_THE_VALLEY, Material.WITHER_ROSE, Material.SWEET_BERRY_BUSH)); public static Set SCULK = new HashSet<>(Arrays.asList()); + public static Set SIGNS = new HashSet<>(Arrays.asList()); /* blocks that support vertical scanning */ public static Set VERTICAL_TOP_BOTTOM = new HashSet<>(Arrays.asList()); @@ -60,6 +62,14 @@ public static void initialize() { } } + if (SIGNS.isEmpty()) { + for (Material material : Material.values()) { + if (BukkitAdapter.ADAPTER.isSign(material)) { + SIGNS.add(material); + } + } + } + Material shortGrass = Material.getMaterial("SHORT_GRASS"); if (shortGrass == null) { shortGrass = Material.getMaterial("GRASS");