Redbot 3.2.3 (2020-01-17)

Core Bot Changes

  • Further improvements have been made to bot startup and shutdown.
  • Prefixes are now cached for performance.
  • Added the means for cog creators to use a global preinvoke hook.
  • The bot now ensures it has at least the bare neccessary permissions before running commands.
  • Deleting instances works as intended again.
  • Sinbad stopped fighting it and embraced the entrypoint madness.

Core Commands

  • The servers command now also shows the ids.

Admin Cog

  • The selfrole command now has reasonable expectations about hierarchy.

Help Formatter

  • [botname] is now replaced with the bot’s display name in help text.
  • New features added for cog creators to further customize help behavior.
    • Check out our command reference for details on new format_help_for_context method.
  • Embed settings are now consistent.

Downloader

  • Improved a few user facing messages.
  • Added pagination of output on cog update.
  • Added logging of failures.

Docs

There’s more detail to the below changes, so go read the docs. For some reason, documenting documentation changes is hard.

  • Added instructions about git version.
  • Clarified instructions for installation and update.
  • Added more details to the API key reference.
  • Fixed some typos and versioning mistakes.

Audio

Draper did things.

  • No seriously, Draper did things.
  • Wait you wanted details? Ok, I guess we can share those.
  • Audio properly disconnects with autodisconnect, even if notify is being used.
  • Symbolic links now work as intended for local tracks.
  • Bump play now shows the correct time till next track.
  • Multiple user facing messages have been made more correct.

Redbot 3.2.2 (2020-01-10)

Hotfixes

  • Fix Help Pagination issue

Docs

  • Correct venv docs

Redbot 3.2.1 (2020-01-10)

Hotfixes

  • Fix Mongo conversion from being incorrectly blocked
  • Fix announcer not creating a message for success feedback
  • Log an error with creating case types rather than crash

Redbot 3.2.0 (2020-01-09)

Core Bot Changes

Breaking Changes

  • Modlog casetypes no longer have an attribute for auditlog action type. (#2897)

  • Removed redbot.core.modlog.get_next_case_number(). (#2908)

  • Removed bank.MAX_BALANCE, use bank.get_max_balance() from now on. (#2926)

  • The main bot config is no longer directly accessible to cogs. New methods have been added for use where this is concerned. New methods for this include

    • bot.get_shared_api_tokens
    • bot.set_shared_api_tokens
    • bot.get_embed_color
    • bot.get_embed_colour
    • bot.get_admin_roles
    • bot.get_admin_role_ids
    • bot.get_mod_roles
    • bot.get_mod_role_ids (#2967)
  • Reserved some command names for internal Red use. These are available programatically as redbot.core.commands.RESERVED_COMMAND_NAMES. (#2973)

  • Removed bot._counter, Made a few more attrs private (cog_mgr, main_dir). (#2976)

  • Extension’s setup() function should no longer assume that we are, or even will be connected to Discord. This also means that cog creators should no longer use bot.wait_until_ready() inside it. (#3073)

  • Removed the mongo driver. (#3099)

Bug Fixes

  • Help now properly hides disabled commands. (#2863)
  • Fixed bot.remove_command throwing an error when trying to remove a non-existent command. (#2888)
  • Command.can_see now works as intended for disabled commands. (#2892)
  • Modlog entries now show up properly without the mod cog loaded. (#2897)
  • Fixed an error in [p]reason when setting the reason for a case without a moderator. (#2908)
  • Bank functions now check the recipient balance before transferring and stop the transfer if the recipient’s balance will go above the maximum allowed balance. (#2923)
  • Removed potential for additional bad API calls per ban/unban. (#2945)
  • The [p]invite command no longer errors when a user has the bot blocked or DMs disabled in the server. (#2948)
  • Stopped using the : character in backup’s filename - Windows doesn’t accept it. (#2954)
  • redbot-setup delete no longer errors with “unexpected keyword argument”. (#2955)
  • redbot-setup delete no longer prompts about backup when the user passes the option --no-prompt. (#2956)
  • Cleaned up the [p]inviteset public and [p]inviteset perms help strings. (#2963)
  • `[p]embedset user now only affects DM’s. (#2966)
  • Fixed an unfriendly error when the provided instance name doesn’t exist. (#2968)
  • Fixed the help text and response of [p]set usebotcolor to accurately reflect what the command is doing. (#2974)
  • Red no longer types infinitely when a command with a cooldown is called within the last second of a cooldown. (#2985)
  • Removed f-string usage in the launcher to prevent our error handling from causing an error. (#3002)
  • Fixed MessagePredicate.greater and MessagePredicate.less allowing any valid int instead of only valid ints/floats that are greater/less than the given value. (#3004)
  • Fixed an error in [p]uptime when the uptime is under a second. (#3009)
  • Added quotation marks to the response of [p]helpset tagline so that two consecutive full stops do not appear. (#3010)
  • Fixed an issue with clearing rules in permissions. (#3014)
  • Lavalink will now be restarted after an unexpected shutdown. (#3033)
  • Added a 3rd-party lib folder to sys.path before loading cogs. This prevents issues with 3rd-party cogs failing to load when Downloader is not loaded to install requirements. (#3036)
  • Escaped track descriptions so that they do not break markdown. (#3047)
  • Red will now properly send a message when the invoked command is guild-only. (#3057)
  • Arguments --co-owner and --load-cogs now properly require at least one argument to be passed. (#3060)
  • Now always appends the 3rd-party lib folder to the end of sys.path to avoid shadowing Red’s dependencies. (#3062)
  • Fixed is_automod_immune’s handling of the guild check and added support for checking webhooks. (#3100)
  • Fixed the generation of the repos.json file in the backup process. (#3114)
  • Fixed an issue where calling audio commands when not in a voice channel could result in a crash. (#3120)
  • Added handling for invalid folder names in the data path gracefully in redbot-setup and redbot --edit. (#3171)
  • --owner and -p cli flags now work when added from launcher. (#3174)
  • Red will now prevent users from locking themselves out with localblacklist. (#3207)
  • Fixed help ending up a little too large for discord embed limits. (#3208)
  • Fixed formatting issues in commands that list whitelisted/blacklisted users/roles when the list is empty. (#3219)
  • Red will now prevent users from locking the guild owner out with localblacklist (unless the command caller is bot owner). (#3221)
  • Guild owners are no longer affected by the local whitelist and blacklist. (#3221)
  • Fixed an attribute error that can be raised in humanize_timedelta if seconds = 0. (#3231)
  • Fixed ctx.clean_prefix issues resulting from undocumented changes from discord. (#3249)
  • redbot.core.bot.Bot.owner_id is now set in the post connection startup. (#3273)
  • redbot.core.bot.Bot.send_to_owners() and redbot.core.bot.Bot.get_owner_notification_destinations() now wait until Red is done with post connection startup to ensure owner ID is available. (#3273)

Enhancements

  • Added the option to modify the RPC port with the --rpc-port flag. (#2429)
  • Slots now has a 62.5% expected payout and will not inflate economy when spammed. (#2875)
  • Allowed passing cls in the redbot.core.commands.group() decorator. (#2881)
  • Red’s Help Formatter is now considered to have a stable API. (#2892)
  • Modlog no longer generates cases without being told to for actions the bot did. (#2897)
  • Some generic modlog casetypes are now pre-registered for cog creator use. (#2897)
  • ModLog is now much faster at creating cases, especially in large servers. (#2908)
  • JSON config files are now stored without indentation, this is to reduce the file size and increase the performance of write operations. (#2921)
  • --[no-]backup, --[no-]drop-db and --[no-]remove-datapath in the redbot-setup delete command are now on/off flags. (#2958)
  • The confirmation prompts in redbot-setup now have default values for user convenience. (#2958)
  • redbot-setup delete now has the option to leave Red’s data untouched on database backends. (#2962)
  • Red now takes less time to fetch cases, unban members, and list warnings. (#2964)
  • Red now handles more things prior to connecting to discord to reduce issues during the initial load. (#3045)
  • bot.send_filtered now returns the message that is sent. (#3052)
  • Red will now send a message when the invoked command is DM-only. (#3057)
  • All y/n confirmations in cli commands are now unified. (#3060)
  • Changed [p]info to say “This bot is an…” instead of “This is an…” for clarity. (#3121)
  • redbot-setup will now use the instance name in default data paths to avoid creating a second instance with the same data path. (#3171)
  • Instance names can now only include characters A-z, numbers, underscores, and hyphens. Old instances are unaffected by this change. (#3171)
  • Clarified that [p]backup saves the bot’s data in the help text. (#3172)
  • Added redbot --debuginfo flag which shows useful information for debugging. (#3183)
  • Added the Python executable field to [p]debuginfo. (#3184)
  • When Red prompts for a token, it will now print a link to the guide explaining how to obtain a token. (#3204)
  • redbot-setup will no longer log to disk. (#3269)
  • redbot.core.bot.Bot.send_to_owners() and redbot.core.bot.Bot.get_owner_notification_destinations() now log when they are not able to find the owner notification destination. (#3273)
  • The lib folder is now cleared on minor Python version changes. [p]cog reinstallreqs in Downloader can be used to regenerate the lib folder for a new Python version. (#3274)
  • If Red detects operating system or architecture change, it will now warn the owner about possible problems with the lib folder. (#3274)
  • [p]playlist download will now compress playlists larger than the server attachment limit and attempt to send that. (#3279)

New Features

  • Added functions to acquire locks on Config groups and values. These locks are acquired by default when calling a value as a context manager. See Value.get_lock for details. (#2654)

  • Added a config driver for PostgreSQL. (#2723)

  • Added methods to Config for accessing things by id without mocked objects

    • Config.guild_from_id
    • Config.user_from_id
    • Config.role_from_id
    • Config.channel_from_id
    • Config.member_from_ids - This one requires multiple ids, one for the guild, one for the user - Consequence of discord’s object model (#2804)
  • New method humanize_number in redbot.core.utils.chat_formatting to convert numbers into text that respects the current locale. (#2836)

  • Added new commands to Economy

    • [p]bank prune user - This will delete a user’s bank account.
    • [p]bank prune local - This will prune the bank of accounts for users who are no longer in the server.
    • [p]bank prune global - This will prune the global bank of accounts for users who do not share any servers with the bot. (#2845)
  • Red now uses towncrier for changelog generation. (#2872)

  • Added redbot.core.modlog.get_latest_case to fetch the case object for the most recent ModLog case. (#2908)

  • Added [p]bankset maxbal to set the maximum bank balance. (#2926)

  • Added a few methods and classes replacing direct config access (which is no longer supported)

    • redbot.core.Red.allowed_by_whitelist_blacklist
    • redbot.core.Red.get_valid_prefixes
    • redbot.core.Red.clear_shared_api_tokens
    • redbot.core.commands.help.HelpSettings (#2976)
  • Added the cli flag redbot --edit which is used to edit the instance name, token, owner, and datapath. (#3060)

  • Added [p]licenseinfo. (#3090)

  • Ensured that people can migrate from MongoDB. (#3108)

  • Added a command to list disabled commands globally or per guild. (#3118)

  • New event on_red_api_tokens_update is now dispatched when shared api keys for a service are updated. (#3134)

  • Added redbot-setup backup. (#3235)

  • Added the method redbot.core.bot.Bot.wait_until_red_ready() that waits until Red’s post connection startup is done. (#3273)

Removals

  • [p]set owner and [p]set token have been removed in favor of managing server side. (#2928)
  • Shared libraries are marked for removal in Red 3.4. (#3106)
  • Removed [p]backup. Use the cli command redbot-setup backup instead. (#3235)
  • Removed the functions safe_delete, fuzzy_command_search, format_fuzzy_results and create_backup from redbot.core.utils. (#3240)
  • Removed a lot of the launcher’s handled behavior. (#3289)

Dependency changes

  • Added pytest-mock requirement to tests extra. (#2571)
  • Updated the python minimum requirement to 3.8.1, updated JRE to Java 11. (#3245)
  • Bumped dependency versions. (#3288)
  • Bumped red-lavalink version. (#3290)

Documentation Changes

  • Started the user guides covering cogs and the user interface of the bot. This includes, for now, a “Getting started” guide. (#1734)
  • Added documentation for PM2 support. (#2105)
  • Updated linux install docs, adding sections for Fedora Linux, Debian/Raspbian Buster, and openSUSE. (#2558)
  • Created documentation covering what we consider a developer facing breaking change and the guarantees regarding them. (#2882)
  • Fixed the user parameter being labeled as discord.TextChannel instead of discord.abc.User in redbot.core.utils.predicates. (#2914)
  • Updated towncrier info in the contribution guidelines to explain how to create a changelog for a standalone PR. (#2915)
  • Reworded the virtual environment guide to make it sound less scary. (#2920)
  • Driver docs no longer show twice. (#2972)
  • Added more information about redbot.core.utils.humanize_timedelta into the docs. (#2986)
  • Added a direct link to the “Installing Red” section in “Installing using powershell and chocolatey”. (#2995)
  • Updated Git PATH install (Windows), capitalized some words, stopped mentioning the launcher. (#2998)
  • Added autostart documentation for Red users who installed Red inside of a virtual environment. (#3005)
  • Updated the Cog Creation guide with a note regarding the Develop version as well as the folder layout for local cogs. (#3021)
  • Added links to the getting started guide at the end of installation guides. (#3025)
  • Added proper docstrings to enums that show in drivers docs. (#3035)
  • Discord.py doc links will now always use the docs for the currently used version of discord.py. (#3053)
  • Added |DPY_VERSION| substitution that will automatically get replaced by the current discord.py version. (#3053)
  • Added missing descriptions for function returns. (#3054)
  • Stopped overwriting the docs/prolog.txt file in conf.py. (#3082)
  • Fixed some typos and wording, added MS Azure to the host list. (#3083)
  • Updated the docs footer copyright to 2019. (#3105)
  • Added a deprecation note about shared libraries in the Downloader Framework docs. (#3106)
  • Updated the apikey framework documentation. Changed bot.get_shared_api_keys() to bot.get_shared_api_tokens(). (#3110)
  • Added information about info.json’s min_python_version key in Downloader Framework docs. (#3124)
  • Added an event reference for the on_red_api_tokens_update event in the Shared API Keys docs. (#3134)
  • Added notes explaining the best practices with config. (#3149)
  • Documented additional attributes in Context. (#3151)
  • Updated Windows docs with up to date dependency instructions. (#3188)
  • Added a “Publishing cogs for V3” document explaining how to make user’s cogs work with Downloader. (#3234)
  • Fixed broken docs for redbot.core.commands.Context.react_quietly. (#3257)
  • Updated copyright notices on License and RTD config to 2020. (#3259)
  • Added a line about setuptools and wheel. (#3262)
  • Ensured development builds are not advertised to the wrong audience. (#3292)
  • Clarified the usage intent of some of the chat formatting functions. (#3292)

Admin

Breaking Changes

  • Changed [p]announce ignore and [p]announce channel to [p]announceset ignore and [p]announceset channel. (#3250)
  • Changed [p]selfrole <role> to [p]selfrole add <role>, changed [p]selfrole add to [p]selfroleset add , and changed [p]selfrole delete to [p]selfroleset remove. (#3250)

Bug Fixes

  • Fixed [p]announce failing after encountering an error attempting to message the bot owner. (#3166)
  • Improved the clarity of user facing messages when the user is not allowed to do something due to Discord hierarchy rules. (#3250)
  • Fixed some role managing commands not properly checking if Red had manage_roles perms before attempting to manage roles. (#3250)
  • Fixed [p]editrole commands not checking if roles to be edited are higher than Red’s highest role before trying to edit them. (#3250)
  • Fixed [p]announce ignore and [p]announce channel not being able to be used by guild owners and administrators. (#3250)

Enhancements

  • Added custom issue messages for adding and removing roles, this makes it easier to create translations. (#3016)

Audio

Bug Fixes

  • [p]playlist remove now removes the playlist url if the playlist was created through [p]playlist save. (#2861)
  • Users are no longer able to accidentally overwrite existing playlist if a new one with the same name is created/renamed. (#2861)
  • [p]audioset settings no longer shows lavalink JAR version. (#2904)
  • Fixed a KeyError: loadType when trying to play tracks. (#2904)
  • [p]audioset settings now uses ctx.is_owner() to check if the context author is the bot owner. (#2904)
  • Fixed track indexs being off by 1 in [p]search. (#2940)
  • Fixed an issue where updating your Spotify and YouTube Data API tokens did not refresh them. (#3047)
  • Fixed an issue where the blacklist was not being applied correctly. (#3047)
  • Fixed an issue in [p]audioset restrictions blacklist list where it would call the list a Whitelist. (#3047)
  • Red’s status is now properly cleared on emptydisconnect. (#3050)
  • Fixed a console spam caused sometimes when auto disconnect and auto pause are used. (#3123)
  • Fixed an error that was thrown when running [p]audioset dj. (#3165)
  • Fixed a crash that could happen when the bot can’t connect to the lavalink node. (#3238)
  • Restricted the number of songs shown in the queue to first 500 to avoid heartbeats. (#3279)
  • Added more cooldowns to playlist commands and restricted the queue and playlists to 10k songs to avoid bot errors. (#3286)

Enhancements

  • [p]playlist upload will now load playlists generated via [p]playlist download much faster if the playlist uses the new scheme. (#2861)

  • [p]playlist commands now can be used by everyone regardless of DJ settings, however it will respect DJ settings when creating/modifying playlists in the server scope. (#2861)

  • Spotify, Youtube Data, and Lavalink API calls can be cached to avoid repeated calls in the future, see [p]audioset cache. (#2890)

  • Playlists will now start playing as soon as first track is loaded. (#2890)

  • [p]audioset localpath can set a path anywhere in your machine now. Note: This path needs to be visible by Lavalink.jar. (#2904)

  • [p]queue now works when there are no tracks in the queue, showing the track currently playing. (#2904)

  • [p]audioset settings now reports Red Lavalink version. (#2904)

  • Adding and removing reactions in Audio is no longer a blocking action. (#2904)

  • When shuffle is on, queue now shows the correct play order. (#2904)

  • [p]seek and [p]skip can be used by user if they are the song requester while DJ mode is enabled and votes are disabled. (#2904)

  • Adding a playlist and an album to a saved playlist skips tracks already in the playlist. (#2904)

  • DJ mode is now turned off if the DJ role is deleted. (#2904)

  • When playing a localtrack, [p]play and [p]bumpplay no longer require the use of the prefix “localtracks".

    Before: [p]bumpplay localtracks\\ENM\\501 - Inside The Machine.mp3 Now: [p]bumpplay ENM\\501 - Inside The Machine.mp3 Now nested folders: [p]bumpplay Parent Folder\\Nested Folder\\track.mp3 (#2904)

  • Removed commas in explanations about how to set API keys. (#2905)

  • Expanded local track support to all file formats (m3u, m4a, mp4, etc). (#2940)

  • Cooldowns are now reset upon failure of commands that have a cooldown timer. (#2940)

  • Improved the explanation in the help string for [p]audioset emptydisconnect. (#3051)

  • Added a typing indicator to playlist dedupe. (#3058)

  • Exposed clearer errors to users in the play commands. (#3085)

  • Better error handling when the player is unable to play multiple tracks in the sequence. (#3165)

New Features

  • Added support for nested folders in the localtrack folder. (#270)

  • Now auto pauses the queue when the voice channel is empty. (#721)

  • All Playlist commands now accept optional arguments, use [p]help playlist <subcommand> for more details. (#2861)

  • [p]playlist rename will now allow users to rename existing playlists. (#2861)

  • [p]playlist update will now allow users to update non-custom Playlists to the latest available tracks. (#2861)

  • There are now 3 different scopes of playlist. To define them, use the --scope argument.

    Global Playlist

    • These playlists will be available in all servers the bot is in.
    • These can be managed by the Bot Owner only.

    Server Playlist

    • These playlists will only be available in the server they were created in.
    • These can be managed by the Bot Owner, Guild Owner, Mods, Admins, DJs, and the Creator (if the DJ role is disabled).

    User Playlist

    • These playlists will be available in all servers both the bot and the creator are in.
    • These can be managed by the Bot Owner and Creator only. (#2861)
  • [p]audioset cache can be used to set the cache level. It’s off by default. (#2904)

  • [p]genre can be used to play spotify playlists. (#2904)

  • [p]audioset cacheage can be used to set the maximum age of an entry in the cache. Default is 365 days. (#2904)

  • [p]audioset autoplay can be used to enable auto play once the queue runs out. (#2904)

  • New events dispatched by Audio.

    • on_red_audio_track_start(guild: discord.Guild, track: lavalink.Track, requester: discord.Member)
    • on_red_audio_track_end(guild: discord.Guild, track: lavalink.Track, requester: discord.Member)
    • on_red_audio_track_enqueue(guild: discord.Guild, track: lavalink.Track, requester: discord.Member)
    • on_red_audio_track_auto_play(guild: discord.Guild, track: lavalink.Track, requester: discord.Member)
    • on_red_audio_queue_end(guild: discord.Guild, track: lavalink.Track, requester: discord.Member)
    • on_red_audio_audio_disconnect(guild: discord.Guild)
    • on_red_audio_skip_track(guild: discord.Guild, track: lavalink.Track, requester: discord.Member) (#2904)
  • [p]queue shuffle can be used to shuffle the queue manually. (#2904)

  • [p]queue clean self can be used to remove all songs you requested from the queue. (#2904)

  • [p]audioset restrictions can be used to add or remove keywords which songs must have or are not allowed to have. (#2904)

  • [p]playlist dedupe can be used to remove duplicated tracks from a playlist. (#2904)

  • [p]autoplay can be used to play a random song. (#2904)

  • [p]bumpplay can be used to add a song to the front of the queue. (#2940)

  • [p]shuffle has an additional argument to tell the bot whether it should shuffle bumped tracks. (#2940)

  • Added global whitelist/blacklist commands. (#3047)

  • Added self-managed daily playlists in the GUILD scope, these are called “Daily playlist - YYYY-MM-DD” and auto delete after 7 days. (#3199)

CustomCom

Enhancements

  • The group command [p]cc create can now be used to create simple CCs without specifying “simple”. (#1767)
  • Added a query option for CC typehints for URL-based CCs. (#3228)
  • Now uses the humanize_list utility for iterable parameter results, e.g. {#:Role.members}. (#3277)

Downloader

Bug Fixes

  • Made the regex for repo names use raw strings to stop causing a DeprecationWarning for invalid escape sequences. (#2571)
  • Downloader will no longer attempt to install cogs that are already installed. (#2571)
  • Repo names can now only contain the characters listed in the help text (A-Z, 0-9, underscores, and hyphens). (#2827)
  • [p]findcog no longer attempts to find a cog for commands without a cog. (#2902)
  • Downloader will no longer attempt to install a cog with same name as another cog that is already installed. (#2927)
  • Added error handling for when a remote repository or branch is deleted, now notifies the which repository failed and continues to update the others. (#2936)
  • [p]cog install will no longer error if a cog has an empty install message. (#3024)
  • Made redbot.cogs.downloader.repo_manager.Repo.clean_url work with relative urls. This property is str type now. (#3141)
  • Fixed an error on repo add from empty string values for the install_msg info.json field. (#3153)
  • Disabled all git auth prompts when adding/updating a repo with Downloader. (#3159)
  • [p]findcog now properly works for cogs with less typical folder structure. (#3177)
  • [p]cog uninstall now fully unloads cog - the bot will not try to load it on next startup. (#3179)

Enhancements

  • Downloader will now check if the Python and bot versions match requirements in info.json during update. (#1866)
  • [p]cog install now accepts multiple cog names. (#2527)
  • When passing cogs to [p]cog update, it will now only update those cogs, not all cogs from the repo those cogs are from. (#2527)
  • Added error messages for failures when installing/reinstalling requirements and copying cogs and shared libraries. (#2571)
  • [p]findcog now uses sanitized urls (without HTTP Basic Auth fragments). (#3129)
  • [p]repo info will now show the repo’s url, branch, and authors. (#3225)
  • [p]cog info will now show cog authors. (#3225)
  • [p]findcog will now show the repo’s branch. (#3225)

New Features

  • Added [p]repo update [repos] which updates repos without updating the cogs from them. (#2527)
  • Added [p]cog installversion <repo_name> <revision> <cogs> which installs cogs from a specified revision (commit, tag) of the given repo. When using this command, the cog will automatically be pinned. (#2527)
  • Added [p]cog pin <cogs> and [p]cog unpin <cogs> for pinning cogs. Cogs that are pinned will not be updated when using update commands. (#2527)
  • Added [p]cog checkforupdates that lists which cogs can be updated (including pinned cog) without updating them. (#2527)
  • Added [p]cog updateallfromrepos <repos> that updates all cogs from the given repos. (#2527)
  • Added [p]cog updatetoversion <repo_name> <revision> [cogs] that updates all cogs or ones of user’s choosing to chosen revision of the given repo. (#2527)
  • Added [p]cog reinstallreqs that reinstalls cog requirements and shared libraries for all installed cogs. (#3167)

Documentation Changes

  • Added redbot.cogs.downloader.installable.InstalledModule to Downloader’s framework docs. (#2527)
  • Removed API References for Downloader. (#3234)

Image

Enhancements

  • Updated the giphycreds command to match the formatting of the other API commands. (#2905)
  • Removed commas from explanations about how to set API keys. (#2905)

Mod

Bug Fixes

  • [p]userinfo no longer breaks when a user has an absurd numbers of roles. (#2910)
  • Fixed Mod cog not recording username changes for [p]names and [p]userinfo commands. (#2918)
  • Fixed [p]modset deletedelay deleting non-command messages. (#2924)
  • Fixed an error when reloading Mod. (#2932)

Enhancements

  • Slowmode now accepts integer-only inputs as seconds. (#2884)

Permissions

Bug Fixes

  • Defaults are now cleared properly when clearing all rules. (#3037)

Enhancements

  • Better explained the usage of commands with the <who_or_what> argument. (#2991)

Streams

Bug Fixes

  • Fixed a TypeError in the TwitchStream class when calling Twitch client_id from Red shared APIs tokens. (#3042)
  • Changed the stream_alert function for Twitch alerts to make it work with how the TwitchStream class works now. (#3042)

Enhancements

  • Removed commas from explanations about how to set API keys. (#2905)

Trivia

Bug Fixes

  • Fixed a typo in Ahsoka Tano’s name in the Starwars trivia list. (#2909)
  • Fixed a bug where [p]trivia leaderboard failed to run. (#2911)
  • Fixed a typo in the Greek mythology trivia list regarding Hermes’ staff. (#2994)
  • Fixed a question in the Overwatch trivia list that accepted blank responses. (#2996)
  • Fixed questions and answers that were incorrect in the Clash Royale trivia list. (#3236)

Enhancements

  • Added trivia lists for Prince and Michael Jackson lyrics. (#12)