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 {