From 9bd9ee6645e64bcad5052dfbf0ef6c8539ec701e Mon Sep 17 00:00:00 2001 From: mbax Date: Fri, 30 Oct 2020 22:16:17 -0400 Subject: [PATCH] Fix sign listener to handle all MC versions --- .../playervaults/listeners/SignListener.java | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/drtshock/playervaults/listeners/SignListener.java b/src/main/java/com/drtshock/playervaults/listeners/SignListener.java index 350432b..8097083 100644 --- a/src/main/java/com/drtshock/playervaults/listeners/SignListener.java +++ b/src/main/java/com/drtshock/playervaults/listeners/SignListener.java @@ -25,7 +25,6 @@ import com.drtshock.playervaults.vaultmanagement.VaultOperations; import com.drtshock.playervaults.vaultmanagement.VaultViewInfo; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.OfflinePlayer; import org.bukkit.block.Block; import org.bukkit.block.Sign; @@ -40,6 +39,7 @@ import org.bukkit.event.entity.EntityChangeBlockEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.CraftingInventory; import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; public class SignListener implements Listener { private PlayerVaults plugin; @@ -66,7 +66,7 @@ public class SignListener implements Listener { if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { if (PlayerVaults.getInstance().getInVault().containsKey(player.getUniqueId().toString())) { // Different inventories that we don't want the player to open. - if (isInvalidBlock(block.getType())) { + if (isInvalidBlock(block)) { event.setCancelled(true); } } @@ -196,18 +196,8 @@ public class SignListener implements Listener { } } - private boolean isInvalidBlock(Material material) { - if (PlayerVaults.getInstance().getVersion().contains("v1_13")) { - PlayerVaults.debug("[PlayerVaults] [Debug/SignListener] Block material checked for >= 1.13"); - return material == Material.CHEST || material == Material.TRAPPED_CHEST - || material == Material.ENDER_CHEST || material == Material.FURNACE - || material == Material.BREWING_STAND || material == Material.ENCHANTING_TABLE - || material == Material.BEACON; - } - PlayerVaults.debug("[PlayerVaults] [Debug/SignListener] Block material checked for < 1.13"); - return material == Material.CHEST || material == Material.TRAPPED_CHEST - || material == Material.ENDER_CHEST || material == Material.FURNACE - || material == Material.valueOf("BURNING_FURNACE") || material == Material.BREWING_STAND - || material == Material.valueOf("ENCHANTMENT_TABLE") || material == Material.BEACON; + private boolean isInvalidBlock(Block block) { + String type = block.getType().name(); + return block.getState() instanceof InventoryHolder || type.contains("ENCHANT") || type.equals("ENDER_CHEST"); } } \ No newline at end of file