Releases: Cog-Creators/Red-DiscordBot
3.0.0rc1
Breaking Changes
- (Windows only) Minimum Python version upgraded to 3.6.6
- All cogs must now inherit from
commands.Cog
(see #2151 for more discussion and details). - A few changes to the
redbot.core.checks
module:check_overrides
has been removed, overrideable checks can now be created with thecommands.permissions_check
function.is_mod_or_superior
,is_admin_or_superior
andcheck_permissions
functions are now deprecated, use replacements inredbot.core.utils.mod
instead.
- The
__red_permissions_before
and__red_permissions_after
hooks are no longer recognised, either rename to__permissions_hook
or use thebot.add_permissions_hook
method.
For Translators
A bunch of strings have just been updated on Crowdin, and a lot of new ones have been added. Hopefully we've made it easier for you to translate some of them. In particular, variable placeholders (the stuff in curly brackets {}
) should all now be named, so you should know what the placeholders mean. This is to make it easier for you to know where to move the placeholder, should it be required by the language's grammar. Just make sure you don't change what's inside the placeholder (including the curly brackets), or remove any of them from the string!
Release Notes
[NEW FEATURES]
- [Cleanup]
[p]cleanup before
command added, thanks @bobloy (#2171) - [Config] Add
Group.clear_raw
method, thanks @Zephyrkul (#2178) - [CustomCommands] #2120: Cooldowns for custom commands, thanks @Zephyrkul (#2124)
- [Filter] #1873: Channels, roles and/or users can now be exempted (#2164)
- [Utils] New utility for common message/reaction_add checks (#1985, #2169, #1986)
- #2125: Bot-wide settings for automod immunity (#2129)
[CHANGED]
- [Permissions] YAML commands now located in
[p]permissions acl
group (#2149) - Rewrite of permissions and default command checks backend (#2149)
[ENHANCED]
- [Audio] Added info to nofify messages and
[p]playlist list
(#2155) - [Audio] More robust startup and unload (#2118)
- [Downloader] Handle
/tree/branch
at the end of repo URLs (#2119) - [Downloader] #1683:
[p]cog update
now tells what cogs are updated and does a reload prompt (#2165) - [Downloader] More robust startup (#2121)
- [Downloader] #1968: Submodules now updated when cloning/pulling repos (#2121)
- [Trivia] Normalize smart quotes in answers (#2162)
- [Utils]
menu()
can be used in DM, thanks @bobloy (#2183) - [Utils] Some markdown helpers can escape special characters (#2182)
- #2031: Refactor fuzzy help and clean up help command (#2122)
- JSON driver write atomicity (#2132)
- General performance and design improvements for command checks and permissons cog
- Updated a bunch of dependencies (#2148, #2175)
- Added
schema
as a dependency (#2149) - MongoDB driver can use
mongodb+srv
URI protocol, thanks @yamikaitou (#2159) @commands.bot_has_permissions
checks failing will report missing permissions to user (#2149)- Default command permissions clearer and more transparent in
Command.requires
attribute (#2149) - General quality improvement of core cogs' user-facing strings and command help (#2074)
[FIXED]
- [Audio]
[p]pause
causes error when player is stopped (#2130) - [Audio] Volume able to be set to a negative value (#2155)
- [Core] #2133: Local blacklist+whitelist ignoring roles (#2134)
- [Downloader] #1950: Missing repos from repo list (#2121)
- [Image] Update relic V2-style command decorators, thanks @bobloy (#2138)
- [Launcher] Asking for CLI flags when no instance is found, thanks @bobloy (#2142)
- [Mod] #2127: Mods can ban other mods with
[p]hackban
(#2128) - [Mod] #2160: Tempban not removing user from settings on unban (#2161)
- [Permissions] #1931: Inability to add overrides for subcommands (#2149)
- [RPC] Add missing await to
bot.load_extension()
, thanks @bobloy (#2167) - [Trivia] Boolean answers not being parsed properly, thanks @bobloy (#2172)
- Various cogs not pagifying properly, thanks @Zephyrkul (#2131)
- C Compiler detection failing on Windows (#2136)
- Red.send_filtered missing
@staticmethod
decorator, thanks @Zephyrkul (#2143) - Sentry errors with commands with no module, thanks @Zephyrkul (#2139)
Release 3.0.0b21
[ADDED]
- Local audio playback (#2097)
- Search for tracks in queue (#2097)
- #1938: Command disable feature (#2099)
- Parameters for Custom Commands, thanks @Zephyrkul (#2051)
[p]sing
command for Audio, thanks @Zephyrkul (#2067)
[ENHANCED]
- #2014: Warnings tries to help users understand custom reasons (#2049)
- Filter mentions from
[p]names
command (#2081) [p]serverinfo
respects set embed colour, thanks @Brramble (#2083)- Make missing python-Levenshtein warning friendlier (#2096)
[FIXED]
- Using
[p]now
with thumbnail (#2063) - Launcher uses actual python interpreter to run pip, thanks @Zephyrkul (#2080)
- #2052: Streams writing excessively to config (#2095)
- #1904: Filter not working on sentences (#2065)
- #2066: Audio unable to load on Windows (#2062)
- #2079: Unescaped username/password for MongoDB (#2111)
[UPDATED]
- Some dependencies (#2100):
- discord.py Rapptz/discord.py@8ccb98d -> Rapptz/discord.py@00a659c
Release 3.0.0b20
[UPDATED]
- Lots of dependencies (#1974)
- discord.py to revision
8ccb98d395537b1c9acc187e1647dfdd07bb831b
- Python compatibility to >=3.6,<3.8
- aiohttp 3.3.2
- Websockets 6.0
- Other dependency versions can be seen in our setup.py
- discord.py to revision
[CHANGED]
- [BREAKING] Use of
redbot.core.commands
module enforced (#1971) - [BREAKING]
config.Group.__call__()
now mixes in defaults (#2018) - [BREAKING]
config.Group.get_raw
now mixes in defaults to dicts (#2018) - Owner commands can no longer be overridden by Permissions (#2053)
- Self-bot support removed (#2008)
[ADDED]
- Helpful task-based algorithms in utils (#1989)
- Warning to owner upon inaccurate system time detection (#2026)
- Output sanitation utilities (#1942)
- Thumbnail display for youtube tracks with toggle (#1998)
[ENHANCED]
[p]eval
has friendlier code-block stripping (#2017)- cleanup's internals have been cleaned up (#2013)
- Update from launcher will use
--user
flag when necessary, thanks @retke (#2027) - Using redgettext for string extraction to make docstrings translatable (#2023)
- Embeds in audio now respect the user's settings, thanks @Brramble (#2046)
[FIXED]
- #2015: Error when using
[p]report
in DM (#2016) - Suppression of some
ImportError
s in cogs (#1989) - Help message display for
[p]localblacklist
/[p]localwhitelist
(#2042) - #1941: users triggering mass mentions through trivia session (#1942)
- Sub-command and -group decorators moved to the right place (#1818)
- All issues resulting from namespace packages (#2028)
- Missing translation files (#2028)
- #2033: Error loading audio when
java -version
output is unexpected (#2035) - #1999: YouTube streamalert missing channel name when added by ID (#2047)
- #2003: Misleading message for common misuse of
[p]streamalert twitch channel
(#2048)
Release 3.0.0b19
[ENHANCED]
- Sentry client has been modified to use raven-aiohttp (#1967)
[p]urban
looks way more awesome, thanks @lionirdeadman (#1871)[p]reason
now edits the most recent case when the case number is omitted, thanks @retke (#1979)[p]userinfo
Will hides the Roles field when the user has no roles. (#1829)
[FIXED]
- #1943: error when unloading cogs without a module (#1984)
- Unwanted translation files being uploaded to Crowdin (#1849)
- #1975: passing floats as transactions to the bank broke stuff (#1976)
- Not being able to include "+" in a
[p]lmgtfy
search (#1991) - #1932: Unable to load streams cog with mixer alerts added (#1994)
- #1978: Error in command
[p]case
(#1981) - #1952:
[p]addrole
throwing an error on hierarchy issue (#1995) - #1982: Core/install cog paths being added implicitly (#1983)
- #1997: Missing help string for
[p]streamalert list
(#2001) - #1947:
[p]cleanup after
not deleting anything (#2004)
Release 3.0.0b18
Enhancements:
bank.withdraw_credits
will now accept 0. This allows developers to more easily create stuff that's free. (#1937)
The bot will now use uvloop
when available (#1935)
Bugfixes:
Fixed a bug with the JSON driver not being able to save ints (#1953)
Fixed a outdated help text on a dev command (#1944)
Fixed an error caused by the bot not being able to send a DM on help. (#1955)
Fixed an issue with the permissions cache (#1945)
Release 3.0.0b17
Warning:
As discussed in the Beta 16 release notes, the breaking changes of #1836 are now in effect. For more details see that Pull request.
Additions:
Autohelp changes. (#1836)
Allows the use of prefixes in install messages (#1869)
Added new flags (#1872)
Added checking for valid playlist files (#1891)
Audio now respects voice channel permissions (#1878)
The Economy leaderboards got a new look.(#1898)
Enhancements:
Embed colors are now applied to more commands (#1918)
Various changes to the Config JSON driver (#1855)
Made PyTest fixtures always available (#1858)
Show the Red version on the launcher (#1810)
Payday clarifications (#1892)
Clarified the reports help texts (#1860)
Clarified the streams help texts (#1837)
Clarified the admin help texts (#1906)
Stop the tmp
directory from showing up (#1895)
Removed every reference for Python 3.5 (#1896)
Use our own checks instead of discord.py's (#1861)
Aliased Colour
to color
(#1916)
Improved the performance of Permissions (#1885)
Improved mod/admin role logic (#1914)
Warnings got a big update (#1867)
Reports now display the member's full username and discriminator. (#1913)
Made permissions more consistent (#1905)
Audio now has a more aggressive empty disconnect (#1925)
Bugfixes:
Fixed various typos (#1917)
Fixed a bug with modset
(#1854)
Removed an outdated reference (#1856)
Fixed an example in the Config documentation (#1876)
Fixed an error in trying to grab past user/nicknames in userinfo
(#1865)
Fixed unnecessary writes on context manage exit (#1859)
Fixed data not saving on playlist create
(#1889)
Fixed cleanup messages
cleaning up to many messages (#1864)
Fixed duplicate help messages on ignore
(#1862)
Fixed DM usage in some commands (#1919)
Fixed the wrong reason being used on unbanning (#1842)
Fixed playlist queue duplicates (#1890)
Release 3.0.0b16
WARNING: Support for Python 3.5 has been DROPPED (#1721)
Note: discord.py has been pinned as a result of recent changes to its requirements. We intend to update with beta 17
A note for cog devs: Mark your command group functions with autohelp=True
or autohelp=False
in the decorator (if it applies to your cogs) as beta 17 is bringing a breaking change (see #1790)
Additions:
- Swap back to initial RPC library and hook into core commands (#1780)
- local whitelist/blacklist (#1776)
Enhancements:
- Added some tests (#1590)
- Audio: Empty channel disconnect setting (#1832)
- Command group automatic help (#1790)
- Add a requirements list to [p]cog info (#1827)
- Make hidden hidden and add disabled for info.json (#1828)
- Split available and installed cogs in [p]cog list (#1826)
- Refactor some commands for testing/RPC (#1691)
Bugfixes:
- Fix online user count in [p]serverinfo (#1844)
- Fix past nicks conversion for mod (#1840)
- Fix streams race condition (#1834)
- Catch another error on windows compiler failure (#1830)
- Send meaningful responses on conversion failure (#1817)
- Fix backup error (#1820)
- Patch issue with attachment grabbing (#1822)
- Fix formatter field pagination (#1813)
- Don't block on adding reactions (#1808)
- prevent self-casing the bot + feedback for heirarchy (#1777)
- Don't do 3rd party agreement without command args (#1821)
- Better name-as-prefix handling (#1823)
- Fix typo in load (#1814)
- Fix dm help set (#1806)
- Fix missing await (#1805)
- Cleanup quotes in cogs (#1782)
- Fixed issue with making YT Stream Embed (#1812)
- Add missing await for
[p]set prefix
(#1809) - permissions canrun fix (#1787)
- fix several issues with fuzzy command search (#1788)
- Handle token being an empty string (#1794)
- Fix display of whitelist and blacklist members (#1789)
- decorator inheritence fix (#1786)
- Fixes issue preventing token reset from setup (#1771)
- CLI prefix args correctly display in the on_ready print (#1770)
- Hide help command from help (#1772)
- Use typing.TYPE_CHECKING instead of utils.TYPE_CHECKING (#1778)
- Announce ignore parameter modification (#1781)
- Check for empty queue in [p]skip (#1769)
- Permissions: Don't rely on load order to be consistent (#1760)
- Make bot send typing whilst loading cogs (#1756)
- Clean up some ugly auto-formatted strings (#1753)
- Use sys.exit() over exit() (#1755)
- Add a much-needed forward reference (#1763)
- Add notes about case sensitivity for selfrole (#1762)
- Restrict check for reactions on [p]now (#1752)
- Fix error on [p]set command when used in DM (#1748)
- Spelling, Grammar, and doc string fixes. (#1747)
- Use Embed.Empty for unset embed colour (#1750)
Release 3.0.0b15
Deprecation warning:
The minimum version of Red will be bumped from Python 3.5 to Python 3.6 on Beta release 16.
Additions:
- Added [p]helpset (#1694)
- Added Permissions cog (#1548)
- Add a setting for embed color (#1707)
- Add
[p]repo info
and short descriptions to[p]repo list
(#1701) - Add events for modlog cases (#1717)
Enhancements:
- Initial RPC library switch (#1634)
- Install docs have been changed to guide installing 3.6 (#1685)
- Add names/nicknames and current voice channel to
[p]userinfo
- Fuzzy command search for
[p]help
(#1600) - Tagline support for
[p]help
(#1705) - Cog list is now pagified (#1662)
- Long docstrings are now pagified (#1722)
- The --dry-run flag has been implemented (#1648)
- Updated the cli flag selector in the launcher (#1696)
- Removed reactions from
[p]ping
(#1712) - Optimize
[p]backup
to reduce file size (#1666) - Help will use the bot's set color (#1706)
- Commands will silently fail if the user can't run them (#1725)
Bugfixes:
- Fixed an issue with the help command when there is not docstring for the command or cog (#1645)
- Fixed an issue with errors when importing modules not being handled (#1655)
- Fixed a couple Downloader bugs (#1692, #1693)
- fix erroneous message when transferring with insufficient funds (#1698)
- Respect administrator and guildowner permissions (#1711)
- [p]llsetup fixes (#1656)
- Add checks to alias add/del (#1676)
- Only allow audio commands in servers (#1682)
- Fix downloader test failing on Windows (#1673)
- Fix a bug with [p]warn erroring if no valid reason is passed (#1672)
- Fix a misspelling in the Admin cog (#1715)
- Fix an issue with removing Mongo instances (#1710)
- Drop unnecessary channel from
unmute server
cases (#1695) - Fixed an issue with choice of extras to install from the launcher (#1649)
- Fixed
ctx.send_help
not respecting embed setting (#1723) - Fixed an issue occurring on bot shutdown (#1726)
Dev workflow changes:
Release 3.0.0b14
Additions:
- Added a --load-cogs cli flag (#1601)
Enhancements:
- Trivia has been updated to v1.1.1 (#1635)
- Check for embed_links permission in embed_requested (#1619)
[p]ping
has been moved tocore_commands
and now responds with a ping pong paddle reaction if it can add reactions (otherwise it will fall back to saying "Pong.") (#1618)- Cleanup commands clean up after themselves (#1602)
- Cleanup now respects pinned messages by default (#1596)
- Stream alert messages are now tracked across bot restarts (#1630)
- The warning about using Python 3.6 on Windows has been dropped from the docs (#1622)
- Audio: Update queue and search to use menus (#1633)
Bug fixes:
- Fixed an issue with unmuting (#1603)
- Fixed some outdated information (#1613)
- Marked 3.7 as unsupported (#1623)
- Fixed an issue with choosing a server to leave in [p]servers (#1617)
- Fixed the help for [p]help (#1606)
- Fix [p]reason when the modlog case has no moderator (#1604)
- Add a NoneType check on trying to normalize a string (#1632)
Breaking change:
redbot.core.RedContext
has been renamed and relocated toredbot.core.commands.Context
(#1143)redbot.core.i18n.CogI18n
has been renamed toredbot.core.i18n.Translator
(#1143)
Note:
As of this release, changes have been added to prepare for a permissions cog. These changes do allow for third party permissions cogs to replace the core one.
Any cog named Permissions
must either not have a function named, or implement a function named check_overrides
as a coroutine that takes 2 arguments, (context and a level) and must return None, True or False
More documentation on this is coming soon
Release 3.0.0b13
Additions:
Added a new menu system for developers to use (#1566)
Added the option to reinstall red from the launcher (#1536)
Provided an extra method for working with Embeds (#1558)
Enhancements:
Audio now has a updated playlist mechanic with the ability to import v2 playlists (#1579)
Cleanup now supports cleaning users who have left the guild (#1561)
Bug fixes:
Fixed an issue with info and the recent PyPi change (#1581)
Fixed various grammar errors (#1539, #1582)
Fixed an issue where unmuting didn't work (#1568)
Fixed an issue whereby a zombie process would be left behind if Red died (#1575)
Fixed some issues with warnings (#1577)
Fixed numbering and leaving servers if the bot is a server owner (#1580, fun fact, bots can own a server if they are in less then 10 guilds!)
Fixed an issue with backing up data in the launcher on python 3.5.x (#1588)
Fixed various issues with reports (#1541)
Fixed an issue in SimpleEmbed (#1555)
Fixed files not having the right permissions (#1578)
Fixed an issue with non-existing sub-commands (#1565)
Breaking changes:
The following breaking changes have been planned for the upcoming releases.
Beta 14: The following imports need to replaced (PR #1143)
redbot.core.RedContext
has been renamed and relocated toredbot.core.commands.Context
.redbot.core.i18n.CogI18n
has been renamed toredbot.core.i18n.Translator
.
Near future: Changes will be added to prepare for a permissions cog. These changes do allow for third party permissions cogs to replace the core one. (PR #1548)
Any cog named Permissions
must either not have a function named, or implement a function named check_overrides
as a coroutine that takes 2 arguments, (context and a level) and must return None, True or False
More documentation on this is coming soon