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.
0.22.0 - 2026-01-06
- Fix unsupported indexed mcdoc type (#26)
0.21.0 - 2025-12-04
- Added a context menu command for kicking compromised users
- Updated Python to 3.14
- Updated discord.py to 2.6
- Updated the version regex the Bedrock changelog feed was using to support the new version format
- Fixed an issue where the Bedrock changelog feed wasn't finding the thumbnail
0.20.0 - 2025-05-03
- The error handler now supports slash command errors
- Added custom slash command transformers:
EmojiTransformerMessageTransformerColorTransformer
- Added custom slash command checks:
is_owneris_administratoris_guild_admin_or_bot_owner
- Added base classes for views and modals that need access to a cog with a database
- Added a confirmation dialog that uses buttons
sudo:- Added a way to sync slash commands globally or to a specific guild
- Added a way to load/unload/reload extensions
- Added a way to export the bot's config
- Added a way to export a cog's database
- Added a way to display info about the bot
- Added a way to shutdown the bot
- Added a may to manage the bot's avatar
- Added a way to change the bot's banner
- Added a way to manage application emojis
help_forum:- A cog that acts as a wrapper around a forum channel
- Forum threads can have two states: unresolved and resolved
- Threads can be resolved using
/resolveor with a configurable emoji
feeds:- A way for channels to subscribe to a feed
- Feed providers
- Minecraft: Java Edition Updates
- Minecraft: Bedrock Edition Updates
- Minecraft: Java Edition Jar Updates
- Feeds
- Minecraft: Java Edition Releases
- Minecraft: Java Edition Snapshots
- Minecraft: Bedrock Edition Releases
- Minecraft: Bedrock Edition Previews
- Minecraft: Java Edition Release Jars
- Minecraft: Java Edition Snapshot Jars
moderation:- Added a way to kick a user and send them a DM with the reason
- Does not work with users who have elevated permissions
- Added a way to ban a user and send them a DM with the reason
- Does not work with users who have elevated permissions
- Added a way to kick a user and send them a DM with the reason
xkcd:- Lets you view xkcd comics
- Can be installed to guilds and users
- Can be used anywhere
mcdoc(#18)- Lets you query mcdoc types
- Added a link button under
jiraissue embeds
invite: Ported to slash commandsfaq: Ported to slash commands- Faq entries have a new category field
jira:- Ported to slash commands
- Made user installable
- Fixed an issue where the embed's status colors weren't being applied
quote:- Ported to slash commands
- The commands now have descriptions
kick:- Ported to slash commands
- The command is now unable to kick members with elevated permissions
manifest:- Ported to slash commands
- Made user installable
stacktracer:- Ported to slash commands
- Errors now use an embed
automod: Errors now use an embedmccq:- Ported to slash commands
- Made user installable
- Adjusted the format of the presence status set by
mccq - Changed syntax highlighting to
hs - Added a new help command
status: Ported to slash commandsping: Ported to slash commands- Reworked how cogs with a database are created
- Added a
Configclass to make deserializing the config easier ConfiguredExtensionnow has arequiredoption- It doesn't affect loading/unloading/reloading extensions, but you're free to choose how to handle this attribute in your code
- Separated privileged intents and regular intents in the bot config
Intents.default()is fine most of the time and specifying privileged intents shouldn't require you to specify every intent you need
- The
packcog has been removed since the official Beet bot does the same thing - Removed the
kickcog and moved its functionality to themoderationcog
0.19.0 - 2022-08-27
- Added support for
.envfiles (to provide the bot token) - Implemented
mccqcommand (from cogbot) allay:- New command, turns a plaintext markdown-like format into a text component with optional indentation levels
automod:- Added new thread fields to event metadata
- Implemented new
ChannelTypesGuardto account for threads - Implemented new triggers:
thread_updated
- Implemented new conditions:
actor_is_botactor_is_selfauthor_is_botauthor_is_selfactor_member_forauthor_member_formember_formessage_has_mentionsthread_auto_archive_duration
- Implemented new actions:
check_messagesdm_member
manifest:- Added a task that requests the latest
min_engine_version - Now accepts a
version_urloption in the bot config - Added
manifestscommand withstatusandupdatesubcommandsstatusshows the status of version requestsupdatemanually requests the version
- Added a task that requests the latest
roles:- Implemented new
aboutsubcommand
- Implemented new
- Updated to the latest version of discord.py (after it was revived from the dead)
faq:- The list of FAQs is now separated by comma
manifest:- Generated manifests were changed into file attachments
quote:- Improved attachment/embed handling
roles:- Updated the set of safe permissions to reduce unnecessary warnings
- Duplicate roles are now filtered-out prior to joining/leaving
- Now using difflib to help disambiguate roles
- Utcnow and datetime fixes (Old repo #75)
0.18.0 - 2021-10-04
automod: Added support for JSON paths for easier configuration of rulesjira: Reimplemented link support (Old repo #65)roles: Added tips for providing roles
automod: An exhaustive list of adjustments and improvements that's too long and complicated for the changelogfaq:- Turned the shortcut prefix into a pattern
- Consolidated FAQ update commands
- Reimplement the list of FAQs
- Various improvements (Old repo #72)
- Added options in root config to limit or disable certain features
- Reorganized and added new search commands
- Improved how tags are used in queries
- Allowed showing options instead of just setting them
invite: Multiple invites now go in one message instead of multiplejira: Overhauled the issue requesting logic and the embed colors now reflect the status of the bug (Old repo #64)roles: Refine role searching logic
- Fixed instances of timezone-unaware
utcnow() jira: Now checks that issues are in the<project>-<id>format and that requested issues have fields (Old repo #69)
0.17.0 - 2021-09-02
- Implemented a new cog
stacktracerfor error logging (Old repo #55) automod: Added a newmentions_removed_from_messagetriggerautomod: Addedallowed_mentionsfield toreply_to_messageaction
statusnow uses an embed (Old repo #45)
quote: Now includes attachments and embeds on the original messagequote: Now accounts for the read permissions of the person trying to quoteChannelsGuardnow accounts for threads, by determining the root channel
0.16.0 - 2021-08-30
- Updated to Python 3.10 (release candidate).
- Updated to the discord.py 2.0 beta.
- Updated all extensions past breaking changes.
commanderbot-corehas been merged intocommanderbot-ext.- The repository has been renamed to
commanderbot-py. - The package has been renamed to
commanderbot(which used to belong tocommanderbot-core).
- The repository has been renamed to
- Exception handling logic has been reworked.
- Fixes Old repo #53
- Reconsidered all commands to use a
ctx.replywrapper with pings disabled.- Fixes Old repo #42
allowed_mentionsfield in root bot config is now supported.- Fixes Old repo #52
automod:- Even data now includes
userfields.- Fixes Old repo #43
- Even data now includes member date fields by default.
messagetriggers now allow basic matching of message content.- Fixes Old repo #44
- Even data now includes
roles:- Unresolved roles are now deregistered and cleaned-up automatically.
- Fixes Old repo #47
- Elevated commands can no longer add/remove unregistered roles to/from users.
- Fixes Old repo #48
- Users can now join/leave multiple roles in one command.
- Fixes Old repo #49
- Multiple roles can now be added/removed to/from multiple members all in one command.
- Roles can now be targeted using a partial name match.
- Fixes Old repo #50
- Roles can now be configured to be able to run elevated commands.
- Fixes Old repo #18
- Unresolved roles are now deregistered and cleaned-up automatically.
0.15.0 - 2021-08-29
- Added
manifestcommand that generates Bedrock manifests (Old repo #51)
- Improved emoji parsing logic for the
votecommand (Old repo #45)
0.14.0 - 2021-08-25
automodimprovements (Old repo #41):- Implemented role-based (per-guild) permissions
- Added a new
log_messageaction that suppresses pings by default - Pings are now suppressed by default in error messages
- Added normalization to the
message_content_containscondition - Added more fields to some events for string formatting
0.13.0 - 2021-08-22
- Added
automodextension
- Fixed a race condition with
JsonFileDatabaseAdapter(Old repo #39)
- Updated
beetandlectern - Updated other dependencies
0.12.0 - 2021-05-13
- The
packcommand no longer uses a cache - Updated several dependencies
0.11.0 - 2021-05-10
- Fix name argument for
packcommand and add custom help text - Updated
jiracommand to useaiohttpinstead ofrequests
0.10.0 - 2021-05-09
- Optional
packcommand argument for changing the name of the generated data pack or resource pack - The
packcommand no longer shows exception tracebacks by default
0.9.0 - 2021-05-09
invitedescriptions are now optional
- Fixed
kickcommand not being guild-only - Fixed an issue where
invitedescriptions weren't displayed correctly (Old repo #29) - Fixed an issue where JSON database files weren't being initialized correctly (Old repo #28)
0.8.0 - 2021-05-08
- Added configurable descriptions to
invitecommand - Added
packcommand timeout and updatedbeetandlectern
0.7.0 - 2021-04-23
- Added
jiracommand for checking Mojira bug reports - Added
pingcommand with bot latency - Added
invitecommand to list server invites - Added
packcommand that runs abeetbuild and useslectern - Added
rolescommand to join/leave certain roles - Partial implementation of the new
help_chatsystem
- Merged commanderbot-lib repo with this one to simplify project structure
0.6.0 - 2021-01-08
- Added
quoteandquotemcommands
- Updated commanderbot-lib and discord.py
0.5.0 - 2021-01-06
faqhas been extended and improved:- FAQs can be created and updated directly from existing messages
- FAQs can be assigned any number of aliases
- FAQs remember when they were created and last updated
- FAQs keep track of how many times they're used (hits)
- The list of FAQs is sorted by hits -> name
- More sub-commands for managing FAQs directly
0.4.0 - 2021-01-03
- Updated to commanderbot-lib version 0.5.0
0.3.0 - 2020-09-30
- Added
votecommand
- Updated to discord.py version 1.5.0
- Updated to commanderbot-lib version 0.2.0
0.2.0 - 2020-09-24
- Now using the PyPI version of
commanderbot-lib
0.1.0 - 2020-09-24
- Implemented
statusandfaqextensions as an exercise for developingcommanderbot-lib