Redbot 3.4.9 (2021-04-06)¶
This is a hotfix release fixing an issue with command error handling.
discord.py version has been bumped to 1.7.1.
Thanks again to @Rapptz for quick response on this issue.
Redbot 3.4.8 (2021-04-06)¶
Read before updating¶
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.8 uses a new Lavalink jar that you will need to manually update from our GitHub.
Fedora 31 and OpenSUSE Leap 15.1 are no longer supported as they have already reached end of life.
End-user changelog¶
Core Bot¶
Added per-command embed settings (#4049)
See help of
[p]embedsetand[p]embedset commandcommand group for more information
[p]leaveaccepts server IDs now (#4831)Commands for listing global and local allowlists and blocklists will now, in addition to IDs, contain user/role names (#4839)
Messages sent interactively in DM channels no longer fail (#4876)
An error message will now be shown when a command that is only available in NSFW channels is used in a non-NSFW channel (#4933)
Added more singular and plural forms in a bunch of commands in the bot (#4004, #4898)
Removed the option to drop the entire PostgreSQL database in
redbot-setup deletedue to limitations of PostgreSQL (#3699, #3833)Added a progress bar to
redbot-setup convert(#2952)Fixed how the command signature is shown in help for subcommands that have group args (#4928)
Alias¶
Audio¶
Fixed stuttering (#4565)
Fixed random disconnects (#4565)
Fixed the issues causing the player to be stuck on 00:00 (#4565)
Fixed ghost players (#4565)
Audio will no longer stop playing after a while (#4565)
Fixed playlist loading for playlists with over 100 songs (#4932)
Fixed an issue with alerts causing errors in playlists being loaded (#4932)
Improved playlist extraction (#4932)
Fixed an issue with consent pages appearing while trying to load songs or playlists (#4932)
Cleanup¶
[p]cleanup beforeand[p]cleanup aftercommands can now be used without a message ID if the invocation message replies to some message (#4790)
Filter¶
Mod¶
Streams¶
Streams cog should now load faster on bots that have many stream alerts set up (#4731, #4742)
Fixed possible memory leak related to automatic message deletion (#4731, #4742)
Streamer accounts that no longer exist are now properly handled (#4735, #4746)
Fixed stream alerts being sent even after unloading Streams cog (#4940)
Checking Twitch streams will now make less API calls (#4938)
Ratelimits from Twitch API are now properly handled (#4808, #4883)
Trivia¶
Developer changelog¶
Bumped discord.py version to 1.7.0 (#4928)
Deprecated importing
GuildConverterfromredbot.core.commands.converternamespace (#4928)discord.GuildorGuildConverterfromredbot.core.commandsshould be used instead
Added
guildparameter tobot.allowed_by_whitelist_blacklist()which is meant to replace the deprecatedguild_idparameter (#4905, #4914)Read the method’s documentation for more information
Fixed
on_red_api_tokens_updatenot being dispatched when the tokens were removed with[p]set api remove(#4916, #4917)
Documentation changes¶
Added a note about updating cogs in update message and documentation (#4910)
Added cog guide for Image cog (#4821)
Updated Mac install guide with new
brewcommands (#4865)Getting started now contains an explanation of parameters that can take an arbitrary number of arguments (#4888, #4889)
Added a warning to Arch Linux install guide about the instructions being out-of-date (#4866)
All shell commands in the documentation are now prefixed with an unselectable prompt (#4908)
Setting up auto-restart using systemd on Linux now asks the user to create the new service file using
nanotext editor (#4869, #4870)Instructions for all Linux-based operating systems now recommend to install
nano
Updated Python version in
pyenvand Windows instructions (#4864, #4942)
Redbot 3.4.7 (2021-02-26)¶
End-user changelog¶
Added proper permission checks to
[p]muteset senddmand[p]muteset showmoderator(#4849)Updated the
[p]lmgtfycommand to use the new domain (#4840)Updated the
[p]infocommand to more clearly indicate that the instance is owned by a team (#4851)Fixed minor issues with error messages in Mutes cog (#4847, #4850, #4853)
Documentation changes¶
Added cog guide for General cog (#4797)
Added cog guide for Trivia cog (#4566)
Redbot 3.4.6 (2021-02-16)¶
Read before updating¶
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.6 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog¶
Core Bot¶
Fixed the rotation of Red’s logs that could before result in big disk usage (#4405, #4738)
Fixed command usage in the help messages for few commands in Red (#4599, #4733)
Fixed errors in
[p]command defaultdisablecogand[p]command defaultenablecogcommands (#4767, #4768)[p]command listdisabled guildcan no longer be run in DMs (#4771, #4772)Improvements and fixes for our new (colorful) logging (#4702, #4726)
The colors used have been adjusted to be readable on many more terminal applications
The
NO_COLORenvironment variable can now be set to forcefully disable all colors in the console outputTracebacks will now use the full width of the terminal again
Tracebacks no longer contain multiple lines per stack level (this can now be changed with the flag
--rich-traceback-extra-lines)Disabled syntax highlighting on the log messages
Dev cog no longer captures logging output
Added some cool features for developers
Added the flag
--rich-traceback-extra-lineswhich can be used to set the number of additional lines in tracebacksAdded the flag
--rich-traceback-show-localswhich enables showing local variables in tracebacks
Improved and fixed a few other minor things
Added a friendly error message to
[p]loadthat is shown when trying to load a cog with a command name that is already taken by a different cog (#3870)Help now includes command aliases in the command help (#3040)
This can be disabled with
[p]helpset showaliasescommand
Fixed errors appearing when using Ctrl+C to interrupt
redbot --edit(#3777, #4572)
Admin¶
[p]selfrolecan now be used without a subcommand and passed with a selfrole directly to add/remove it from the user running the command (#4826)
Audio¶
Cleanup¶
Economy¶
Mod¶
The
[p]tempbancommand no longer errors out when trying to ban a user in a guild with the vanity url feature that doesn’t have a vanity url set (#4714)Fixed an edge case in role hierarchy checks (#4740)
Added two new settings for disabling username and nickname tracking (#4799)
Added a command
[p]modset trackallnamesthat disables username tracking and overrides the nickname tracking setting for all guildsAdded a command
[p]modset tracknicknamesthat disables nickname tracking in a specific guild
Added a command
[p]modset deletenamesthat deletes all stored usernames and nicknames (#4827)Added usage examples to
[p]kick,[p]ban,[p]massban, and[p]tempban(#4712, #4715)Updated DM on kick/ban to use bot’s default embed color (#4822)
Modlog¶
Mutes¶
Fixed an edge case in role hierarchy checks (#4740)
The modlog reason no longer contains leading whitespace when it’s passed after the mute time (#4749)
A DM can now be sent to the (un)muted user on mute and unmute (#3752, #4563)
Added
[p]muteset senddmto set whether the DM should be sent (function disabled by default)Added
[p]muteset showmoderatorto set whether the DM sent to the user should include the name of the moderator that muted the user (function disabled by default)
Added more role hierarchy checks to ensure permission escalations cannot occur on servers with a careless configuration (#4741)
Help descriptions of the cog and its commands now get translated properly (#4815)
Streams¶
Trivia¶
Developer changelog¶
Core Bot¶
Utility Functions¶
Added a function
redbot.core.utils.chat_formatting.spoiler()that wraps the given text in a spoiler (#4754)
Documentation changes¶
Added cog guide for Filter cog (#4579)
Added information about the Red Index to Publishing cogs for Red V3 (#4778)
Restructured the host list (#4710)
Clarified how to use pm2 with
pyenv virtualenv(#4709)Updated the pip command for Red with the postgres extra in Installing Red on Linux or Mac document to work on zsh shell (#4697)
Updated Python version in
pyenvand Windows instructions (#4770)
Redbot 3.4.5 (2020-12-24)¶
Redbot 3.4.4 (2020-12-24)¶
Read before updating¶
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.4 uses a new Lavalink jar that you will need to manually update from our GitHub.
Ubuntu 16.04 is no longer supported as it will soon reach its end of life and it is no longer viable for us to maintain support for it.
While you might still be able to run Red on it, we will no longer put any resources into supporting it. If you’re using Ubuntu 16.04, we highly recommend that you upgrade to the latest LTS version of Ubuntu.
End-user changelog¶
Core Bot¶
Red’s logging will now shine in your terminal more than ever (#4577)
Improved consistency of command usage in the help messages within all commands in Core Red (#4589)
Added a friendly error when the duration provided to commands that use the
commands.TimedeltaConverterconverter is out of the maximum bounds allowed by Python interpreter (#4019, #4628, #4630)Fixed an error when removing path from a different operating system than the bot is currently running on with
[p]removepath(#2609, #4662, #4466)
Audio¶
Fixed
[p]llset javafailing to set the Java executable path (#4621, #4624)Fixed Soundcloud playback (#4683)
Fixed YouTube age-restricted track playback (#4683)
Added more friendly messages for 429 errors to let users know they have been temporarily banned from accessing the service instead of a generic Lavalink error (#4683)
Environment information will now be appended to Lavalink tracebacks in the spring.log (#4683)
Cleanup¶
[p]cleanup selfwill now delete the command message when the bot has permissions to do so (#4640)
Economy¶
[p]economyset slotminand[p]economyset slotmaxnow warn when the new value will cause the slots command to not work (#4583)
Streams¶
Developer changelog¶
get_audit_reason()can now be passed ashortenkeyword argument which will automatically shorten the returned audit reason to fit the max length allowed by Discord audit logs (#4189)bot.remove_command()now returns the command object of the removed command as does the equivalent method fromdiscord.ext.commands.Botclass (#4636)
Documentation changes¶
Added cog guide for Downloader cog (#4511)
Added cog guide for Economy cog (#4519)
Added cog guide for Streams cog (#4521)
Added Becoming an Approved Cog Creator document (#4637)
Removed install instructions for Ubuntu 16.04 (#4650)
Redbot 3.4.3 (2020-11-16)¶
Read before updating¶
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.3 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog¶
Core Bot¶
Audio¶
Volume changes on ARM systems running a 64 bit OS will now work again (#4608)
Fixed only 100 results being returned on a Youtube playlist (#4608)
Fixed YouTube VOD duration being set to unknown (#3885, #4608)
Fixed some YouTube livestreams getting stuck (#4608)
Fixed internal Lavalink manager failing for Java with untypical version formats (#4608)
Improved AAC audio handling (#4608)
Added support for SoundCloud HLS streams (#4608)
Mod¶
Modlog¶
Developer changelog¶
Documentation changes¶
Added guide for Cog Manager UI (#4152)
Redbot 3.4.2 (2020-10-28)¶
Read before updating¶
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.2 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog¶
Core Bot - Added info about the metadata file to
redbot --debuginfo(#4557)Audio - Fixed the
[p]local searchcommand (#4553)Audio - Fixed random “Something broke when playing the track.” errors for YouTube tracks (#4559)
Audio - Commands in
[p]llsetgroup can now be used in DMs (#4562)Mod - Fixed
[p]massbannot working for banning members that are in the server (#4556, #4555)Streams - Added error messages when exceeding the YouTube quota in the Streams cog (#4552)
Streams - Improved logging for unexpected errors in the Streams cog (#4552)
Documentation changes¶
Added cog guide for Cleanup cog (#4488)
Removed multi-line commands from Installing Red on Linux or Mac to avoid confusing readers (#4550)
Redbot 3.4.1 (2020-10-27)¶
Read before updating¶
This release fixes a security issue in Mod cog. See Security changelog below for more information.
This Red update bumps discord.py to version 1.5.1, which explicitly requests Discord intents. Red requires all Privileged Intents to be enabled. More information can be found at Enabling Privileged Intents.
Mutes functionality has been moved from the Mod cog to a new separate cog (Mutes) featuring timed and role-based mutes. If you were using it (or want to start now), you can load the new cog with
[p]load mutes. You can see the full Mutes changelog below.Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our application.yml file and you should update your instance’s
application.ymlappropriately. Please ensure that the WS port in Audio’s settings ([p]llset wsport) is set to the port from theapplication.yml.
End-user changelog¶
Security¶
NOTE: If you can’t update immediately, we recommend globally disabling the affected command until you can.
Mod - Fixed unauthorized privilege escalation exploit in
[p]massban(also called[p]hackban) command. Full security advisory can be found on our GitHub.
Core Bot¶
Fixed an incorrect error being reported on
[p]set namewhen the passed name was longer than 32 characters (#4364, #4363)Fixed
[p]set nicknameerroring when the passed name was longer than 32 characters (#4364, #4363)Fixed an ungraceful error being raised when running
[p]tracebackwith closed DMs (#4329)Fixed errors that could arise from invalid URLs in
[p]set avatar(#4437)Fixed an error being raised with
[p]set nicknamewhen no nickname was provided (#4451)Fixed and clarified errors being raised with
[p]set username(#4463)Fixed an ungraceful error being raised when the output of
[p]unloadis larger than 2k characters (#4469)Fixed an ungraceful error being raised when running
[p]choosewith empty options (#4499)Fixed an ungraceful error being raised when a bot left a guild while a menu was open (#3902)
Fixed info missing on the non-embed version of
[p]debuginfo(#4524)Added
[p]set api listto list all currently set API services, without tokens (#4370)Added
[p]set api removeto remove API services, including tokens (#4370)Added
[p]helpset usetick, toggling command message being ticked when help is sent to DM (#4467, #4075)Added a default color field to
[p]set showsettings(#4498, #4497)Added the datapath and metadata file to
[p]debuginfo(#4524)Added a list of disabled intents to
[p]debuginfo(#4423)Bumped discord.py dependency to version 1.5.1 (#4423)
Locales and regional formats can now be set in individual guilds using
[p]set localeand[p]set regionalformat(#3896, #1970)Global locale and regional format setters have been renamed to
[p]set globallocaleand[p]set globalregionalformat
Audio¶
Scattered grammar and typo fixes (#4446)
Fixed Bandcamp playback (#4504)
Fixed YouTube playlist playback (#4504)
Fixed YouTube searching issues (#4504)
Fixed YouTube age restricted track playback (#4504)
Fixed the Audio cog not being translated when setting locale (#4492, #4495)
Fixed tracks getting stuck at 0:00 after long player sessions (#4529)
Removed lavalink logs from being added to backup (#4453, #4452)
Removed stream durations from being in queue duration (#4513)
Added the Global Audio API, to cut down on Youtube 429 errors and allow Spotify playback past user’s quota. (#4446)
Added persistent queues, allowing for queues to be restored on a bot restart or cog reload (#4446)
Added
[p]audioset restart, allowing for Lavalink connection to be restarted (#4446)Added
[p]audioset autodeafen, allowing for bot to auto-deafen itself when entering voice channel (#4446)Added
[p]audioset mycountrycode, allowing Spotify search locale per user (#4446)Added
[p]llsetup java, allowing for a custom Java executable path (#4446)Added
[p]llset infoto show Lavalink settings (#4527)Added
[p]audioset logsto download Lavalink logs if the Lavalink server is set to internal (#4527)
General¶
Mod¶
Added
[p]modset mentionspam strictallowing for duplicated mentions to count towards the mention spam cap (#4359)Added an option to ban users not in the guild to
[p]ban(#4422, #4419)Added a default tempban duration for
[p]tempban(#4473, #3992)Fixed nicknames not being properly stored and logged (#4131)
Renamed
[p]hackbanto[p]massban, keeping[p]hackbanas an alias, allowing for multiple users to be banned at once (#4422, #4419)Moved mutes to a separate, individual cog (#3634)
Mutes¶
Added
[p]muteset forceroleto make mutes role based, instead of permission based (#3634)Added an optional time argument to all mutes, to specify when the user should be unmuted (#3634)
Changed
[p]muteto only handle serverwide muting,[p]mute voiceand[p]mute channelhave been moved to separate commands called[p]mutechanneland[p]mutevoice(#3634)Mute commands can now take multiple user arguments, to mute multiple users at a time (#3634)
Modlog¶
Trivia Lists¶
Developer changelog¶
Core Bot¶
Added API for setting contextual locales (#3896, #1970)
New function added:
redbot.core.i18n.set_contextual_locales_from_guild()Contextual locale is automatically set for commands and only needs to be done manually for things like event listeners; see Recommendations for Cog Creators for more information
Added
bot.remove_shared_api_services()to remove all keys and tokens associated with an API service (#4370)Added an option to return all tokens for an API service if
service_nameis not specified inbot.get_shared_api_tokens()(#4370)Added
bot.get_or_fetch_user()andbot.get_or_fetch_member()methods (#4403, #4402)Moved
redbot.core.checks.bot_in_a_guild()toredbot.core.commands.bot_in_a_guild()(old name has been left as an alias) (#4515, #4510)
Modlog¶
Added an option to accept a
discord.Objectin case creation (#4326)Added
last_known_usernameparameter tomodlog.create_case()function (#4326)Fixed an error being raised with a deleted channel in
Case.message_content()(#4415)
Utility¶
Added
redbot.core.utils.get_end_user_data_statement()andredbot.core.utils.get_end_user_data_statement_or_raise()to attempt to fetch a cog’s End User Data Statement (#4404)Added
redbot.core.utils.chat_formatting.quote()to quote text in a message (#4425)
Documentation changes¶
Modlog¶
Clarified that naive
datetimeobjects will be treated as local times for parameterscreated_atanduntilinmodlog.create_case()(#4389)
Miscellaneous¶
Added JSON schema files for
info.jsonfiles (#4375)Added
[all]and[dev]bundled install extras (#4443)Replaced the link to the approved repository list on CogBoard and references to
cogs.redwith a link to new Red Index (#4439)Improved documentation about arguments in command syntax (#4058)
Replaced a few instances of Red with the bot name in command docstrings (#4470)
Fixed grammar in places scattered throughout bot (#4500)
Properly define supported Python versions to be lower than 3.9 (#4538)
Redbot 3.4.0 (2020-08-17)¶
[p]tempban. Look at Mod changelog for full details.End-user changelog¶
Core Bot¶
Added per-guild cog disabling (#4043, #3945)
Bot owners can set the default state for a cog using
[p]command defaultdisablecogand[p]command defaultenablecogcommandsGuild owners can enable/disable cogs for their guild using
[p]command disablecogand[p]command enablecogcommandsCogs disabled in the guild can be listed with
[p]command listdisabledcogs
Added support for data deletion requests; see Red and End User Data for more information (#4045)
Red now logs clearer error if it can’t find package to load in any cog path during bot startup (#4079)
[p]licenseinfonow has a 3 minute cooldown to prevent a single user from spamming channel by using it (#4110)Updated Red’s emoji usage to ensure consistent rendering accross different devices (#4106, #4105, #4127)
Whitelist and blacklist are now called allowlist and blocklist. Old names have been left as aliases (#4138)
Admin¶
Downloader¶
Mod¶
[p]tempbannow respects default days setting ([p]modset defaultdays) (#3993)Users can now set mention spam triggers which will warn or kick the user. See
[p]modset mentionspamfor more information (#3786, #4038)[p]mute voiceand[p]unmute voicenow take action instantly if bot has Move Members permission (#4064)Added typing to
[p](un)mute guildto indicate that mute is being processed (#4066, #4172)
Streams¶
Stream alerts will no longer make roles temporarily mentionable if bot has “Mention @everyone, @here, and All Roles” permission in the channel (#4182)
Mixer service has been closed and for that reason we’ve removed support for it from the cog (#4072)
Hitbox commands have been renamed to smashcast (#4161)
Improve error messages for invalid channel names/IDs (#4147, #4148)
Developer changelog¶
Breaking changes¶
By default, none of the
.send()methods mention roles or@everyone/@here(#3845)see
discord.AllowedMentionsandallowed_mentionskwarg of.send()methods, if your cog requires to mention roles or@everyone/@here
Context.maybe_send_embed()now supresses all mentions, including user mentions (#4192)The default value of the
filterkeyword argument has been changed toNone(#3845)Cog package names (i.e. name of the folder the cog is in and the name used when loading the cog) now have to be valid Python identifiers (#3605, #3679)
Method/attribute names starting with
red_or being in the form of__red_*__are now reserved. See Versioning for more information (#4085)humanize_list()no longer raisesIndexErrorfor empty sequences (#2982)Removed things past deprecation time: (#4163)
redbot.core.commands.APITokenloopkwarg frombounded_gather_iter(),bounded_gather(), andstart_adding_reactions()
Core Bot¶
Added cog disabling API (#4043, #3945)
New methods added:
bot.cog_disabled_in_guild(),bot.cog_disabled_in_guild_raw()Cog disabling is automatically applied for commands and only needs to be done manually for things like event listeners; see Recommendations for Cog Creators for more information
Added data request API (#4045, #4169)
New special methods added to
commands.Cog:red_get_data_for_user()(documented provisionally),red_delete_data_for_user()New special module level variable added:
__red_end_user_data_statement__These methods and variables should be added by all cogs according to their documentation; see Recommendations for Cog Creators for more information
New
info.jsonkey added:end_user_data_statement; see Info.json format documentation for more information
Added
bot.message_eligible_as_command()utility method which can be used to determine if a message may be responded to as a command (#4077)Added a provisional API for replacing the help formatter. See documentation for more details (#4011)
bot.ignored_channel_or_guild()now acceptsdiscord.Messageobjects (#4077)commands.NoParseOptionalis no longer provisional and is now fully supported part of API (#4142)Red no longer fails to run subcommands of a command group allowed or denied by permission hook (#3956)
Autohelp in group commands is now sent after invoking the group, which allows before invoke hooks to prevent autohelp from getting triggered (#4129)
RPC functionality no longer makes Red hang for a minute on shutdown (#4134, #4143)
Utility Functions¶
humanize_list()now acceptslocaleandstylekeyword arguments. See its documentation for more information (#2982)humanize_list()is now properly localized (#2906, #2982)humanize_list()now accepts empty sequences (#2982)
Documentation changes¶
Miscellaneous¶
Updated features list in
[p]serverinfowith the latest changes from Discord (#4116)Simple version of
[p]serverinfonow shows info about more detailed[p]serverinfo 1(#4121)[p]set nickname,[p]set serverprefix,[p]streamalert, and[p]streamsetcommands now can be run by users with permissions related to the actions they’re making (#4109)bordered()now uses+for corners if keyword argumentascii_borderis set toTrue(#4097)Fixed timestamp storage in few places in Red (#4017)