[x] organize modules in folders by event and event group (e.g. modules/client/messageCreate/warningManager.lua)
[ ] don't allow people to warn/mute/ban people who are >= them in the role list
command.checkRoleOrder
false/nil by default
table of argument numbers that are members to be checked?
or just check all member args
check role order if set
make this a guildSetting
ignore_role_order
default false
[ ] don't allow warning_kick_level and warning_ban_level to be equal
[ ] is_enabled and is_disabled methods for settings columns
[ ] rename $settings update to $settings set and make it only work if the setting is enabled
[ ] make $settings enable only work if the setting is disabled
[ ] generic functions for testing if Yot can do something
argument for required discord permissions?
[ ] generic functions for testing if a user can do something
[ ] add reason handling to all the kicks and bans
generic function for this?
[ ] put the responsible user in the audit log reason
[ ] handle false returns from kick/ban method in $kick/$ban
[ ] rename command.permissions to command.userPermissions
[ ] command.botPermissions
for perms the bot needs for a command to be runnable
check after command.userPermissions
[ ] make the persistent roles embed mention the roles
[ ] add arg validation to the command handler, instead of each command
commands would have command.arguments table, each entry in table is also table with properties about the argument
name, type
checkRoleOrder for member args
table in command handler with valid types of arguments (e.g. member, user, message)
"The command could not be run because the user in argument 1 could not be found."
handle reasons here as well
[ ] respond to DMs containing discord links by giving them the bot invite link
[ ] new tables: guild_modules, guild_commands
column for each module/command, and for guild id (foreign keyed to guild_settings)
value between -1 and 1
-1: not set, use defaults
0: disabled
1: enabled
[ ] per-guild language settings (need people to translate everything)
[x] put commands in categories / folders
[x] get rid of commandHandler.doSubcommands, make commandHandler.doCommands also handle subcommands
[ ] pcall command:run() so commands don't fail silently
[ ] Improve error messages shown to users
[ ] Allow blacklisting users
[ ] Ratelimit commands
[ ] Only tell people about DM forwarding once
[ ] Let users set DM preferences
[ ] userSettings?
[ ] Use webhooks for forwarding DMs, sending errors, etc
[ ] Hourly status refresh
[ ] Make it possible for subcommands to have different permissions
[ ] Redo the settings command to use a reaction menu - put the old settings commands under $settings manual
[ ] In the big unified argument handler, have it show all of the issues, not just one at a time
[ ] In the big unified argument handler, let permissions be conditional (e.g. only require kickMembers for $warn if the server has enabled kicking members at a level)
[ ] setting.type to help give better choices in reaction menu
[ ] Status: Adding reactions... / Status: Ready
[ ] If a warned user is to be kicked but isn't in the guild, silently ignore the kick; just treat it as a normal warning
[ ] text fallback if link embeds are disabled?
[ ] bring back the coloured dots for warning status
[ ] put embed colours in options.lua
[ ] require users to have the permissions of a command before being able to change them, in addition to whatever the permissions on the settings command are
[ ] arguments with spaces (eg. reasons) should be enclosed in quotes
Commands
Settings
Features
Reaction Menus
Other
modules/client/messageCreate/warningManager.lua
)