diff --git a/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java b/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java index 092445a..d7508aa 100644 --- a/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java +++ b/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java @@ -6,6 +6,7 @@ import java.util.Map; import org.bukkit.Color; import org.bukkit.DyeColor; import org.bukkit.Material; +import org.bukkit.Tag; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.Sign; @@ -206,4 +207,9 @@ public class BukkitAdapter implements BukkitInterface { return scanType.hasGravity(); } + @Override + public boolean isSign(Material material) { + return Tag.SIGNS.isTagged(material); + } + } diff --git a/src/main/java/net/coreprotect/bukkit/BukkitInterface.java b/src/main/java/net/coreprotect/bukkit/BukkitInterface.java index 71c01d2..8530d9f 100644 --- a/src/main/java/net/coreprotect/bukkit/BukkitInterface.java +++ b/src/main/java/net/coreprotect/bukkit/BukkitInterface.java @@ -65,4 +65,6 @@ public interface BukkitInterface { public boolean hasGravity(Material scanType); + public boolean isSign(Material material); + } diff --git a/src/main/java/net/coreprotect/bukkit/Bukkit_v1_20.java b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_20.java index 831a377..458baba 100644 --- a/src/main/java/net/coreprotect/bukkit/Bukkit_v1_20.java +++ b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_20.java @@ -6,6 +6,7 @@ import java.util.HashSet; import org.bukkit.Color; import org.bukkit.DyeColor; import org.bukkit.Material; +import org.bukkit.Tag; import org.bukkit.block.Sign; import org.bukkit.block.sign.Side; @@ -16,6 +17,7 @@ public class Bukkit_v1_20 extends Bukkit_v1_19 implements BukkitInterface { public Bukkit_v1_20() { BlockGroup.CONTAINERS = new HashSet<>(Arrays.asList(Material.JUKEBOX, Material.DISPENSER, Material.CHEST, Material.FURNACE, Material.BREWING_STAND, Material.TRAPPED_CHEST, Material.HOPPER, Material.DROPPER, Material.ARMOR_STAND, Material.ITEM_FRAME, Material.SHULKER_BOX, Material.BLACK_SHULKER_BOX, Material.BLUE_SHULKER_BOX, Material.BROWN_SHULKER_BOX, Material.CYAN_SHULKER_BOX, Material.GRAY_SHULKER_BOX, Material.GREEN_SHULKER_BOX, Material.LIGHT_BLUE_SHULKER_BOX, Material.LIME_SHULKER_BOX, Material.MAGENTA_SHULKER_BOX, Material.ORANGE_SHULKER_BOX, Material.PINK_SHULKER_BOX, Material.PURPLE_SHULKER_BOX, Material.RED_SHULKER_BOX, Material.LIGHT_GRAY_SHULKER_BOX, Material.WHITE_SHULKER_BOX, Material.YELLOW_SHULKER_BOX, Material.BARREL, Material.BLAST_FURNACE, Material.SMOKER, Material.LECTERN, Material.CHISELED_BOOKSHELF)); BlockGroup.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, Material.SMALL_AMETHYST_BUD, Material.MEDIUM_AMETHYST_BUD, Material.LARGE_AMETHYST_BUD, Material.AMETHYST_CLUSTER, Material.CAVE_VINES, Material.CAVE_VINES_PLANT, Material.GLOW_LICHEN, Material.LIGHT, Material.LAVA_CAULDRON, Material.CHISELED_BOOKSHELF)); + BlockGroup.TRACK_BOTTOM.addAll(Tag.CEILING_HANGING_SIGNS.getValues()); } @Override @@ -97,4 +99,9 @@ public class Bukkit_v1_20 extends Bukkit_v1_19 implements BukkitInterface { return scanType.hasGravity() || scanType == Material.SUSPICIOUS_GRAVEL || scanType == Material.SUSPICIOUS_SAND; } + @Override + public boolean isSign(Material material) { + return Tag.ALL_SIGNS.isTagged(material); + } + } diff --git a/src/main/java/net/coreprotect/database/Rollback.java b/src/main/java/net/coreprotect/database/Rollback.java index 09c8f95..a946090 100644 --- a/src/main/java/net/coreprotect/database/Rollback.java +++ b/src/main/java/net/coreprotect/database/Rollback.java @@ -823,7 +823,7 @@ public class Rollback extends Queue { blockCount1++; } } - else if (Tag.SIGNS.isTagged(rowType)) {// sign + else if (BukkitAdapter.ADAPTER.isSign(rowType)) {// sign Util.prepareTypeAndData(chunkChanges, block, rowType, blockData, false); Queue.queueSignUpdate(rowUser, block.getState(), rollbackType, rowTime); diff --git a/src/main/java/net/coreprotect/listener/block/BlockBreakListener.java b/src/main/java/net/coreprotect/listener/block/BlockBreakListener.java index b7f8863..aa6cf32 100644 --- a/src/main/java/net/coreprotect/listener/block/BlockBreakListener.java +++ b/src/main/java/net/coreprotect/listener/block/BlockBreakListener.java @@ -7,7 +7,6 @@ import java.util.Locale; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.Tag; import org.bukkit.World; import org.bukkit.block.Banner; import org.bukkit.block.Block; @@ -274,7 +273,7 @@ public final class BlockBreakListener extends Queue implements Listener { e.printStackTrace(); } } - if (log && Tag.SIGNS.isTagged(blockType)) { + if (log && BukkitAdapter.ADAPTER.isSign(blockType)) { if (Config.getConfig(world).SIGN_TEXT) { try { Location location = blockState.getLocation(); diff --git a/src/main/java/net/coreprotect/listener/block/BlockExplodeListener.java b/src/main/java/net/coreprotect/listener/block/BlockExplodeListener.java index 32dba8f..f8a6a03 100644 --- a/src/main/java/net/coreprotect/listener/block/BlockExplodeListener.java +++ b/src/main/java/net/coreprotect/listener/block/BlockExplodeListener.java @@ -8,7 +8,6 @@ import java.util.Map; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.Tag; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockState; @@ -115,7 +114,7 @@ public final class BlockExplodeListener extends Queue implements Listener { Block block = entry.getValue(); Material blockType = block.getType(); BlockState blockState = block.getState(); - if (Tag.SIGNS.isTagged(blockType) && Config.getConfig(world).SIGN_TEXT) { + if (BukkitAdapter.ADAPTER.isSign(blockType) && Config.getConfig(world).SIGN_TEXT) { try { Location location = blockState.getLocation(); Sign sign = (Sign) blockState; diff --git a/src/main/java/net/coreprotect/listener/block/BlockPlaceListener.java b/src/main/java/net/coreprotect/listener/block/BlockPlaceListener.java index 20ad6ee..887b853 100644 --- a/src/main/java/net/coreprotect/listener/block/BlockPlaceListener.java +++ b/src/main/java/net/coreprotect/listener/block/BlockPlaceListener.java @@ -4,7 +4,6 @@ import java.util.Locale; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.Tag; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockState; @@ -107,7 +106,7 @@ public final class BlockPlaceListener extends Queue implements Listener { Queue.queueBlockPlace(player.getName(), blockState, blockPlaced.getType(), blockReplaced, forceType, forceData, 0, bBlockData); - if (Tag.SIGNS.isTagged(blockType)) { + if (BukkitAdapter.ADAPTER.isSign(blockType)) { if (Config.getConfig(world).SIGN_TEXT) { try { Location location = blockState.getLocation(); diff --git a/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java b/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java index 1613239..9a44b03 100755 --- a/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java +++ b/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java @@ -188,7 +188,7 @@ public final class PlayerInteractListener extends Queue implements Listener { final Material type = block.getType(); boolean isInteractBlock = BlockGroup.INTERACT_BLOCKS.contains(type); boolean isContainerBlock = BlockGroup.CONTAINERS.contains(type); - boolean isSignBlock = Tag.SIGNS.isTagged(type); + boolean isSignBlock = BukkitAdapter.ADAPTER.isSign(type); if (isInteractBlock || isContainerBlock || isSignBlock) { final Block clickedBlock = event.getClickedBlock(); @@ -550,7 +550,7 @@ public final class PlayerInteractListener extends Queue implements Listener { if (event.useInteractedBlock() != Event.Result.DENY) { boolean isCake = false; - if (Tag.SIGNS.isTagged(type)) { + if (BukkitAdapter.ADAPTER.isSign(type)) { // check if right clicked sign with dye Set dyeSet = EnumSet.of(Material.BLACK_DYE, Material.BLUE_DYE, Material.BROWN_DYE, Material.CYAN_DYE, Material.GRAY_DYE, Material.GREEN_DYE, Material.LIGHT_BLUE_DYE, Material.LIGHT_GRAY_DYE, Material.LIME_DYE, Material.MAGENTA_DYE, Material.ORANGE_DYE, Material.PINK_DYE, Material.PURPLE_DYE, Material.RED_DYE, Material.WHITE_DYE, Material.YELLOW_DYE); Material handType = null; diff --git a/src/main/java/net/coreprotect/worldedit/WorldEditLogger.java b/src/main/java/net/coreprotect/worldedit/WorldEditLogger.java index 4241b4c..8fbca35 100644 --- a/src/main/java/net/coreprotect/worldedit/WorldEditLogger.java +++ b/src/main/java/net/coreprotect/worldedit/WorldEditLogger.java @@ -6,7 +6,6 @@ import org.bukkit.DyeColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Server; -import org.bukkit.Tag; import org.bukkit.block.BlockState; import org.bukkit.block.data.Bisected; import org.bukkit.block.data.Bisected.Half; @@ -44,7 +43,7 @@ public class WorldEditLogger extends Queue { } protected static BaseBlock getBaseBlock(Extent extent, BlockVector3 position, Location location, Material oldType, com.sk89q.worldedit.world.block.BlockState oldBlock) { - if (oldType == Material.SPAWNER || (Config.getConfig(location.getWorld()).SIGN_TEXT && Tag.SIGNS.isTagged(oldType))) { + if (oldType == Material.SPAWNER || (Config.getConfig(location.getWorld()).SIGN_TEXT && net.coreprotect.bukkit.BukkitAdapter.ADAPTER.isSign(oldType))) { return extent.getFullBlock(position); } @@ -67,7 +66,7 @@ public class WorldEditLogger extends Queue { if (!oldType.equals(newType) || !oldBlockDataString.equals(newBlockDataString)) { try { if (baseBlock != null && baseBlock.hasNbtData()) { - if (Config.getConfig(location.getWorld()).SIGN_TEXT && Tag.SIGNS.isTagged(oldType)) { + if (Config.getConfig(location.getWorld()).SIGN_TEXT && net.coreprotect.bukkit.BukkitAdapter.ADAPTER.isSign(oldType)) { CompoundTag compoundTag = baseBlock.getNbtData(); if (!compoundTag.containsKey("front_text")) { String line1 = getSignText(compoundTag.getString("Text1"));