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 fc77e2341..9fa34b672 100644 --- a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java +++ b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java @@ -50,15 +50,16 @@ public class EssentialsChatPlayerListenerNormal extends EssentialsChatPlayer { event.setCancelled(true); return; } + event.getRecipients().removeIf(player -> !ess.getUser(player).isAuthorized("essentials.chat.receive.local")); } else { - final StringBuilder permission = new StringBuilder(); - permission.append("essentials.chat.").append(chatStore.getType()); + final String permission = "essentials.chat." + chatStore.getType(); - if (user.isAuthorized(permission.toString())) { + if (user.isAuthorized(permission)) { if (event.getMessage().charAt(0) == ess.getSettings().getChatShout() || event.getMessage().charAt(0) == ess.getSettings().getChatQuestion()) { event.setMessage(event.getMessage().substring(1)); } event.setFormat(tl(chatStore.getType() + "Format", event.getFormat())); + event.getRecipients().removeIf(player -> !ess.getUser(player).isAuthorized("essentials.chat.receive." + chatStore.getType())); return; } diff --git a/EssentialsChat/src/main/resources/plugin.yml b/EssentialsChat/src/main/resources/plugin.yml index 632644568..ab1d85c5a 100644 --- a/EssentialsChat/src/main/resources/plugin.yml +++ b/EssentialsChat/src/main/resources/plugin.yml @@ -16,3 +16,9 @@ commands: permissions: essentials.chat.local: default: true + essentials.chat.receive.local: + default: true + essentials.chat.receive.shout: + default: true + essentials.chat.receive.question: + default: true