From 45f337c90c02aa253a3488f1da811547ef918f2a Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Thu, 28 Jul 2022 03:42:53 +0200 Subject: [PATCH] fix sign coloring --- .../com/Acrobot/Breeze/Utils/BlockUtil.java | 24 +++++++++++++++++++ .../Listeners/Player/PlayerInteract.java | 6 ++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/Acrobot/Breeze/Utils/BlockUtil.java b/src/main/java/com/Acrobot/Breeze/Utils/BlockUtil.java index cb2a44710..a0c5488e3 100644 --- a/src/main/java/com/Acrobot/Breeze/Utils/BlockUtil.java +++ b/src/main/java/com/Acrobot/Breeze/Utils/BlockUtil.java @@ -20,6 +20,7 @@ public class BlockUtil { private static EnumSet SIGNS = EnumSet.noneOf(Material.class); private static EnumSet SHULKER_BOXES = EnumSet.noneOf(Material.class); private static EnumSet CONTAINERS = EnumSet.noneOf(Material.class); + private static EnumSet SIGN_EDIT_MATERIALS = EnumSet.noneOf(Material.class); static { SIGNS.add(Material.ACACIA_SIGN); SIGNS.add(Material.ACACIA_WALL_SIGN); @@ -62,6 +63,25 @@ public class BlockUtil { CONTAINERS.add(Material.TRAPPED_CHEST); CONTAINERS.add(Material.BARREL); CONTAINERS.addAll(SHULKER_BOXES); + + SIGN_EDIT_MATERIALS.add(Material.INK_SAC); + SIGN_EDIT_MATERIALS.add(Material.GLOW_INK_SAC); + SIGN_EDIT_MATERIALS.add(Material.BLACK_DYE); + SIGN_EDIT_MATERIALS.add(Material.BLUE_DYE); + SIGN_EDIT_MATERIALS.add(Material.BROWN_DYE); + SIGN_EDIT_MATERIALS.add(Material.CYAN_DYE); + SIGN_EDIT_MATERIALS.add(Material.GRAY_DYE); + SIGN_EDIT_MATERIALS.add(Material.GREEN_DYE); + SIGN_EDIT_MATERIALS.add(Material.LIGHT_BLUE_DYE); + SIGN_EDIT_MATERIALS.add(Material.LIGHT_GRAY_DYE); + SIGN_EDIT_MATERIALS.add(Material.LIME_DYE); + SIGN_EDIT_MATERIALS.add(Material.MAGENTA_DYE); + SIGN_EDIT_MATERIALS.add(Material.ORANGE_DYE); + SIGN_EDIT_MATERIALS.add(Material.PINK_DYE); + SIGN_EDIT_MATERIALS.add(Material.PURPLE_DYE); + SIGN_EDIT_MATERIALS.add(Material.RED_DYE); + SIGN_EDIT_MATERIALS.add(Material.WHITE_DYE); + SIGN_EDIT_MATERIALS.add(Material.YELLOW_DYE); } /** @@ -149,4 +169,8 @@ public static boolean openBlockGUI(InventoryHolder holder, Player player) { return true; } + + public static boolean isSignEditMaterial(Material m) { + return SIGN_EDIT_MATERIALS.contains(m); + } } diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/Player/PlayerInteract.java b/src/main/java/com/Acrobot/ChestShop/Listeners/Player/PlayerInteract.java index b70dc2615..b6d6db799 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/Player/PlayerInteract.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/Player/PlayerInteract.java @@ -93,7 +93,11 @@ public static void onInteract(PlayerInteractEvent event) { return; } - if (ChestShopSign.canAccess(player, sign) && (!Properties.ALLOW_OWN_SHOP_TRANSACTIONS || player.isSneaking())) { + boolean ownShop = ChestShopSign.canAccess(player, sign); + if (ownShop && action == RIGHT_CLICK_BLOCK && event.getItem() != null && BlockUtil.isSignEditMaterial(event.getItem().getType())) { + return; + } + if (ownShop && (!Properties.ALLOW_OWN_SHOP_TRANSACTIONS || player.isSneaking())) { if (!Properties.ALLOW_SIGN_CHEST_OPEN || player.isSneaking() || player.isInsideVehicle() || player.getGameMode() == GameMode.CREATIVE) { return; }