Releases: modmail-dev/Modmail
Releases · modmail-dev/Modmail
Dev Release
Added
- Two new config vars:
ENABLE_PLUGINS(yes/no default yes), when set to no, plugins will not be loaded into the bot.ERROR_COLOR(color format, defaults discord red), the color of error messages.
Changed
?contactno longer send the "thread created" message to where the command is ran, instead, it's now sent to the newly created thread channel. (Thanks to DAzVise)- Plugins update (mostly internal).
gitis no longer used to install plugins, it now downloads through zip files.?plugins enabledrenamed to?plugins loadedwhileenabledis still an alias to that command.- Reorganized plugins folder structure.
- Logging / plugin-related messages change.
- Updating one plugin will not update all other plugins (plugins are no longer separated by repos, but the plugin name itself).
- Help command is in alphabetical order grouped by permissions.
- Notes are no longer always blurple, its set to
MAIN_COLORnow.
Internal
- Reworked
config.getandconfig.set, it feeds through the converters before setting/getting.- To get/set the raw value, access through
config[].
- To get/set the raw value, access through
- Prerelease naming scheme is now
x.x.x-dev.
Security Update
Important
- Supporter permission users used to be able to "hack" snippets to reveal all your config vars, including your token and MongoURI.
- Implemented some changes to address this bug:
- All customizable variables used in snippets, close messages, etc, using the
{}syntax, now forbids chaining 2 or more attributes and attributes that starts with_.
- All customizable variables used in snippets, close messages, etc, using the
- It is advised to update to this version.
- If you felt your credentials have been leaked, consider changing your bot token / mongo uri.
Bug Fix
Stable Release
Added
- Ability to change permission levels of individual commands.
- See
?permissions overridefor more information.
- See
thread_move_notifyandthread_move_responseto notify recipients if a thread is moved. (Thanks to Flufster PR#360)- IDs of messages sent to Modmail are now viewable. (Thanks to Flufster PR#360)
Fixed
?help <some sub command>, will returnPerhaps you meant: <some sub command>, now it's fixed.- For example,
?help addused to returnPerhaps you meant: add, now it wouldn't do this.
- For example,
- Aliases and Permissions command names are always saved lowercase now.
- An improved Dockerfile.
Internal
- Use regex to parse Changes, Added, Fixed, etc and description.
- Adds
PermissionLevel.INVALIDwhen commands don't have a permission level.
Bug Fix for Windows Users
Fixed
- An issue when reading
config_help.jsonfor Windows users due to an encoding problem.
Major Release
Breaking
disable_recipient_thread_closeis removed, a new configuration variablerecipient_thread_closereplaces it which defaults to False.- Truthy and falsy values for binary configuration variables are now interpreted respectfully.
LOG_URL_PREFIXcannot be set to "NONE" to specify no additional path in the future, "/" is the new method.
Added
?sfw, mark a thread as "safe for work", undos?nsfw.- New config variable,
thread_auto_close_silently, when set to a truthy value, no message will be sent when thread is auto-closed. - New configuration variable
thread_self_closable_creation_footer— the footer whenrecipient_thread_closeis enabled. - Added a minimalistic version of requirements.txt (named requirements.min.txt) that contains only the absolute minimum of Modmail.
- For users having trouble with pipenv or any other reason.
- Multi-step alias, see
?help alias add. Public beta testing, might be unstable. - Misc commands without cogs are now displayed in
?help. ?helpworks for alias and snippets.?config help <config-name>shows a help embed for the configuration.- Support setting permissions for sub commands.
- Support numbers (1-5) as substitutes for Permission Level REGULAR - OWNER in
?permssub commands.
Changes
thread_auto_close_responsehas a configurable variable{timeout}.?snippetis now the default command name instead of?snippets(?snippetsis still usable). This is to make this consistent with?alias/?aliases.coloramais no longer a necessity, this is due to some unsupported OS.- Changelog command can now take a version argument to jump straight to specified version.
?plugin enabledresults are now sorted alphabetically.?plugin registryresults are now sorted alphabetically, helps user find plugins more easily.?plugin registry page-numberplugin registry can specify a page number for quick access.- A reworked interface for
?snippetand?alias.- Add an
?snippet raw <name>command for viewing the raw content of a snippet (escaped markdown). - Add an
?alias raw <name>command for viewing the raw content of a alias (escaped markdown).
- Add an
- The placeholder channel for the streaming status changed to https://www.twitch.tv/discordmodmail/.
- Removed unclear
rmalias for someremovecommands. - Paginate
?config options. - All users configured with a permission level greater than REGULAR has access to the main Modmail category.
- Category overrides also changes when a level is removed or added to a user or role.
@everyoneis now accepted for?perms add.
Fixes
?notifyno longer carries over to the next thread.discord.NotFounderrors foron_raw_reaction_add.mod_typingand(user_typinguser_typingis now by-design to show) will no longer show when user is blocked.- Better
?blockusage message. - Resolves errors when message was sent by mods after thread is closed somehow.
- Recipient join/leave server messages are limited to only the guild set by
GUILD_ID. - When creating snippets and aliases, it now checks if another snippets/aliases with the same name exists.
- Was looking for
config.jsonin the wrong directory.
Internal
- Removed supporting code for GitHub interaction.
- All default config values moved to
core/config.py. config.cacheis no longer accessible, useconfig['key']for getting,config['key'] = valuefor setting,config.remove('key')for removing.- Dynamic attribute for configs are removed, must use
config['key']orconfig.get('key'). - Removed helper functions
info()anderror()for formatting logging, it's formatted automatically now. - Bumped discord.py version to 1.2.3.
- Use discord tasks for metadata loop.
- More debug based logging.
- Reduce redundancies in
?permssub commands. - paginator been split into
EmbedPaginatorSessionandMessagePaginatorSession, both subclassingPaginatorSession.
Alias and Snippet Edit
Added
- New commands,
?alias edit <name> <target>and?snippets edit <name> <target>.- They can be used to edit aliases and snippets respectively.
Blocked Whitelist
Added
- New command,
?blocked whitelist <user>, this command prevents users from getting blocked by any means.
Changed
- Removed some aliases from
?oauth.
Bug Fix
Major Release
Added
- Sponsors command that will list sponsors.
- An alert will now be sent to the log channel if a thread channel fails to create. This could be due to a variety of problems such as insufficient permissions or the category channel limit is met.
- Threads will close automatically after some time when
thread_auto_closeis set. - Custom closing message can be set with
thread_auto_close_response.
Breaking Changes
- Removed autoupdate functionality and the
?updatecommand in favour of the Pull app.
Read more about updating your bot here
Changed
- Channel names now can contain unicode characters.
- Debug logs are now located in a unique file for each bot. (Internal change)
- Default cogs always appear first in the help command now.
Fixed
- Editing notes now works, minor bug with edit command is fixed.
- Bug in the
?oauthcommand where the response message fails to send when an ID is provided. - Plugin requirement installation now works in virtual environments