diff --git a/src/main/java/tech/sbdevelopment/v10lift/api/objects/LiftRope.java b/src/main/java/tech/sbdevelopment/v10lift/api/objects/LiftRope.java index ddc8b3e..539e5fa 100644 --- a/src/main/java/tech/sbdevelopment/v10lift/api/objects/LiftRope.java +++ b/src/main/java/tech/sbdevelopment/v10lift/api/objects/LiftRope.java @@ -34,8 +34,8 @@ public class LiftRope { * Construct a new liftrope * * @param block The block - * @param minY The starting x-pos - * @param maxY The stopping x-pos + * @param minY The starting y-pos + * @param maxY The stopping y-pos */ public LiftRope(Block block, int minY, int maxY) { this.type = block.getType(); @@ -44,7 +44,7 @@ public class LiftRope { this.minY = minY; this.maxY = maxY; this.z = block.getZ(); - this.currently = block.getY(); + this.currently = minY; if (block.getBlockData() instanceof org.bukkit.block.data.Directional) { this.face = ((org.bukkit.block.data.Directional) block.getBlockData()).getFacing(); } diff --git a/src/main/java/tech/sbdevelopment/v10lift/commands/V10LiftTabCompleter.java b/src/main/java/tech/sbdevelopment/v10lift/commands/V10LiftTabCompleter.java index ee4826c..fcc985c 100644 --- a/src/main/java/tech/sbdevelopment/v10lift/commands/V10LiftTabCompleter.java +++ b/src/main/java/tech/sbdevelopment/v10lift/commands/V10LiftTabCompleter.java @@ -41,7 +41,8 @@ public class V10LiftTabCompleter implements TabCompleter { return StringUtil.copyPartialMatches(args[1], SUBRENAME, new ArrayList<>()); } else if (args[0].equalsIgnoreCase("input") || args[0].equalsIgnoreCase("offline") - || args[0].equalsIgnoreCase("whitelist")) { + || args[0].equalsIgnoreCase("whitelist") + || args[0].equalsIgnoreCase("rope")) { return StringUtil.copyPartialMatches(args[1], SUB, new ArrayList<>()); } } else if (args.length == 3) { diff --git a/src/main/java/tech/sbdevelopment/v10lift/managers/AntiCopyBlockManager.java b/src/main/java/tech/sbdevelopment/v10lift/managers/AntiCopyBlockManager.java index d8b27ed..002f5bb 100644 --- a/src/main/java/tech/sbdevelopment/v10lift/managers/AntiCopyBlockManager.java +++ b/src/main/java/tech/sbdevelopment/v10lift/managers/AntiCopyBlockManager.java @@ -61,6 +61,24 @@ public class AntiCopyBlockManager { antiCopy.add(XMaterial.ACTIVATOR_RAIL); antiCopy.add(XMaterial.LADDER); + /* Causes duping */ + antiCopy.add(XMaterial.WHITE_CARPET); + antiCopy.add(XMaterial.ORANGE_CARPET); + antiCopy.add(XMaterial.MAGENTA_CARPET); + antiCopy.add(XMaterial.LIGHT_BLUE_CARPET); + antiCopy.add(XMaterial.YELLOW_CARPET); + antiCopy.add(XMaterial.LIME_CARPET); + antiCopy.add(XMaterial.PINK_CARPET); + antiCopy.add(XMaterial.GRAY_CARPET); + antiCopy.add(XMaterial.LIGHT_GRAY_CARPET); + antiCopy.add(XMaterial.CYAN_CARPET); + antiCopy.add(XMaterial.PURPLE_CARPET); + antiCopy.add(XMaterial.BLUE_CARPET); + antiCopy.add(XMaterial.BROWN_CARPET); + antiCopy.add(XMaterial.GREEN_CARPET); + antiCopy.add(XMaterial.RED_CARPET); + antiCopy.add(XMaterial.BLACK_CARPET); + /* Because of datatypes */ antiCopy.add(XMaterial.BEEHIVE); antiCopy.add(XMaterial.BELL); diff --git a/src/main/java/tech/sbdevelopment/v10lift/utils/BlockStateUtil.java b/src/main/java/tech/sbdevelopment/v10lift/utils/BlockStateUtil.java index 9a64247..ad161c2 100644 --- a/src/main/java/tech/sbdevelopment/v10lift/utils/BlockStateUtil.java +++ b/src/main/java/tech/sbdevelopment/v10lift/utils/BlockStateUtil.java @@ -4,19 +4,10 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import javax.annotation.Nonnull; -import javax.annotation.Nullable; public class BlockStateUtil { - @Nullable - public static BlockFace getDirection(@Nonnull Block block) { - if (block.getBlockData() instanceof org.bukkit.block.data.Directional) { - org.bukkit.block.data.Directional dir = (org.bukkit.block.data.Directional) block.getBlockData(); - return dir.getFacing(); - } - return null; - } - - public static void setDirection(@Nonnull Block block, @Nonnull BlockFace blockFace) { + public static void setDirection(@Nonnull Block block, BlockFace blockFace) { + if (blockFace == null) return; if (block.getBlockData() instanceof org.bukkit.block.data.Directional) { org.bukkit.block.data.BlockData bd = block.getBlockData(); org.bukkit.block.data.Directional dir = (org.bukkit.block.data.Directional) bd; @@ -25,17 +16,9 @@ public class BlockStateUtil { } } - @Nullable - public static String getBisected(@Nonnull Block block) { - if (block.getBlockData() instanceof org.bukkit.block.data.Bisected) { - org.bukkit.block.data.Bisected bis = (org.bukkit.block.data.Bisected) block.getBlockData(); - return bis.getHalf().toString(); - } - return null; - } - public static void setBisected(@Nonnull Block block, String bisected) { - if (bisected != null && block.getBlockData() instanceof org.bukkit.block.data.Bisected) { + if (bisected == null) return; + if (block.getBlockData() instanceof org.bukkit.block.data.Bisected) { org.bukkit.block.data.Bisected.Half half; try { half = org.bukkit.block.data.Bisected.Half.valueOf(bisected); @@ -51,16 +34,8 @@ public class BlockStateUtil { } } - @Nullable - public static String getSlabType(@Nonnull Block block) { - if (block.getBlockData() instanceof org.bukkit.block.data.type.Slab) { - org.bukkit.block.data.type.Slab slab = (org.bukkit.block.data.type.Slab) block.getBlockData(); - return slab.getType().toString(); - } - return null; - } - - public static void setSlabType(@Nonnull Block block, @Nonnull String slabtype) { + public static void setSlabType(@Nonnull Block block, String slabtype) { + if (slabtype == null) return; if (block.getBlockData() instanceof org.bukkit.block.data.type.Slab) { org.bukkit.block.data.type.Slab.Type type; try { @@ -77,19 +52,13 @@ public class BlockStateUtil { } } - @Nullable - public static Boolean isOpen(@Nonnull Block block) { + public static void setOpen(@Nonnull Block block, Boolean state) { + if (state == null) return; if (block.getBlockData() instanceof org.bukkit.block.data.Openable) { - org.bukkit.block.data.Openable trapdoor = (org.bukkit.block.data.Openable) block.getBlockData(); - return trapdoor.isOpen(); - } - return null; - } - - public static void setOpen(@Nonnull Block block, boolean state) { - if (block.getBlockData() instanceof org.bukkit.block.data.Openable) { - org.bukkit.block.data.Openable trapdoor = (org.bukkit.block.data.Openable) block.getBlockData(); - trapdoor.setOpen(state); + org.bukkit.block.data.BlockData bd = block.getBlockData(); + org.bukkit.block.data.Openable openable = (org.bukkit.block.data.Openable) bd; + openable.setOpen(state); + block.setBlockData(bd); } } }