diff --git a/src/de/diddiz/LogBlock/LBPlayerListener.java b/src/de/diddiz/LogBlock/LBPlayerListener.java index c9779be..2df65a8 100644 --- a/src/de/diddiz/LogBlock/LBPlayerListener.java +++ b/src/de/diddiz/LogBlock/LBPlayerListener.java @@ -1,5 +1,6 @@ package de.diddiz.LogBlock; +import java.util.Map; import org.bukkit.Material; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerBucketEmptyEvent; @@ -10,29 +11,31 @@ import org.bukkit.event.player.PlayerListener; class LBPlayerListener extends PlayerListener { private final Consumer consumer; + private final Map worlds; LBPlayerListener(LogBlock logblock) { consumer = logblock.getConsumer(); + worlds = logblock.getConfig().worlds; } @Override public void onPlayerBucketEmpty(PlayerBucketEmptyEvent event) { - if (!event.isCancelled()) - if (event.getBucket() == Material.WATER_BUCKET) - consumer.queueBlockPlace(event.getPlayer().getName(), event.getBlockClicked().getRelative(event.getBlockFace()).getLocation(), 9, (byte)0); - else if (event.getBucket() == Material.LAVA_BUCKET) - consumer.queueBlockPlace(event.getPlayer().getName(), event.getBlockClicked().getRelative(event.getBlockFace()).getLocation(), 11, (byte)0); + final WorldConfig wcfg = worlds.get(event.getPlayer().getWorld().getName().hashCode()); + if (!event.isCancelled() && wcfg != null && wcfg.logBlockCreations) + consumer.queueBlockPlace(event.getPlayer().getName(), event.getBlockClicked().getRelative(event.getBlockFace()).getLocation(), event.getBucket() == Material.WATER_BUCKET ? 9 : 11, (byte)0); } @Override public void onPlayerBucketFill(PlayerBucketFillEvent event) { - if (!event.isCancelled()) + final WorldConfig wcfg = worlds.get(event.getPlayer().getWorld().getName().hashCode()); + if (!event.isCancelled() && wcfg != null && wcfg.logBlockDestroyings) consumer.queueBlockBreak(event.getPlayer().getName(), event.getBlockClicked().getState()); } @Override public void onPlayerInteract(PlayerInteractEvent event) { - if (!event.isCancelled() && (event.getAction() == Action.LEFT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_BLOCK)) { + final WorldConfig wcfg = worlds.get(event.getPlayer().getWorld().getName().hashCode()); + if (!event.isCancelled() && wcfg != null && wcfg.logButtonsAndLevers && (event.getAction() == Action.LEFT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_BLOCK)) { final int type = event.getClickedBlock().getTypeId(); if (type == 69 || type == 77) consumer.queueBlock(event.getPlayer().getName(), event.getClickedBlock().getLocation(), type, type, (byte)0); diff --git a/src/de/diddiz/LogBlock/LBToolListener.java b/src/de/diddiz/LogBlock/LBToolListener.java index 6fb6dde..988dcf3 100644 --- a/src/de/diddiz/LogBlock/LBToolListener.java +++ b/src/de/diddiz/LogBlock/LBToolListener.java @@ -12,7 +12,6 @@ import com.sk89q.worldedit.bukkit.selections.CuboidSelection; class LBToolListener extends PlayerListener { - private final static BlockFace[] orientations = {BlockFace.NORTH, BlockFace.SOUTH, BlockFace.EAST, BlockFace.WEST}; private final CommandsHandler handler; private final LogBlock logblock; private final int toolID; @@ -49,7 +48,7 @@ class LBToolListener extends PlayerListener else if (block.getTypeId() != 54 || params.radius != 0) params.setLocation(block.getLocation()); else { - for (final BlockFace face : orientations) + for (final BlockFace face : new BlockFace[]{BlockFace.NORTH, BlockFace.SOUTH, BlockFace.EAST, BlockFace.WEST}) if (block.getRelative(face).getTypeId() == 54) params.setSelection(new CuboidSelection(player.getWorld(), block.getLocation(), block.getRelative(face).getLocation())); if (params.sel == null)