From 951b4c1a26ab775b3098f2cf82f1efff3167d968 Mon Sep 17 00:00:00 2001 From: minster586 <43217359+minster586@users.noreply.github.com> Date: Wed, 23 Jul 2025 18:25:09 -0400 Subject: [PATCH] Update ChatEventListener.java --- .../minster586/devmode/ChatEventListener.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/main/java/com/minster586/devmode/ChatEventListener.java b/src/main/java/com/minster586/devmode/ChatEventListener.java index 8b13789..2b4a8ab 100644 --- a/src/main/java/com/minster586/devmode/ChatEventListener.java +++ b/src/main/java/com/minster586/devmode/ChatEventListener.java @@ -1 +1,48 @@ +package com.minster586.devmode; +import org.bukkit.event.Listener; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.EventPriority; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; + +import java.util.stream.Collectors; + +public class ChatEventListener implements Listener { + + private final DevModeManager manager; + + public ChatEventListener(DevModeManager manager) { + this.manager = manager; + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPlayerChat(AsyncPlayerChatEvent event) { + if (!manager.isDevModeEnabled()) return; + + String sender = event.getPlayer().getName(); + boolean isCancelled = event.isCancelled(); + String message = event.getMessage(); + String recipients = event.getRecipients().stream() + .map(Player::getName) + .collect(Collectors.joining(", ")); + + StringBuilder log = new StringBuilder(); + log.append("[DevMode] CHAT EVENT:\n"); + log.append(" Sender: ").append(sender).append("\n"); + log.append(" Message: \"").append(message).append("\"\n"); + + if (isCancelled) { + log.append(" Status: CANCELLED\n"); + log.append(" Reason: Message was blocked (possible plugin interference)\n"); + } else { + log.append(" Status: Delivered\n"); + log.append(" Recipients: ").append(recipients.isEmpty() ? "None" : recipients).append("\n"); + } + + System.out.println(log.toString()); + + // Eventually this will route to LogWriter once wired up + } +}