diff --git a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayer.java b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayer.java index 6a3251f2c..32988091a 100644 --- a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayer.java +++ b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayer.java @@ -36,10 +36,15 @@ public abstract class EssentialsChatPlayer implements Listener { } final char prefix = message.charAt(0); - if (prefix == ess.getSettings().getChatShout() || user.isToggleShout()) { + if (prefix == ess.getSettings().getChatShout()) { + if (user.isToggleShout()) { + return ""; + } return message.length() > 1 ? "shout" : ""; } else if (ess.getSettings().isChatQuestionEnabled() && prefix == ess.getSettings().getChatQuestion()) { return message.length() > 1 ? "question" : ""; + } else if (user.isToggleShout()) { + return message.length() > 1 ? "shout" : ""; } else { return ""; } diff --git a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java index 9fa34b672..a216a1e7f 100644 --- a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java +++ b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java @@ -50,12 +50,17 @@ public class EssentialsChatPlayerListenerNormal extends EssentialsChatPlayer { event.setCancelled(true); return; } + + if (user.isToggleShout() && event.getMessage().length() > 1 && event.getMessage().charAt(0) == ess.getSettings().getChatShout()) { + event.setMessage(event.getMessage().substring(1)); + } + event.getRecipients().removeIf(player -> !ess.getUser(player).isAuthorized("essentials.chat.receive.local")); } else { final String permission = "essentials.chat." + chatStore.getType(); if (user.isAuthorized(permission)) { - if (event.getMessage().charAt(0) == ess.getSettings().getChatShout() || event.getMessage().charAt(0) == ess.getSettings().getChatQuestion()) { + if (event.getMessage().charAt(0) == ess.getSettings().getChatShout() || (event.getMessage().charAt(0) == ess.getSettings().getChatQuestion() && ess.getSettings().isChatQuestionEnabled())) { event.setMessage(event.getMessage().substring(1)); } event.setFormat(tl(chatStore.getType() + "Format", event.getFormat()));