Skip to content

Commit

Permalink
Add debug mode
Browse files Browse the repository at this point in the history
  • Loading branch information
Brikster committed Dec 24, 2023
1 parent 3d10412 commit cd23d0b
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,25 @@ private void onChat(AsyncPlayerChatEvent event) {
boolean processed = false;

try {
long millisStart = System.currentTimeMillis();

MessageContext<String> unhandledEarlyContext = createEarlyContext(event);
if (unhandledEarlyContext == null) return;

MessageContext<String> earlyContext = processor.handle(unhandledEarlyContext, Stage.EARLY).getNewContext();

int eventHashcode = System.identityHashCode(event);
event.getRecipients().clear();
event.getRecipients().addAll(earlyContext.getRecipients());
event.setMessage(earlyContext.getMessage());
pendingMessages.put(System.identityHashCode(event), earlyContext);
pendingMessages.put(eventHashcode, earlyContext);

long millisEnd = System.currentTimeMillis();
long millisDelta = millisEnd - millisStart;

if (settings.isDebug()) {
logger.log(Level.INFO, "Early context processed for " + millisDelta + "ms (event: " + eventHashcode + ")");
}

processed = true;
} catch (Throwable t) {
Expand Down Expand Up @@ -126,7 +136,9 @@ private MessageContext<String> createEarlyContext(AsyncPlayerChatEvent event) {

@EventHandler(priority = EventPriority.MONITOR)
public void handleFinishedEarlyContextEvent(AsyncPlayerChatEvent event) {
MessageContext<String> earlyContext = pendingMessages.remove(System.identityHashCode(event));
int eventHashcode = System.identityHashCode(event);

MessageContext<String> earlyContext = pendingMessages.remove(eventHashcode);
if (earlyContext == null) {
logger.log(Level.WARNING, "Cannot handle chat event from {0} with format {1} and message {2} due to hashcode idempotency error",
new Object[] { event.getPlayer().getName(), event.getFormat(), event.getMessage() });
Expand All @@ -147,6 +159,8 @@ public void handleFinishedEarlyContextEvent(AsyncPlayerChatEvent event) {
boolean processed = false;

try {
long millisStart = System.currentTimeMillis();

MessageContext<Component> earlyComponentContext = intermediateMessageTransformer.handle(earlyContext).getNewContext();

if (PlainTextComponentSerializer.plainText().serialize(earlyComponentContext.getMessage()).isBlank()) {
Expand Down Expand Up @@ -216,6 +230,13 @@ public void handleFinishedEarlyContextEvent(AsyncPlayerChatEvent event) {
sendNobodyHeardYou(event, middleContext);
}

long millisEnd = System.currentTimeMillis();
long millisDelta = millisEnd - millisStart;

if (settings.isDebug()) {
logger.log(Level.INFO, "Later contexts processed for " + millisDelta + "ms (event: " + eventHashcode + ")");
}

processed = true;
} catch (Throwable t) {
logger.log(Level.SEVERE, "Cannot handle chat event", t);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ public class SettingsConfig extends OkaeriConfig {
// })
// private String language = "en-us";

@Comment({"", "Enable debug messages"})
private boolean debug = false;

@Comment({"",
"Chat listener priority",
"May be useful if Chatty conflicts with another plugin",
Expand Down

0 comments on commit cd23d0b

Please sign in to comment.