Moderation Feature: Server Lockdown with Excempt Roles
This is an idea I had based on the needs of the Clemson eSports server. The idea is to be able to lock down / revoke access to the server, or the ability to send messages, during maintenance and server raids while leaving certain specified roles the ability to use the server (e.g. moderators and people on professional eSports teams).
Originally, I thought of giving everyone, unless specified as exempt, in the server the ClemBot Mute role, but that seems like a very inefficient solution.
My current thought for the lockdown command is that when it is called, the bot would loop through the roles (besides the specified exempt ones) and remove the ability to send messages. The bot would then restore these when the lockdown is canceled. The potential challenge I see (besides if a server has a gazillion roles) is that the bot needs to remember which roles already had message sending privileges revokes (so it doesn't mess up mute roles set up by management or other bots).
Another idea I had is to let the bot add a new role to all users not exempt from the lockdown. This would need to be done in advance and there would need to be some sort of throttling to minimize the load (which probably means it would take several hours for the roles to be added). Then, the bot could simply change the permissions for that role instead of having to loop through existing roles.
"Simple" Version:
=lockdown <roles to ignore> to enable lockdown exempting the specified roles (if blank would be admin only is my thought)
=lockdown to disable lockdown
"Fancy" version:
=lockdown <on/off> to toggle lockdown
=lockdown exempt add <roles> to add roles to the exempt list
=lockdown exempt delete <roles> to remove roles from exempt list
=lockdown exempt list to see roles on exempt list
Thoughts?
so this is a Planned feature, however as you mostly accounted for in your post its fairly complicated to do correctly. Due to the vastly different ways people can set servers up. for example if they use a gateway role that will need to be accounted for. my PLAN to deal with this is custom commands basically, let individual servers define how they wants commands like that to behave. this would basically solve all the issues
Makes sense. Basically a !server eval command? I had wondered about that but wasn't sure how much of a pain it would be trying to create a box so people can't access/interfere with the settings of other servers.
I'm wondering if this is something I can help implement.
For the eSports server, we're looking to lockdown the server for restructuring before the Fall semester, which prompted my creation of this Issue. Would be a bit of a pain but I can do that manually if moderation 2.0 will need more time.