diff --git a/src/main/java/de/diddiz/LogBlock/Logging.java b/src/main/java/de/diddiz/LogBlock/Logging.java index 79e8e4a..ba6d7c0 100644 --- a/src/main/java/de/diddiz/LogBlock/Logging.java +++ b/src/main/java/de/diddiz/LogBlock/Logging.java @@ -46,7 +46,10 @@ public enum Logging { DAYLIGHTDETECTORINTERACT, LECTERNBOOKCHANGE(true), SCAFFOLDING(true), - SHULKER_BOX_CONTENT; + SHULKER_BOX_CONTENT, + PLAYER_COMMANDS, + COMMANDBLOCK_COMMANDS, + CONSOLE_COMMANDS; public static final int length = Logging.values().length; private final boolean defaultEnabled; diff --git a/src/main/java/de/diddiz/LogBlock/listeners/ChatLogging.java b/src/main/java/de/diddiz/LogBlock/listeners/ChatLogging.java index e8985f2..baafe63 100644 --- a/src/main/java/de/diddiz/LogBlock/listeners/ChatLogging.java +++ b/src/main/java/de/diddiz/LogBlock/listeners/ChatLogging.java @@ -3,6 +3,9 @@ package de.diddiz.LogBlock.listeners; import de.diddiz.LogBlock.Actor; import de.diddiz.LogBlock.LogBlock; import de.diddiz.LogBlock.Logging; +import org.bukkit.command.BlockCommandSender; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.minecart.CommandMinecart; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.player.AsyncPlayerChatEvent; @@ -18,7 +21,7 @@ public class ChatLogging extends LoggingListener { @EventHandler(priority = EventPriority.MONITOR) public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { - if (isLogging(event.getPlayer().getWorld(), Logging.CHAT)) { + if (isLogging(event.getPlayer().getWorld(), Logging.PLAYER_COMMANDS)) { consumer.queueChat(Actor.actorFromEntity(event.getPlayer()), event.getMessage()); } } @@ -32,6 +35,24 @@ public class ChatLogging extends LoggingListener { @EventHandler(priority = EventPriority.MONITOR) public void onServerCommand(ServerCommandEvent event) { - consumer.queueChat(new Actor("Console"), "/" + event.getCommand()); + CommandSender sender = event.getSender(); + Actor actor; + if (sender instanceof BlockCommandSender) { + if (!isLogging(((BlockCommandSender) sender).getBlock().getWorld(), Logging.COMMANDBLOCK_COMMANDS)) { + return; + } + actor = new Actor("CommandBlock"); + } else if (sender instanceof CommandMinecart) { + if (!isLogging(((CommandMinecart) sender).getWorld(), Logging.COMMANDBLOCK_COMMANDS)) { + return; + } + actor = new Actor("CommandMinecart"); + } else { + if (!isLogging(Logging.CONSOLE_COMMANDS)) { + return; + } + actor = new Actor("Console"); + } + consumer.queueChat(actor, "/" + event.getCommand()); } }