From 172c6440dba3d363b91eaec587ba02ea5ab09f86 Mon Sep 17 00:00:00 2001 From: Intelli Date: Thu, 4 Jan 2024 17:44:46 -0700 Subject: [PATCH] Added container transaction logging for decorated pots --- src/main/java/net/coreprotect/bukkit/BukkitAdapter.java | 5 +++++ src/main/java/net/coreprotect/bukkit/BukkitInterface.java | 2 ++ src/main/java/net/coreprotect/bukkit/Bukkit_v1_20.java | 7 ++++++- .../listener/player/PlayerInteractListener.java | 4 ++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java b/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java index f3f2a97..d1f3e19 100644 --- a/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java +++ b/src/main/java/net/coreprotect/bukkit/BukkitAdapter.java @@ -207,6 +207,11 @@ public class BukkitAdapter implements BukkitInterface { return material; } + @Override + public boolean isDecoratedPot(Material material) { + return false; + } + @Override public boolean isSuspiciousBlock(Material material) { return false; diff --git a/src/main/java/net/coreprotect/bukkit/BukkitInterface.java b/src/main/java/net/coreprotect/bukkit/BukkitInterface.java index 56941e5..995c4c9 100644 --- a/src/main/java/net/coreprotect/bukkit/BukkitInterface.java +++ b/src/main/java/net/coreprotect/bukkit/BukkitInterface.java @@ -66,6 +66,8 @@ public interface BukkitInterface { public Material getPlantSeeds(Material material); + public boolean isDecoratedPot(Material material); + public boolean isSuspiciousBlock(Material material); 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 bf21860..83941c0 100644 --- a/src/main/java/net/coreprotect/bukkit/Bukkit_v1_20.java +++ b/src/main/java/net/coreprotect/bukkit/Bukkit_v1_20.java @@ -22,7 +22,7 @@ public class Bukkit_v1_20 extends Bukkit_v1_19 implements BukkitInterface { private Boolean hasClickedPosition = null; 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.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, Material.DECORATED_POT)); 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.BUTTONS.clear(); @@ -179,6 +179,11 @@ public class Bukkit_v1_20 extends Bukkit_v1_19 implements BukkitInterface { return material; } + @Override + public boolean isDecoratedPot(Material material) { + return material == Material.DECORATED_POT; + } + @Override public boolean isSuspiciousBlock(Material material) { return material == Material.SUSPICIOUS_GRAVEL || material == Material.SUSPICIOUS_SAND; diff --git a/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java b/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java index 806dc23..84506c2 100755 --- a/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java +++ b/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java @@ -752,6 +752,10 @@ public final class PlayerInteractListener extends Queue implements Listener { } } } + else if (BukkitAdapter.ADAPTER.isDecoratedPot(type)) { + BlockState blockState = block.getState(); + InventoryChangeListener.inventoryTransaction(player.getName(), blockState.getLocation(), null); + } else if (BukkitAdapter.ADAPTER.isSuspiciousBlock(type)) { ItemStack handItem = null; ItemStack mainHand = player.getInventory().getItemInMainHand();