All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- a typo in the config options
- Installing
requirements.txt
files in plugins
- Reading
requirements.txt
files in plugins
- Plugins
- Think of it like addons! Anyone (with the skills) can create a plugin, make it public and distribute it.
Add a welcome message to Modmail, or moderation commands? It's all up to your imagination!
Have a niche feature request that you think only your server would benefit from? Plugins are your go-to! - Creating Plugins Documention
- Think of it like addons! Anyone (with the skills) can create a plugin, make it public and distribute it.
config del
command will now work properly on selfhosted db bots.
- Named colors are now supported! Over 900 different common color names are recognized. A list of color names can be found in core/_color_data.py.
- Named colors can be set the same way as hex. But this can only be done through
?config set
, which means database modifications will not work. - For example:
?config set main_color yellowish green
.
- Named colors can be set the same way as hex. But this can only be done through
- New config var
main_color
allows you to customize the main Modmail color (as requested by many). Defaults to Discordblurple
.
- Patched a bug where
?logs
sub-commands were accessible by anyone. - Patched a bug where an error was raised if there was an open thread where the recipient had left the server.
Huge thanks to Sasiko for reporting these issues.
- Fixed a bug in self-hosted
?update
command.
logs search
now also searches usernames present in thread logs.
In the future, the Modmail API (https://modmail.tk) will be deprecated. This is due to the fact that we are providing a free service without getting anything in return, and thus we do not have the resources to scale to accomodate for more users. We recommend using your own database for logs. In the future you will soon get a backup
command so you can download all your pre-existing data and migrate to your own database.
- A lot of painful code cleanup, which is good for us (the devs), but shouldn't affect you.
- The appearance of the
logs
command. Should be clearer with better info now. - Bot owners get access to all commands regardless of server permissions.
- Blocked users no longer receive a message, only the blocked emoji will be sent.
Note: The following commands only work if you are selfhosting your logs. We recommend you to use your own database.
- Log search queries, in the form of two new commands.
logs search [query]
- this searches all log messages for a query string.logs closed-by [user]
this returns all logs closed by a certain user
?activity listening to music
no longer result in two "to"s ("listening to to music").- This may require you to change your activity message to accommodate this fix.
- A problem where
main_category_id
andlog_channel_id
weren't updated when their corresponding channel or category get deleted.
loglink
command, returns the log link for the current thread.
- Your logs now track and show edited messages.
- Use reply author's top role for the mod tag by default.
anonreply
command to anonymously reply to the recipient. The username of the anonymous user defaults to themod_tag
(the footer text of a mod reply). The avatar defaults the guild icon url. However you can change both of these via theanon_username
,anon_avatar_url
andanon_tag
config variables.
- Your bot now logs all messages sent in a thread channel, including discussions that take place. You can now toggle to view them in the log viewer app.
- Small bug due to a typo.
- Forgot to enable custom embed colors.
- Ability to set a custom
mod_tag
(the text in the footer of the mod reply embed, which by default says "Moderator")
- Improve format of thread info embed. Slightly cleaner and simpler now.
- All commands are now blurple instead of green.
- Bug where the close command wouldn't work if you didnt configure a log channel.
- Ability to set your own custom
mod_color
andrecipient_color
for the thread message embeds.
Changed order of arguments for the contact command. This is so that you can use aliases to their full potential. For example:
contact "Recruitment Category" @somedude
You can add an alias by doing: alias add recruit contact "Recruitment Category"
Now you can use the alias via: recruit @somedude
- New command
note
will add a system message to your thread logs. This is useful for noting the context of a conversation.
- Fixed bug where thread logs were getting duplicated when using the
contact
command. - Fixed bug where the wrong key was used for logs which caused some
log
command log links to point to an HTTP 404 Not Found.- A minor oversight from commit 1ba74d9.
- Major improvement in viewing thread logs.
- Log links are now rendered in HTML instead of plain text.
config options
command to see a list of valid config variables that you can modify.
Thread channels will now default to being private (@everyone
's read message perms set to false
).
- If the thread creation category could not be resolved.
- This will save you from some trouble if for whatever reason your configuration gets messed up.
- All reference to "modmail" / "Mod Mail" / "ModMail" are changed to "Modmail".
log_channel_id
is now part of the config uponsetup
.- Added the ability to set where threads are created using the
main_category_id
configuration option.
- If your Modmail bot was set up a long time ago, you may experience an issue where messages were sent outside of the category.
- To fix this, set
main_category_id
to the ID of the Modmail category.
- To fix this, set
move
command now syncs thread channel permissions with the category that it was moved to.contact
command now supports an optional category argument (where the thread channel will be created).
Fixed small issue with finding thread.
Fixed log URLs for self-hosting users. (This shouldn't affect anyone.)
- Replaced the testing
API_BASE_URL
with the actual URL.
Mostly internal changes. Some are slightly breaking. Keep a lookout for broken features and report them on our server.
threads
is now a default alias tologs
.
- Log URLs are moved to their own collection.
- Log URLs are now
https://logs.modmail.tk/LOGKEY
, no more numbers before the log key. - We still support the numbers so as to not break everyone's URLs so quickly but both work at the moment.
- This is a huge change to the backend logging and there might be migration errors. If so, please contact us at our discord server
Non breaking internal changes. (This shouldn't affect anyone.)
Non breaking internal changes. (This shouldn't affect anyone.)
Bots hosted by Heroku restart at least once every 27 hours. During this period, local caches are deleted, which results in the inability to set the scheduled close time to longer than 24 hours. This update resolves this issue.
- Created a new internal config var:
closures
. - Store closure details into
closures
when the scheduled time isn't "now".- Loaded upon bot restart.
- Deleted when a thread is closed.
- Use
call_later()
instead ofsleep()
for scheduling.
Fixed activity setting due to flawed logic in config.get()
function.
Fixed a bug in activity command where it would fail to set the activity on bot restart if the activity type was playing
.
This update shouldn't affect anyone.
- Moved self-hosted log viewer to a separate repo.
- Ability to set your own Twitch URL for
streaming
activity status.
- Small bug in
activity
command.
Breaking changes.
- Added the
activity
command for setting the activity - PR #131 this supports multiple activity types (
playing
,watching
,listening
andstreaming
).
- Removed the deprecated
status
command. - This also means you will have to reset your bot status with the
activity
command, asstatus
command is removed.
- Ability to self-host logs.
- Improved format for log channel embeds.
- Roles are now comma-separated in info embed.
- This only applies to separate server setups.
- Bug in subscribe command; it will now unsubscribe after a thread is closed.
-
Notify command
notify [role]
.- Notify a given role or yourself to the next thread message received.
- Once a thread message is received you will be pinged once only.
-
Subscribe command
sub [role]
/unsub [role]
.- Subscribes yourself or a given role to be notified when thread messages are received.
- You will be pinged for every thread message received until you unsubscribe.
- Slightly improved log channel message format.
- Small bug in
close
command.
- Ability to set a custom thread creation response message.
- Via
config set thread_creation_response [message]
.
- Via
- Improve logs command format.
- Improve thread log channel message to have more relevant info.
- Improve close command.
- You now can close the thread after a delay and use a custom thread close message.
- You also now have the ability to close a thread silently.
- Fix a bug where blocked users were still able to message Modmail.
- Support for custom blocked emoji and sent emoji.
- Use the
config set blocked_emoji
orsent_emoji
commands.
- Support multiple images and file attachments in one message.
- This is only possible on mobile so its good to handle it in code.
Improvements to commands and new config options available.
- Added the ability to use your own log channel.
- You can do this via the
config set log_channel_id <id>
command.
- You can do this via the
- Added the ability to use your own main inbox category.
- You can do this via the
config set main_category_id <id>
command.
- You can do this via the
- You now have the ability to supply a reason when blocking a user.
- Blocked users are now stored in the database instead of in the channel topic.
- This means you can delete the top channel in the Modmail category now. (Migrate first though.)
New command and improvements in bot update message interfaces.
- Added a
changelog
command to view the bot's changelog within discord.
update
command now shows the latest changes directly from the CHANGELOG.md in the repo.- Auto update messages also show the latest changes from the GitHub repo.
- Removed "latest changes" section from the
about
command.
- Fix logs sending duplicated thread close logs.
- The bot will now tell you that a user is no longer in the server when you try to reply to a thread.
- Before this, it looked like you replied to the thread, but in reality, the message didn't get sent.
alias
command now checks if you are adding a valid alias-command combo.- Deleting a channel manually will now correctly close the thread and post logs.
- Fixed a one-off bug where the channel topic disappears, but Modmail operations should still continue.
- Fixed
linked_message_id
issues.
Fixed some issues with how data is displayed in the info embed.
- Thread creation embed now shows the correct number of past logs.
- If using a separate server setup, roles in the info embed now are shown as names instead of mentions.
- This is due to the fact that you can't mention roles across servers.
- Made the
logs
command require "manage messages" permissions to execute.- Before this patch, anyone could use the
logs
commands.
- Before this patch, anyone could use the
Bug fixes and minor improvements.
- Improved
block
/unblock
commands.- They now take a wider range of arguments: usernames, nicknames, mentions and user IDs.
- Setup command now configures permissions correctly so that the bot will always be able to see the main operations category.
This release introduces the use of our centralized API service to enable dynamic configuration, auto-updates, and thread logs. To use this release you must acquire an API token from https://modmail.tk. Read the updated installation guide here.
- Stability improvements through synchronization primitives.
- Refactor thread management and code.
- Update command now uses
api.modmail.tk
. contact
command no longer tells the user you messaged them 👻
status
command now changes playing status indefinitely.
- Dynamic
help
command (#84). - Dynamic configuration through
api.modmail.tk
. - Thread logs via
logs.modmail.tk
(#78).log
command added.
- Automatic updates (#73).
- Dynamic command aliases and snippets (#86).
- Optional support for using a separate guild as the operations center (#81).
- NSFW Command to change channels to NSFW (#77).
- Removed
archive
command.- Explanation: With thread logs (that lasts forever), there's no point in archiving.