EssentialsX / Essentials

The modern Essentials suite for Spigot and Paper.
https://essentialsx.net
GNU General Public License v3.0
1.92k stars 970 forks source link

Permission to allow/forbid chatting #3768

Open tinyoverflow opened 3 years ago

tinyoverflow commented 3 years ago

Feature request

Feature description: As an admin, I would like to have a permission which I can set or deny on a player/group to allow/forbid a specific player/group to send chat messages. I suggest to simply use essentials.chat for that. Keep in mind that using this node may need other admins to adjust their permissions when updating EssentialsX to a version which implements that.

How the feature is useful:
As EssentialsX implemented LuckPerms contexts recently it could be used, for example, to forbid a player to chat when he is in vanish mode by denying the permission node with the essentials:vanished context set without having to use third-party implementations.

JasonHorkles commented 3 years ago

If this does get added the perm should be set to true in plugin.yml by default so people aren't suddenly unable to chat (Or make a negative permission as @triagonal suggested: essentials.chat.deny)

pop4959 commented 3 years ago

I'm not sure how I feel about having a permission like this and having it set as true in plugin.yml since I don't think all permission plugins are going to handle it correctly. We don't want another AntiBuild-like situation ("Why can't I chat when I install Essentials?").

I also don't particularly like the idea of making it a negative permission either, since then granting essentials.* or anything of the sort will also result in the same issue (ignoring the fact that server owners shouldn't do that).

Not sure if there is a real great way of handling this in a way that isn't going to break anything. The best idea I can think of right now is to add an essentials.vanish.chat node specifically for this issue, but unfortunately this limits functionality where it would be more flexible and quite neat to be able to do with various contexts.

If anyone has any other ideas or is able to test this it would be appreciated.