From 2f4f5559232769cdc16de6c964f50717c126020f Mon Sep 17 00:00:00 2001 From: MD <1917406+mdcfe@users.noreply.github.com> Date: Sun, 14 Aug 2022 23:49:02 +0100 Subject: [PATCH] Fix issues with chat preview refactor (#5062) Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com> --- .../essentials/chat/processing/AbstractChatHandler.java | 5 +++++ .../essentials/chat/processing/ChatProcessingCache.java | 3 ++- .../essentials/chat/processing/SignedChatHandler.java | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/processing/AbstractChatHandler.java b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/processing/AbstractChatHandler.java index 2f774115b..205fad165 100644 --- a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/processing/AbstractChatHandler.java +++ b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/processing/AbstractChatHandler.java @@ -260,6 +260,11 @@ public abstract class AbstractChatHandler { return event.isCancelled(); } + boolean isPlayerChat(final AsyncPlayerChatEvent event) { + // Used to distinguish chats from Player#chat (sync) from chats sent by the player (async) + return event.isAsynchronous(); + } + String getChatType(final User user, final String message) { if (message.length() == 0) { //Ignore empty chat events generated by plugins diff --git a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/processing/ChatProcessingCache.java b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/processing/ChatProcessingCache.java index f2238007f..7936ef586 100644 --- a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/processing/ChatProcessingCache.java +++ b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/processing/ChatProcessingCache.java @@ -54,7 +54,7 @@ public class ChatProcessingCache { return getProcessedChat(player); } - public static abstract class Chat { + public abstract static class Chat { private final User user; private final String type; private final String originalMessage; @@ -96,6 +96,7 @@ public class ChatProcessingCache { super(sourceChat.getUser(), sourceChat.getType(), sourceChat.getOriginalMessage()); this.message = sourceChat.messageResult; this.format = sourceChat.formatResult; + this.radius = sourceChat.radius; this.charge = new Trade(getLongType(), ess); } diff --git a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/processing/SignedChatHandler.java b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/processing/SignedChatHandler.java index 9b36e4f5f..da53657ea 100644 --- a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/processing/SignedChatHandler.java +++ b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/processing/SignedChatHandler.java @@ -44,7 +44,7 @@ public class SignedChatHandler extends AbstractChatHandler { private void handleChatApplyPreview(AsyncPlayerChatEvent event) { final ChatProcessingCache.ProcessedChat chat = cache.getProcessedChat(event.getPlayer()); - if (chat == null) { + if (!isPlayerChat(event) || chat == null) { handleChatFormat(event); handleChatPostFormat(event); } else {