From f3f6d115473ca276453760e8ec2ce644b429c938 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Mon, 1 Jul 2024 20:39:07 +0200 Subject: [PATCH 1/2] Add logging to RotateBlockEvent Debug logs were added to the RotateBlockEvent class. These logs will help track the flow of various states and actions, such as the current material and action type, whether the block is a trap door or a drip leaf, among others. This enhancement will assist debugging by providing more visibility into the state of the application at runtime. --- .../com/alttd/playerutils/PlayerUtils.java | 2 +- .../event_listeners/RotateBlockEvent.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alttd/playerutils/PlayerUtils.java b/src/main/java/com/alttd/playerutils/PlayerUtils.java index 49404c9..6499dea 100644 --- a/src/main/java/com/alttd/playerutils/PlayerUtils.java +++ b/src/main/java/com/alttd/playerutils/PlayerUtils.java @@ -55,7 +55,7 @@ public final class PlayerUtils extends JavaPlugin { pluginManager.registerEvents(new XpBottleEvent(this, logger), this); pluginManager.registerEvents(new TeleportEvent(), this); - RotateBlockEvent rotateBlockEvent = new RotateBlockEvent(); + RotateBlockEvent rotateBlockEvent = new RotateBlockEvent(logger); pluginManager.registerEvents(rotateBlockEvent, this); playerUtilsCommand.addSubCommand(new RotateBlock(rotateBlockEvent)); } diff --git a/src/main/java/com/alttd/playerutils/event_listeners/RotateBlockEvent.java b/src/main/java/com/alttd/playerutils/event_listeners/RotateBlockEvent.java index 1d1c8e3..83be0d8 100644 --- a/src/main/java/com/alttd/playerutils/event_listeners/RotateBlockEvent.java +++ b/src/main/java/com/alttd/playerutils/event_listeners/RotateBlockEvent.java @@ -1,5 +1,6 @@ package com.alttd.playerutils.event_listeners; +import com.alttd.playerutils.util.Logger; import org.bukkit.Axis; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -16,15 +17,22 @@ import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; +import org.slf4j.LoggerFactory; import java.util.*; import java.util.stream.Collectors; public class RotateBlockEvent implements Listener { + private static final org.slf4j.Logger log = LoggerFactory.getLogger(RotateBlockEvent.class); private final HashSet rotateEnabled = new HashSet<>(); + private final Logger logger; private static final List VALID_FOUR_STATES = List.of(BlockFace.NORTH, BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST); + public RotateBlockEvent(Logger logger) { + this.logger = logger; + } + public synchronized boolean toggleRotate(UUID uuid) { if (rotateEnabled.contains(uuid)) { @@ -55,11 +63,14 @@ public class RotateBlockEvent implements Listener { return; Material type = block.getType(); + logger.debug(String.format("Material %s with action %s", type, event.getAction().isLeftClick() ? "left click" : "right click")); if (type.equals(Material.IRON_TRAPDOOR) && event.getAction().isLeftClick()) { event.setCancelled(true); + logger.debug("Toggling trap door"); toggleTrapDoor(block, player); } else if (Tag.BIG_DRIPLEAF_PLACEABLE.isTagged(type) && event.getAction().isLeftClick()) { event.setCancelled(true); + logger.debug("Toggling drip leaf"); toggleDripLeaf(block, player); } else if (Tag.STAIRS.isTagged(type)) { event.setCancelled(true); @@ -94,24 +105,31 @@ public class RotateBlockEvent implements Listener { BigDripleaf.Tilt[] values = BigDripleaf.Tilt.values(); int ordinal = bigDripleaf.getTilt().ordinal(); + logger.debug("drip leaf is on tilt %d".formatted(ordinal)); if (++ordinal == values.length) { ordinal = 0; } bigDripleaf.setTilt(values[ordinal]); + logger.debug("drip leaf set to tilt %d".formatted(ordinal)); block.setBlockAndForget(bigDripleaf); + logger.debug("drip leaf set"); } private void toggleTrapDoor(Block block, Player player) { if (!(block instanceof TrapDoor trapDoor)) { + logger.debug("Trap door early return 1"); return; } if (cannotBuild(block, player)) { + logger.debug("Trap door early return 2"); return; } + logger.debug("Trap door is %s".formatted(trapDoor.isOpen() ? "open" : "closed")); trapDoor.setOpen(!trapDoor.isOpen()); + logger.debug(String.format("Trap door set to %s", trapDoor.isOpen() ? "open" : "close")); } private void toggleRails(Block block, Player player) { From 2bdf8b6b48b4d8bd94d16e4ff79f04e826ffa129 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Sun, 7 Jul 2024 15:17:32 +0200 Subject: [PATCH 2/2] Remove temporary debug logging in RotateBlockEvent & fixed drip leaf & iron trap door rotation The update primarily eradicates numerous debug logging lines in the RotateBlockEvent class. This cleanup improves the readability of the code and enhances performance by reducing unnecessary logging operations. The "toggleDripLeaf" and "toggleTrapDoor" methods have also been updated to verify block data. --- .../event_listeners/RotateBlockEvent.java | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/alttd/playerutils/event_listeners/RotateBlockEvent.java b/src/main/java/com/alttd/playerutils/event_listeners/RotateBlockEvent.java index 83be0d8..86b9771 100644 --- a/src/main/java/com/alttd/playerutils/event_listeners/RotateBlockEvent.java +++ b/src/main/java/com/alttd/playerutils/event_listeners/RotateBlockEvent.java @@ -17,14 +17,12 @@ import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; -import org.slf4j.LoggerFactory; import java.util.*; import java.util.stream.Collectors; public class RotateBlockEvent implements Listener { - private static final org.slf4j.Logger log = LoggerFactory.getLogger(RotateBlockEvent.class); private final HashSet rotateEnabled = new HashSet<>(); private final Logger logger; private static final List VALID_FOUR_STATES = List.of(BlockFace.NORTH, BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST); @@ -66,11 +64,9 @@ public class RotateBlockEvent implements Listener { logger.debug(String.format("Material %s with action %s", type, event.getAction().isLeftClick() ? "left click" : "right click")); if (type.equals(Material.IRON_TRAPDOOR) && event.getAction().isLeftClick()) { event.setCancelled(true); - logger.debug("Toggling trap door"); toggleTrapDoor(block, player); - } else if (Tag.BIG_DRIPLEAF_PLACEABLE.isTagged(type) && event.getAction().isLeftClick()) { + } else if (type.equals(Material.BIG_DRIPLEAF) && event.getAction().isLeftClick()) { event.setCancelled(true); - logger.debug("Toggling drip leaf"); toggleDripLeaf(block, player); } else if (Tag.STAIRS.isTagged(type)) { event.setCancelled(true); @@ -94,7 +90,7 @@ public class RotateBlockEvent implements Listener { } private void toggleDripLeaf(Block block, Player player) { - if (!(block instanceof BigDripleaf bigDripleaf)) { + if (!(block.getBlockData() instanceof BigDripleaf bigDripleaf)) { return; } @@ -105,31 +101,25 @@ public class RotateBlockEvent implements Listener { BigDripleaf.Tilt[] values = BigDripleaf.Tilt.values(); int ordinal = bigDripleaf.getTilt().ordinal(); - logger.debug("drip leaf is on tilt %d".formatted(ordinal)); if (++ordinal == values.length) { ordinal = 0; } bigDripleaf.setTilt(values[ordinal]); - logger.debug("drip leaf set to tilt %d".formatted(ordinal)); block.setBlockAndForget(bigDripleaf); - logger.debug("drip leaf set"); } private void toggleTrapDoor(Block block, Player player) { - if (!(block instanceof TrapDoor trapDoor)) { - logger.debug("Trap door early return 1"); + if (!(block.getBlockData() instanceof TrapDoor trapDoor)) { return; } if (cannotBuild(block, player)) { - logger.debug("Trap door early return 2"); return; } - logger.debug("Trap door is %s".formatted(trapDoor.isOpen() ? "open" : "closed")); trapDoor.setOpen(!trapDoor.isOpen()); - logger.debug(String.format("Trap door set to %s", trapDoor.isOpen() ? "open" : "close")); + block.setBlockAndForget(trapDoor); } private void toggleRails(Block block, Player player) {