A human-readable list of changes between versions.
- Add
guild_only
tomenus.Menu.create_cog
.
- Readd
image_url
kwarg toEmbeddify.send
. - Oauth and bot info now default to false.
addslashcommands
andev
now output to file if their content is too long.- Send added slash commands as a file when the output is too long.
- Add missing
await
s to transaction object. - Change
missing_perms
tomissing_permissions
. - Fix stdout in
ev
command not being changed to embed if over 2000 characters. - Fix naive datetime objects in connect event.
- Fix
owners_ignore_check_failures
flag in config. - Fix buttons not being disabled in paginator.
- Fix missing import for transactions.
- Fixed versioning for Jinja2.
- Fixed
get_display_name
method for Jinja2 templating. - Fix
PrintContext
.
- Add
--connect
arg to the interactions webserver. - Support multiple database types.
- The database type will be set to SQLite by default.
Command
andGroup
are essentially now identical to Novus' implementation. As such there's no longer a need to decorate with@voxelbotutils.command()
. It hasn't been removed, but new command types (likediscord.ext.context_command
) have not been added.
- Embeddify method no longer duplicates content.
- Fixed bot avatar sends in webhooks, help, and embeddify.
- Add
SlashContext
to init. - Add missing
label
kwarg to a menu component.
- Explicitly add a
discord.ext.commands.CommandNotFound
response for slash commands.
- Interactions webserver.
- Fixed component interaction in the paginator.
- The
[p]stats
embed now shows version infos for Novus, VBU, and Python. - Fix ephemeral kwarg always being defined.
[p]channelhelp
and[p]commands
are no longer added as slash commands.
- New (undocumented) embeddify method.
- Fix
avatar.url
being deprecated.. - Fix
Webhook.AsyncWebhookAdapter
being deprecated. - Fix slash command logging.
- Readd
addslashcommands
command. - Fix
Bot.get_invite_link
. - Remove references to
embeddify
.
Discord.py has died. I will now be maintaining both VoxelBotUtils and a Discord.py fork, Novus. As such, lot of features have thus moved from VBU over to Novus.
ComponentMessage
is now redundant.bot_has_permissions
is now redundant.- Slash commands have been merged into Novus.
- Interactions have been moved into Novus as
discord.ui.*
. The models remain the same. - All slash command checks (and their errors) have been removed as they will be added to Novus. They have not yet been replicated.
- All cooldown subclasses have been removed, as Novus supports a dynamic cooldown system thanks to Danny. Thanks Danny.
argparse
is no longer interpreted by commands as Danny implemented a flags system which is - quite frankly - better.SubcommandGroup
and its decorator have been removed, as Novus interprets this dynamically.InteractionMessageable
has been superceded bydiscord.Interaction
.vbu.PartialChannel
has been removed. Novus replaces this asdiscord.Client.get_partial_messageable
.vbu.TimeFormatter
has been removed. Novus replaces this asdiscord.utils.format_dt
.Context.is_interaction
has been removed. Novus replaces this asdiscord.abc.Messageable.supports_ephemeral
.
- Support enums in slash commands.
- Add
component_check
method. - Add
format
. - Add button commands.
voxelbotutils.Paginator
now supports lists of embeds.
- Add
bot
attribute toComponentInteractionPayload
. - The
runsql
command will now always userepr
instead ofstr
, and will output only to a file. - Support :class:`enum.Enum`s in slash commands.
- Fixed errors in slash commands not being sent through properly.
- Add vbu version to the auto-generated requirements file.
- Fixed slash command command check.
- Add
defer
check.
cogs.utils
is now imported automatically in your ev command.- Update webhook timestamps to use Discord time formatters.
- Add different filtering for slash command adds.
- Fixed disabled commands being added as slash commands.
- Set the default permission for
menus.Menu.create_cog
tomanage_guild
.
- Fixed cooldowns not parsing correctly for slash commands.
- Fixed the
info
command raising an error for missing permissions for embeds.
- Fixed subclass instances not being converted to slash commands properly.
- Fix statsd logging for slash commands.
- Add
post_invoke
kwarg tomenus.Menu.create_cog
. - Change how converters work for components in
menus.Converter
.
- Fixed error where embeddified messages would require an author.
- Fix type hinting for
menus.Menu.create_cog
Breaking changes this time involve the messages intent becoming priviliged in time. Everything in this is to try to make that transition easier.
- A new
info
command andconfig<BotConfig.bot_info>
vbu run-shell
as a newcommand line argument<cmd_run_shell>
.vbu commands [add|remove]
as a newcommand line argument<cmd_commands>
.- A drop-in replacement check for
discord.ext.commands.bot_has_permissions
anddiscord.ext.commands.bot_has_guild_permissions
in the form ofbot_has_permissions
andbot_has_guild_permissions
. These perform the original checks for message commands, and are ignored for application commands.
- Fixed
ComponentInteractionPayload.update_message
not functioning the same asdiscord.Message.edit
.
- Fix error where the paginator says components are undefined.
- Fix slash command arguments not being stripped.
- Fix slash command conversion errors not being dispatched.
help_command
andcommand_data
have been removed from the config.help_command
will still be parsed, but is no longer present in the default config file. A help command is not necessary in the world of slash commands, so configuring it is not high on the agenda.
- Fixed menus being created without default permissions.
- Support for context commands.
- Updated the list of converted colours.
- Changed how slash commands/subcommands were parsed.
Bot.session
now logs to statsd.
- Fixed error where you couldn't set wait kwarg on :code:`TextChannel`s.
- Handle disconnects and reconnects better in the shard manager.
- Handle pings and keepalives in the shard manager.
target_id
is now supported in the slash command handler.- Add an
argparse<voxelbotutils.Command.argparse>
attribute to the command decorator. The!addslashcommands
command is now updated to use this.
exc_info
is now returned properly on a startup failure.- The
send
command is no longer embeddified. - The list of colours has been updated for the
voxelbotutils.converters.ColourConverter
.
- Fixed error in outputting the recommended shard count.
- Removed native UpgradeChat utils, and instead move them to an external dependancy.
- Change the eval command to not include globals, and include the VBU data in a
vbu
arg. - Changed the shard manager to use sockets instead of redis.
- Fix error in creating a redis connection.
- Added a shard manager using redis.
- Remove caching from UpgradeChat utils.
- Fix logger being undefined in UpgradeChat utils.
- Add
voxelbotutils.TimeFormatter
.
- The bot will now say its recommended shard count before trying to connect.
- The
voxelbotutils.Bot.create_global_application_command
,voxelbotutils.Bot.create_guild_application_command
,voxelbotutils.Bot.bulk_create_global_application_commands
, andvoxelbotutils.Bot.bulk_create_guild_application_command`s will now return instances of :class:`voxelbotutils.ApplicationCommand
.
- Temporarily fixed an issue where the bot wouldn't start without installing web requirements.
- Fix the embed kwarg not being usable for some embeds.
- Allow a bot parameter in
voxelbotutils.menus.Menu.create_cog
.
- Message objects returned by the library will now be instances of
voxelbotutils.ComponentMessage
orvoxelbotutils.ComponentWebhookMessage
. - Handle parameters to slash commands better instead of leaving them to D.py to be converted.
- Change the format on vbu's loggers.
- Fixed an issue where paginators wouldn't expire cleanly.
- Allow select menus to be disabled
- Don't add a "menu loading" message for paginators.
This update is mainly to deal with breaking changes for the settings menus.
- The settings menus have been entirely, incompatibly, redone.
This update is mainly to deal with breaking changes for the web utilities.
- Added the
voxelbotutils.web.OauthGuild
,voxelbotutils.web.OauthUser
, andvoxelbotutils.web.OauthMember
classes. - The
discord.Message
anddiscord.WebhookMessage
objects have been replaced with subclasses that include message components. - Added
voxelbotutils.SelectMenu
and related objects. - Message objects now have
enable_components
anddisable_components
methods. voxelbotutils.InteractionMessageable
now has arespond<voxelbotutils.InteractionMessageable.respond>
method that allows you to give a type 4 response to an interaction.
- Raise
voxelbotutils.errors.NotBotSupport
if the support guild cannot be fetched. - If no scopes are given for
voxelbotutils.Bot.get_invite_link
, thebot's config<BotConfig.oauth.scopes>
will be used. - Messages have had
wait_for_button_click
removed in favour ofdiscord.Client.wait_for
. voxelbotutils.Paginator
now uses buttons instead of reactions.voxelbotutils.Button
instances will now allow a label to be empty if an emoji is set.- Components will now give you a
discord.PartialMessage
instance if the message was not included in the interaction payload.
- Fixed bug when checking for reactions in the settings menus.
- Fixed a bug in the stats command for Python versions 3.9+.
- Add a missing module in the custom command object.
- Fix bug where file content would not be read in the ev command.
- Fix AttributeError when getting user mentions in slash commands.
- Added
voxelbotutils.MinimalBot
. - The bot's startup logger line now includes the recommended number of shards that you should launch with.
- Added the
voxelbotutils.web.is_logged_in
method. - Add
version
command to the CLI args.
- If embeds are enabled, the footer of embeds will be changed to "currently live on Twitch" when the stream presence is set.
- If no permissions are given for
voxelbotutils.Bot.get_invite_link
, thebot's config<BotConfig.oauth.permissions>
will be used. - Add
remove_reaction
param to thevoxelbotutils.Paginator.start
method. - Made all
voxelbotutils.Button
parameters into kwargs, apart from name and custom ID, which are positional. - Add
voxelbotutils.ComponentHolder.add_component
andvoxelbotutils.ComponentHolder.remove_component
methods. - Add
voxelbotutils.MessageComponents.boolean_buttons
voxelbotutils.MessageComponents.add_buttons_with_rows
methods.
- Fix typo when creating website config.
- Fix the sharding information for when no arguments are set.
- Fix access token refreshing in
voxelbotutils.UpgradeChat
. - Fix button clicks not working with ephemeral messages.
- Catch
discord.ext.commands.ConversionError
in the error handler.
- Set error text to be ephemeral when using slash commands.
- Allow bots to be created without a prefix (see
BotConfig.default_prefix
).
- Fix command name in errors when using subcommands.
- Fix setting the presence when there are no shard IDs set.
- Fix casting for args in slash commands.
- Fix login URL redirect for websites.
- Fixed removeslashcommands command.
Initial changelog version.