diff --git a/docs/bot_application_guide.rst b/docs/bot_application_guide.rst index 26655c5a3..0c9a17686 100644 --- a/docs/bot_application_guide.rst +++ b/docs/bot_application_guide.rst @@ -4,6 +4,8 @@ Creating a bot account To use Red you will require a bot account and to enable privileged intents. Both these steps will be covered below. +.. _creating-a-bot-account: + ------------------------------- Creating the bot application ------------------------------- @@ -48,6 +50,7 @@ Creating a Bot account is a pretty straightforward process. Continue to the next section to enable privileged intents. +.. _enabling-privileged-intents: ------------------------------- Enabling Privileged Intents diff --git a/docs/changelog_3_4_0.rst b/docs/changelog_3_4_0.rst index 634271b44..db4b83a6d 100644 --- a/docs/changelog_3_4_0.rst +++ b/docs/changelog_3_4_0.rst @@ -1,6 +1,212 @@ .. 3.4.x Changelogs -Redbot 3.4.0 (2020-08-18) +Redbot 3.4.1 (2020-10-27) +========================= + +| Thanks to all these amazing people that contributed to this release: +| :ghuser:`absj30`, :ghuser:`aikaterna`, :ghuser:`bobloy`, :ghuser:`chloecormier`, :ghuser:`Dav-Git`, :ghuser:`Drapersniper`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`Generaleoley`, :ghuser:`hisztendahl`, :ghuser:`jack1142`, :ghuser:`KaiGucci`, :ghuser:`Kowlin`, :ghuser:`maxbooiii`, :ghuser:`MeatyChunks`, :ghuser:`NeuroAssassin`, :ghuser:`nfitzen`, :ghuser:`palmtree5`, :ghuser:`phenom4n4n`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`PythonTryHard`, :ghuser:`SharkyTheKing`, :ghuser:`Stonedestroyer`, :ghuser:`thisisjvgrace`, :ghuser:`TrustyJAID`, :ghuser:`TurnrDev`, :ghuser:`Vexed01`, :ghuser:`Vuks69`, :ghuser:`xBlynd`, :ghuser:`zephyrkul` + +Read before updating +-------------------- + +1. This Red update bumps discord.py to version 1.5.1, which explicitly requests Discord intents. Red requires all Prvileged Intents to be enabled. More information can be found at :ref:`enabling-privileged-intents`. +2. 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 `. +3. 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.yml`` appropriately. + Please ensure that the WS port in Audio's settings (``[p]llset wsport``) is set to the port from the ``application.yml``. + +End-user changelog +------------------ + +Core Bot +******** + +- Fixed an incorrect error being reported on ``[p]set name`` when the passed name was longer than 32 characters (:issue:`4364`, :issue:`4363`) +- Fixed ``[p]set nickname`` erroring when the passed name was longer than 32 characters (:issue:`4364`, :issue:`4363`) +- Fixed an ungraceful error being raised when running ``[p]traceback`` with closed DMs (:issue:`4329`) +- Fixed errors that could arise from invalid URLs in ``[p]set avatar`` (:issue:`4437`) +- Fixed an error being raised with ``[p]set nickname`` when no nickname was provided (:issue:`4451`) +- Fixed and clarified errors being raised with ``[p]set username`` (:issue:`4463`) +- Fixed an ungraceful error being raised when the output of ``[p]unload`` is larger than 2k characters (:issue:`4469`) +- Fixed an ungraceful error being raised when running ``[p]choose`` with empty options (:issue:`4499`) +- Fixed an ungraceful error being raised when a bot left a guild while a menu was open (:issue:`3902`) +- Fixed info missing on the non-embed version of ``[p]debuginfo`` (:issue:`4524`) +- Added ``[p]set api list`` to list all currently set API services, without tokens (:issue:`4370`) +- Added ``[p]set api remove`` to remove API services, including tokens (:issue:`4370`) +- Added ``[p]helpset usetick``, toggling command message being ticked when help is sent to DM (:issue:`4467`, :issue:`4075`) +- Added a default color field to ``[p]set showsettings`` (:issue:`4498`, :issue:`4497`) +- Added the datapath and metadata file to ``[p]debuginfo`` (:issue:`4524`) +- Added a list of disabled intents to ``[p]debuginfo`` (:issue:`4423`) +- Bumped discord.py dependency to version 1.5.1 (:issue:`4423`) +- Locales and regional formats can now be set in individual guilds using ``[p]set locale`` and ``[p]set regionalformat`` (:issue:`3896`, :issue:`1970`) + + - Global locale and regional format setters have been renamed to ``[p]set globallocale`` and ``[p]set globalregionalformat`` + +Audio +***** + +- Scattered grammar and typo fixes (:issue:`4446`) +- Fixed Bandcamp playback (:issue:`4504`) +- Fixed YouTube playlist playback (:issue:`4504`) +- Fixed YouTube searching issues (:issue:`4504`) +- Fixed YouTube age restricted track playback (:issue:`4504`) +- Fixed the Audio cog not being translated when setting locale (:issue:`4492`, :issue:`4495`) +- Fixed tracks getting stuck at 0:00 after long player sessions (:issue:`4529`) +- Removed lavalink logs from being added to backup (:issue:`4453`, :issue:`4452`) +- Removed stream durations from being in queue duration (:issue:`4513`) +- Added the Global Audio API, to cut down on Youtube 429 errors and allow Spotify playback past user's quota. (:issue:`4446`) +- Added persistent queues, allowing for queues to be restored on a bot restart or cog reload (:issue:`4446`) +- Added ``[p]audioset restart``, allowing for Lavalink connection to be restarted (:issue:`4446`) +- Added ``[p]audioset autodeafen``, allowing for bot to auto-deafen itself when entering voice channel (:issue:`4446`) +- Added ``[p]audioset mycountrycode``, allowing Spotify search locale per user (:issue:`4446`) +- Added ``[p]llsetup java``, allowing for a custom Java executable path (:issue:`4446`) +- Added ``[p]llset info`` to show Lavalink settings (:issue:`4527`) +- Added ``[p]audioset logs`` to download Lavalink logs if the Lavalink server is set to internal (:issue:`4527`) + +Cleanup +******* + +- Allowed ``[p]cleanup self`` to work in DMs for all users (:issue:`4481`) + +Custom Commands +*************** + +- Fixed an ungraceful error being thrown on ``[p]cc edit`` (:issue:`4325`) + +Dev +*** + +- Added ``[p]repl pause`` to pause/resume the REPL session in the current channel (:issue:`4366`) + +Economy +******* + +- Added an embed option for ``[p]leaderboard`` (:issue:`4184`, :issue:`4104`) + +General +******* + +- Fixed issues with text not being properly URL encoded (:issue:`4024`) +- Fixed an ungraceful error occurring when a title is longer than 256 characters in ``[p]urban`` (:issue:`4474`) +- Changed "boosters" to "boosts" in ``[p]serverinfo`` to clarify what the number represents (:issue:`4507`) + +Mod +*** + +- Added ``[p]modset mentionspam strict`` allowing for duplicated mentions to count towards the mention spam cap (:issue:`4359`) +- Added an option to ban users not in the guild to ``[p]ban`` (:issue:`4422`, :issue:`4419`) +- Added a default tempban duration for ``[p]tempban`` (:issue:`4473`, :issue:`3992`) +- Fixed nicknames not being properly stored and logged (:issue:`4131`) +- Fixed plural typos in ``[p]userinfo`` (:issue:`4397`, :issue:`4379`) +- Renamed ``[p]hackban`` to ``[p]massban``, keeping ``[p]hackban`` as an alias, allowing for multiple users to be banned at once (:issue:`4422`, :issue:`4419`) +- Moved mutes to a separate, individual cog (:issue:`3634`) + +.. _important-341-1: + +Mutes +***** + +- Added ``[p]muteset forcerole`` to make mutes role based, instead of permission based (:issue:`3634`) +- Added an optional time argument to all mutes, to specify when the user should be unmuted (:issue:`3634`) +- Changed ``[p]mute`` to only handle serverwide muting, ``[p]mute voice`` and ``[p]mute channel`` have been moved to separate commands called ``[p]mutechannel`` and ``[p]mutevoice`` (:issue:`3634`) +- Mute commands can now take multiple user arguments, to mute multiple users at a time (:issue:`3634`) + +Modlog +****** + +- Fixed an error being raised when running ``[p]casesfor`` and ``[p]case`` (:issue:`4415`) +- Long reasons in Modlog are now properly shortened in message content (:issue:`4541`) + +Trivia Lists +************ + +- Fixed incorrect order of Machamp and Machoke questions (:issue:`4424`) +- Added new MLB trivia list (:issue:`4455`) +- Added new Who's That Pokémon - Gen. IV trivia list (:issue:`4434`) +- Added new Hockey trivia list (:issue:`4384`) + +Warnings +******** + +- Fixed users being able to warn users above them in hierarchy (:issue:`4100`) +- Added bool arguments to toggle commands to improve consistency (:issue:`4409`) + +Developer changelog +------------------- + +| **Important:** +| 1. Red now allows users to set locale per guild, which requires 3rd-party cogs to set contextual locale manually in code ran outside of command's context. See the `Core Bot changelog below ` for more information. + +.. _important-dev-341-1: + +Core Bot +******** + +- Added API for setting contextual locales (:issue:`3896`, :issue:`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 `guidelines-for-cog-creators` for more information + +- Added `bot.remove_shared_api_services() ` to remove all keys and tokens associated with an API service (:issue:`4370`) +- Added an option to return all tokens for an API service if ``service_name`` is not specified in `bot.get_shared_api_tokens() ` (:issue:`4370`) +- Added `bot.get_or_fetch_user() ` and `bot.get_or_fetch_member() ` methods (:issue:`4403`, :issue:`4402`) +- Moved ``redbot.core.checks.bot_in_a_guild()`` to `redbot.core.commands.bot_in_a_guild()` (old name has been left as an alias) (:issue:`4515`, :issue:`4510`) + +Bank +**** + +- Bank API methods now consistently throw TypeError if a non-integer amount is supplied (:issue:`4376`) + +Mod +*** + +- Deprecated ``redbot.core.utils.mod.is_allowed_by_hierarchy`` (:issue:`4435`) + +Modlog +****** + +- Added an option to accept a ``discord.Object`` in case creation (:issue:`4326`) +- Added ``last_known_username`` parameter to `modlog.create_case()` function (:issue:`4326`) +- Fixed an error being raised with a deleted channel in `Case.message_content()` (:issue:`4415`) + +Utility +******* + +- Added `redbot.core.utils.get_end_user_data_statement()` and `redbot.core.utils.get_end_user_data_statement_or_raise()` to attempt to fetch a cog's End User Data Statement (:issue:`4404`) +- Added `redbot.core.utils.chat_formatting.quote()` to quote text in a message (:issue:`4425`) + +Documentation changes +--------------------- + +Config +****** + +- Added custom group documentation and tutorial (:issue:`4416`, :issue:`2896`) + +Modlog +****** + +- Clarified that naive ``datetime`` objects will be treated as local times for parameters ``created_at`` and ``until`` in `modlog.create_case()` (:issue:`4389`) + +Other +***** + +- Added guide to creating a Bot Application in Discord Developer Portal, with enabling intents (:issue:`4502`) + +Miscellaneous +------------- + +- Added JSON schema files for ``info.json`` files (:issue:`4375`) +- Added ``[all]`` and ``[dev]`` bundled install extras (:issue:`4443`) +- Replaced the link to the approved repository list on CogBoard and references to ``cogs.red`` with a link to new Red Index (:issue:`4439`) +- Improved documentation about arguments in command syntax (:issue:`4058`) +- Replaced a few instances of Red with the bot name in command docstrings (:issue:`4470`) +- Fixed grammar in places scattered throughout bot (:issue:`4500`) +- Properly define supported Python versions to be lower than 3.9 (:issue:`4538`) + + +Redbot 3.4.0 (2020-08-17) ========================= | Thanks to all these amazing people that contributed to this release: diff --git a/docs/guide_cog_creation.rst b/docs/guide_cog_creation.rst index 555df3923..ce3ce0834 100644 --- a/docs/guide_cog_creation.rst +++ b/docs/guide_cog_creation.rst @@ -258,3 +258,8 @@ Not all of these are strict requirements (some are) but are all generally advisa variable ``__red_end_user_data_statement__``. This should be a string containing a user friendly explanation of what data your cog stores and why. + +18. Set contextual locales in events and other background tasks that use i18n APIs + + - See `redbot.core.i18n.set_contextual_locales_from_guild()` + - Usage of i18n APIs within commands automatically has proper contextual locales set. diff --git a/docs/update_red.rst b/docs/update_red.rst index aecfe9c8b..cd7a5d9c6 100644 --- a/docs/update_red.rst +++ b/docs/update_red.rst @@ -14,6 +14,10 @@ Here are some things to consider to help make your upgrade as smooth as possible If you're developing for Red, you should also look for "Breaking changes" sections in release notes for each minor (X.Y.0) version that's been released since you last updated Red. +.. important:: + + Make sure to read the **Read before updating** sections of the changelogs for all releases that were published since you last updated your instance. They contain important information and if you don't read them, you might run into some issues later. + Updating differs depending on the version you currently have. Next sections will explain how to upgrade to latest version of Red (|version|) from the version that is in the header of the section. .. contents:: Choose the version you're currently on from the list below: