Compare commits

..

233 Commits

Author SHA1 Message Date
github-actions[bot]
7e9e596141 [3.4] Version bump to 3.4.15 (#5513)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-31 03:31:11 +01:00
github-actions[bot]
23b3144c84 [3.4] [i18n] Automated Crowdin downstream (#5514)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-31 03:30:33 +01:00
Red-GitHubBot
3e8b51e117 [3.4] Red 3.4.15 - Changelog (#5504) (#5512)
* [3.4] Red 3.4.15 - Changelog (#5504)

* Red 3.4.15 - Changelog

* Use stronger words

* Add jar stuff

* Add 5499

* Minor grammar stuff

* add 5472

* Add 5452

* Add 5448

* Add date and contributors

* Update docs/changelog_3_4_0.rst

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>

* the other thing

(cherry picked from commit a4ba249e27)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>

* Red->RedBase

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>
2021-12-31 03:21:39 +01:00
Red-GitHubBot
7245c778e4 [3.4] Only check for permissions when check_permissions is True (#5510) (#5511)
(cherry picked from commit 1ecbe6cebb)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-31 03:03:11 +01:00
Red-GitHubBot
3045989a5f [3.4] [Events] Rename guild remove listener (#5498) (#5509)
* [Events] on_guild_leave => on_guild_remove

* [Events] on_guild_leave => on_guild_remove
(cherry picked from commit a787033e1d)

Co-authored-by: Just-Jojo <62262765+Just-Jojo@users.noreply.github.com>

Co-authored-by: Just-Jojo <62262765+Just-Jojo@users.noreply.github.com>
2021-12-31 01:24:06 +00:00
Red-GitHubBot
f500062979 [3.4] Add non-interactive mode to redbot-setup (#5448) (#5508)
* Simplify `redbot-setup backup` thanks to Click 8.0

* Add some of the missing type hints

* Fix unnecessary new lines in `redbot-setup` and `redbot-setup delete`

* Add default value for storage backend

* Add non-interactive mode to `redbot-setup`
(cherry picked from commit 8cc004f70f)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-31 02:11:11 +01:00
Red-GitHubBot
1027d95092 [3.4] Make embeds in help output consistent (#5452) (#5507)
* Add `check_permissions` kwarg to `bot.embed_requested()`

* Make embeds in help consistent regardless of why it's being sent
(cherry picked from commit ff7c146b62)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-31 01:03:11 +00:00
jack1142
fb08cd0520 [3.4] Fix error in tempban for guilds with unused vanity feature (#5472) 2021-12-31 01:45:55 +01:00
Red-GitHubBot
11cb5e3414 [3.4] Ensure Nitro users can't make CCs that are too long (#5499) (#5506)
* Ensure Nitro users can't make CCs that are too long

Co-authored-by: TrustyJAID <TrustyJAID@gmail.com>

* Tox formatting

* Update to account for edits and better handling of randoms

(cherry picked from commit faab711ec8)

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
Co-authored-by: TrustyJAID <TrustyJAID@gmail.com>

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
Co-authored-by: TrustyJAID <TrustyJAID@gmail.com>
2021-12-31 00:41:19 +00:00
Red-GitHubBot
bbfe0d24ad [3.4] Update Lavalink.jar, Red-Lavalink and make changes to support it (#5474) (#5505)
* Lavalink error handling update

* comment typo

* address review

* Update redbot/cogs/audio/core/events/lavalink.py

* Bump jar version

* Bump RLL version

(cherry picked from commit c49d0ec9d3)

Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-31 00:18:03 +00:00
Red-GitHubBot
730c650bb4 [3.4] Fix short help in docstrings for core cogs and commands (#5502) (#5503)
* fix part of command description not appearing in the help command.

* Add more

(cherry picked from commit 337f58f9fb)

Co-authored-by: GhOsT <79806064+Arman0334@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: GhOsT <79806064+Arman0334@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-30 21:32:59 +00:00
Red-GitHubBot
cb4058ef10 [3.4] Allow mocking attachment-only msg, fix docstring, small refactor (#5446) (#5497)
* Use the logic from `[p]mock` in `[p]mockmsg`, fix docstring

* Let people mock attachment-only messages

* Use empty string, not None
(cherry picked from commit 9c05db1104)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-26 21:15:40 +00:00
Red-GitHubBot
09f19b0cf7 [3.4] Remove old note about updating Red in Unix install guides (#5439) (#5495)
This was removed long ago from the Windows guide (#4119) but it seems like we never got around to removing it from Unix install guides as well.
This note is rather inaccurate and the source of truth for updating Red is available in the Updating Red document.
(cherry picked from commit 90406be9ea)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-26 21:01:56 +00:00
jack1142
93d47c1192 [3.4] Update supported OSes (add Alma Linux, RPi OS 11, drop EOL OSes) (#5440) (#5496)
* Drop Fedora 33

By the time we release, it's going to reach EOL.

* Drop Raspberry Pi OS 10, add support for 11

* Bring RPi OS 10 back

* Add Alma Linux 8

* Fix-up RHEL EOL dates

* Add '(Legacy)' to Raspberry Pi OS 10

* Drop CentOS 8.
(cherry picked from commit d1df27bc14)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-26 20:59:07 +00:00
Red-GitHubBot
44f4cb70de [3.4] Bump Python version in install guides to 3.9.9 (#5447) (#5494)
(cherry picked from commit e5b8fc4585)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-26 20:50:39 +00:00
Red-GitHubBot
19c710e63c [3.4] Make emptydisconnect disconnect when all vc members are bots (#5421) (#5492)
* [Audio] Disconnect from voice chat when every connected user is a bot

* Update condition according to code review

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

(cherry picked from commit 5a047bf979)

Co-authored-by: Parnassius <Parnassius@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Parnassius <Parnassius@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-26 18:15:57 +00:00
Red-GitHubBot
2a23da302e [3.4] Make invite URL part of public API (#5424) (#5491)
* [3.4] Make invite URL part of public API (#5424)

* Make invite URL public API

* Add doc and RPC

* Lint

* Update redbot/core/core_commands.py

Co-authored-by: Matt <psykzz@users.noreply.github.com>

* Update redbot/core/bot.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* RPC handling,

* Fix appinfo

* Change docs

* Fix docs

* Change docs

* Update redbot/core/core_commands.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Docstring changes

* nit

(cherry picked from commit 6297bfcab6)

Co-authored-by: Stonedestroyer <1307729+Stonedestroyer@users.noreply.github.com>
Co-authored-by: Matt <psykzz@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Red->RedBase

Co-authored-by: Stonedestroyer <1307729+Stonedestroyer@users.noreply.github.com>
Co-authored-by: Matt <psykzz@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-26 02:18:16 +00:00
Red-GitHubBot
5dfd4cf998 [3.4] Fix RPC cog load and unload by returning dicts (#5453) (#5490)
* use dicts for CoreLogic package management returns

* address review

* failed_packages->notloaded_packages in _unload

(cherry picked from commit d27dbded8a)

Co-authored-by: Vexed <vex@vexcodes.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Vexed <vex@vexcodes.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-25 20:13:30 +00:00
Red-GitHubBot
5356cca6ec [3.4] Show role payday amounts in economyset showsettings (#5457) (#5489)
* [V3/develop] show RolePaydayAmounts in showsettings command

* Update economy.py

* Switch to using a list (nitpicky optimizations)

https://docs.python.org/3/faq/programming.html#what-is-the-most-efficient-way-to-concatenate-many-strings-together

* Mark the text as translatable

(cherry picked from commit a228a0d0b3)

Co-authored-by: Alex <58824393+vertyco@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Alex <58824393+vertyco@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-25 17:09:52 +00:00
Red-GitHubBot
c26a603c8d [3.4] isolate direction of username within modlog (#5422) (#5488)
* isolate direction of username within modlog

* Add link to Unicode's usage

(cherry picked from commit 7db3339aba)

Co-authored-by: Jan <sentrycraft123@gmail.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Jan <sentrycraft123@gmail.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-25 16:35:41 +00:00
jack1142
a52356c031 [3.4] [Core] Changed prefix length to 40. (#5476) (#5487)
* Update core_commands.py

* Docs yes facebook's metaverse

*jokes on me*

* meta

* forgot here

* Update core_commands.py

* Forgot here

* And forgot here
(cherry picked from commit b091f13df5)

Co-authored-by: MAX <63972751+ltzmax@users.noreply.github.com>

Co-authored-by: MAX <63972751+ltzmax@users.noreply.github.com>
2021-12-25 04:17:20 +01:00
Red-GitHubBot
09adae5213 [3.4] [Config] Add type-hints to _ValueContextManager methods (#5344) (#5486)
Without these type-hints, I've found that PyCharm misidentifies the returned type, causing a number of false positives in static type checking.
(cherry picked from commit e878483318)

Co-authored-by: Toby Harradine <Tobotimus@users.noreply.github.com>

Co-authored-by: Toby Harradine <Tobotimus@users.noreply.github.com>
2021-12-25 02:21:45 +00:00
Red-GitHubBot
f59b7fce37 [3.4] Update host list with new locations for Hetzner and Contabo (#5475) (#5485)
(cherry picked from commit 551e6d9f55)

Co-authored-by: MAX <63972751+ltzmax@users.noreply.github.com>

Co-authored-by: MAX <63972751+ltzmax@users.noreply.github.com>
2021-12-25 02:13:54 +00:00
Red-GitHubBot
ee513731be [3.4] Fix issues with loading config.json when it doesn't exist (#5416) (#5484)
* catch and handle FileNotFoundError when using --no-instance when config.json does not already exist

* move load_existing_config to data_manager.py

* use load_existing_config in create_temp_config

* Fix import in redbot-launcher

(cherry picked from commit cef55459c6)

Co-authored-by: Vexed <vex@vexcodes.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Vexed <vex@vexcodes.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-25 02:04:41 +00:00
Red-GitHubBot
5dd0c3b579 [3.4] Add necessary None checks to Core's usage of Requires.privilege_level (#5477) (#5483)
* Check if it has a privilege level

* Let's fix this in warnings too

(cherry picked from commit 5e527cb27d)

Co-authored-by: aleclol <50505980+aleclol@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: aleclol <50505980+aleclol@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-25 01:06:08 +00:00
jack1142
4afa4f77e0 [3.4] [Docs] Correct set api examples to be consistent for Spotify (#5444) (#5482)
* consistant usage

* switch audiodb to youtube

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>.
(cherry picked from commit bae85c35c1)

Co-authored-by: Ryan <yamikaitou@gmail.com>

Co-authored-by: Ryan <yamikaitou@gmail.com>
2021-12-25 00:21:25 +00:00
Red-GitHubBot
8c2d589c17 [3.4] Remove voice region field in [p]serverinfo (#5449) (#5481)
* [General] Remove guild region on serverinfo

* Remove in string too.
(cherry picked from commit 4e469ce15e)

Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com>

Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com>
2021-12-25 00:05:23 +00:00
Red-GitHubBot
c7a4a0feaf [3.4] Restrict [p]cleanupset notify to guild only (#5466) (#5480)
(cherry picked from commit e068294cc8)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-12-24 23:56:46 +00:00
Red-GitHubBot
cb5eafb9e3 [3.4] Add plural forms to the responses of [p]leave command (#5391) (#5479)
* Improve the response of `[p]leave` command

* Update core_commands.py

* Update core_commands.py

* style?

* fix maybe

* black

* fixed typo in docstring

* aaa

* style

* Few more changes

(cherry picked from commit 2c51182e8e)

Co-authored-by: krak3n <84792368+the-krak3n@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: krak3n <84792368+the-krak3n@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-12-24 23:52:46 +00:00
Red-GitHubBot
de3ec3f26a [3.4] [Mod] Typo in unban command (#5470) (#5478)
(cherry picked from commit 442cad7917)

Co-authored-by: sravan <miniclip1956@gmail.com>

Co-authored-by: sravan <miniclip1956@gmail.com>
2021-12-23 01:53:31 +00:00
Red-GitHubBot
5987f9aabc [3.4] Address common issues with load path configuration in docs (#5356) (#5436)
* Add instructions on how to add pyenv to load path

* Support zsh in pyenv load path instructions

* Make instructions for Mac work when shell-specific profile file exists

* Includes are weird...

* .

* Fix my misunderstanding of what files zsh sources

* Operator precedence, or something like that
(cherry picked from commit 78c92cc766)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-11-02 20:42:05 +01:00
Red-GitHubBot
ea6eeedadf [3.4] Try to fix base branch in Publish Release workflow *again* (#5340) (#5434)
(cherry picked from commit f071ec09e2)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-11-02 12:03:53 +00:00
Red-GitHubBot
9f359dda26 [3.4] Modernize syntax in chat formatting module and add success() (#5427) (#5428)
* Downloader's plurial & Fix

* Don't forget pipinstall

* Fix syntax issue

* This f****** fix that took me too much of my time for nothing.

* Black

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Fix Jack's syntax, remove numbers & fix bad calculated cogs

* Black ofc

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Address my review comment

* Simplify

* this is kinda a lot but shh

* Change format to f-string

* Add success function to char_formatting

* Revert "Merge branch 'V3/develop' of github.com:Predeactor/Red-DiscordBot into master/chat-formatting-enhancement"

This reverts commit c338da7b66, reversing
changes made to f2422ad782.

* For once I would have appreciated if style checks were failing...

(cherry picked from commit 483ef36d1b)

Co-authored-by: Predeactor <61093863+Predeactor@users.noreply.github.com>
Co-authored-by: Predeactor <ubuntu@vps-35e65bf5.vps.ovh.net>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Predeactor <61093863+Predeactor@users.noreply.github.com>
Co-authored-by: Predeactor <ubuntu@vps-35e65bf5.vps.ovh.net>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-10-27 14:36:25 +02:00
Red-GitHubBot
1040883913 [3.4] Fix CodeQL workflow (#5412) (#5414)
The new pip 21.3 (released 2021-10-11) uses in-tree builds when `pip install .` is used (see [release notes](https://pip.pypa.io/en/stable/news/#v21-3) and [implementation PR](https://github.com/pypa/pip/pull/10495)). This means CodeQL will see all files twice (once in the real location that is part of this repository, and one in the copy in the `build/` dir), which trips up the analysis.

When an editable install is used instead with `pip install -e .`, there is no `build/` dir, so the analysis will work again.
(cherry picked from commit 42293afd43)

Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com>

Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com>
2021-10-20 14:53:53 +00:00
Red-GitHubBot
7268a8e774 [3.4] [Docs] Removes LXC as an unsupported hosting platform (#5351) (#5411)
(cherry picked from commit a70f0b7872)

Co-authored-by: Crossedfall <ping@crossedfall.io>

Co-authored-by: Crossedfall <ping@crossedfall.io>
2021-10-20 10:12:49 +00:00
Red-GitHubBot
86edf0de53 [3.4] Update JDK URL and add Python version upper-bound in Windows guide (#5403) (#5410)
* Update Java URL

* Update choco package as well

* Use Windows-specific URL for Python downloads

(cherry picked from commit 4348318fd1)

Co-authored-by: Ryan <git@yamikaitou.dev>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Ryan <git@yamikaitou.dev>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-10-20 09:43:18 +00:00
Red-GitHubBot
59c92041fc [3.4] [Admin] Add [p]selfroleset clear command (#5387) (#5409)
(cherry picked from commit b64ece3ee9)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-10-19 12:28:10 +02:00
Red-GitHubBot
3cf0d5ebe9 [3.4] [Mutes] Fix vars not getting formatted due to previous PR (#5404) (#5405)
* Fix vars not getting formatted due to #5364

* Only format a second time if needed

* Format only on string literals
(cherry picked from commit d56f31a708)

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>
2021-10-17 02:58:40 +02:00
Red-GitHubBot
65344378f6 [3.4] Update the timestamping we forgot to Discord compatible timestamping (#5395) (#5401)
(cherry picked from commit 67bcd72d9c)

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
2021-10-16 19:40:14 +00:00
Red-GitHubBot
bd010fdae5 [3.4] [Downloader] Show repo name in findcog (#5383) (#5400)
* show repo name in findcog

* how did i manage to overcomplicate this?

* for Kreusada

* I wanted to do that... but forgot
(cherry picked from commit 1d34e9e47b)

Co-authored-by: Dav <dav@mail.stopdavabuse.de>

Co-authored-by: Dav <dav@mail.stopdavabuse.de>
2021-10-16 00:12:37 +00:00
Red-GitHubBot
33ed1085ab [3.4] Fix descriptions for examples of ID-based command invocations in Mod (#5372) (#5399)
* Fix wording in redbot/cogs/mod/kickban.py to match with the command example

* Made changes as requested in PR Review #770078179

* Added changes to docs/cog_guides/mod.rst as requested in PR Review #70784066

* Fixed kick wording

* Fix kick wording
(cherry picked from commit 9aee8ce28f)

Co-authored-by: WreckRox <24494367+WreckRox@users.noreply.github.com>

Co-authored-by: WreckRox <24494367+WreckRox@users.noreply.github.com>
2021-10-15 23:30:44 +00:00
Red-GitHubBot
41fa3f0310 [3.4] [Mod] Indicate successful run in [p]voicekick (#5367) (#5398)
(cherry picked from commit 17dc9e0c47)

Co-authored-by: krak3n <84792368+the-krak3n@users.noreply.github.com>

Co-authored-by: krak3n <84792368+the-krak3n@users.noreply.github.com>
2021-10-15 22:52:21 +00:00
Red-GitHubBot
542a7b3cb2 [3.4] Add a tick on traceback command when it's sent to DMs (#5353) (#5397)
* add a `tick` when sent to dm.

* confused ™️

* did i learn now? :P

* i'm not confused anymore :3
(cherry picked from commit b8535ee53e)

Co-authored-by: MAX <63972751+maxbooiii@users.noreply.github.com>

Co-authored-by: MAX <63972751+maxbooiii@users.noreply.github.com>
2021-10-15 22:48:49 +00:00
Red-GitHubBot
b8cf464355 [3.4] Do not include expected wait_for responses in translated strings (#5364) (#5396)
* Do not include 'I agree' prompt in translation string

* Add more stuff

* Address review comment

* Address review comments
(cherry picked from commit 4b70acb989)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-10-15 22:04:21 +00:00
Red-GitHubBot
4dc509c18f [3.4] Add optional message to send when bot can't react in ctx.tick() and ctx.react_quietly() (#4092) (#5392)
* Update context.py

* Pre-emptive check to avoid hitting the API
(cherry picked from commit 334cd4fa2a)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-10-15 16:46:05 +00:00
Red-GitHubBot
cda70a0c6a [3.4] Improve helpset showaliases docstring (#5376) (#5377)
(cherry picked from commit a8f35f762c)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-10-07 19:48:47 +00:00
Red-GitHubBot
9ca977ba81 [3.4] [Audio] Remove extra whitespace (#5366) (#5370)
(cherry picked from commit 6eb922e7d9)

Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>

Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>
2021-10-03 19:12:11 +00:00
Red-GitHubBot
4331004dc1 [3.4] fix possible issue when joined_at is None (#5361) (#5365)
(cherry picked from commit b4037a80d8)

Co-authored-by: Fixator10 <github@fixator10.ru>

Co-authored-by: Fixator10 <github@fixator10.ru>
2021-10-02 17:13:25 +00:00
Red-GitHubBot
042731a7ed [3.4] Initialize driver before starting the backup (#5315) (#5342)
(cherry picked from commit cb18a66336)

Co-authored-by: El Laggron <laggron42@gmail.com>

Co-authored-by: El Laggron <laggron42@gmail.com>
2021-09-23 20:41:16 +00:00
jack1142
bf5e2a4424 [3.4] Version bump to 3.4.15.dev1 (#5341) 2021-09-23 20:37:51 +00:00
github-actions[bot]
029a7fffcb [3.4] Version bump to 3.4.14 (#5338)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-09-23 21:24:19 +02:00
github-actions[bot]
0096f874a4 [3.4] [i18n] Automated Crowdin downstream (#5339)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-09-23 21:24:11 +02:00
Red-GitHubBot
07e7594308 [3.4] Red 3.4.14 - Changelog (#5335) (#5337)
* Red 3.4.14 - Changelog

* Add contributor list

* proofreading 1

* Fix plural form
(cherry picked from commit cddd99eba7)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-23 19:10:37 +00:00
Red-GitHubBot
6a4a0b4bb3 [3.4] Update some link texts in docs for accessibility (#5310) (#5336)
* Update some link texts for accessibility

* Fix stuff nearby while we're here

* Reword links to DigitalOcean

* Use better link text for `[p]triviaset custom`

(cherry picked from commit 92cabd134d)

Co-authored-by: River <18037011+RheingoldRiver@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: River <18037011+RheingoldRiver@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-23 18:43:48 +00:00
Red-GitHubBot
dca082f20e [3.4] Maybe fix the base branch used in dev bump automation (#5307) (#5334)
(cherry picked from commit 2c8c97490b)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-23 15:58:10 +00:00
Red-GitHubBot
dfe03b9cad [3.4] Only initialize and teardown driver if actually needed (#5313) (#5333)
* Fix #5312

* Update setup.py

* put db actions under one if statement

* check backend type and improve displayed message

* accept format fix

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* fix whitespace

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* separate datapath delete from data delete

* Fix indentation

* Call `driver_cls.initialize()` outside try-finally

* Backup requires db server to run too + some simplifications

(cherry picked from commit 2ce8e65527)

Co-authored-by: Leet <36166244+L33Tech@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Leet <36166244+L33Tech@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-23 15:36:39 +00:00
Red-GitHubBot
3865449d3b [3.4] Use discord native timestamp in [p]uptime (#5323) (#5332)
* support for discord's timestamp on uptime

* woops not supposed to remove `_`.

* ups

* ups x2

* Apply suggested change.

* hehe
(cherry picked from commit d69326b1fe)

Co-authored-by: MAX <63972751+maxbooiii@users.noreply.github.com>

Co-authored-by: MAX <63972751+maxbooiii@users.noreply.github.com>
2021-09-23 14:29:01 +00:00
Red-GitHubBot
39169703a7 [3.4] Split documents per OS, fix few things, drop and add few OSes (#5328) (#5331)
* Exclude include files from being built

* Split install guides into multiple documents (one per OS/version combo)

* Update references

* Unify anchor names

* Update pyenv requirements in CentOS 7 guide

* Update install guides for RHEL derivatives to not use pyenv

* Add guide for Rocky Linux 8

* 8.4+ -> 8.4-8.x

* Add 'the'
(cherry picked from commit cbbb9d9b9b)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-23 03:28:59 +00:00
Red-GitHubBot
55d748147d [3.4] [Audio] Update Lavalink.jar build (#5329) (#5330)
(cherry picked from commit b2e9b38a03)

Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>

Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>
2021-09-23 02:35:43 +02:00
Red-GitHubBot
7bf8bd5a93 [3.4] Fix Case's modified_at attr and its format in message content (#5317) (#5319)
* Fix modified_at field to properly format.

* let's just fix the type hints

(cherry picked from commit 89e3a78ead)

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-14 00:44:10 +00:00
jack1142
931eb312b2 [3.4] Version bump to 3.4.14.dev1 (#5308) 2021-09-10 01:10:38 +02:00
github-actions[bot]
1eaa51e013 [3.4] Version bump to 3.4.13 (#5304)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-09-09 23:58:22 +02:00
github-actions[bot]
539e0b2c14 [3.4] [i18n] Automated Crowdin downstream (#5305)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-09-09 21:57:53 +00:00
Red-GitHubBot
addc633425 [3.4] Red 3.4.13 - Changelog (#5302) (#5303)
* Add 3.4.13 section

* PR 5156 (issue 4997)

* PR 5178 (issue 5177)

* PR 5185, 5187

* PR 5184

* PR 5186

* PR 5165

* PR 5188

* PR 5225

* PR 5180

* PR 5181 (issue 4868)

* PR 5221 (issue 5216)

* PR 4659 (issue 4571)

* PR 5173

* PR 5155, 5241

* PR 5199

* PR 5205 (issue 4074)

* PR 5238 (issue 5237)

* PR 5169

* PR 5214

* PR 4981 (issue 4841)

* PR 4837 (issue 4836)

* PR 5218 (issue 4732)

* PR 5233

* PR 5211 (issue 5187)

* PR 5108

* PR 5223 (issue 5195)

* PR 5234

* PR 5243 (issue 4717)

* PR 5000 (issue 4140)

* PR 5206 (issue 5171)

* PR 5121 (issue 4655)

* PR 5217 (issue 5213)

* PR 5037

* PR 5109, 5163, 5172, 5191

* PR 4968

* PR 5048, 5092, 5149, 5207, 5209, 5215, 5219, 5220

* Fill 'Read before updating' section

* Add contributor list

* few fixes

* Apply suggestions from code review

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>

(cherry picked from commit eeed082542)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>
2021-09-09 21:50:38 +00:00
Red-GitHubBot
00adb15be0 [3.4] Add RelativedeltaConverter and parse_relativedelta (#5000) (#5300)
* Added years and months to parse_timedelta

* Added new parse_datetimedelta along with classes for relative dates

* Switched datetime as dt to just datetime for clarity

* Changed to returning relativedelta instead of datetime

* Fixed single char typo

* After some digging, removed min and max from relative delta b/c of https://github.com/dateutil/dateutil/issues/350

* Add dateutil to intersphinx mapping

* Change uppercase D in RelativeDeltaConverter to a lowercase D

* Fix cross-references in docstrings

* Add new class and methods to __all__

* Remove get_relativedelta_converter()

* style

* Fix name of parse_relativedelta test

* more style

* Re-export new class and function in `redbot.core.commands`

(cherry picked from commit ed9bb77eec)

Co-authored-by: Zoë F <zoe@dataleek.io>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Zoë F <zoe@dataleek.io>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 23:04:05 +02:00
Red-GitHubBot
ad5a5017b6 [3.4] Add CommandConverter and CogConverter + add usage in Core (#5037) (#5299)
* add commands, cog converter

* properly use type_checking

* make core commands use command converter

* update commands to use cogconverter

* fix undefined variable name, style

* Update redbot/core/commands/converter.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/commands/converter.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/core_commands.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/core_commands.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/core_commands.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/core_commands.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/core_commands.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* update cog argument names

* update documentation arg names

* update more docs

* This new Sphinx is annoying about this...

* I'm questioning my skills

* Fix name error in `[p]embedset showsettings` when command is not given

* Do not use the new cog converter in `[p]command enablecog`

This is needed so that a cog that isn't loaded but was disabled
can be enabled back.

(cherry picked from commit e5b236fb1c)

Co-authored-by: PhenoM4n4n <61065078+phenom4n4n@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: PhenoM4n4n <61065078+phenom4n4n@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:56:20 +02:00
Red-GitHubBot
9482f0c60c [3.4] [Docs] Update Cleanup docs with new cleanupset command group (#5245) (#5298)
* Add cleanupset commands to cleanup docs

* fix spacing

* shown -> sent

* update command docstring

* Fix trailing whitespace and use same style for docs

(cherry picked from commit 63fd7cc95f)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:52:14 +02:00
Red-GitHubBot
0b8747c49b [3.4] Add Debian 11 to install guide and clarify "Buster" as Debian 10 (#5217) (#5297)
* Clarify Debian 10 as "Buster"

* Add Debian 11 Install

* This typo would of bugged my OCD...

* Clarify Debian 10 as "Buster"

* Add Debian 11 Install

* This typo would of bugged my OCD...

* Add apt upgrade line to doc

* Removing dupe for Debian 11
I'm not sure how that happened, but oh well...
(cherry picked from commit 33dddaf5b4)

Co-authored-by: Ryan <twinshadow@shadowhime.net>

Co-authored-by: Ryan <twinshadow@shadowhime.net>
2021-09-08 22:49:56 +02:00
Red-GitHubBot
3c34af5e82 [3.4] Update deps, allow Python 3.9, drop Fedora 32 (#5121) (#5296)
* Update deps + allow Python 3.9

* Add in updates from Jack's branch

* Fix multiple target for cross-reference warnings

* Update a few more Python 3.8 occurrences

* Bump further

* Don't install tox in CodeQL environment

* Bump Python version in docs to 3.9.7

* more bumps

* Add missing pin

* Stop using the deprecated distro.linux_distribution()

* Suppress deprecation warning

* Fix OpenSUSE Leap instructions

* Drop Fedora 32

* Add Python 3.10-dev to CI

* meh

(cherry picked from commit 3254698c78)

Co-authored-by: palmtree5 <3577255+palmtree5@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: palmtree5 <3577255+palmtree5@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:46:59 +02:00
Red-GitHubBot
c739500a13 [3.4] [Core] Add more APIs for allowlists and blocklists (#5206) (#5295)
* [Core] Blacklist api

* [Core] Use to_add, remove star from other method calls

* various touch ups

* style

* fix doc style

* [Core] Remove iterable import

* [Core] Update commands to use the blacklist/whitelist api

* Change signatures to not use `*args`

* Update all usage of private cache to the new public APIs

* Update the docstrings

* Update the usage in diagnoser

(cherry picked from commit 0dded8aa47)

Co-authored-by: Just-Jojo <62262765+Just-Jojo@users.noreply.github.com>
Co-authored-by: Kreusada <67752638+Kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Just-Jojo <62262765+Just-Jojo@users.noreply.github.com>
Co-authored-by: Kreusada <67752638+Kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:43:45 +02:00
Red-GitHubBot
373c04de11 [3.4] Add [p]diagnoseissues command (#5243) (#5294)
* Split `Requires._transition_state` into reusable methods for Diagnoser

* (style) Fix line length

* Add missing .format()

* Add handling for user permissions, privilege level, Permissions rules

* Add missing awaits, use correct method in user perms check, add 'the'

* Fix .format() fields

* Add comment

* Add new file to labeler's configuration

* Add the command to the documentation

* All the work from DiagnoserCog

You can find the commit history of it here:
https://github.com/jack1142/DiagnoserCog

* Fix circular import

* Make channel argument optional

* Add a tip about channels from different servers
(cherry picked from commit 86649e897f)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:40:25 +02:00
Red-GitHubBot
2ae54c837f [3.4] Update Mac OS instructions to work properly on Apple Silicon (#5234) (#5293)
(cherry picked from commit d84c8efa34)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:37:38 +02:00
Red-GitHubBot
df19bfe679 [3.4] Improve and add more usage of discord timestamps (#5241) (#5292)
* Improve and add more usage of discord timestamps

* How did that whitespace get there?
(cherry picked from commit a0a433b13d)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:35:27 +02:00
Red-GitHubBot
ded19fe4fe [3.4] [Cleanup] Handle NotFound error of prompt in check_100_plus (#5191) (#5291)
* [Cleanup] Handle HTTPException of prompt in check_100_plus

* Update redbot/cogs/cleanup/cleanup.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

(cherry picked from commit 4366af6f6c)

Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:32:11 +02:00
Red-GitHubBot
ca3b314b5b [3.4] [Trivia] Handle potential Discord errors in session (#5172) (#5290)
* [Trivia] Handle potential Discord errors in session.

* Hm why did I put HTTPException in there

* Revert "Hm why did I put HTTPException in there"

This reverts commit dc5cb990cb.

* Revert "[Trivia] Handle potential Discord errors in session."

This reverts commit d90e45f9e0.

* Handle Discord errors in _error_handler.
(cherry picked from commit 42edb12b2e)

Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com>

Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com>
2021-09-08 22:28:31 +02:00
Red-GitHubBot
b03e582e21 [3.4] [Streams] Check non-existent streams more than once (#5223) (#5289)
* [Streams] Check non-existent streams more than once

- For YouTube streams, it seems like the RSS feed may sometimes return
  an HTTP 404 for a channel, even though the channel exists.
- If this happens more than a few times, then we should declare the
  stream as non-existent, and purge it from the list of streams we
  check.

* [Streams] Move retry_count reset for YouTubeStream

- Reset after the RSS check, since that is the only place where we raise
  StreamNotFound in that function.

* [Streams] Increase retry to 20

* [Streams] Reduce retry count to 10
(cherry picked from commit 36ea867dcf)

Co-authored-by: Lui <injabie3@gmail.com>

Co-authored-by: Lui <injabie3@gmail.com>
2021-09-08 22:26:24 +02:00
Red-GitHubBot
147c032788 [3.4] Add commands for editing aliases (#5108) (#5288)
* [Alias] Added alias edit and alias global edit

* Comment and whitespace only changes

* Docstring fix

* Remove more whitespace

* Add `the` before some English purists make a PR for this...

(cherry picked from commit cad7f400f9)

Co-authored-by: Samuel <50765275+npc203@users.noreply.github.com>
Co-authored-by: npc203 <npc203@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Samuel <50765275+npc203@users.noreply.github.com>
Co-authored-by: npc203 <npc203@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:24:17 +02:00
jack1142
74af8f006e Invalidate cache in filter clear commands
(cherry picked from commit 6d40de8da3)
2021-09-08 22:21:53 +02:00
Red-GitHubBot
05582c8636 [3.4] [Mod] Add user hierarchy check to [p]rename (#5211) (#5287)
* added hierarchy check for rename

added hierarchy check for rename from utils

* format and self check

changed formats and added statement if me != member

* black format

apply black formatting and fix typo

* tox style

tox i guess

* tox again

:<

* Update redbot/cogs/mod/names.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Fix styling

(cherry picked from commit 8880251749)

Co-authored-by: Enul <xchedeiklo@gmail.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Enul <xchedeiklo@gmail.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:19:56 +02:00
Red-GitHubBot
58158ff024 [3.4] [Audio] Update Lavalink.jar build (#5233) (#5286)
(cherry picked from commit 17d24b28f1)

Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>

Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>
2021-09-08 22:18:20 +02:00
Red-GitHubBot
dcee2077c0 [3.4] Add toggleable notification of deleted messages count in Cleanup (#5218) (#5285)
* Addition of cleanup notification.

* black

* subtract invoking message from count

* Update redbot/cogs/cleanup/cleanup.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* be explicity about kwarg

* address review

* style

* Fix type hints

(cherry picked from commit c4f8f65d4d)

Co-authored-by: Jamie <31554168+flaree@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Jamie <31554168+flaree@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:16:37 +02:00
Red-GitHubBot
2d0d5b5be1 [3.4] [Mod] Send ban reason on Temp Bans (#4837) (#5284)
* [Mod] Send ban reason on Temp Bans

* If none

* Locale friendly

* Fixes for black style

* Use double line break to distinguish between reason header

* Check settings

* Black

* Reduce the number of config calls

* remove additional config call

* fixes

* style

* We're already in `if reason` so this is always True

(cherry picked from commit 4e2e4bfe6a)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:14:58 +02:00
Red-GitHubBot
119550739e [3.4] [Filter] Add filter clear commands (#4981) (#5283)
* [Filter] Add filter clear commands

* define messagepredicate

* actually send msg, lol

* deco fixes

* black

* [Docs] Update filter documentation

* fixes

* style

* Add missing whitespace

(cherry picked from commit f628093208)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:11:47 +02:00
Red-GitHubBot
2f8f121bb0 [3.4] Add test for presence of upper and lower bound on Python version (#5198) (#5282)
* Add test for presence of upper and lower bound on Python version

* [part 1/3] Test that this works, DO NOT MERGE

* [part 2/3] Test that this works, DO NOT MERGE

* [part 3/3] Revert unwanted changes, NOW YOU CAN MERGE!
(cherry picked from commit 6f0a8b11d7)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:09:55 +02:00
Red-GitHubBot
96421a6dfa [3.4] Allow dots in the middle of repo names (#5214) (#5281)
* Allow dots in the middle of repo names

* Screw you, Black
(cherry picked from commit f6cf0d5670)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:07:43 +02:00
Red-GitHubBot
c8992a4281 [3.4] [Streams] Improve config calls in stream alerts (#4968) (#5280)
* [Streams] Improve config calls in stream alerts.

* config->guild_data, style changes

(cherry picked from commit 8eac787f7b)

Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 22:05:11 +02:00
Red-GitHubBot
3c325bb4cb [3.4] Accept mentions in [p]cleanup user (#5169) (#5279)
* Accept mentions in `[p]cleanup user`

* Updated spacing & formatting on info logging

* Whoops...

(cherry picked from commit 88abe469b6)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: Kowlin <boxedpp@gmail.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: Kowlin <boxedpp@gmail.com>
2021-09-08 22:02:33 +02:00
Red-GitHubBot
497cb50716 [3.4] [Admin] Allow selfroleset command to consume multiple roles (#5238) (#5278)
* Initial commit

* update docs

* remove usage kwargs

* style

* Type hint with SelfRole and not discord.Role

* fix docstring

* Various improvements, fixes

* i need to wake up

* more improvements

* AAAA

* add back check

* Improve converter error

(cherry picked from commit b0f93a3ce1)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 21:56:41 +02:00
Red-GitHubBot
dbe50bc6fe [3.4] [Help] Let owners set menu reaction timeout (#5205) (#5277)
* initial help reaction timeout with min 15, max 300

* slight wording change

* docs!

* aaa

* Suggestions from code review, thank Jack!

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

(cherry picked from commit f8664a4e8a)

Co-authored-by: Vexed <vex@vexcodes.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Vexed <vex@vexcodes.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 21:55:03 +02:00
Red-GitHubBot
55712f1ed0 [3.4] [Docs] Fix changelog entry from being under the wrong section (#5236) (#5276)
(cherry picked from commit 6a8968e34d)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-09-08 21:53:41 +02:00
Red-GitHubBot
8f6f2804db [3.4] Document parameters in remaining chat_formatting functions (#5215) (#5275)
(cherry picked from commit dbd25e92a1)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-09-08 21:51:58 +02:00
Red-GitHubBot
fe147f277f [3.4] [Core] add ctx.tick() to [p]invite (#5199) (#5274)
(cherry picked from commit c57ef4828e)

Co-authored-by: GhOsT <79806064+Arman0334@users.noreply.github.com>

Co-authored-by: GhOsT <79806064+Arman0334@users.noreply.github.com>
2021-09-08 21:50:13 +02:00
Red-GitHubBot
80a1088061 [3.4] [Downloader] Fix various formatting issues in cog update notices (#5185) (#5273)
* again :P

* some more

* fix
(cherry picked from commit 6bf85a42f8)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-09-08 21:48:28 +02:00
Red-GitHubBot
b9d9ae3103 [3.4] [Downloader] Suppress NotFound errors in [p]cog update command (#5109) (#5272)
* [Downloader] Suppress NotFound errors when cog update message is deleted

* occurance 2
(cherry picked from commit d15011e2c5)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-09-08 21:46:55 +02:00
Red-GitHubBot
a95d65c316 [3.4] Initial support for Discord timestamping (#5155) (#5271)
* Initial support for Discord timestamping

* Fix timezones

* Fix userinfo for users with member.joined_at equal to None

* Simplify

(cherry picked from commit f05debc923)

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 21:45:10 +02:00
Red-GitHubBot
a6b9f785ac [3.4] [Mod] Check if guild is unavailable in tempban expirations (#5173) (#5270)
* [Mod] Check if guild.me is None else continue in tempban expirations.

* Check for guild.unavailable instead of guild.me being None.
(cherry picked from commit b586c2f990)

Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com>

Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com>
2021-09-08 21:43:04 +02:00
Red-GitHubBot
267720bbba [3.4] [Mutes] Fix NotFound error when trying to delete message (#5163) (#5269)
* [Mutes] Fix NotFound error when trying to delete message

* other occurances
(cherry picked from commit c34f1e2f01)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-09-08 21:41:28 +02:00
Red-GitHubBot
339cc6b3dc [3.4] [Alias] Fix double plural grammar in alias docstring (#5092) (#5268)
(cherry picked from commit 299d6c57d9)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-09-08 21:39:48 +02:00
Red-GitHubBot
2c38a7c4f2 [3.4] [Trivia] Validate custom trivia file upload using schema (#4659) (#5267)
* Add custom trivia list schema validation and test

* Address review

* Improve error formatting in trivia list test

(cherry picked from commit 173127e015)

Co-authored-by: Grant LeBlanc <37914048+leblancg@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Grant LeBlanc <37914048+leblancg@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 21:37:59 +02:00
Red-GitHubBot
1736502893 [3.4] [Docs] Add intents / public bots guide (#5221) (#5266)
* [Docs] Add intents / public bots guide

* [Docs] Intent guide: update on d.py
(cherry picked from commit 91ecd6560a)

Co-authored-by: Twentysix <Twentysix26@users.noreply.github.com>

Co-authored-by: Twentysix <Twentysix26@users.noreply.github.com>
2021-09-08 21:35:12 +02:00
Red-GitHubBot
2d3b0e513f [3.4] [Logging] Make Rich more copy-/paste-able (#5181) (#5265)
* commit work, mostly untested

* v minor refactor

* force new renderer

* Code style changes

(cherry picked from commit 7413e3c350)

Co-authored-by: Vexed <vex@vexcodes.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Vexed <vex@vexcodes.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 21:33:34 +02:00
Red-GitHubBot
53484abff8 [3.4] [Docs] Update alias userdoc to reflect updated help menu layout (#5048) (#5264)
(cherry picked from commit d13d6477c5)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-09-08 21:31:35 +02:00
Red-GitHubBot
3a2b965b4b [3.4] [Docs] Getting started guide: fix incorrect information / typos (#5180) (#5263)
(cherry picked from commit ee0627f41f)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-09-08 21:30:10 +02:00
Red-GitHubBot
2635300b44 [3.4] [Docs] Fix argument formatting in Admin cog guide (#5219) (#5262)
(cherry picked from commit ec5428f1e9)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-09-08 21:28:27 +02:00
Red-GitHubBot
917ff14156 [3.4] [Docs] Add Oracle Cloud $300 credits to hosting guide (#5225) (#5261)
(cherry picked from commit 37c52d6066)

Co-authored-by: Vexed <vex@vexcodes.com>

Co-authored-by: Vexed <vex@vexcodes.com>
2021-09-08 21:26:13 +02:00
Red-GitHubBot
e3e8ab784b [3.4] [Docs] Fix warning block in Mod cog guide (#5220) (#5260)
(cherry picked from commit 48fa10343c)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-09-08 21:23:18 +02:00
Red-GitHubBot
08bbf8f6db [3.4] [Audio] Add a wait time before auto disconnect (#5188) (#5259)
* Update lavalink.py

* Add comment

(cherry picked from commit 43071e3fa2)

Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 21:21:44 +02:00
Red-GitHubBot
cbb5ffe252 [3.4] Fix base branch used for PyPI release? (#5212) (#5258)
(cherry picked from commit 80e7a70f9e)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 20:30:05 +02:00
Red-GitHubBot
620f462f4b [3.4] fix typo (#5207) (#5257)
(cherry picked from commit 11913806a4)

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreus Amredes <67752638+Kreusada@users.noreply.github.com>
2021-09-08 20:26:40 +02:00
Red-GitHubBot
bf1286775f [3.4] Update DO link (#5209) (#5256)
(cherry picked from commit f42d675ac0)

Co-authored-by: fredster33 <64927044+fredster33@users.noreply.github.com>

Co-authored-by: fredster33 <64927044+fredster33@users.noreply.github.com>
2021-09-08 20:24:14 +02:00
Red-GitHubBot
eff496cbb7 [3.4] Add a per guild max volume setting (#5165) (#5255)
* Oh great... someone touched Audio again.

* How did that get in there?

* Style? Style.
(cherry picked from commit e154a630df)

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
2021-09-08 20:22:21 +02:00
Red-GitHubBot
1a4c6bb84f [3.4] [Audio] UX improvements to [p]summon command (#5186) (#5254)
(cherry picked from commit 2b67b9d06d)

Co-authored-by: MAX <63972751+maxbooiii@users.noreply.github.com>

Co-authored-by: MAX <63972751+maxbooiii@users.noreply.github.com>
2021-09-08 20:20:14 +02:00
Red-GitHubBot
85ab61b17d [3.4] use rich console print for red colour (#5184) (#5253)
(cherry picked from commit 2ab46fbe41)

Co-authored-by: Vexed <gh.vexed@gmail.com>

Co-authored-by: Vexed <gh.vexed@gmail.com>
2021-09-08 20:18:17 +02:00
Red-GitHubBot
7197952795 [3.4] [Downloader] Fix formatting for red version requirement notices (#5183) (#5252)
(cherry picked from commit 49cc9374d4)

Co-authored-by: Kreusada <67752638+Kreusada@users.noreply.github.com>

Co-authored-by: Kreusada <67752638+Kreusada@users.noreply.github.com>
2021-09-08 20:16:42 +02:00
Red-GitHubBot
05a25b1f03 [3.4] [Warnings] Allow for 0 point warnings (#5178) (#5251)
(cherry picked from commit ad6b8662b2)

Co-authored-by: Just-Jojo <62262765+Just-Jojo@users.noreply.github.com>

Co-authored-by: Just-Jojo <62262765+Just-Jojo@users.noreply.github.com>
2021-09-08 20:13:24 +02:00
Red-GitHubBot
e8ece55501 [3.4] Add cherry_picker configuration (#5168) (#5250)
(cherry picked from commit 9d35df2048)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 20:11:21 +02:00
Red-GitHubBot
e08909dba6 [3.4] Improve release correctness and safety by using GH Environments (#5167) (#5249)
* Improve release safety by using GH Environments

* Exit early when just returning version
(cherry picked from commit ec26687e9e)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 20:11:13 +02:00
Red-GitHubBot
a3f61fed7c [3.4] Refined debuginfo (#5156) (#5248)
* Oh my gosh Kowlin is finishing work!?

* fix style

* use f-strings

* moar f-strings actually

* Fix style...

* I did a poor job of find-replacing things

* Improve code readability per previous Kowlin's style

* And reformat it in such a way that get jack through the day

* Okay maybe some whitespace

* Update core_commands.py

* Update core_commands.py

(cherry picked from commit 3b7f9e24b4)

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-09-08 20:09:09 +02:00
jack1142
52f96e043b Add simple PR template (#5150) 2021-06-18 18:34:42 -04:00
jack1142
5b58cdb449 Add missing changelog entries to Red 3.4.12 changelog (#5148)
* Add missing changelog entries to Red 3.4.12 changelog

* Update contribs list

* .

* Apply suggestions from code review

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>
2021-06-18 18:09:40 -04:00
Kreusada
8a6aa41d86 [CustomCommands/Docs] Fix argument name in [p]cc show command docstring (#5149)
* [CustomCom] Fix argument name in ``[p]cc show`` command docstring

* update docs
2021-06-18 17:48:46 -04:00
github-actions[bot]
e52fb2c086 Version bump to 3.4.13.dev1 (#5147)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-06-17 20:42:58 +02:00
github-actions[bot]
86c4d953a8 Version bump to 3.4.12 (#5145)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-06-17 19:53:56 +02:00
github-actions[bot]
539a475706 [i18n] Automated Crowdin downstream (#5146)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-06-17 19:53:18 +02:00
jack1142
36968a4bf0 Red 3.4.12 - Changelog (#5144)
* Red 3.4.12 - Changelog

* Add a comma...
2021-06-17 19:43:09 +02:00
jack1142
a99240f7c3 Remove support for Audio's Global API (#5143)
* Force-disable Audio's Global API functionality

* Remove owner message about global API

* Two more comments

* Update CODEOWNERS

* Bring back the owner notification, modified to not mention global DB

* Remove the global api group fully, remove the mentions of it
2021-06-17 19:27:56 +02:00
jack1142
be04ec1c86 Change default local cache level (#5140)
* Change default local cache level

* Update the owner message as well
2021-06-17 05:04:31 +02:00
Samuel
c3362f6eaa Update [p]addpath to use consume rest on the path argument (#5137)
Co-authored-by: npc203 <npc203@users.noreply.github.com>
2021-06-15 13:08:41 +02:00
Just-Jojo
b2db0674d5 [Warnings] (#5120) 2021-06-13 20:21:19 -04:00
Stonedestroyer
5ead38c284 Fix none issue (#5125) 2021-06-13 20:11:55 -04:00
aikaterna
8dffebbb34 [Audio] Change autoplay playlist url (#5135) 2021-06-13 14:44:49 +02:00
github-actions[bot]
5b03f04790 Version bump to 3.4.12.dev1 (#5133)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-06-12 19:04:24 +02:00
github-actions[bot]
8e6cf0be81 Version bump to 3.4.11 (#5131)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-06-12 18:53:40 +02:00
github-actions[bot]
5f0b4403bc [i18n] Automated Crowdin downstream (#5132)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-06-12 18:53:21 +02:00
jack1142
c23100eaca Red 3.4.11 - Changelog (#5130) 2021-06-12 18:46:34 +02:00
jack1142
1b6745549e Bump discord.py to 1.7.3 (#5129) 2021-06-12 18:31:38 +02:00
Kreusada
faf1ad4846 [Dev] Add ctx.tick() on successful debugs (#5107) 2021-06-12 17:52:06 +02:00
El Laggron
dafffd969f [Core] Limit server prefix length (#5117)
* Restrict prefix length

* Update docs
2021-06-12 17:41:29 +02:00
Onii-chan
a428e42f1f Update cogboard links (#5124)
* Update README.md

* Update guide_cog_creators.rst

* Update cog_manager_ui.rst

* Update README.md
2021-06-08 09:11:42 +00:00
Kreusada
ded5aff08c Move modlog guide to correct place in the labeler configuration (#5118) 2021-06-03 22:34:40 +02:00
jack1142
8f390147c1 Use rich.progress instead of tqdm (#5064)
* Use rich progress instead of tqdm

* Remove tqdm from deps
2021-06-03 21:37:53 +02:00
El Laggron
0ce2634bb3 [Core] Add toggle for the applications.commands invite scope (#5114)
* Add toggle for applications.commands invite scope

* Add support for i18n

* Fix formatting

Co-authored-by: Kowlin <boxedpp@gmail.com>
2021-06-03 17:36:28 +02:00
Draper
1ee4156ac6 Add Preda as code owner for audio files (#5095) 2021-05-31 14:52:18 +02:00
jack1142
1471ead0ce With each release we're getting one step closer... (#5090) 2021-05-28 20:44:58 +02:00
jack1142
d011b1f9af Version bump to 3.4.11.dev1 (#5089) 2021-05-28 20:40:15 +02:00
github-actions[bot]
fc4a995540 Version bump to 3.4.10 (#5086)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-05-28 20:17:54 +02:00
github-actions[bot]
ce4fd6cca8 [i18n] Automated Crowdin downstream (#5087)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-05-28 20:09:47 +02:00
jack1142
305161110e Red 3.4.10 - Changelog (#5077)
* Add 3.4.10 section

* PR 5082 (issue 4765)

* PR 5073 (issue 5008)

* PR 5071

* PR 5070

* PR 5066 (issue 5050)

* PR 5063

* PR 5066

* PR 5051

* PR 5041

* PR 5040 (issue 5039)

* PR 5035 (issue 5036)

* PR 5031 (issue 5032)

* PR 5028

* PR 5027 (issue 5026)

* PR 5025

* PR 5017

* PR 5004

* PR 4996

* PR 4987

* PR 4976

* PR 4971

* PR 5046

* PR 5044

* PR 5083

* PR 5030 (issue 4959)

* PR 5020

* PR 5018

* PR 5014

* PR 5012

* PR 4995

* PR 4994

* PR 4988

* PR 4980

* PR 4975

* PR 4970 (issue 4969)

* PR 4962

* PR 4960

* PR 4958 (issue 4956)

* PR 4954

* PR 4919

* PR 4886

* PR 4882

* PR 4875

* PR 4597

* PR 4082

* PR 4793, 4832, 4955, 4966, 5015, 5019, 5029, 5038, 5055, 5080, 5081

* PR 4979

* PR 5013

* PR 4991

* Reorder stuff

* Update date

* Add contributors list

* Mention the tracking issue for cog guides

* PR 4920 (issue 1734)

* PR 4985 (issue 1734)

* PR 5023 (issue 4595)

* PR 5085

* time to be explicit...

* Gotta include info about the new jar too...

* Apply suggestions from code review

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>
2021-05-28 19:56:30 +02:00
aikaterna
f0dab50097 [Audio] Update Lavalink.jar build (#5085) 2021-05-28 19:29:34 +02:00
Kreusada
b630e71d08 [Docs] Warnings Cog Guide (#4920)
* Initial commit

* labeler and index

* change parameter names and labeler

* fix typo

* docstrings, quotes and improved names

* merge conflict affect fixes

* remove aliases

* get from v3/develop

* update var names

* fixes

* improve grammar

* black
2021-05-28 19:06:52 +02:00
Kreusada
db86de3a7a [Docs] Permissions Cog Guide (#4985)
* Initial commit

* index and grammar

* Add permissions tag to permissions cog reference

* remove alias by default

* remove alias

* labeler

* updates
2021-05-28 19:06:42 +02:00
Kreusada
dd40f00279 [Docs] Trivia List Creation User Guide (#5023)
* Initial commit

* commits

* a few fixes

* caps formatting

* labeler

* a few formatting changes

* grammar for clarity

* grammar fixes
2021-05-28 19:06:32 +02:00
benno1237
177bd7f84e Update Dev's code block regex to support python language (#5083)
* Update dev_commands.py

* Update dev_commands.py

* Update redbot/core/dev_commands.py

regexes keep confusing me. thanks jack

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-05-27 17:44:22 +02:00
Vexed
210c07d5a7 [Downloader] Allow removal of multiple repos (#5082)
* add multi repo support + docstring

* update docs

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* style

* Update redbot/cogs/downloader/downloader.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-05-27 14:47:41 +02:00
Kreusada
23997d7a71 [Docs] Modlog Cog Guide (#4919)
* Initial commit

* Docstring changes and index

* Add modlog cog guide to labeler
2021-05-26 13:30:23 -04:00
Lifeismana
c0f17c2155 Unify docstring (#5081)
To be the same as L725 and L1555
631adc282f/redbot/cogs/downloader/downloader.py (L725)
631adc282f/redbot/cogs/downloader/downloader.py (L1555)
2021-05-26 11:32:37 -04:00
TrustyJAID
631adc282f [General] Fix usage in choose help (#5015)
Co-authored-by: Draper <27962761+Drapersniper@users.noreply.github.com>
2021-05-26 10:23:46 +01:00
jack1142
b8b8a38fbd Lower RTD build time (#5078) 2021-05-26 09:07:46 +01:00
Lifeismana
2d8dbad63b Docstring Fix (#5080)
* Missing word

* Make a little more sense
2021-05-25 17:58:10 +02:00
Draper
137713d9ca Update gitignore with more of Windows, Mac, Sublime, and PyCharm (#5079)
* Since i have these uncommitted locally sharing...

* clean up

* clean up

* noone can figure out how my pycharm got into this state .. but hey ho.

* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

* We don't need this comment, we already include these in gitgnore anyway

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-05-25 17:40:08 +02:00
Draper
0f4c409e84 Fix resume for auto play which was broken in RLL 0.8.0 update. (#5051) 2021-05-25 17:05:40 +02:00
Draper
ac0c5cc4c8 Fix resume for auto play which was broken in RLL 0.8.0 update. (#5051) 2021-05-25 17:04:45 +02:00
Draper
ca373052c5 Fix resume for auto play which was broken in RLL 0.8.0 update. (#5051) 2021-05-25 17:04:24 +02:00
jack1142
f8ecc32dbc Fix the bug with Twitch display name being set as Twitch login (#5066) 2021-05-25 09:32:32 +01:00
Vexed
982feda858 [Admin] Add logging to serverlock (#5073)
Co-authored-by: Twentysix <Twentysix26@users.noreply.github.com>
2021-05-24 12:03:43 +01:00
jack1142
2f7376169e Stop reloading unrelated modules (#4958) 2021-05-24 11:17:45 +01:00
jack1142
7459af25ba Specify that cleanup commands remove messages from current channel (#5070) 2021-05-23 15:24:17 +01:00
aleclol
820b21dccb [Mutes] Don't send dms to bots (#5071) 2021-05-23 15:24:08 +01:00
jack1142
c4a9d97a4b Include status code in APIError and handle APIError in the loop (#4995) 2021-05-23 15:23:58 +01:00
jack1142
b89c43eb0f Ensure nothing initializes colorama when it isn't needed (#5063) 2021-05-20 10:31:27 +02:00
Ryujin
a6c438e486 Update pronouns used for the bot in documentation (#5053)
* Update admin.rst

* Update admin.rst

* Update admin.rst

* Update admin.rst

* Update getting_started.rst

* Update admin.rst

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-05-20 01:28:56 +02:00
Draper
994137426f check both connect and speak permissions before performing audio actions (#5012) 2021-05-19 21:29:40 +01:00
Draper
f3231682b0 Update application.yml + remove mixer support. (#5013) 2021-05-19 20:17:37 +01:00
jack1142
d5fbc0b01c Remove PM2 guide (#4991)
There's apparently no way to specify exit codes
for which the process should not be restarted.

This just shows how poor of a process manager PM2 is
so we really should not continue to recommend it in the documentation...

Ref:
https://stackoverflow.com/questions/43614017/how-to-only-restart-node-process-with-pm2-if-exit-code-0
2021-05-19 19:20:59 +02:00
jack1142
1c32186d0b Fix logging and handle NotFound exception in Case.edit() (#4975) 2021-05-19 18:10:15 +02:00
jack1142
8a7c4aa48c Bump discord.py to 1.7.2 (#5056) 2021-05-19 17:07:08 +01:00
Draper
3a9edd9434 Fix crash in [p]audiostats by using the new connected_at attr (#5046)
* This PR depends on Part 1 due to new `Player.guild` attribute and RLL bump to 0.8.1

- [player.store] notify_channel->channel
- [player.store] removed guild
- [player.store] removed connect
- changes in [p]audiostats

Co-authored-by: alec <50505980+aleclol@users.noreply.github.com>

* another one

* Update redbot/cogs/audio/core/commands/miscellaneous.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* style

Co-authored-by: alec <50505980+aleclol@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-05-19 17:56:53 +02:00
Kreusada
439033ea28 [Core] Improve regionalformat docstrings (#5055)
* [Docs] Update regionalformat docs

* [Core] Improve regionalformat docstrings
2021-05-19 14:47:29 +00:00
jack1142
e124ae3c11 Use ctx.send_interactive for SyntaxErrors in Dev cog
* Merge pull request #5041

* Use ctx.send_interactive for SyntaxErrors in Dev cog

* Paren in wrong place...
2021-05-19 15:36:18 +01:00
Kreusada
3ff2132570 [Core] Update [p]autoimmune remove docstring
* Merge pull request #5038

* update docstring

* update docs correspondingly
2021-05-19 15:10:31 +01:00
Draper
3f39a93e59 Stop shadowing variable in customcom's arg handling
* Merge pull request #5027

Stop shadowing variable in customcom's arg handling
2021-05-19 15:02:47 +01:00
jack1142
356922f4de Improve global exception handler log messages
* Merge pull request #4980

* Improve global exception handler log messages
2021-05-19 14:36:16 +01:00
jack1142
e2f0ac582b Add documentation for Case class in Modlog
* Merge pull request #4979

* Add documentation for Case class in Modlog
2021-05-19 14:10:19 +01:00
jack1142
9b66d19369 Fix KeyError for cached messages from deleted channels in Streams
* Merge pull request #5031

* Fix KeyError for cached messages from deleted channels in Streams
2021-05-19 14:03:28 +01:00
Kreusada
01f86091ab [Context] Fixup docstrings in react_quietly function
* Merge pull request #4955

* [Context] Add cross function, typo fixes in react_quietly()

* Remove cross function

* Remove cross variable
2021-05-19 13:35:36 +01:00
Danstr5544
56099d6b50 Attempt to DM users before applying a warn action.
* Merge pull request #5004
2021-05-19 13:06:51 +01:00
jack1142
fa4990f327 Fix --rich-traceback-extra-lines cli flag
* Merge pull request #5028
2021-05-19 13:00:31 +01:00
Kreusada
606c2f50ba [Help] Strip docstrings before shortening them (#4983)
* [Help] Strip docstrings before shortening them

* [Help] Use rstrip instead of full strip
2021-05-19 13:58:48 +02:00
jack1142
53276ea12a Update instructions to use Python 3.8.10
* Merge pull request #5025
2021-05-19 12:54:45 +01:00
Fixator10
c40efd479b [Mutes] Handle Forbidden in mute_channel
* Merge pull request #4994
2021-05-19 12:49:37 +01:00
Fixator10
a58ac7cd2e Change order of config calls in the Economy cog to only execute them when necessary.
* Merge pull request #5002
2021-05-19 12:40:12 +01:00
Vexed
31cb4c0604 Require read message hist perms for help menu (#5030)
[Help] Require read message history perms for reaction menu (#5030)
2021-05-19 12:28:13 +01:00
Kreusada
700802c303 Merge pull request #5014
* [General] Provide the urban command with embed color

* spelling consistency...
2021-05-19 12:25:54 +01:00
Draper
00d2d62f1b [Audio] Disallow all users from modifying Playlist 42069. (#5018) 2021-05-19 11:41:51 +01:00
Kreusada
c36665e755 [Modlog] Add confirmation prompt to [p]modlogset resetcases (#4976)
* [Modlog] Confirmation for resetting modlog cases

* We need to return there

* Update modlog.py

* style

* Update redbot/cogs/modlog/modlog.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-05-19 12:39:41 +02:00
bobloy
75ce67837a embedset - fix perm check for subcommands, add missing return (#4962) 2021-05-19 12:19:28 +02:00
Jamie
c83eae931b [Streams] Add guild only decorator to streams commands (#5035)
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-05-19 11:58:50 +02:00
Draper
ea82119605 Ensure track is properly resumed in an edge case (#4996) 2021-05-19 10:25:19 +01:00
Draper
42101275d5 Fix crash in [p]audioset restart (#4987) 2021-05-19 11:21:50 +02:00
Draper
38da7370ec Bump RLL and improve logging (#5044)
* version bump

* - bump RLL
- logging changes
- player.channel.guild->player.guild
- small cleanup around logging changes

* missed one

* here this one too

* Apply suggestions from code review

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* add one missing player log

* missed one

* Format with Black

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-05-19 00:56:10 +02:00
DeltaX
c9431f7d90 [Audio] Fix local track documentation. (#4832)
Co-authored-by: Draper <27962761+Drapersniper@users.noreply.github.com>
2021-05-18 23:09:32 +01:00
Fabian H
cb45ef6c42 Fixed grammatical mistakes in core_commands.py (#4966)
This fixes some issues from the recent commit 'Core Cog Guide'
2021-05-18 17:17:44 -04:00
Kreusada
410b2419dd [Docs] Mod Cog Guide (#4886)
* Initial commit

* Add some args

* bool prolog

* index

* Add more arguments

* more arguments, style fixes

* improve naming of arguments

* Fix up backlog

* Run black

* extra corrections from backlog

* Update tempban arg names

* backlog

* change prolog type

* Change kick argument prolog to member instead of user

* Update argument names

* missed a colon

* Update prolog to be friendly with non-positional args

* Edit through the decorator instead

* Add back docstring spacing

* black

* usage in decorator for name commands

* Fix command signature

* fixup docstring spacing

* style fixes

* Add spacing inside unban docstring

* Rename args instead of using usage

* black - simple

* Add labeler glob

* unify style

* rename variables instead of usage

* Update docstrings correspondingly

* run black

* update description in usage

* ehh this isn't necessary...

* fix up tags

* fix grammar and accuracy issues

* fix docstring too
2021-05-18 17:10:30 -04:00
Kreusada
5d905a93ac [Docs] Mutes Cog Guide (#4875)
* initial commit

* Update mutes.rst

* Add argument headers

* Change bool name for forcerole

* fixes

* Add mutes to toctree

* spacing adjustment

* Fix spacing between examples, use bullet points

* Add args header

* Add args header

* Add labeler glob

* unify style

* aaaaa wrong branch

* fix grammar and formatting errors
2021-05-18 17:06:50 -04:00
OofChair
99b29d0b8e Grammar fixes (#4793)
* Grammar fixes

I need manage roles permission ->> I need the manage roles permission

* Add quotes, capitalize "Manage Roles"

* Style
2021-05-18 16:39:21 -04:00
Philip
4bcfa8e486 Fix a typo in Track Stuck error (#5029) 2021-05-18 21:30:56 +01:00
PredaaA
48ed6c253e [Audio] Check if player.current is not None before resume (#4961) 2021-05-18 21:30:42 +01:00
PredaaA
9986cbe6b5 [Audio] Check required permissions in events (#4960) 2021-05-18 21:30:26 +01:00
PredaaA
e467833cee [Help] Add missing show_aliases value in help_settings.pretty (#4971)
* [Help] Add missing show_aliases value in help_settings.pretty

* Update redbot/core/commands/help.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-05-18 22:28:09 +02:00
Draper
1efcabada1 Cleanup [p]volume and fix infinite retrying in autoplay (#5045)
* This PR depends on Part 2 due to new store value

- cleanup of [p]volume
- a fix for infinite retrying

* update `[p]volume` help

* Update controller.py

* Update redbot/cogs/audio/core/commands/controller.py

meh still hardcoded in RLL .. will be removed in 0.9

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/audio/core/commands/controller.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-05-17 09:38:30 +00:00
Jamie
54e5307307 [Streams] Smashcast removal. (#5040)
* Remove smashcast

* style

* remove smash from cog guides
2021-05-15 08:54:56 -08:00
fredster33
737e4cc399 Fix dead link in CONTRIBUTING.md (+ grammar fix) (#4921)
* Fix 404 link

* Grammar edits
2021-05-15 03:33:22 +02:00
benno1237
4bdc828670 Added owner check for audiostats (#5017)
* Added owner check for audiostats

* Update redbot/cogs/audio/core/commands/miscellaneous.py

Co-authored-by: Draper <27962761+Drapersniper@users.noreply.github.com>

* Update miscellaneous.py

Co-authored-by: Draper <27962761+Drapersniper@users.noreply.github.com>
2021-05-12 17:24:07 -07:00
Obi-Wan3
c04c2efeff [Docs] updates to the Linux and Mac auto-restart docs (#5020)
* [Docs] add `sudo systemctl disable` to Linux auto-restart docs

* [Docs] fix typo in Linux auto-restart docs

* [Docs] update Mac auto-restart docs

* [Docs] implement suggestions for Linux auto-restart docs

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* [Docs] update wording on Mac auto-restart docs

* [Docs] fix grammar in Linux auto-restart docs

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-05-12 10:59:54 -07:00
Kreusada
2374b4af59 [Downloader] Fix spacing in [p]cog install response (#5034) 2021-05-10 19:26:15 +00:00
Kreusada
d666c24bd4 [Docs] Reports Cog Guide (#4882)
* [Docs] Reports Cog Guide

* Add cog to toctree

* corrections for docs tox style

* Edit sig (#4881)

* fix typo

* Add labeler glob

* unify style

* decapitalize disable

* black
2021-05-07 20:51:15 -04:00
jack1142
1697d90c53 Stop shadowing variable in customcom's arg handling 2021-05-04 16:53:39 +02:00
Obi-Wan3
7f05841b96 [Downloader] Fix [p]cog uninstall examples (#5019)
* [Downloader] fix `[p]cog uninstall` examples

* [Docs] fix Downloader guide's `[p]cog uninstall` examples
2021-05-02 19:18:38 +02:00
jack1142
01561fbe07 Fix permissions for CodeQL workflow (#5009) 2021-04-22 20:00:24 +00:00
Kowlin
f89223bc74 [Templates] Remove unused fields (#5007)
* Remove unused fields

* Update order

* Revert "Update order"

This reverts commit ef77aeb08f.

* Fix my oopsie...
2021-04-22 21:34:31 +02:00
jack1142
336abcfbba Update workflows with needed permissions (#5003) 2021-04-20 18:43:18 +02:00
jack1142
925ae870ba Nuke PR template (#4999) 2021-04-19 19:39:41 +02:00
jack1142
0447b5648a Include bot as an argument to the cog class in the cog creation guide (#4988) 2021-04-17 16:37:59 -04:00
palmtree5
5de65a74b5 Mac autostart docs (#4082)
* Mac autostart

* Make requested changes to these instructions

* Add a note about how to view the logs
2021-04-15 17:58:22 -07:00
Kowlin
7434a7c8e2 Migrate issue templates over (#4982) 2021-04-13 23:23:23 +02:00
Kowlin
f21addb0f5 Goodbye sweet prince (#4973) 2021-04-09 01:10:38 +00:00
jack1142
39144ed7cd Update API url for Picarto.TV (#4970) 2021-04-08 21:20:34 +02:00
jack1142
aea0db4ef6 Include more files in distributions (#4964)
* Include LICENSE files in distributions

* Use pep517 isolated builds

* Update the GH Actions workflow
2021-04-08 02:35:47 +02:00
bobloy
0eaa0f494c [Docs] Core Cog Guide (#4597)
* Core guide initial commit

* Mydata docstrings

* Regenerated docs

* Lots more docstrings

* Add document link

* Up to load docstrings

* Black formatting

* docstring semantics

* "cog packages" for loads

* Refix line lengths

* Regenerate docs

* Remove link

* Regenerate docs with new code

* Some small docstrings

* Regenerate docs with new .. warning code

* More docstrings into the `set` command

* Bullet lists need blank lines.

* Regenerate docs

* Regenerate docs (fix bullet lists)

* set activity statuses docstrings

* Docstrings up to helpset pagecharlimit

* Regenerate docs

* Core guide initial commit

* Mydata docstrings

* Regenerated docs

* Lots more docstrings

* Add document link

* Up to load docstrings

* Black formatting

* docstring semantics

* "cog packages" for loads

* Refix line lengths

* Regenerate docs

* Remove link

* Regenerate docs with new code

* Some small docstrings

* Regenerate docs with new .. warning code

* More docstrings into the `set` command

* Bullet lists need blank lines.

* Regenerate docs

* Regenerate docs (fix bullet lists)

* set activity statuses docstrings

* Docstrings up to helpset pagecharlimit

* Regenerate docs

* Maxpages and delete delay docstrings

* spagetthi ctrl+v

* tagline and contact

* A little more contact

* Up to allowlist

* Up to command defaultdisablecog

* Regenerate docs

* Redo custominfo to not be terrible

* Up to default enabled cog

* More docs

* Up to command disabledmsg

* Disabled message stuff was missed

* Finish the rest of the docstrings

* Regenerate docs

* Longer description of the cog

* Regenerate Docs

* Fix some of the suggestions

* Apply additional suggests and some small rewording.

* Regenerate docs.

* Apply suggestions and make additional fixes

* Regenerate docs

* Clarifies it's only loaded.

* Regenerate docs.

* New formatting, more examples, some fixes

* Regenerate docs

* Adds consistant use of dashes to arguments

* More consistant punctuation

* Regenerate docs

* Add labeler detection

* Fix example and use clearing language for helpset verifyexists docstring

* Regenerate docs

* Add leave example and arguments

* Regenerate docs

* Regenerate docs

* Make embedset more readable

(933aefd3ee was the sphinx compatible update)

* Regenerate docs

* Black formatting

* Regenerate docs

* Adds docstring examples and arguments for multiple `embedset` subcommands

* Regenerate docs
2021-04-07 13:01:34 -04:00
Kreusada
19dcc52fb1 Update issue templates with new key name for description (#4957)
* Initial commit

* Use `description` instead of `about`
2021-04-06 22:04:21 +02:00
jack1142
1c7b1e0358 Fix dev bump in Publish Release workflow (#4952)
* Fix dev bump in Publish Release workflow

* I made a PR from the wrong branch...
2021-04-06 19:19:31 +02:00
Pred
82edaeeb81 [Downloader] Show repo's name (#4954)
* Add forgotten format

* leave me alone
2021-04-06 15:15:00 +00:00
jack1142
2f16d33971 Version bump to 3.4.10.dev1 (#4953) 2021-04-06 04:06:37 +02:00
1115 changed files with 219853 additions and 125517 deletions

5
.cherry_picker.toml Normal file
View File

@@ -0,0 +1,5 @@
team = "Cog-Creators"
repo = "Red-DiscordBot"
check_sha = "6251c585e4ec0a53813a9993ede3ab5309024579"
fix_commit_msg = false
default_branch = "V3/develop"

2
.github/CODEOWNERS vendored
View File

@@ -1,5 +1,5 @@
# Cogs
/redbot/cogs/audio/** @aikaterna @Drapersniper
/redbot/cogs/audio/** @aikaterna @PredaaA
/redbot/cogs/downloader/* @jack1142
/redbot/cogs/streams/* @palmtree5
/redbot/cogs/mutes/* @TrustyJAID

View File

@@ -1,9 +1,6 @@
name: Bug reports for commands
about: For bugs that involve commands found within Red.
title: ''
description: For bugs that involve commands found within Red.
labels: 'Type: Bug'
assignees: ''
issue_body: true
body:
- type: markdown
attributes:
@@ -11,12 +8,14 @@ body:
Thank you for taking the time to fill out an issue. This template is meant for any issues related to commands.
If you require help with installing Red we ask that you join our [Discord server](https://discord.gg/red)
- type: input
id: red-version
attributes:
label: "What Red version are you using?"
placeholder: 3.4.5
validations:
required: true
- type: dropdown
id: cog-name
attributes:
label: "Cog name"
description: "From which cog does the command come from?"
@@ -46,6 +45,7 @@ body:
validations:
required: true
- type: input
id: command-name
attributes:
label: "Command name"
description: "What is the command that caused the error?"
@@ -53,11 +53,13 @@ body:
validations:
required: true
- type: textarea
id: weh
attributes:
label: "What did you expect to happen?"
validations:
required: true
- type: textarea
id: wah
attributes:
label: "What actually happened?"
description: |
@@ -66,6 +68,7 @@ body:
validations:
required: true
- type: textarea
id: reproduction-steps
attributes:
label: "How can we reproduce this error?"
description: "List of steps required to reproduce this error."
@@ -76,3 +79,8 @@ body:
...
validations:
required: true
- type: textarea
id: anything-else
attributes:
label: Anything else?
description: Let us know if you have anything else to share.

View File

@@ -1,9 +1,6 @@
name: Bug report
about: "For bugs that don't involve a command."
title: ''
description: "For bugs that don't involve a command."
labels: 'Type: Bug'
assignees: ''
issue_body: true
body:
- type: markdown
attributes:
@@ -11,22 +8,26 @@ body:
Thank you for taking the time to fill out an issue. This template is meant for any issues not related to any existing command.
If you require help with installing Red we ask that you join our [Discord server](https://discord.gg/red)
- type: input
id: red-version
attributes:
label: "What Red version are you using?"
placeholder: 3.4.5
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: "What were you trying to do?"
validations:
required: true
- type: textarea
id: weh
attributes:
label: "What did you expect to happen?"
validations:
required: true
- type: textarea
id: wah
attributes:
label: "What actually happened?"
description: |
@@ -34,6 +35,7 @@ body:
validations:
required: true
- type: textarea
id: reproduction-steps
attributes:
label: "How can we reproduce this error?"
description: |
@@ -45,3 +47,8 @@ body:
...
validations:
required: true
- type: textarea
id: anything-else
attributes:
label: Anything else?
description: Let us know if you have anything else to share.

View File

@@ -1,9 +1,6 @@
name: Enhancement proposal
about: For feature requests and improvements related to already existing functionality.
title: ''
description: For feature requests and improvements related to already existing functionality.
labels: 'Type: Enhancement'
assignees: ''
issue_body: true
body:
- type: markdown
attributes:
@@ -11,15 +8,22 @@ body:
Thank you for taking the time to fill out an issue. This template is meant for feature requests and improvements to already existing functionality.
If you require help with installing Red we ask that you join our [Discord server](https://discord.gg/red)
- type: input
id: component-name
attributes:
label: "What component of Red (cog, command, API) would you like to see improvements on?"
placeholder: Audio
validations:
required: true
- type: textarea
id: proposal
attributes:
label: "Describe the enhancement you're suggesting."
description: |
Feel free to describe in as much detail as you wish.
validations:
required: true
- type: textarea
id: anything-else
attributes:
label: Anything else?
description: Let us know if you have anything else to share.

View File

@@ -1,9 +1,6 @@
name: Feature request
about: For feature requests regarding Red itself.
title: ''
description: For feature requests regarding Red itself.
labels: 'Type: Feature'
assignees: ''
issue_body: true
body:
- type: markdown
attributes:
@@ -11,6 +8,7 @@ body:
Thank you for taking the time to fill out an issue, this template is meant for any feature suggestions.
If you require help with installing Red we ask that you join our [Discord server](https://discord.gg/red)
- type: dropdown
id: feature-name
attributes:
label: "Type of feature request"
description: "What type of feature would you like to request?"
@@ -23,6 +21,7 @@ body:
validations:
required: true
- type: textarea
id: proposal
attributes:
label: "Description of the feature you're suggesting"
description: |
@@ -45,4 +44,9 @@ body:
- Note any restrictions on who can use the command or where it can be used
validations:
required: true
- type: textarea
id: anything-else
attributes:
label: Anything else?
description: Let us know if you have anything else to share.

View File

@@ -1,7 +1 @@
### Type
- [ ] Bugfix
- [ ] Enhancement
- [ ] New feature
### Description of the changes

View File

@@ -1,7 +0,0 @@
### Type
- [ ] Bugfix
- [ ] Enhancement
- [ ] New feature
### Description of the changes

19
.github/labeler.yml vendored
View File

@@ -27,6 +27,7 @@
# Source
- redbot/*
- redbot/core/__init__.py
- redbot/core/_diagnoser.py
- redbot/core/_sharedlibdeprecation.py
- redbot/core/bot.py
- redbot/core/checks.py
@@ -45,6 +46,7 @@
- docs/framework_datamanager.rst
- docs/framework_events.rst
- docs/cog_guides/cog_manager_ui.rst
- docs/cog_guides/core.rst
"Category: CI":
- .github/workflows/*
"Category: Cleanup Cog":
@@ -120,7 +122,10 @@
- schema/*
- tools/*
"Category: Mod Cog":
# Source
- redbot/cogs/mod/*
# Docs
- docs/cog_guides/mod.rst
"Category: Modlog API":
# Source
- redbot/core/generic_casetypes.py
@@ -128,16 +133,26 @@
# Docs
- docs/framework_modlog.rst
"Category: Modlog Cog":
# Source
- redbot/cogs/modlog/*
# Docs
- docs/cog_guides/modlog.rst
"Category: Mutes Cog":
# Source
- redbot/cogs/mutes/*
# Docs
- docs/cog_guides/mutes.rst
"Category: Permissions":
# Source
- redbot/cogs/permissions/*
# Docs
- docs/cog_guides/permissions.rst
- docs/cog_permissions.rst
"Category: Reports Cog":
# Source
- redbot/cogs/reports/*
# Docs
- docs/cog_guides/reports.rst
"Category: RPC/ZMQ API":
# Source
- redbot/core/rpc.py
@@ -156,6 +171,7 @@
- redbot/cogs/trivia/*
# Docs
- docs/cog_guides/trivia.rst
- docs/guide_trivia_list_creation.rst
"Category: Trivia Lists":
- redbot/cogs/trivia/data/lists/*
"Category: Utility Functions":
@@ -164,4 +180,7 @@
# Docs
- docs/framework_utils.rst
"Category: Warnings":
# Source
- redbot/cogs/warnings/*
# Docs
- docs/cog_guides/warnings.rst

View File

@@ -3,6 +3,9 @@ on:
issues:
types: [opened]
permissions:
issues: write
jobs:
build:

View File

@@ -2,6 +2,9 @@ name: Auto Labeler - PRs
on:
pull_request_target:
permissions:
pull-requests: write
jobs:
build:
runs-on: ubuntu-latest

View File

@@ -11,6 +11,9 @@ jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
security-events: write
actions: read
steps:
- name: Checkout repository
@@ -24,7 +27,7 @@ jobs:
- name: Install dependencies
run: |
python -m pip install -U pip setuptools wheel
python -m pip install -r ./tools/dev-requirements.txt
python -m pip install -e .[all]
# Set the `CODEQL-PYTHON` environment variable to the Python executable
# that includes the dependencies
echo "CODEQL_PYTHON=$(which python)" >> $GITHUB_ENV

View File

@@ -7,6 +7,10 @@ on:
required: false
default: 'auto'
permissions:
contents: write
pull-requests: write
jobs:
crowdin_download_translations:
needs: pr_stable_bump

View File

@@ -5,8 +5,58 @@ on:
- "*"
jobs:
release_to_pypi:
release_information:
if: github.repository == 'Cog-Creators/Red-DiscordBot'
name: GO HERE BEFORE APPROVING
runs-on: ubuntu-latest
steps:
# Checkout repository and install Python
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
# Get version to release
- name: Get version to release
id: version_to_release
run: |
python .github/workflows/scripts/bump_version.py
env:
PYTHONPATH: ${{ github.workspace }}:${{ env.PYTHONPATH }}
JUST_RETURN_VERSION: '1'
# Print release information
- name: REVIEW OUTPUT OF THIS STEP BEFORE APPROVING
env:
TAG_BASE_BRANCH: ${{ github.event.base_ref }}
TAG_REF_NAME: ${{ github.ref }}
RELEASE_VERSION: ${{ steps.version_to_release.outputs.version }}
run: |
echo 'Release information:'
echo "- Branch the tag was based off: ${TAG_BASE_BRANCH#'refs/heads/'}"
echo "- Tag name: ${TAG_REF_NAME#'refs/tags/'}"
echo "- Release version: $RELEASE_VERSION"
echo "TAG_NAME=${TAG_REF_NAME#'refs/tags/'}" >> $GITHUB_ENV
- name: Ensure the tag name corresponds to the released version
env:
RELEASE_VERSION: ${{ steps.version_to_release.outputs.version }}
run: |
if [[ "$TAG_NAME" != "$RELEASE_VERSION" ]]; then
echo -n "The tag name ($TAG_NAME) is not the same as"
echo " the release version ($RELEASE_VERSION)!"
exit 1
else
echo "The tag name and the release version are the same ($TAG_NAME)."
echo 'Continuing...'
fi
release_to_pypi:
needs: release_information
environment: Release
name: Release to PyPI
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
@@ -17,20 +67,32 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
pip install build twine
- name: Build and publish
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.pypi_token }}
run: |
python setup.py sdist bdist_wheel
python -m build
twine upload dist/*
pr_dev_bump:
permissions:
contents: write
pull-requests: write
needs: release_to_pypi
name: Update Red version number to dev
runs-on: ubuntu-latest
steps:
- name: Get base branch
env:
TAG_BASE_BRANCH: ${{ github.event.base_ref }}
run: |
echo "BASE_BRANCH=${TAG_BASE_BRANCH#'refs/heads/'}" >> $GITHUB_ENV
- uses: actions/checkout@v2
with:
ref: ${{ env.BASE_BRANCH }}
- name: Set up Python
uses: actions/setup-python@v2
with:
@@ -72,6 +134,7 @@ jobs:
branch: "automated/pr_bumps/${{ steps.bump_version_dev.outputs.new_version }}"
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
milestone: ${{ steps.get_milestone_number.outputs.result }}
base: ${{ env.BASE_BRANCH }}
- name: Close and reopen the PR with different token to trigger CI
uses: actions/github-script@v3

View File

@@ -6,6 +6,11 @@ from typing import Match
import redbot
if int(os.environ.get("JUST_RETURN_VERSION", 0)):
print(f"::set-output name=version::{redbot.__version__}")
sys.exit(0)
version_info = None

View File

@@ -17,12 +17,18 @@ jobs:
python_version:
- "3.8"
tox_env:
- py
- style
- docs
include:
- tox_env: py
friendly_name: Tests
- tox_env: py38
python_version: "3.8"
friendly_name: Python 3.8 - Tests
- tox_env: py39
python_version: "3.9"
friendly_name: Python 3.9 - Tests
- tox_env: py310
python_version: "3.10-dev"
friendly_name: Python 3.10-dev - Tests
- tox_env: style
friendly_name: Style
- tox_env: docs
@@ -52,6 +58,8 @@ jobs:
matrix:
python_version:
- "3.8"
- "3.9"
- "3.10-dev"
fail-fast: false
name: Tox - Postgres
services:

83
.gitignore vendored
View File

@@ -143,3 +143,86 @@ ENV/
# Pre-commit hooks
/.pre-commit-config.yaml
### macOS template
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Windows template
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
### SublimeText template
# Cache files for Sublime Text
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache
# Workspace files are user-specific
# SFTP configuration file
sftp-config.json
sftp-config-alt*.json
# Package control specific files
Package Control.last-run
Package Control.ca-list
Package Control.ca-bundle
Package Control.system-ca-bundle
Package Control.cache/
Package Control.ca-certs/
Package Control.merged-ca-bundle
Package Control.user-ca-bundle
oscrypto-ca-bundle.crt
bh_unicode_properties.cache
# Sublime-github package stores a github token in this file
# https://packagecontrol.io/packages/sublime-github
GitHub.sublime-settings

View File

@@ -1,15 +1,11 @@
version: 2
formats:
- pdf
build:
image: latest
python:
version: 3.8
install:
- requirements: docs/requirements.txt
- method: pip
path: .
extra_requirements:

View File

@@ -1,65 +0,0 @@
dist: xenial
language: python
cache: pip
notifications:
email: false
python:
- 3.8.1
env:
global:
- PIPENV_IGNORE_VIRTUALENVS=1
install:
- pip install --upgrade pip tox
script:
- tox
jobs:
include:
- env: TOXENV=py
- env: TOXENV=docs
- env: TOXENV=style
- env: TOXENV=postgres
services: postgresql
addons:
postgresql: "10"
before_script:
- psql -c 'create database red_db;' -U postgres
# These jobs only occur on tag creation if the prior ones succeed
- stage: PyPi Deployment
if: tag IS present
python: 3.8.1
env:
- DEPLOYING=true
- TOXENV=py38
deploy:
- provider: pypi
distributions: sdist bdist_wheel
user: Red-DiscordBot
password:
secure: Ty9vYnd/wCuQkVC/OsS4E2jT9LVDVfzsFrQc4U2hMYcTJnYbl/3omyObdCWCOBC40vUDkVHAQU8ULHzoCA+2KX9Ds/7/P5zCumAA0uJRR9Smw7OlRzSMxJI+/lGq4CwXKzxDZKuo5rsxXEbW5qmYjtO8Mk6KuLkvieb1vyr2DcqWEFzg/7TZNDfD1oP8et8ITQ26lLP1dtQx/jlAiIBzgK9wziuwj1Divb9A///VsGz43N8maZ+jfsDjYqrfUVWTy3ar7JPUplletenYCR1PmQ5C46XfV0kitKd1aITJ48YPAKyYgKy8AIT+Uz1JArTnqdzLSFRNELS57qS00lzgllbteCyWQ8Uzy0Zpxb/5DDH8/mL1n0MyJrF8qjZd2hLNAXg3z/k9bGXeiMLGwoxRlGXkL2XpiVgI93UKKyVyooGNMgPTc/QdSc7krjAWcOtX/HgLR34jxeLPFEdzJNAFIimfDD8N+XTFcNBw6EvOYm/n5MXkckNoX/G+ThNobHZ7VKSASltZ9zBRAJ2dDh35G3CYmVEk33U77RKbL9le/Za9QVBcAO8i6rqVGYkdO7thHHKHc/1CB1jNnjsFSDt0bURtNfAqfwKCurQC8487zbEzT+2fog3Wygv7g3cklaRg4guY8UjZuFWStYGqbroTsOCd9ATNqeO5B13pNhllSzU=
skip_cleanup: true
on:
repo: Cog-Creators/Red-DiscordBot
tags: true
- stage: Crowdin Deployment
if: tag IS present OR ENV(BUILD_CROWDIN)
python: 3.8.1
env:
- DEPLOYING=true
- TOXENV=py38
before_deploy:
- curl https://artifacts.crowdin.com/repo/GPG-KEY-crowdin | sudo apt-key add -
- echo "deb https://artifacts.crowdin.com/repo/deb/ /" | sudo tee -a /etc/apt/sources.list
- sudo apt-get update -qq
- sudo apt-get install -y crowdin
- pip install redgettext==3.1
deploy:
- provider: script
script: make upload_translations
skip_cleanup: true
on:
repo: Cog-Creators/Red-DiscordBot
tags: true

View File

@@ -42,7 +42,7 @@ Unsure of how to get started contributing to Red? Please take a look at the Issu
* beginner - issues that can normally be fixed in just a few lines of code and maybe a test or two.
* help-wanted - issues that are currently unassigned to anyone and may be a bit more involved/complex than issues tagged with beginner.
**Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github)
**Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github)
At this point you're ready to start making changes. Feel free to ask for help; everyone was a beginner at some point!

27
MANIFEST.in Normal file
View File

@@ -0,0 +1,27 @@
# include license files
include LICENSE
recursive-include redbot *.LICENSE
# include locale files
recursive-include redbot locales/*.po
# include data folders for cogs
recursive-include redbot/**/data *
# include *.export files from the test fixtures
recursive-include redbot *.export
# include the py.typed file informing about Red being typed
recursive-include redbot py.typed
# include *.sql files from postgres driver
recursive-include redbot/core/drivers/postgres *.sql
# include tests
graft tests
# include tox configuration
include tox.ini
# exclude files containing byte-code and compiled libs
global-exclude *.py[cod]

View File

@@ -72,7 +72,7 @@ from installing and updating, every part of the bot can be controlled from withi
- Moderation features (kick/ban/softban/hackban, mod-log, filter, chat cleanup)
- Trivia (lists are included and can be easily added)
- Music features (YouTube, SoundCloud, local files, playlists, queues)
- Stream alerts (Twitch, Youtube, Hitbox, Picarto)
- Stream alerts (Twitch, Youtube, Picarto)
- Bank (slot machine, user credits)
- Custom commands
- Imgur/gif search
@@ -114,7 +114,7 @@ available 3rd party cogs!
**Red** is in continuous development, and its supported by an active community which produces new
content (cogs/plugins) for everyone to enjoy. New features are constantly added. If you cant
[find](https://cogboard.red/t/approved-repositories/210) the cog youre looking for,
[find](https://index.discord.red) the cog youre looking for,
consult our [guide](https://red-discordbot.readthedocs.io/en/stable/guide_cog_creation.html) on
building your own cogs!
@@ -131,4 +131,4 @@ Artwork created by [Sinlaire](https://sinlaire.deviantart.com/) on Deviant Art f
Bot Project.
This project vendors [discord.ext.menus](https://github.com/Rapptz/discord-ext-menus) package made by Danny Y. (Rapptz) which is distributed under MIT License.
Copy of this license can be found in [discord-ext-menus.LICENSE](redbot/vendored/discord-ext-menus.LICENSE) file in [redbot/vendored](redbot/vendored) folder of this repository.
A copy of this license can be found in the [discord-ext-menus.LICENSE](redbot/vendored/discord-ext-menus.LICENSE) file in the [redbot/vendored](redbot/vendored) folder of this repository.

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

109
docs/autostart_mac.rst Normal file
View File

@@ -0,0 +1,109 @@
.. launchd guide
==============================
Setting up auto-restart on Mac
==============================
-----------------------
Creating the plist file
-----------------------
Start by activating your venv. Then run the following command:
.. code-block:: none
which python
Copy the output of that command.
Now run :code:`sudo nano /Library/LaunchDaemons/red.plist`
Paste the following and replace the following:
- all instances of :code:`username` with your Mac username
- :code:`path` with the path you copied earlier
- :code:`instance-name` with your instance name:
.. code-block:: none
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>red</string>
<key>ProgramArguments</key>
<array>
<string>path</string>
<string>-O</string>
<string>-m</string>
<string>redbot</string>
<string>instance-name</string>
<string>--no-prompt</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>StandardOutPath</key>
<string>/tmp/red_out.log</string>
<key>StandardErrorPath</key>
<string>/tmp/red_err.log</string>
<key>UserName</key>
<string>username</string>
<key>InitGroups</key>
<true/>
</dict>
</plist>
.. note::
You may add any additional arguments you need to add to the :code:`redbot` command by
adding them to the end of the array under :code:`ProgramArguments`
.. note::
Should you need to set up auto-restart for additional bots, create a :code:`.plist` file for
each bot under a different file name, and use the respective file names for the commands below.
Save and exit :code:`ctrl + O; enter; ctrl + x`
-------------------------------
Starting and loading the plist
-------------------------------
To start the bot and set it to start on boot, you must run the following command:
.. prompt:: bash
sudo launchctl load -w /Library/LaunchDaemons/red.plist
If you need to shutdown the bot, you can use the ``[p]shutdown`` command or
type the following command in the terminal:
.. prompt:: bash
sudo launchctl stop red
To start the bot again after a shutdown, run the following:
.. prompt:: bash
sudo launchctl start red
To stop the bot and set it to not start on boot anymore, run the following:
.. prompt:: bash
sudo launchctl unload -w /Library/LaunchDaemons/red.plist
To view Red's log, run the following (:code:`red_out.log` is for the console output, and
:code:`red_err.log` for the error logs):
.. prompt:: bash
nano /tmp/red_out.log
nano /tmp/red_err.log

View File

@@ -1,56 +0,0 @@
.. pm2 service guide
==============================================
Setting up auto-restart using pm2 on Linux
==============================================
.. note:: This guide is for setting up PM2 on a Linux environment. This guide assumes that you already have a working Red instance.
--------------
Installing PM2
--------------
Start by installing Node.JS and NPM via your favorite package distributor. From there run the following command:
.. prompt:: bash
npm install pm2 -g
After PM2 is installed, run the following command to enable your Red instance to be managed by PM2. Replace the brackets with the required information.
You can add additional Red based arguments after the instance name, such as :code:`--dev`.
.. prompt:: bash
pm2 start "<path>" --name "<app_name>" -- -O -m redbot <instance_name> --no-prompt
**Arguments to replace**
- ``<app_name>`` - A name to identify the bot within pm2, this is not your Red instance.
- | ``<path>`` - The location of your Python interpreter.
| To find out where that is, use the proper set of commands:
.. prompt:: bash
:prompts: $,(redenv) $
:modifiers: auto
# If redbot is installed in a venv
$ source ~/redenv/bin/activate
(redenv) $ which python
# If redbot is installed in a pyenv virtualenv
$ pyenv shell <virtualenv_name>
(redenv) $ pyenv which python
- ``<instance_name>`` - The name of your Red instance.
------------------------------
Ensuring that PM2 stays online
------------------------------
To make sure that PM2 stays online and persistence between machine restarts, run the following commands:
.. prompt:: bash
pm2 save
pm2 startup

View File

@@ -89,7 +89,13 @@ type the following command in the terminal, still by adding the instance name af
.. warning:: If the service doesn't stop in the next 10 seconds, the process is killed.
Check your logs to know the cause of the error that prevents the shutdown.
To view Reds log, you can acccess through journalctl:
To set the bot to not start on boot anymore, you must disable the service by running the following command, adding the instance name after the **@**:
.. prompt:: bash
sudo systemctl disable red@instancename
You can access Red's log through journalctl:
.. prompt:: bash

View File

@@ -56,7 +56,7 @@ Continue to the next section to enable privileged intents.
Enabling Privileged Intents
-------------------------------
.. warning::
Due to Discord API changes, Red Bot requires all intents.
:ref:`Red Bot requires all intents. <intents>`
\This section is required.
1. Make sure you're logged on to the `Discord website <https://discord.com>`_.
@@ -75,5 +75,6 @@ Enabling Privileged Intents
.. warning::
Red bots with over 100 servers require `bot verification <https://support.discord.com/hc/en-us/articles/360040720412>`_ which is not covered in this guide.
Remember that :ref:`we do not support public bots <intents>`. We encourage you to read that page before scaling up your bot.
*Parts of this guide have been adapted from* `discord.py intro <https://discordpy.readthedocs.io/en/stable/discord.html#discord-intro>`_ *and* `discord.py privileged intents <https://discordpy.readthedocs.io/en/stable/intents.html#privileged-intents>`_.

View File

@@ -650,7 +650,7 @@ Dev Cog
Documentation changes
---------------------
- Fixed install instructions for Mac in `install_linux_mac` (:issue:`3675`, :issue:`3436`)
- Fixed install instructions for Mac (:issue:`3675`, :issue:`3436`)
- Windows install instructions now use ``choco upgrade`` commands instead of ``choco install`` to ensure up-to-date packages (:issue:`3684`)

View File

@@ -1,5 +1,492 @@
.. 3.4.x Changelogs
Redbot 3.4.15 (2021-12-31)
==========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`aikaterna`, :ghuser:`aleclol`, :ghuser:`Arman0334`, :ghuser:`Crossedfall`, :ghuser:`Dav-Git`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`jack1142`, :ghuser:`Jan200101`, :ghuser:`Just-Jojo`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`laggron42`, :ghuser:`ltzmax`, :ghuser:`Parnassius`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`RasmusWL`, :ghuser:`sravan1946`, :ghuser:`Stonedestroyer`, :ghuser:`the-krak3n`, :ghuser:`Tobotimus`, :ghuser:`vertyco`, :ghuser:`Vexed01`, :ghuser:`WreckRox`, :ghuser:`yamikaitou`
Read before updating
--------------------
#. Fedora 33 and CentOS 8 are no longer supported as they have already reached end of life.
#. 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.15 uses a new Lavalink jar that you MUST manually update from `our GitHub <https://github.com/Cog-Creators/Lavalink-Jars/releases/tag/3.4.0_1275>`__ to be able to continue using Audio.
End-user changelog
------------------
Core Bot
********
- Added new CLI options for non-interactive usage of ``redbot-setup`` (:issue:`2396`, :issue:`5448`)
See output of ``redbot-setup --help`` for more information.
- JSON is now more strongly recommended and is used by default for new instances in ``redbot-setup`` (:issue:`5448`)
- The embed setting for ``[p]help`` command set with ``[p]embedset command`` will now affect all help messages, not just the ones sent when invoking ``[p]help`` command directly (:issue:`5452`)
- ``[p]traceback`` command now indicates that it DMed the command caller with a tick reaction (:issue:`5353`)
- Improved ``[p]helpset showaliases`` responses (:issue:`5376`)
- Added plural forms to the responses of ``[p]leave`` command (:issue:`5391`)
- Fedora 33 and CentOS 8 are no longer supported as they have already reached end of life (:issue:`5440`)
- Corrected usage examples in help of ``[p]set api`` and ``[p]set api remove`` (:issue:`5444`)
- Updated prefix length limit to ``25`` to allow setting bot mention as a prefix (:issue:`5476`)
- Confirmation prompts (accepting "yes/no" or "I agree" as the answer) no longer wrongfully translate the answer that needs to be sent when only English answers are accepted by the bot (:issue:`5363`, :issue:`5364`, :issue:`5404`)
- Fixed short help for some of the commands in Core Red (:issue:`5502`)
- Fixed issues with rendering of modlog cases with usernames written in a right-to-left language (:issue:`5422`)
- Fixed an issue with instance backup failing for non-JSON storage backends (:issue:`5315`)
- Running Red with ``--no-instance`` CLI flag no longer fails when no instance was ever created by the user (:issue:`5415`, :issue:`5416`)
- ``[p]command enable guild`` and ``[p]command disable guild`` commands no longer error out for commands that *only* check for user permissions, not caller's roles (:issue:`5477`)
Admin
*****
- Added ``[p]selfroleset clear`` command which can be used to clear the list of available selfroles in the server (:issue:`5387`)
Audio
*****
- Added native Mac M1 support for Java runtimes supporting Mac M1 (:issue:`5474`)
- Enabled JDA-NAS on all system architectures which should limit stuttering/buffering issues on some machines (:issue:`5474`)
- The bot will now disconnect from the voice channel when all members are bots if the auto-disconnect setting is enabled (:issue:`5421`)
- Fixed an issue with resuming playback after changing voice channels (:issue:`5170`)
- Fixed issues with Soundcloud private playlists and mobile links (:issue:`5474`)
- Fixed searching music with some of the queries containing quotes or backslashes (:issue:`5474`)
- Fixed an exception caused by unavailable YT tracks in Mix playlists (:issue:`5474`)
- Fixed ``IndexError`` in ``[p]queue`` command which occurred when the user provides negative integer as the page number (:issue:`5429`)
Cleanup
*******
- Restricted ``[p]cleanupset notify`` to only be invokable in server channels (:issue:`5466`)
Custom Commands
***************
- Added 2000 character limit for custom command responses to prevent Nitro users from adding longer responses than a Discord bot can send (:issue:`5499`)
Dev Cog
*******
- ``[p]mockmsg`` now allows mocking attachment-only messages (:issue:`5446`)
Downloader
**********
- Added repo name to the response of ``[p]findcog`` command (:issue:`5382`, :issue:`5383`)
Economy
*******
- ``[p]economyset showsettings`` now includes configured role payday amounts (:issue:`5455`, :issue:`5457`)
General
*******
- Removed voice region field from ``[p]serverinfo`` command as Discord no longer provides this setting for servers (:issue:`5449`)
Mod
***
- ``[p]voicekick`` now sends a response when the action succeeds (:issue:`5367`)
- Fixed an error with ``[p]tempban`` failing to send an invite link when a server has an unset vanity URL (:issue:`5472`)
- Fixed explanations of example usage for ``[p]ban``, ``[p]kick``, and ``[p]tempban`` commands (:issue:`5372`)
- Fixed a typo in one of ``[p]unban``'s error messages (:issue:`5470`)
Modlog
******
- Added the new native Discord timestamps in ``[p]case``, ``[p]casesfor``, and ``[p]listcases`` commands (:issue:`5395`)
Warnings
********
- Warning actions no longer error out when the action is set to use a command that *only* checks for user permissions, not caller's roles (:issue:`5477`)
Developer changelog
-------------------
- Added optional ``message`` argument to `Context.tick()` and `Context.react_quietly()` which is used if adding the reaction doesn't succeed (:issue:`3359`, :issue:`4092`)
- Added optional ``check_permissions`` keyword-only argument to `RedBase.embed_requested()` which, if ``True``, will make the method also check whether the bot can send embeds in the given channel (:issue:`5452`)
- Added `RedBase.get_invite_url()` and `RedBase.is_invite_url_public()` that expose the functionality of ``[p]invite`` programmatically (:issue:`5152`, :issue:`5424`)
- Changed the output of ``CORE__LOAD``, ``CORE__RELOAD``, and ``CORE__UNLOAD`` RPC methods to a dictionary (:issue:`5451`, :issue:`5453`)
Documentation changes
---------------------
- Added install guide for Alma Linux 8.4-8.x and Raspberry Pi OS 11 Bullseye (:issue:`5440`)
- Updated the Java distribution used in the Windows install guide to Temurin - rebranded AdoptOpenJDK (:issue:`5403`)
- Improved Mac and pyenv instructions to address common issues with load path configuration (:issue:`5356`)
- Updated the server locations for Hetzner and Contabo in :ref:`host-list` document (:issue:`5475`)
- Updated Python version in ``pyenv`` and Windows instructions (:issue:`5447`)
- Removed inaccurate note from Unix install guides about install commands also being used for updating Red (:issue:`5439`)
- Removed LXC from unsupported hosting platforms as many VPS providers utilize that technology (:issue:`5351`)
- Specified that Red currently requires Python 3.8.1 - 3.9.x (:issue:`5403`)
Redbot 3.4.14 (2021-09-23)
==========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`aikaterna`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`L33Tech`, :ghuser:`maxbooiii`, :ghuser:`RheingoldRiver`
Read before updating
--------------------
#. Versions of RHEL older than 8.4 (including 7) and versions of CentOS older than 8.4 (excluding 7) are no longer supported.
#. 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.14 uses a new Lavalink jar that you will need to manually update from `our GitHub <https://github.com/Cog-Creators/Lavalink-Jars/releases/tag/3.3.2.3_1239>`__.
End-user changelog
------------------
- **Core Bot** - Added the new native Discord timestamp in the ``[p]uptime`` command (:issue:`5323`)
- **Core Bot** - ``redbot-setup delete`` command no longer requires database connection if the data deletion was not requested (:issue:`5312`, :issue:`5313`)
- **Audio** - Fixed intermittent 403 Forbidden errors (:issue:`5329`)
- **Modlog** - Fixed formatting of **Last modified at** field in Modlog cases (:issue:`5317`)
Documentation changes
---------------------
- Each operating system now has a dedicated install guide (:issue:`5328`)
- Fixed Raspberry Pi OS install guide (:issue:`5314`, :issue:`5328`)
- Added install guide for CentOS Stream 8, Oracle Linux 8.4-8.x, and Rocky Linux 8 (:issue:`5328`)
- Install guides for RHEL derivatives no longer require the use of pyenv (:issue:`5328`)
Redbot 3.4.13 (2021-09-09)
==========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`aikaterna`, :ghuser:`Arman0334`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`fredster33`, :ghuser:`Injabie3`, :ghuser:`jack1142`, :ghuser:`Just-Jojo`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`leblancg`, :ghuser:`maxbooiii`, :ghuser:`npc203`, :ghuser:`palmtree5`, :ghuser:`phenom4n4n`, :ghuser:`PredaaA`, :ghuser:`qenu`, :ghuser:`TheDataLeek`, :ghuser:`Twentysix26`, :ghuser:`TwinDragon`, :ghuser:`Vexed01`
Read before updating
--------------------
1. If you're hosting a public/big bot (>75 servers) or strive to scale your bot at that level, you should read :doc:`our stance on (privileged) intents and public bots <intents>`.
2. Fedora 32 is no longer supported as it has already reached end of life.
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):
Red 3.4.13 uses a new Lavalink jar that you will need to manually update from `our GitHub <https://github.com/Cog-Creators/Lavalink-Jars/releases/tag/3.3.2.3_1238>`__.
End-user changelog
------------------
Core Bot
********
- Added a new ``[p]diagnoseissues`` command to allow the bot owners to diagnose issues with various command checks with ease (:issue:`4717`, :issue:`5243`)
Since some of us are pretty excited about this feature, here's a very small teaser showing a part of what it can do:
.. figure:: https://user-images.githubusercontent.com/6032823/132610057-d6c65d67-c244-4f0b-9458-adfbe0c68cab.png
- Revamped the ``[p]debuginfo`` to make it more useful for... You guessed it, debugging! (:issue:`4997`, :issue:`5156`)
More specifically, added information about CPU and RAM, bot's instance name and owners
- The formatting of Red's console logs has been updated to make it more copy-paste friendly (:issue:`4868`, :issue:`5181`)
- Added the new native Discord timestamps in Modlog cases, ``[p]userinfo``, ``[p]serverinfo``, and ``[p]tempban`` (:issue:`5155`, :issue:`5241`)
- Added a setting for ``[p]help``'s reaction timeout (:issue:`5205`)
This can be changed with ``[p]helpset reacttimeout`` command
- Red 3.4.13 is the first release to (finally) support Python 3.9! (:issue:`4655`, :issue:`5121`)
- Upgraded all Red's dependencies (:issue:`5121`)
- Fedora 32 is no longer supported as it has already reached end of life (:issue:`5121`)
- Fixed a bunch of errors related to the missing permissions and channels/messages no longer existing (:issue:`5109`, :issue:`5163`, :issue:`5172`, :issue:`5191`)
Admin
*****
- The ``[p]selfroleset add`` and ``[p]selfroleset remove`` commands can now be used to add multiple selfroles at once (:issue:`5237`, :issue:`5238`)
Alias
*****
- Added commands for editing existing aliases (:issue:`5108`)
Audio
*****
- Added a per-guild max volume setting (:issue:`5165`)
This can be changed with the ``[p]audioset maxvolume`` command
- Fixed an issue with short clips being cutoff when auto-disconnect on queue end is enabled (:issue:`5158`, :issue:`5188`)
- Fixed fetching of age-restricted tracks (:issue:`5233`)
- Fixed searching of YT Music (:issue:`5233`)
- Fixed playback from SoundCloud (:issue:`5233`)
- ``[p]summon`` will now indicate that it has succeeded or failed to summon the bot (:issue:`5186`)
Cleanup
*******
- The ``[p]cleanup user`` command can now be used to clean messages of a user that is no longer in the server (:issue:`5169`)
- All ``[p]cleanup`` commands will now send a notification with the number of deleted messages. The notification is deleted automatically after 5 seconds (:issue:`5218`)
This can be disabled with the ``[p]cleanupset notify`` command
Downloader
**********
- The dot character (``.``) can now be used in repo names. No more issues with adding repositories using the commands provided by the Cog Index! (:issue:`5214`)
Filter
******
- Added ``[p]filter clear`` and ``[p]filter channel clear`` commands for clearing the server's/channel's filter list (:issue:`4841`, :issue:`4981`)
Mod
***
- Fixed an error with handling of temporary ban expirations while the guild is unavailable due to Discord outage (:issue:`5173`)
- The DM message from the ``[p]tempban`` command will now include the ban reason if ``[p]modset dm`` setting is enabled (:issue:`4836`, :issue:`4837`)
- The ``[p]rename`` command will no longer permit changing nicknames of members that are not lower in the role hierarchy than the command caller (:issue:`5187`, :issue:`5211`)
Streams
*******
- Fixed an issue with some YouTube streamers getting removed from stream alerts after a while (:issue:`5195`, :issue:`5223`)
- Made small optimizations in regards to stream alerts (:issue:`4968`)
Trivia
******
- Added schema validation of the custom trivia files (:issue:`4571`, :issue:`4659`)
Warnings
********
- 0 point warnings are, once again, allowed. (:issue:`5177`, :issue:`5178`)
Developer changelog
-------------------
- Added `RelativedeltaConverter` and `parse_relativedelta` to the ``redbot.core.commands`` package (:issue:`5000`)
This converter and function return `dateutil.relativedelta.relativedelta` object that represents a relative delta.
In addition to regular timedelta arguments, it also accepts months and years!
- Added more APIs for allowlists and blocklists (:issue:`5206`)
Here's the list of the methods that were added to the ``bot`` object:
- `Red.add_to_blacklist() <RedBase.add_to_blacklist()>`
- `Red.remove_from_blacklist() <RedBase.remove_from_blacklist()>`
- `Red.get_blacklist() <RedBase.get_blacklist()>`
- `Red.clear_blacklist() <RedBase.clear_blacklist()>`
- `Red.add_to_whitelist() <RedBase.add_to_whitelist()>`
- `Red.remove_from_whitelist() <RedBase.remove_from_whitelist()>`
- `Red.get_whitelist() <RedBase.get_whitelist()>`
- `Red.clear_whitelist() <RedBase.clear_whitelist()>`
- Added `CommandConverter` and `CogConverter` to the ``redbot.core.commands`` package (:issue:`5037`)
Documentation changes
---------------------
- Added a document about (privileged) intents and our stance regarding "public bots" (:issue:`5216`, :issue:`5221`)
- Added install instructions for Debian 11 Bullseye (:issue:`5213`, :issue:`5217`)
- Added Oracle Cloud's Always Free offering to the :ref:`host-list` (:issue:`5225`)
- Updated the commands in the install guide for Mac OS to work properly on Apple Silicon devices (:issue:`5234`)
- Fixed the examples of commands that are only available to people with the mod role (:issue:`5180`)
- Fixed few other small issues with the documentation :) (:issue:`5048`, :issue:`5092`, :issue:`5149`, :issue:`5207`, :issue:`5209`, :issue:`5215`, :issue:`5219`, :issue:`5220`)
Miscellaneous
-------------
- **Core Bot** - The console error about missing Privileged Intents stands out more now (:issue:`5184`)
- **Core Bot** - The ``[p]invite`` command will now add a tick reaction after it DMs an invite link to the user (:issue:`5184`)
- **Downloader** - Added a few missing line breaks (:issue:`5185`, :issue:`5187`)
Redbot 3.4.12 (2021-06-17)
==========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`aikaterna`, :ghuser:`Flame442`, :ghuser:`jack1142`, :ghuser:`Just-Jojo`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`npc203`, :ghuser:`PredaaA`, :ghuser:`retke`, :ghuser:`Stonedestroyer`
This is a hotfix release related to Red ceasing to use the Audio Global API service.
Full changelog
--------------
- **Audio** - Updated URL of the curated playlist (:issue:`5135`)
- **Audio** - All local caches are now enabled by default (:issue:`5140`)
- **Audio** - Global API service will no longer be used in Audio and as such support for it has been removed from the cog (:issue:`5143`)
- **Core Bot** - ``[p]set serverprefix`` command will now prevent the user from setting a prefix with length greater than 20 characters (:issue:`5091`, :issue:`5117`)
- **Core Bot** - ``[p]set prefix`` command will now warn the user when trying to set a prefix with length greater than 20 characters (:issue:`5091`, :issue:`5117`)
- **Core Bot** - ``applications.commands`` scope can now be included in the invite URL returned from ``[p]invite`` by enabling it with``[p]inviteset commandscope``
- **Dev Cog** - ``[p]debug`` command will now confirm the code finished running with a tick reaction (:issue:`5107`)
- **Filter** - Fixed an edge case that caused the cog to sometimes check contents of DM messages (:issue:`5125`)
- **Warnings** - Prevented users from applying 0 or less points in custom warning reasons (:issue:`5119`, :issue:`5120`)
Redbot 3.4.11 (2021-06-12)
==========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`Onii-Chan-Discord`
This is a hotfix release fixing a crash involving guild uploaded stickers.
Full changelog
--------------
- discord.py version has been bumped to 1.7.3 (:issue:`5129`)
- Links to the CogBoard in Red's documentation have been updated to use the new domain (:issue:`5124`)
Redbot 3.4.10 (2021-05-28)
==========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`aikaterna`, :ghuser:`aleclol`, :ghuser:`benno1237`, :ghuser:`bobloy`, :ghuser:`BoyDownTown`, :ghuser:`Danstr5544`, :ghuser:`DeltaXWizard`, :ghuser:`Drapersniper`, :ghuser:`Fabian-Evolved`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`Lifeismana`, :ghuser:`Obi-Wan3`, :ghuser:`OofChair`, :ghuser:`palmtree5`, :ghuser:`plofts`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`TrustyJAID`, :ghuser:`Vexed01`
Read before updating
--------------------
1. PM2 process manager is no longer supported as it is not a viable solution due to certain parts of its behavior.
We highly recommend you to switch to one of the other supported solutions:
- `autostart_systemd`
- `autostart_mac`
If you experience any issues when trying to configure it, you can join `our discord server <https://discord.gg/red>`__ and ask in the **support** channel for help.
2. 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.10 uses a new Lavalink jar that you will need to manually update from `our GitHub <https://github.com/Cog-Creators/Lavalink-Jars/releases/tag/3.3.2.3_1233>`__.
- We've updated our `application.yml file <https://github.com/Cog-Creators/Red-DiscordBot/blob/3.4.10/redbot/cogs/audio/data/application.yml>`__ and you should update your instance's ``application.yml`` appropriately.
End-user changelog
------------------
Core Bot
********
- Fixed terminal colors on Windows (:issue:`5063`)
- Fixed the ``--rich-traceback-extra-lines`` flag (:issue:`5028`)
- Added missing information about the ``showaliases`` setting in ``[p]helpset showsettings`` (:issue:`4971`)
- The help command no longer errors when it doesn't have permission to read message history and menus are enabled (:issue:`4959`, :issue:`5030`)
- Fixed a bug in ``[p]embedset user`` that made it impossible to reset the user's embed setting (:issue:`4962`)
- ``[p]embedset command`` and its subcommands now properly check whether any of the passed command's parents require Embed Links permission (:issue:`4962`)
- Fixed an issue with Red reloading unrelated modules when using ``[p]load`` and ``[p]reload`` (:issue:`4956`, :issue:`4958`)
Admin
*****
- The cog will now log when it leaves a guild due to the serverlock (:issue:`5008`, :issue:`5073`)
Audio
*****
- Fixed an issue that made it possible to remove Aikaterna's curated tracks playlist (:issue:`5018`)
- Fixed auto-resume of auto play after Lavalink restart (:issue:`5051`)
- The ``[p]audiostats`` command can now only be used by bot owners (:issue:`5017`)
- Fixed an error with ``[p]audiostats`` caused by players not always having their connection time stored (:issue:`5046`)
- Fixed track resuming in a certain edge case (:issue:`4996`)
- Fixed an error in ``[p]audioset restart`` (:issue:`4987`)
- The cog will now check whether it has speak permissions in the channel before performing any actions (:issue:`5012`)
- Fixed an issue with Audio failing when it's missing permissions to send a message in the notification channel (:issue:`4960`)
- Fixed fetching of age-restricted tracks (:issue:`5085`)
- Fixed an issue with Soundcloud URLs that ended with a slash (``/``) character (:issue:`5085`)
Custom Commands
***************
- ``[p]customcom create simple`` no longer errors for a few specific names (:issue:`5026`, :issue:`5027`)
Downloader
**********
- ``[p]repo remove`` can now remove multiple repos at the same time (:issue:`4765`, :issue:`5082`)
- ``[p]cog install`` now properly shows the repo name rather than ``{repo.name}`` (:issue:`4954`)
Mod
***
- ``[p]mute`` no longer errors on muting a bot user if the ``senddm`` option is enabled (:issue:`5071`)
Mutes
*****
- Forbidden errors during the channel mute are now handled properly in a rare edge case (:issue:`4994`)
Modlog
******
- ``[p]modlogset resetcases`` will now ask for confirmation before proceeding (:issue:`4976`)
- Modlog will no longer try editing the case's Discord message once it knows that it no longer exists (:issue:`4975`)
Streams
*******
- Fixed Picarto support (:issue:`4969`, :issue:`4970`)
- ``[p]twitchstream``, ``[p]youtubestream``, and ``[p]picarto`` commands can no longer be run in DMs (:issue:`5036`, :issue:`5035`)
- Smashcast service has been closed and for that reason we have removed support for it from the cog (:issue:`5039`, :issue:`5040`)
- Fixed Twitch stream alerts for streams that use localized display names (:issue:`5050`, :issue:`5066`)
- The cog no longer errors when trying to delete a cached message from a channel that no longer exists (:issue:`5032`, :issue:`5031`)
- In message template, ``{stream.display_name}`` can now be used to refer to streamer's display name (:issue:`5050`, :issue:`5066`)
- This is not always the same as ``{stream}`` which refers to the streamer's channel or username
Warnings
********
- The warn action is now taken *after* sending the warn message to the member (:issue:`4713`, :issue:`5004`)
Developer changelog
-------------------
- Bumped discord.py to 1.7.2 (:issue:`5066`)
- The log messages shown by the global error handler will now show the trace properly for task done callbacks (:issue:`4980`)
- **Dev** - ``[p]eval``, ``[p]repl``, and ``[p]debug`` commands no longer fail to send very long syntax errors (:issue:`5041`)
- **Dev** - ``[p]eval``, ``[p]repl``, and ``[p]debug`` commands now, in addition to ``py``, support code blocks with ``python`` syntax (:issue:`5083`)
Documentation changes
---------------------
- Added `a guide for making auto-restart service on Mac <autostart_mac>` (:issue:`4082`, :issue:`5020`)
- Added `cog guide for core commands <cog_guides/core>` (:issue:`1734`, :issue:`4597`)
- Added `cog guide for Mod cog <cog_guides/mod>` (:issue:`1734`, :issue:`4886`)
- Added `cog guide for Modlog cog <cog_guides/modlog>` (:issue:`1734`, :issue:`4919`)
- Added `cog guide for Mutes cog <cog_guides/mutes>` (:issue:`1734`, :issue:`4875`)
- Added `cog guide for Permissions cog <cog_guides/permissions>` (:issue:`1734`, :issue:`4985`)
- Added `cog guide for Reports cog <cog_guides/reports>` (:issue:`1734`, :issue:`4882`)
- Added `cog guide for Warnings cog <cog_guides/warnings>` (:issue:`1734`, :issue:`4920`)
- Added :ref:`a guide about Trivia list creation <guide_trivia_list_creation>` (:issue:`4595`, :issue:`5023`)
- Added the documentation for `redbot.core.modlog.Case` (:issue:`4979`)
- Removed PM2 guide (:issue:`4991`)
Miscellaneous
-------------
- Clarified that ``[p]cleanup`` commands only delete the messages from the current channel (:issue:`5070`)
- Updated Python version in ``pyenv`` and Windows instructions (:issue:`5025`)
- Added information on how to set the bot not to start on boot anymore to auto-restart docs (:issue:`5020`)
- Improved logging in Audio cog (:issue:`5044`)
- Improved logging of API errors in Streams cog (:issue:`4995`)
- The command ``[p]urban`` from the General cog will now use the default embed color of the bot (:issue:`5014`)
- Cog creation guide now includes the ``bot`` as an argument to the cog class (:issue:`4988`)
- Rephrased a few strings and fixed maaaaany grammar issues and typos (:issue:`4793`, :issue:`4832`, :issue:`4955`, :issue:`4966`, :issue:`5015`, :issue:`5019`, :issue:`5029`, :issue:`5038`, :issue:`5055`, :issue:`5080`, :issue:`5081`)
Redbot 3.4.9 (2021-04-06)
=========================
@@ -327,7 +814,7 @@ Documentation changes
- Added information about the Red Index to `guide_publish_cogs` (:issue:`4778`)
- Restructured the host list (:issue:`4710`)
- Clarified how to use pm2 with ``pyenv virtualenv`` (:issue:`4709`)
- Updated the pip command for Red with the postgres extra in `install_linux_mac` document to work on zsh shell (:issue:`4697`)
- Updated the pip command for Red with the postgres extra in Linux/macOS install guide to work on zsh shell (:issue:`4697`)
- Updated Python version in ``pyenv`` and Windows instructions (:issue:`4770`)
@@ -547,7 +1034,7 @@ Documentation changes
---------------------
- Added `cog guide for Cleanup cog <cleanup>` (:issue:`4488`)
- Removed multi-line commands from `install_linux_mac` to avoid confusing readers (:issue:`4550`)
- Removed multi-line commands from Linux install guides to avoid confusing readers (:issue:`4550`)
Redbot 3.4.1 (2020-10-27)
@@ -878,7 +1365,7 @@ Core Bot
- Added data request API (:issue:`4045`, :issue:`4169`)
- New special methods added to `commands.Cog`: `red_get_data_for_user()` (documented provisionally), `red_delete_data_for_user()`
- New special methods added to `redbot.core.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.json`` key added: ``end_user_data_statement``; see `Info.json format documentation <info-json-format>` for more information

View File

@@ -25,8 +25,8 @@ It can add or remove a role to a member, edit one or make some available
for members so they can self-assign them as they wish.
It also provides tools for the bot owner such as server locking (once enabled,
the bot will instantly leave new servers she joins) and announcements, which
will send something in all the servers of the bot.
the bot will instantly leave new servers it joins) and announcements, which
can send something in all the servers of the bot.
.. _admin-commands:
@@ -150,7 +150,7 @@ selfroleset add
**Description**
Add a role to the list of selfroles.
Add a role, or a selection of roles, to the list of available selfroles.
.. warning:: Members will be able to assign themselves the role.
Make sure it doesn't give extra perms or anything that can break
@@ -160,6 +160,22 @@ Add a role to the list of selfroles.
* ``<role>``: The role to add to the list. |role-input|
.. _admin-command-selfroleset-clear:
"""""""""""""""""
selfroleset clear
"""""""""""""""""
**Syntax**
.. code-block:: none
[p]selfroleset clear
**Description**
Clear the list of available selfroles for this server.
.. _admin-command-selfroleset-remove:
""""""""""""""""""
@@ -174,7 +190,7 @@ selfroleset remove
**Description**
Removes a role from the list of selfroles.
Remove a role, or a selection of roles, from the list of available selfroles.
**Arguments**
@@ -232,7 +248,7 @@ as yourself, the command author.
* ``<role>``: The role to remove. |role-input-quotes|
* ``[user]``: The member to remove the role from. |member-input| Defaults
to the command author.
to the command author.
.. _admin-command-editrole:

View File

@@ -150,7 +150,7 @@ cleanup bot
**Description**
Clean up command messages and messages from the bot.
Clean up command messages and messages from the bot in the current channel.
Can only cleanup custom commands and alias commands if those cogs are loaded.
@@ -175,7 +175,7 @@ cleanup messages
**Description**
Delete the last X messages.
Delete the last X messages in the current channel.
Example:
- ``[p]cleanup messages 26``
@@ -199,7 +199,7 @@ cleanup self
**Description**
Clean up messages owned by the bot.
Clean up messages owned by the bot in the current channel.
By default, all messages are cleaned. If a second argument is specified,
it is used for pattern matching - only messages containing the given text will be deleted.
@@ -255,7 +255,7 @@ cleanup text
**Description**
Delete the last X messages matching the specified text.
Delete the last X messages matching the specified text in the current channel.
Example:
- ``[p]cleanup text "test" 5``
@@ -283,7 +283,7 @@ cleanup user
**Description**
Delete the last X messages from a specified user.
Delete the last X messages from a specified user in the current channel.
Examples:
- ``[p]cleanup user @Twentysix 2``
@@ -294,3 +294,40 @@ Examples:
- ``<user>`` The user whose messages are to be cleaned up.
- ``<number>`` The max number of messages to cleanup. Must be a positive integer.
- ``<delete_pinned>`` Whether to delete pinned messages or not. Defaults to False
.. _cleanup-command-cleanupset:
^^^^^^^^^^
cleanupset
^^^^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]cleanupset
**Description**
Manage the settings for the cleanup command.
.. _cleanup-command-cleanupset-notify:
"""""""""""""""""
cleanupset notify
"""""""""""""""""
**Syntax**
.. code-block:: none
[p]cleanupset notify
**Description**
Toggle clean up notification settings.
When enabled, a message will be sent per cleanup, showing how many messages were deleted.
This message will be deleted after 5 seconds.

View File

@@ -45,7 +45,7 @@ or unload them.
How to install a local package without using downloader
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Let's suppose you made a cog request on the `cog board <https://cogboard.red>`_
Let's suppose you made a cog request on the `cog board <https://cogboard.discord.red>`_
and now you want to add your own cog to Red. You should have a folder that
looks like this:
@@ -238,8 +238,10 @@ installpath
**Description**
Shows the install path, or sets a new one. If you want to set a new path, the
same rules as for :ref:`addpath <cogmanagerui-command-addpath>` applies.
Shows the install path, or sets a new one.
If you want to set a new path, the same rules as for
:ref:`addpath <cogmanagerui-command-addpath>` apply
.. warning:: If you edit the install path, the cogs won't be transfered.

3581
docs/cog_guides/core.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -291,4 +291,4 @@ Shows a custom command's responses and its settings.
**Arguments:**
- ``<command>`` The custom command to show.
- ``<command_name>`` The custom command to show.

View File

@@ -235,8 +235,8 @@ You may only uninstall cogs which were previously installed
by Downloader.
Examples:
- ``[p]cog uninstall 26-Cogs defender``
- ``[p]cog uninstall Laggrons-Dumb-Cogs say roleinvite``
- ``[p]cog uninstall defender``
- ``[p]cog uninstall say roleinvite``
**Arguments**
@@ -461,14 +461,15 @@ repo delete
**Description**
Remove a repo and its files.
Remove repos and their files.
Example:
Examples:
- ``[p]repo delete 26-Cogs``
- ``[p]repo delete 26-Cogs Laggrons-Dumb-Cogs``
**Arguments**
- ``<repo>`` The name of an already added repo
- ``<repos...>`` The repo or repos to remove.
.. _downloader-command-repo-info:

View File

@@ -354,7 +354,9 @@ economyset rolepaydayamount
**Description**
Set the amount earned each payday for a role. Setting to 0 will remove the custom payday for that role instead.
Set the amount earned each payday for a role.
Set to 0 will remove the custom payday for that role instead.
Only available when not using a global bank.

View File

@@ -122,6 +122,22 @@ Examples:
- ``[words...]`` The words or sentences to filter.
.. _filter-command-filter-channel-clear:
""""""""""""""""""""
filter channel clear
""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]filter channel clear
**Description**
Clears this channel's filter list.
.. _filter-command-filter-channel-list:
"""""""""""""""""""
@@ -164,6 +180,22 @@ Examples:
- ``[words...]`` The words or sentences to no longer filter.
.. _filter-command-filter-clear:
""""""""""""
filter clear
""""""""""""
**Syntax**
.. code-block:: none
[p]filter clear
**Description**
Clears this server's filter list.
.. _filter-command-filter-delete:
"""""""""""""

View File

@@ -62,18 +62,22 @@ choose
.. code-block:: none
[p]choose [choices...]
[p]choose <first> <second> [others...]
**Description**
Choose between multiple options.
Options are separated by spaces.
.. note:: To denote options which include whitespace, you should use
double quotes.
.. note:: There must be at least 2 options to pick from.
.. note:: To denote options which include whitespace, you should enclose the option in double quotes.
**Arguments**
* ``[choices...]``: The arguments for Red to randomly choose from.
* ``<first>``: The first mandatory option.
* ``<second>``: The second mandatory option.
* ``[others...]``: Any remaining optional options.
.. _general-command-flip:

763
docs/cog_guides/mod.rst Normal file
View File

@@ -0,0 +1,763 @@
.. _mod:
===
Mod
===
This is the cog guide for the mod cog. You will
find detailed docs about usage and commands.
``[p]`` is considered as your prefix.
.. note:: To use this cog, load it by typing this::
[p]load mod
.. _mod-usage:
-----
Usage
-----
A range of highly customizable moderation tools used to protect your
guild from users who cannot follow the rules.
.. _mod-commands:
--------
Commands
--------
.. _mod-command-ban:
^^^
ban
^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]ban <user> [days] [reason]
**Description**
Ban a user from this server and optionally delete days of messages.
``days`` is the amount of days of messages to cleanup on ban.
**Arguments**
* ``<user>``: The user to ban. |user-input|
* ``[days]``: The amount of days of messages to cleanup on ban. This parameter defaults to the defaultdays setting, or no days if this has not yet been configured.
* ``[reason]``: The reason why the user was banned (optional).
**Example Usage**
* ``[p]ban 428675506947227648 7 Continued to spam after told to stop.``
This will ban the user with ID 428675506947227648 and it will delete 7 days worth of messages.
* ``[p]ban @Twentysix 7 Continued to spam after told to stop.``
This will ban Twentysix and it will delete 7 days worth of messages.
A user ID should be provided if the user is not a member of this server.
If days is not a number, it's treated as the first word of the reason.
Minimum 0 days, maximum 7. If not specified, the defaultdays setting will be used instead.
.. _mod-command-kick:
^^^^
kick
^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]kick <member> [reason]
**Description**
Kick a user.
**Arguments**
* ``<member>``: The member to kick. |member-input|
* ``[reason]``: The reason why the user was kicked (optional).
**Example Usage**
* ``[p]kick 428675506947227648 wanted to be kicked.``
This will kick the user with ID 428675506947227648 from the server.
* ``[p]kick @Twentysix wanted to be kicked.``
This will kick Twentysix from the server.
If a reason is specified, it will be the reason that shows up
in the audit log.
.. _mod-command-massban:
^^^^^^^
massban
^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]massban <user_ids...> [days] [reason]
.. tip:: Alias: ``hackban``
**Description**
Mass bans user(s) from the server.
**Arguments**
* ``<user_ids...>``: The users to ban. This must be a list of user IDs separated by spaces.
* ``[days]``: The amount of days of messages to cleanup on massban.
* ``[reason]``: The reason why these users were banned.
**Example Usage**
* ``[p]massban 345628097929936898 57287406247743488 7 they broke all rules.``
This will ban all the added userids and delete 7 days worth of their messages.
.. _mod-command-modset:
^^^^^^
modset
^^^^^^
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]modset
**Description**
Manage server administration settings.
.. _mod-command-modset-defaultdays:
""""""""""""""""""
modset defaultdays
""""""""""""""""""
**Syntax**
.. code-block:: none
[p]modset defaultdays [days=0]
**Description**
Set the default number of days worth of messages to be deleted when a user is banned.
The number of days must be between 0 and 7.
**Arguments**
* ``[days=0]``: The default number of days of messages to be deleted when a user is banned.
.. note:: This value must be between 0 and 7.
.. _mod-command-modset-defaultduration:
""""""""""""""""""""""
modset defaultduration
""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]modset defaultduration <duration>
**Description**
Set the default time to be used when a user is tempbanned.
Accepts: seconds, minutes, hours, days, weeks
**Arguments**
* ``<duration>``: The default duration for when a user is temporarily banned. Accepts seconds, minutes, hours, days or weeks.
**Example Usage**
* ``[p]modset defaultduration 7d12h10m``
* ``[p]modset defaultduration 7 days 12 hours 10 minutes``
.. _mod-command-modset-deletenames:
""""""""""""""""""
modset deletenames
""""""""""""""""""
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]modset deletenames [confirmation=False]
**Description**
Delete all stored usernames and nicknames.
**Arguments**
- ``<confirmation>``: Whether to delete all stored usernames and nicknames. |bool-input|
.. _mod-command-modset-deleterepeats:
""""""""""""""""""""
modset deleterepeats
""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]modset deleterepeats [repeats]
**Description**
Enable auto-deletion of repeated messages.
**Arguments**
* ``[repeats]``: The number of repeated messages needed before further messages are deleted.
.. note:: Must be between 2 and 20. Set to -1 to disable this feature.
.. _mod-command-modset-dm:
"""""""""
modset dm
"""""""""
**Syntax**
.. code-block:: none
[p]modset dm [enabled]
**Description**
Toggle whether a message should be sent to a user when they are kicked/banned.
If this option is enabled, the bot will attempt to DM the user with the guild name
and reason as to why they were kicked/banned.
**Arguments**
* ``[enabled]``: Whether a message should be sent to a user when they are kicked/banned. |bool-input|
.. _mod-command-modset-hierarchy:
""""""""""""""""
modset hierarchy
""""""""""""""""
**Syntax**
.. code-block:: none
[p]modset hierarchy
**Description**
Toggle role hierarchy check for mods and admins.
.. warning:: Disabling this setting will allow mods to take actions on users above them in the role hierarchy!
This is enabled by default.
.. _mod-command-modset-mentionspam:
""""""""""""""""""
modset mentionspam
""""""""""""""""""
**Syntax**
.. code-block:: none
[p]modset mentionspam
**Description**
Manage the automoderation settings for mentionspam.
.. _mod-command-modset-mentionspam-ban:
""""""""""""""""""""""
modset mentionspam ban
""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]modset mentionspam ban <max_mentions>
**Description**
Set the autoban conditions for mention spam.
Users will be banned if they send any message which contains more than
``<max_mentions>`` mentions.
**Arguments**
* ``<max_mentions>``: Must be 0 or greater. Set to 0 to disable this feature.
.. _mod-command-modset-mentionspam-kick:
"""""""""""""""""""""""
modset mentionspam kick
"""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]modset mentionspam kick <max_mentions>
**Description**
Set the autokick conditions for mention spam.
Users will be kicked if they send any message which contains more than
``<max_mentions>`` mentions.
**Arguments**
* ``<max_mentions>``: Must be 0 or greater. Set to 0 to disable this feature.
.. _mod-command-modset-mentionspam-strict:
"""""""""""""""""""""""""
modset mentionspam strict
"""""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]modset mentionspam strict [enabled]
**Description**
Setting to account for duplicate mentions.
If enabled all mentions will count including duplicated mentions.
If disabled only unique mentions will count.
Use this command without any parameter to see the current setting.
**Arguments**
* ``[enabled]``: Whether all mentions will count, including duplicated mentions. |bool-input|
.. _mod-command-modset-mentionspam-warn:
"""""""""""""""""""""""
modset mentionspam warn
"""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]modset mentionspam warn <max_mentions>
**Description**
Sets the autowarn conditions for mention spam.
Users will be warned if they send any messages which contain more than
``<max_mentions>`` mentions.
**Arguments**
* ``<max_mentions>``: Must be 0 or greater. Set to 0 to disable this feature.
.. _mod-command-modset-reinvite:
"""""""""""""""
modset reinvite
"""""""""""""""
**Syntax**
.. code-block:: none
[p]modset reinvite
**Description**
Toggle whether an invite will be sent to a user when unbanned.
If this is True, the bot will attempt to create and send a single-use invite
to the newly-unbanned user.
.. _mod-command-modset-showsettings:
"""""""""""""""""""
modset showsettings
"""""""""""""""""""
**Syntax**
.. code-block:: none
[p]modset showsettings
**Description**
Show the current server administration settings.
.. _mod-command-modset-trackallnames:
""""""""""""""""""""
modset trackallnames
""""""""""""""""""""
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]modset trackallnames [enabled]
**Description**
Toggle whether all name changes should be tracked.
Toggling this off also overrides the tracknicknames setting.
**Arguments**
* ``[enabled]``: Whether all name changes should be tracked. |bool-input|
.. _mod-command-modset-tracknicknames:
"""""""""""""""""""""
modset tracknicknames
"""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]modset tracknicknames [enabled]
**Description**
Toggle whether nickname changes should be tracked.
This setting will be overridden if trackallnames is disabled.
**Arguments**
* ``[enabled]``: Whether all nickname changes should be tracked. |bool-input|
.. _mod-command-movedeletedelay:
^^^^^^^^^^^^^^^
movedeletedelay
^^^^^^^^^^^^^^^
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]movedeletedelay
**Description**
Move deletedelay settings to core
.. _mod-command-moveignoredchannels:
^^^^^^^^^^^^^^^^^^^
moveignoredchannels
^^^^^^^^^^^^^^^^^^^
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]moveignoredchannels
**Description**
Move ignored channels and servers to core
.. _mod-command-names:
^^^^^
names
^^^^^
**Syntax**
.. code-block:: none
[p]names <member>
**Description**
Show previous names and nicknames of a member.
**Arguments**
* ``<member>``: |member-input|
.. _mod-command-rename:
^^^^^^
rename
^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]rename <member> [nickname]
**Description**
Change a member's nickname.
Leaving the nickname empty will remove it.
**Arguments**
* ``<member>``: |member-input|
* ``[nickname]``: The new nickname for the member.
.. _mod-command-slowmode:
^^^^^^^^
slowmode
^^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]slowmode [interval=0:00:00]
**Description**
Changes channel's slowmode setting.
Interval can be anything from 0 seconds to 6 hours.
Use without parameters to disable.
**Arguments**
* ``[interval=0:00:00]``: The time for the channel's slowmode settings.
.. note::
Interval can be anything from 0 seconds to 6 hours.
Use without parameters to disable.
.. _mod-command-softban:
^^^^^^^
softban
^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]softban <member> [reason]
**Description**
Kick a member and delete 1 day's worth of their messages.
**Arguments**
* ``<member>``: The member to softban. |member-input-quotes|
* ``[reason]``: Reason for the kick (optional).
.. _mod-command-tempban:
^^^^^^^
tempban
^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]tempban <member> [duration] [days] [reason]
**Description**
Temporarily ban a user from this server.
**Arguments**
* ``<member>``: The member to temporarily ban. |member-input-quotes|
* ``[duration]``: The amount of time the user should be banned for.
* ``[days]``: The amount of days of messages to cleanup on tempban.
* ``[reason]``: The reason for the tempban (optional).
**Example Usage**
* ``[p]tempban @Twentysix Because I say so``
This will ban Twentysix for the default amount of time set by an administrator.
* ``[p]tempban @Twentysix 15m You need a timeout``
This will ban Twentysix for 15 minutes.
* ``[p]tempban 428675506947227648 1d2h15m 5 Evil person``
This will ban the user with ID 428675506947227648 for 1 day 2 hours 15 minutes and will delete the last 5 days of their messages.
.. _mod-command-unban:
^^^^^
unban
^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]unban <user_id> [reason]
**Description**
Unban a user from this server.
**Arguments**
* ``<user_id>``: |user-input|
* ``[reason]``: The reason for the unban (optional).
.. _mod-command-userinfo:
^^^^^^^^
userinfo
^^^^^^^^
**Syntax**
.. code-block:: none
[p]userinfo [member]
**Description**
Show information about a user.
This includes fields for status, discord join date, server
join date, voice state and previous names/nicknames.
If the user has no roles, previous names or previous nicknames,
these fields will be omitted.
**Arguments**
* ``[member]``: |member-input|
.. _mod-command-voiceban:
^^^^^^^^
voiceban
^^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]voiceban <member> [reason]
**Description**
Ban a user from speaking and listening in the server's voice channels.
**Arguments**
* ``<member>``: The member to ban from voice. |member-input|
* ``[reason]``: The reason for the voiceban (optional).
.. _mod-command-voicekick:
^^^^^^^^^
voicekick
^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]voicekick <member> [reason]
**Description**
Kick a member from a voice channel.
**Arguments**
* ``<member>``: |member-input|
* ``[reason]``: The reason for the voicekick (optional).
.. _mod-command-voiceunban:
^^^^^^^^^^
voiceunban
^^^^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]voiceunban <member> [reason]
**Description**
Unban a user from speaking and listening in the server's voice channels.
**Arguments**
* ``<member>``: The member to unban from voice. |member-input-quotes|
* ``[reason]``: The reason for the voiceunban (optional).

191
docs/cog_guides/modlog.rst Normal file
View File

@@ -0,0 +1,191 @@
.. _modlog:
======
ModLog
======
This is the cog guide for the modlog cog. You will
find detailed docs about usage and commands.
``[p]`` is considered as your prefix.
.. note:: To use this cog, load it by typing this::
[p]load modlog
.. _modlog-usage:
-----
Usage
-----
Manage log channels for moderation actions.
.. _modlog-commands:
--------
Commands
--------
.. _modlog-command-case:
^^^^
case
^^^^
**Syntax**
.. code-block:: none
[p]case <number>
**Description**
Show the specified case.
**Arguments**
* ``<case>``: The case number to get information for.
.. _modlog-command-casesfor:
^^^^^^^^
casesfor
^^^^^^^^
**Syntax**
.. code-block:: none
[p]casesfor <member>
**Description**
Display cases for the specified member.
**Arguments**
* ``<member>``: The member to get cases for. |member-input|
.. _modlog-command-listcases:
^^^^^^^^^
listcases
^^^^^^^^^
**Syntax**
.. code-block:: none
[p]listcases <member>
**Description**
List cases for the specified member.
**Arguments**
* ``<member>``: The member to get cases for. |member-input|
.. _modlog-command-modlogset:
^^^^^^^^^
modlogset
^^^^^^^^^
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]modlogset
**Description**
Manage modlog settings.
.. _modlog-command-modlogset-cases:
"""""""""""""""
modlogset cases
"""""""""""""""
**Syntax**
.. code-block:: none
[p]modlogset cases [action]
**Description**
Enable or disable case creation for a mod action.
**Arguments**
* ``[action]``: The action to enable or disable case creation for.
.. _modlog-command-modlogset-modlog:
""""""""""""""""
modlogset modlog
""""""""""""""""
**Syntax**
.. code-block:: none
[p]modlogset modlog [channel]
.. tip:: Alias: ``modlogset channel``
**Description**
Set a channel as the modlog.
**Arguments**
* ``[channel]``: The channel to set as the modlog. If omitted, the modlog will be disabled.
.. _modlog-command-modlogset-resetcases:
""""""""""""""""""""
modlogset resetcases
""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]modlogset resetcases
**Description**
Reset all modlog cases in this server.
.. _modlog-command-reason:
^^^^^^
reason
^^^^^^
**Syntax**
.. code-block:: none
[p]reason [case] <reason>
**Description**
Specify a reason for a modlog case.
Please note that you can only edit cases you are
the owner of unless you are a mod, admin or server owner.
**Arguments**
* ``[case]``: The case number to update the reason for.
* ``<reason>``: The new reason for the specified case.
.. note:: If no case number is specified, the latest case will be used.

410
docs/cog_guides/mutes.rst Normal file
View File

@@ -0,0 +1,410 @@
.. _mutes:
=====
Mutes
=====
This is the cog guide for the mutes cog. You will
find detailed docs about usage and commands.
``[p]`` is considered as your prefix.
.. note:: To use this cog, load it by typing this::
[p]load mutes
.. _mutes-usage:
-----
Usage
-----
Mute users temporarily or indefinitely.
.. _mutes-commands:
--------
Commands
--------
.. _mutes-command-activemutes:
^^^^^^^^^^^
activemutes
^^^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]activemutes
**Description**
Displays active mutes on this server.
.. _mutes-command-mute:
^^^^
mute
^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]mute <users...> [time_and_reason]
**Description**
Mute users.
Examples:
* ``[p]mute @member1 @member2 spam 5 hours``
* ``[p]mute @member1 3 days``
**Arguments**
* ``<users...>``: A space separated list of usernames, ID's, or mentions.
* ``[time_and_reason]``: The time and reason. If no time is provided, the mute will use the default set time or indefinite if this hasn't been configured.
.. _mutes-command-mutechannel:
^^^^^^^^^^^
mutechannel
^^^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]mutechannel <users...> [time_and_reason]
.. tip:: Alias: ``channelmute``
**Description**
Mute a user in the current text channel.
Examples:
* ``[p]mutechannel @member1 @member2 spam 5 hours``
* ``[p]mutechannel @member1 3 days``
**Arguments**
* ``<users...>``: A space separated list of usernames, ID's, or mentions.
* ``[time_and_reason]``: The time and reason. If no time is provided, the mute will use the default set time or indefinite if this hasn't been configured.
.. _mutes-command-muteset:
^^^^^^^
muteset
^^^^^^^
**Syntax**
.. code-block:: none
[p]muteset
**Description**
Mute settings.
.. _mutes-command-muteset-defaulttime:
"""""""""""""""""""
muteset defaulttime
"""""""""""""""""""
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]muteset defaulttime [time]
.. tip:: Alias: ``muteset time``
**Description**
Set the default mute time for the mute command.
If no time interval is provided this will be cleared.
**Arguments**
* ``[time]``: The length of time for a default mute.
.. _mutes-command-muteset-forcerole:
"""""""""""""""""
muteset forcerole
"""""""""""""""""
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]muteset forcerole <true_or_false>
**Description**
Whether or not to force role only mutes on the bot.
**Arguments**
* ``<true_or_false>``: Whether to enable or disable this setting, must provide ``true`` or ``false``.
.. _mutes-command-muteset-makerole:
""""""""""""""""
muteset makerole
""""""""""""""""
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]muteset makerole <name>
**Description**
Create a Muted role.
This will create a role and apply overwrites to all available channels
to more easily setup muting a user.
If you already have a muted role created on the server use
``[p]muteset role ROLE_NAME_HERE``
**Arguments**
* ``<name>``: The name of the muted role to create.
.. _mutes-command-muteset-notification:
""""""""""""""""""""
muteset notification
""""""""""""""""""""
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]muteset notification [channel]
**Description**
Set the notification channel for automatic unmute issues.
If no channel is provided this will be cleared and notifications
about issues when unmuting users will not be sent anywhere.
**Arguments**
* ``[channel]``: The channel to receive unmute issue updates. |channel-input|
.. _mutes-command-muteset-role:
""""""""""""
muteset role
""""""""""""
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]muteset role [role]
**Description**
Sets the role to be applied when muting a user.
If no role is setup the bot will attempt to mute a user by setting
channel overwrites in all channels to prevent the user from sending messages.
.. Note::
If no role is setup a user may be able to leave the server
and rejoin no longer being muted.
**Arguments**
* ``[role]``: The role for muted users to receive. |role-input|
.. _mutes-command-muteset-senddm:
""""""""""""""
muteset senddm
""""""""""""""
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]muteset senddm <true_or_false>
**Description**
Set whether mute notifications should be sent to users in DMs.
**Arguments**
* ``<true_or_false>``: Whether to enable or disable this setting, must provide ``true`` or ``false``.
.. _mutes-command-muteset-settings:
""""""""""""""""
muteset settings
""""""""""""""""
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]muteset settings
.. tip:: Alias: ``muteset showsettings``
**Description**
Shows the current mute settings for this guild.
.. _mutes-command-muteset-showmoderator:
"""""""""""""""""""""
muteset showmoderator
"""""""""""""""""""""
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]muteset showmoderator <true_or_false>
**Description**
Decide whether the name of the moderator muting a user should be included in the DM to that user.
**Arguments**
* ``<true_or_false>``: Whether to enable or disable this setting, must provide ``true`` or ``false``.
.. _mutes-command-unmute:
^^^^^^
unmute
^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]unmute <users...> [reason]
**Description**
Unmute users.
**Arguments**
* ``<users...>``: A space separated list of usernames, ID's, or mentions.
* ``[reason]``: The reason for the unmute.
.. _mutes-command-unmutechannel:
^^^^^^^^^^^^^
unmutechannel
^^^^^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]unmutechannel <users...> [reason]
.. tip:: Alias: ``channelunmute``
**Description**
Unmute a user in this channel.
**Arguments**
* ``<users...>``: A space separated list of usernames, ID's, or mentions.
* ``[reason]``: The reason for the unmute.
.. _mutes-command-voicemute:
^^^^^^^^^
voicemute
^^^^^^^^^
**Syntax**
.. code-block:: none
[p]voicemute <users...> [reason]
**Description**
Mute a user in their current voice channel.
Examples:
* ``[p]voicemute @member1 @member2 spam 5 hours``
* ``[p]voicemute @member1 3 days``
**Arguments**
* ``<users...>``: A space separated list of usernames, ID's, or mentions.
* ``[time_and_reason]``: The time and reason. If no time is provided, the mute will use the default set time or indefinite if this hasn't been configured.
.. _mutes-command-voiceunmute:
^^^^^^^^^^^
voiceunmute
^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]voiceunmute <users...> [reason]
**Description**
Unmute a user in their current voice channel.
**Arguments**
* ``<users...>``: A space separated list of usernames, ID's, or mentions.
* ``[reason]``: The reason for the unmute.

View File

@@ -0,0 +1,440 @@
.. _permissions:
===========
Permissions
===========
This is the cog guide for the permissions cog. You will
find detailed docs about usage and commands.
``[p]`` is considered as your prefix.
.. note:: To use this cog, load it by typing this::
[p]load permissions
.. _permissions-usage:
-----
Usage
-----
Customise permissions for commands and cogs.
This cog extends the default permission model of the bot. By default, many commands are restricted based on what the command can do.
This cog allows you to refine some of those restrictions. You can allow wider or narrower access to most commands using it. You cannot, however, change the restrictions on owner-only commands.
When additional rules are set using this cog, those rules will be checked prior to checking for the default restrictions of the command.
Global rules (set by the owner) are checked first, then rules set for servers. If multiple global or server rules apply to the case, the order they are checked in is:
1. Rules about a user.
2. Rules about the voice channel a user is in.
3. Rules about the text channel a command was issued in.
4. Rules about a role the user has (The highest role they have with a rule will be used).
5. Rules about the server a user is in (Global rules only).
.. _permissions-commands:
--------
Commands
--------
.. _permissions-command-permissions:
^^^^^^^^^^^
permissions
^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]permissions
**Description**
Command permission management tools.
.. _permissions-command-permissions-acl:
"""""""""""""""
permissions acl
"""""""""""""""
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]permissions acl
**Description**
Manage permissions with YAML files.
.. tip:: See :ref:`here <cog_permissions>` for more information with configuring these yaml files.
.. _permissions-command-permissions-acl-getglobal:
"""""""""""""""""""""""""
permissions acl getglobal
"""""""""""""""""""""""""
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]permissions acl getglobal
**Description**
Get a YAML file detailing all global rules.
.. _permissions-command-permissions-acl-getserver:
"""""""""""""""""""""""""
permissions acl getserver
"""""""""""""""""""""""""
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]permissions acl getserver
**Description**
Get a YAML file detailing all rules in this server.
.. _permissions-command-permissions-acl-setglobal:
"""""""""""""""""""""""""
permissions acl setglobal
"""""""""""""""""""""""""
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]permissions acl setglobal
**Description**
Set global rules with a YAML file.
.. warning::
This will override reset *all* global rules
to the rules specified in the uploaded file.
This does not validate the names of commands and cogs before
setting the new rules.
.. _permissions-command-permissions-acl-setserver:
"""""""""""""""""""""""""
permissions acl setserver
"""""""""""""""""""""""""
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]permissions acl setserver
**Description**
Set rules for this server with a YAML file.
.. warning::
This will override reset *all* rules in this
server to the rules specified in the uploaded file.
.. _permissions-command-permissions-acl-updateglobal:
""""""""""""""""""""""""""""
permissions acl updateglobal
""""""""""""""""""""""""""""
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]permissions acl updateglobal
**Description**
Update global rules with a YAML file.
This won't touch any rules not specified in the YAML
file.
.. _permissions-command-permissions-acl-updateserver:
""""""""""""""""""""""""""""
permissions acl updateserver
""""""""""""""""""""""""""""
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]permissions acl updateserver
**Description**
Update rules for this server with a YAML file.
This won't touch any rules not specified in the YAML
file.
.. _permissions-command-permissions-acl-yamlexample:
"""""""""""""""""""""""""""
permissions acl yamlexample
"""""""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]permissions acl yamlexample
**Description**
Sends an example of the yaml layout for permissions
.. _permissions-command-permissions-addglobalrule:
"""""""""""""""""""""""""
permissions addglobalrule
"""""""""""""""""""""""""
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]permissions addglobalrule <allow_or_deny> <cog_or_command> <who_or_what...>
**Description**
Add a global rule to a cog or command.
**Arguments**
* ``<allow_or_deny>``: This should be one of "allow" or "deny".
* ``<cog_or_command>``: The cog or command to add the rule to. This is case sensitive.
* ``<who_or_what...>``: One or more users, channels or roles the rule is for.
.. _permissions-command-permissions-addserverrule:
"""""""""""""""""""""""""
permissions addserverrule
"""""""""""""""""""""""""
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]permissions addserverrule <allow_or_deny> <cog_or_command> <who_or_what...>
**Description**
Add a rule to a cog or command in this server.
**Arguments**
* ``<allow_or_deny>``: This should be one of "allow" or "deny".
* ``<cog_or_command>``: The cog or command to add the rule to. This is case sensitive.
* ``<who_or_what...>``: One or more users, channels or roles the rule is for.
.. _permissions-command-permissions-canrun:
""""""""""""""""""
permissions canrun
""""""""""""""""""
**Syntax**
.. code-block:: none
[p]permissions canrun <user> <command>
**Description**
Check if a user can run a command.
This will take the current context into account, such as the
server and text channel.
**Arguments**
* ``<user>``: The user to check permissions for.
* ``<command>``: The command to check whether the user can run it or not.
.. _permissions-command-permissions-clearglobalrules:
""""""""""""""""""""""""""""
permissions clearglobalrules
""""""""""""""""""""""""""""
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]permissions clearglobalrules
**Description**
Reset all global rules.
.. _permissions-command-permissions-clearserverrules:
""""""""""""""""""""""""""""
permissions clearserverrules
""""""""""""""""""""""""""""
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]permissions clearserverrules
**Description**
Reset all rules in this server.
.. _permissions-command-permissions-explain:
"""""""""""""""""""
permissions explain
"""""""""""""""""""
**Syntax**
.. code-block:: none
[p]permissions explain
**Description**
Explain how permissions works.
.. _permissions-command-permissions-removeglobalrule:
""""""""""""""""""""""""""""
permissions removeglobalrule
""""""""""""""""""""""""""""
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]permissions removeglobalrule <cog_or_command> <who_or_what...>
**Description**
Remove a global rule from a command.
**Arguments**
* ``<cog_or_command>``: The cog or command to remove the rule from. This is case sensitive.
* ``<who_or_what...>``: One or more users, channels or roles the rule is for.
.. _permissions-command-permissions-removeserverrule:
""""""""""""""""""""""""""""
permissions removeserverrule
""""""""""""""""""""""""""""
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]permissions removeserverrule <cog_or_command> <who_or_what...>
**Description**
Remove a server rule from a command.
**Arguments**
* ``<cog_or_command>``: The cog or command to remove the rule from. This is case sensitive.
* ``<who_or_what...>``: One or more users, channels or roles the rule is for.
.. _permissions-command-permissions-setdefaultglobalrule:
""""""""""""""""""""""""""""""""
permissions setdefaultglobalrule
""""""""""""""""""""""""""""""""
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]permissions setdefaultglobalrule <allow_or_deny> <cog_or_command>
**Description**
Set the default global rule for a command or a cog.
This is the rule a command will default to when no other rule
is found.
**Arguments**
* ``<cog_or_command>``: The cog or command to add the rule to. This is case sensitive.
* ``<who_or_what...>``: One or more users, channels or roles the rule is for.
.. _permissions-command-permissions-setdefaultserverrule:
""""""""""""""""""""""""""""""""
permissions setdefaultserverrule
""""""""""""""""""""""""""""""""
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]permissions setdefaultserverrule <allow_or_deny> <cog_or_command>
**Description**
Set the default rule for a command or a cog in this server.
This is the rule a command will default to when no other rule
is found.
**Arguments**
* ``<cog_or_command>``: The cog or command to add the rule to. This is case sensitive.
* ``<who_or_what...>``: One or more users, channels or roles the rule is for.

141
docs/cog_guides/reports.rst Normal file
View File

@@ -0,0 +1,141 @@
.. _reports:
=======
Reports
=======
This is the cog guide for the reports cog. You will
find detailed docs about usage and commands.
``[p]`` is considered as your prefix.
.. note:: To use this cog, load it by typing this::
[p]load reports
.. _reports-usage:
-----
Usage
-----
Create user reports that server staff can respond to.
Users can open reports using ``[p]report``. These are then sent
to a channel in the server for staff, and the report creator
gets a DM. Both can be used to communicate.
.. _reports-commands:
--------
Commands
--------
.. _reports-command-report:
^^^^^^
report
^^^^^^
**Syntax**
.. code-block:: none
[p]report [text]
**Description**
Send a report.
Use without arguments for interactive reporting, or do
``[p]report [text]`` to use it non-interactively.
**Arguments**
* ``[text]``: The content included within the report.
.. _reports-command-report-interact:
"""""""""""""""
report interact
"""""""""""""""
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]report interact <ticket_number>
**Description**
Open a message tunnel.
This tunnel will forward things you say in this channel
to the ticket opener's direct messages.
Tunnels do not persist across bot restarts.
**Arguments**
* ``<ticket_number>``: The ticket number to open the tunnel in.
.. _reports-command-reportset:
^^^^^^^^^
reportset
^^^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]reportset
**Description**
Manage Reports.
.. _reports-command-reportset-output:
""""""""""""""""
reportset output
""""""""""""""""
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]reportset output <channel>
**Description**
Set the channel where reports will be sent.
**Arguments**
* ``<channel>``: |channel-input|
.. _reports-command-reportset-toggle:
""""""""""""""""
reportset toggle
""""""""""""""""
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]reportset toggle
**Description**
Enable or disable reporting for this server.

View File

@@ -27,7 +27,6 @@ Supported streaming services are:
- Twitch
- Youtube
- Smashcast
- Picarto
Youtube and Twitch both require setting authentication
@@ -201,7 +200,10 @@ Use ``{mention}`` in the message to insert the selected mentions.
Use ``{stream}`` in the message to insert the channel or user name.
For example: ``[p]streamset message mention {mention}, {stream} is live!``
Use ``{stream.display_name}`` in the message to insert the channel's display name
(on Twitch, this may be different from ``{stream}``).
For example: ``[p]streamset message mention {mention}, {stream.display_name} is live!``
**Arguments**
@@ -225,7 +227,10 @@ Sets a stream alert message for when mentions are disabled.
Use ``{stream}`` in the message to insert the channel or user name.
For example: ``[p]streamset message nomention {stream} is live!``
Use ``{stream.display_name}`` in the message to insert the channel's display name
(on Twitch, this may be different from ``{stream}``).
For example: ``[p]streamset message nomention {stream.display_name} is live!``
**Arguments**
@@ -353,26 +358,6 @@ Check if a Picarto channel is live.
* ``<channel_name>``: The Picarto channel to check.
.. _streams-command-smashcast:
^^^^^^^^^
smashcast
^^^^^^^^^
**Syntax**
.. code-block:: none
[p]smashcast <channel_name>
**Description**
Check if a Smashcast channel is live.
**Arguments**
* ``<channel_name>``: The Smashcast channel to check.
.. _streams-command-twitchstream:
^^^^^^^^^^^^
@@ -466,27 +451,6 @@ specified Picarto channel.
* ``<channel_name>``: The Picarto channel to toggle the alert for.
.. _streams-command-streamalert-smashcast:
^^^^^^^^^^^^^^^^^^^^^
streamalert smashcast
^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamalert smashcast <channel_name>
**Description**
Toggle alerts in the current channel for the
specified Smashcast channel.
**Arguments**
* ``<channel_name>``: The Smashcast channel to toggle the alert for.
.. _streams-command-streamalert-twitch-channel:
^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -247,6 +247,11 @@ triviaset custom
Manage custom trivia lists.
.. tip::
Looking to learn how to create your own trivia lists?
See :ref:`here <guide_trivia_list_creation>` for more information.
.. _trivia-command-triviaset-custom-upload:
^^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -0,0 +1,403 @@
.. _warnings:
========
Warnings
========
This is the cog guide for the warnings cog. You will
find detailed docs about usage and commands.
``[p]`` is considered as your prefix.
.. note:: To use this cog, load it by typing this::
[p]load warnings
.. _warnings-usage:
-----
Usage
-----
Warn misbehaving users and take automated actions.
.. _warnings-commands:
--------
Commands
--------
.. _warnings-command-actionlist:
^^^^^^^^^^
actionlist
^^^^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]actionlist
**Description**
List all configured automated actions for Warnings.
.. _warnings-command-mywarnings:
^^^^^^^^^^
mywarnings
^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]mywarnings
**Description**
List warnings for yourself.
.. _warnings-command-reasonlist:
^^^^^^^^^^
reasonlist
^^^^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]reasonlist
**Description**
List all configured reasons for Warnings.
.. _warnings-command-unwarn:
^^^^^^
unwarn
^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]unwarn <member> <warn_id> [reason]
**Description**
Remove a warning from a member.
**Arguments**
* ``<member>``: The member to remove the warning from. |member-input-quotes|
* ``<warn_id>``: The warning ID to remove from the member.
* ``[reason]``: The reason for unwarning this member.
.. _warnings-command-warn:
^^^^
warn
^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]warn <member> [points=1] <reason>
**Description**
Warn the user for the specified reason.
**Arguments**
* ``<member>``: The member to warn. |member-input-quotes|
* ``[points]``: The number of points the warning should be for. If no number is supplied, 1 point will be given. Pre-set warnings disregard this.
* ``<reason>``: The reason for the warning. This can be a registered reason, or a custom reason if ``[p]warningset allowcustomreasons`` is set.
.. _warnings-command-warnaction:
^^^^^^^^^^
warnaction
^^^^^^^^^^
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]warnaction
**Description**
Manage automated actions for Warnings.
Actions are essentially command macros. Any command can be run
when the action is initially triggered, and/or when the action
is lifted.
Actions must be given a name and a points threshold. When a
user is warned enough so that their points go over this
threshold, the action will be executed.
.. _warnings-command-warnaction-add:
""""""""""""""
warnaction add
""""""""""""""
**Syntax**
.. code-block:: none
[p]warnaction add <name> <points>
**Description**
Create an automated action.
Duplicate action names are not allowed.
**Arguments**
* ``<name>``: The name of the action.
* ``<points>``: The number of points for this action.
.. _warnings-command-warnaction-delete:
"""""""""""""""""
warnaction delete
"""""""""""""""""
**Syntax**
.. code-block:: none
[p]warnaction delete <action_name>
**Description**
Delete the action with the specified name.
**Arguments**
* ``<action_name>``: The name of the action to delete.
.. _warnings-command-warnings:
^^^^^^^^
warnings
^^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]warnings <member>
**Description**
List the warnings for the specified member.
**Arguments**
* ``<member>``: The member to get the warnings for. |member-input|
.. _warnings-command-warningset:
^^^^^^^^^^
warningset
^^^^^^^^^^
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]warningset
**Description**
Manage settings for Warnings.
.. _warnings-command-warningset-allowcustomreasons:
"""""""""""""""""""""""""""""
warningset allowcustomreasons
"""""""""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]warningset allowcustomreasons <true_or_false>
**Description**
Enable or disable custom reasons for a warning.
**Arguments**
* ``<true_or_false>``: |bool-input|
.. _warnings-command-warningset-senddm:
"""""""""""""""""
warningset senddm
"""""""""""""""""
**Syntax**
.. code-block:: none
[p]warningset senddm <true_or_false>
**Description**
Set whether warnings should be sent to users in DMs.
**Arguments**
* ``<true_or_false>``: |bool-input|
.. _warnings-command-warningset-showmoderator:
""""""""""""""""""""""""
warningset showmoderator
""""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]warningset showmoderator <true_or_false>
**Description**
Decide whether the name of the moderator warning a user should be included in the DM to that user.
**Arguments**
* ``<true_or_false>``: |bool-input|
.. _warnings-command-warningset-usewarnchannel:
"""""""""""""""""""""""""
warningset usewarnchannel
"""""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]warningset usewarnchannel <true_or_false>
**Description**
Set if warnings should be sent to a channel set with ``[p]warningset warnchannel``.
**Arguments**
* ``<true_or_false>``: |bool-input|
.. _warnings-command-warningset-warnchannel:
""""""""""""""""""""""
warningset warnchannel
""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]warningset warnchannel [channel]
**Description**
Set the channel where warnings should be sent to.
**Arguments**
* ``[channel]``: |channel-input| Leave empty to use the channel ``[p]warn`` command was called in.
.. _warnings-command-warnreason:
^^^^^^^^^^
warnreason
^^^^^^^^^^
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]warnreason
**Description**
Manage warning reasons.
Reasons must be given a name, description and points value. The
name of the reason must be given when a user is warned.
.. _warnings-command-warnreason-create:
"""""""""""""""""
warnreason create
"""""""""""""""""
**Syntax**
.. code-block:: none
[p]warnreason create <name> <points> <description>
.. tip:: Alias: ``warnreason add``
**Description**
Create a warning reason.
**Arguments**
* ``<name>``: The name for the new reason.
* ``<points>``: The number of points with the new reason.
* ``<description>``: The description of the new warn reason.
.. _warnings-command-warnreason-delete:
"""""""""""""""""
warnreason delete
"""""""""""""""""
**Syntax**
.. code-block:: none
[p]warnreason delete <reason_name>
**Description**
Delete a warning reason.
**Arguments**
* ``<reason_name>``: The name of the reason to delete.

View File

@@ -1,4 +1,5 @@
.. Permissions Cog Reference
.. _cog_permissions:
=========================
Permissions Cog Reference

View File

@@ -86,7 +86,13 @@ language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
exclude_patterns = [
"_build",
"Thumbs.db",
".DS_Store",
# to ensure that include files (partial pages) aren't built, exclude them
"**/_includes/**",
]
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = "sphinx"
@@ -218,6 +224,7 @@ intersphinx_mapping = {
"dpy": (f"https://discordpy.readthedocs.io/en/v{dpy_version}/", None),
"motor": ("https://motor.readthedocs.io/en/stable/", None),
"babel": ("http://babel.pocoo.org/en/stable/", None),
"dateutil": ("https://dateutil.readthedocs.io/en/stable/", None),
}
# Extlinks

View File

@@ -13,7 +13,7 @@ This is a quick start guide for a general usage.
.. note::
If you haven't installed Red, please do it by following
the :ref:`installation guides <main>`.
one of the `installation guides <install_guides/index>`.
Assuming you correctly installed Red, you should have a
window like this:
@@ -26,8 +26,8 @@ window like this:
Invite Red to your server
-------------------------
When started, the console will show you ``Invite URL`` (here at
the bottom of the screenshot).
When started, the console will show you the ``Invite URL``
(visible at the bottom of the screenshot above).
Paste the link into your browser and select the server you want
to invite the bot in, like any other bot.
@@ -63,7 +63,7 @@ example, if your prefix is ``!``, you will execute your command like this:
The commands
~~~~~~~~~~~~
The command you're going to use the most is help. That command will
The command you're going to use the most is **help**. This command will
show you **all of the available commands** of the bot with a small description.
.. code-block:: none
@@ -106,8 +106,8 @@ parameters.
the syntax ``cleanup messages <number> [delete_pinned=False]``, which means
``delete_pinned`` default will be false, unless you specify it as true.
You can use help to show the **categories** too, generally called cogs.
Just do something like this (notice the capitalization):
You can use help to show the **categories** too, generally called cogs,
by doing the following (notice the capitalization):
.. code-block:: none
@@ -122,7 +122,7 @@ To get the description of a subcommand, type this:
When using subcommands, you also need to specify the command group.
As an example, ``cleanup`` has 6 subcommands. If you want
to use one, do it like this: ``[p]cleanup messages 10``
to use one of them, do: ``[p]cleanup messages 10``
.. _getting-started-cogs:
@@ -217,7 +217,7 @@ Server owner
~~~~~~~~~~~~
The server owner can access all commands on his guild, except the global
ones or those who can interact with system files (available for the
ones or those that can interact with system files (available for the
bot owner).
~~~~~~~~~~~~~
@@ -237,12 +237,13 @@ Moderator
A moderator is a step above the average users. You can set multiple moderator
roles with the ``[p]set addmodrole`` and ``[p]set removemodrole`` commands.
For example, in the mod cog (again), a mod will be able to mute, kick and ban;
but he won't be able to modify the cog settings with the ``[p]modset`` command.
For example, in the filter cog, a mod will be able to use the various commands
under ``[p]filter`` (such as adding and removing filtered words), but they will
not be able to modify the cog settings with the ``[p]filterset`` command.
.. tip::
If you don't like the default permission settings for some commands or
if want to restrict a cog or a command to a channel/member, you can use
want to restrict a cog or a command to a channel/member, you can use
the permissions cog.
.. _getting-started-hosting:
@@ -253,9 +254,9 @@ Hosting
If you are hosting Red on your personal computer, you will soon notice that
if you close the window or if you shut down you computer, Red will be offline.
She needs an environment to work and respond.
It needs an environment to work and respond.
You can try to host Red somewhere she will always be online, like on a virtual
You can try to host Red somewhere it will always be online, like on a virtual
private server (VPS) or on a personal server (e.g. Raspberry Pi).
If you want to do it, follow these steps.
@@ -265,14 +266,14 @@ If you want to do it, follow these steps.
basics of the Unix commands, such as navigating the system files or use
a terminal text editor.
You should follow `this guide
You should read `DigitalOcean's tutorial: An Introduction to Linux Basics
<https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-basics>`_
from DigitalOcean which will introduce you to the Linux basics.
if you have not used Linux before.
1. **Find a host**
You need to find a server to host Red. You can rent a VPS (it can be free)
on an online service. Please check :ref:`this page <host-list>` for
on an online service. Please check :ref:`this list of hosts <host-list>` for
more information.
You can also buy a Raspberry Pi (~$20), which is a micro-computer that will
@@ -306,8 +307,8 @@ If you want to do it, follow these steps.
3. **Install and set up Red**
Just follow one of the Linux installation guide. We provide guides for the
most used distributions. Check the :ref:`home page <main>` and search for
Follow one of the Linux installation guides. We provide guides for the
most used distributions. Check the `list of install guides <install_guides/index>` and search for
your distribution.
4. **Set up an auto-restart**
@@ -317,7 +318,7 @@ If you want to do it, follow these steps.
side task and handle fatal errors, so you can just leave your server running
and enjoy Red!
For that, just follow :ref:`this guide <systemd-service-guide>`.
For that, follow :ref:`the systemd service guide <systemd-service-guide>`.
.. _getting-started-userdocs:
@@ -343,9 +344,12 @@ The cog guides are formatted the same. They're divided into 3 sections:
A line that will show how the command must be invoked, with the arguments.
.. tip:: If the command show something like ``[lavalinkset|llset]``, that means
you can invoke the command with ``lavalinkset`` or with ``llset``, this is
called an alias.
* **Aliases**
Each command may have one or more aliases, which are alternative command names
you can use to invoke the same command. For example, ``[p]set colour`` can also
be invoked with ``[p]set color``. If there are aliases for a command, they will
appear just under the syntax.
* **Description**

View File

@@ -86,6 +86,9 @@ In that file, place the following code:
class MyCog(commands.Cog):
"""My custom cog"""
def __init__(self, bot):
self.bot = bot
@commands.command()
async def mycom(self, ctx):
"""This does stuff!"""
@@ -100,7 +103,7 @@ Open :code:`__init__.py`. In that file, place the following:
def setup(bot):
bot.add_cog(MyCog())
bot.add_cog(MyCog(bot))
Make sure that both files are saved.

View File

@@ -17,7 +17,7 @@ Creating a Cog Creator Application
You will need to have created and published your cogs before you create a Cog Creator Application!
See `guide_cog_creation` and `guide_publish_cogs` for more information.
Cog Creator Applications are hosted on the `cogboard <https://cogboard.red/c/apps/12>`__.
Cog Creator Applications are hosted on the `cogboard <https://cogboard.discord.red/c/apps/12>`__.
To create an application, start a new topic in the "Applications" category and fill out all of the required information.
QA reviews Cog Creator Applications for security and functionality on a first come, first serve basis.
Once your application is reviewed, you will have 14 days to make any requested changes, or to check in with the member of QA who is reviewing your application.

View File

@@ -0,0 +1,125 @@
.. _guide_trivia_list_creation:
==========================
Trivia List Creation Guide
==========================
The Trivia cog allows you to create your own "trivia lists",
which are then processed in the cog - allowing you to create as
many questions as you'd like, with easy to use syntax.
---------------
Getting Started
---------------
Let's start off by creating a file named ``mytrivia.yaml``.
Our trivia list will be named after the file, so in this case,
it will be called ``mytrivia``.
------------
Author Field
------------
We should first include an ``AUTHOR`` field,
to let the user know who wrote the questions.
When the user starts the trivia, the author(s) will
be sent in the starting message (see below).
.. image:: .resources/trivia/trivia_author.png
The following should be placed at the top of your file, replacing "Red"
with your name:
.. code-block:: yaml
AUTHOR: Red
If there are multiple authors, we can separate them with commas.
.. code-block:: yaml
AUTHOR: Red, Rojo, Rouge
---------------------
Questions and Answers
---------------------
Writing questions and answers is simple. Once you've finished your
``AUTHOR`` field, you can move on to your questions just below.
Questions should consist of at least one answer, with other
possible answers included if necessary. You must put a colon at the end
of the question, for example:
.. code-block:: yaml
How many days are there in a regular year?:
Answers will follow below, each separated by a line break and with a
hyphen at the start of the line.
.. code-block:: yaml
How many days are there in a regular year?:
- 365
- three hundred and sixty five
It's always nice to include alternative answers if a question needs it.
We can add as many valid answers as we'd like below this question. Answers
are **NOT** case sensitive, so you don't need to worry about adding the same
answer multiple times in different casings.
There are multiple special characters in YAML, such as colons, hashtags, hyphens
and more. If these characters are included within our questions or answers,
you'll need to enclose the content with quotation marks.
.. code-block:: yaml
"Who is the #1 followed user on Twitter?":
If we didn't have these quotation marks, the question would not render.
.. code-block:: yaml
Who is the #1 followed user on Twitter?:
.. tip::
We can also include line breaks within our questions by using ``\n``, like
this for example:
.. code-block:: yaml
"My first line\nMy second line":
As you've added more questions, your file should look something like this:
.. code-block:: yaml
AUTHOR: Red
How many days are there in a regular year?:
- 365
- three hundred and sixty five
"Who is the #1 followed user on Twitter?":
- Barack Obama
- Obama
What is the only sea without any coasts?:
- Sargasso
- Sargasso Sea
Who won the Premier League in 2015?:
- Chelsea
- chelsea f.c.
How much money is a US Olympic gold medalist awarded?:
- $25,000
- 25,000
- 25k
- 25000
- $25000
You can keep adding questions until you are satisfied, and then you can upload and
play your very own trivia! See :ref:`[p]triviaset custom <trivia-command-triviaset-custom>` for more information.
Still stuck? Take a look at
`the core trivia lists <https://github.com/Cog-Creators/Red-DiscordBot/tree/V3/develop/redbot/cogs/trivia/data/lists>`_
for reference.

View File

@@ -8,7 +8,7 @@ Hosting Information
.. note::
This doc is written for the :ref:`hosting section <getting-started-hosting>`
of the :ref:`getting started <getting-started>` guide. Please take a look
of the :ref:`getting started guide <getting-started>`. Please take a look
if you don't know how to host Red.
@@ -21,7 +21,7 @@ First, we would like to make something clear:
.. warning::
Due to their inability to handle Red's data structure and meet the
conditions of being a supported platform; platforms such as Heroku,
Pterodactyl, repl.it, Termux, LXC and alike are **NOT** officially supported.
Pterodactyl, repl.it, Termux and alike are **NOT** officially supported.
Docker support found in GitHub is also a work in progress and not ready
for daily use. Workarounds for getting Red running on those platforms
are imperfect due to Red's nature. You will not be able to receive
@@ -41,9 +41,9 @@ Hosting on a VPS or Dedicated Server
.. warning::
Please be aware that a Linux server is controlled through a command line.
If you don't know Unix basics, please take a look at `this guide
<https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-basics>`_
from DigitalOcean which will introduce you to the Linux basics.
If you don't know Unix basics, please take a look at
`DigitalOcean's tutorial: An Introduction to Linux Basics
<https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-basics>`_.
------------
@@ -103,10 +103,10 @@ Average Providers
with locations available worldwide.
| `Hetzner Online <https://www.hetzner.com/>`_ is a German VPS and dedicated server
provider with locations in Germany and Finland.
provider with locations in Germany, US and Finland.
| `Contabo <https://contabo.com/>`_ is also a German VPS and dedicated server provider
with locations in Germany and the United States.
with locations in Germany, Asia and the United States.
| `Ramnode <https://www.ramnode.com/>`_ is a US based VPS provider focused on
low to middle end VPS with locations in the US and Netherlands.
@@ -145,6 +145,7 @@ Free Hosting
Oracle Cloud and Google Cloud offer always free tiers with limited resources.
| Additionally, new Google Cloud customers get a $300 credit which is valid for 3 months.
New Oracle Cloud customers also get $300 of free credit, but only valid for 30 days.
| Excluding the above, there is no recommended free VPS host. Persuasion of
another individual for hosting Red is an option, albeit low in success rate.

View File

@@ -12,13 +12,12 @@ Welcome to Red - Discord Bot's documentation!
:maxdepth: 1
:caption: Installation Guides:
install_windows
install_linux_mac
install_guides/index
bot_application_guide
update_red
about_venv
autostart_systemd
autostart_pm2
autostart_mac
.. toctree::
:maxdepth: 2
@@ -26,25 +25,34 @@ Welcome to Red - Discord Bot's documentation!
cog_customcom
cog_permissions
guide_trivia_list_creation
.. toctree::
:maxdepth: 2
:caption: User guides:
getting_started
intents
cog_guides/admin
cog_guides/alias
cog_guides/bank
cog_guides/cleanup
cog_guides/cog_manager_ui
cog_guides/core
cog_guides/customcommands
cog_guides/downloader
cog_guides/economy
cog_guides/filter
cog_guides/general
cog_guides/image
cog_guides/permissions
cog_guides/mod
cog_guides/modlog
cog_guides/mutes
cog_guides/reports
cog_guides/streams
cog_guides/trivia
cog_guides/warnings
red_core_data_statement
.. toctree::

View File

@@ -0,0 +1,19 @@
To install/update pyenv, run the following command:
.. prompt:: bash
command -v pyenv && pyenv update || curl https://pyenv.run | bash
After this command, you will see a warning about 'pyenv' not being in the load path. To address this,
you should run these commands:
.. prompt:: bash
profile=$([ -n "$ZSH_VERSION" ] && echo ~/.zprofile || ([ -f ~/.bash_profile ] && echo ~/.bash_profile || echo ~/.profile))
rcfile=$([ -n "$ZSH_VERSION" ] && echo ~/.zshrc || echo ~/.bashrc)
printf '%s\n%s\n%s\n' 'export PYENV_ROOT="$HOME/.pyenv"' 'export PATH="$PYENV_ROOT/bin:$PATH"' "$([ -f "$profile" ] && cat "$profile")" > "$profile"
echo 'eval "$(pyenv init --path)"' >> "$profile"
echo 'eval "$(pyenv init -)"' >> "$rcfile"
echo 'eval "$(pyenv virtualenv-init -)"' >> "$rcfile"
Then **log out and log back in** and run the following command:

View File

@@ -0,0 +1,44 @@
------------------------------
Creating a Virtual Environment
------------------------------
.. tip::
If you want to learn more about virtual environments, see page: `about-venvs`
We require installing Red into a virtual environment. Don't be scared, it's very
straightforward.
**************************
Using ``pyenv virtualenv``
**************************
Using ``pyenv virtualenv`` saves you the headache of remembering where you installed your virtual
environments. This option is only available if you installed Python with pyenv.
First, ensure your pyenv interpreter is set to python 3.8.1 or greater with the following command:
.. prompt:: bash
pyenv version
Now, create a virtual environment with the following command:
.. prompt:: bash
pyenv virtualenv <name>
Replace ``<name>`` with whatever you like. If you ever forget what you named it,
you can always use the command ``pyenv versions`` to list all virtual environments.
Now activate your virtualenv with the following command:
.. prompt:: bash
pyenv shell <name>
.. important::
You must activate the virtual environment with the above command every time you open a new
shell to run, install or update Red. You can check out other commands like ``pyenv local`` and
``pyenv global`` if you wish to keep the virtualenv activated all the time.

View File

@@ -0,0 +1,38 @@
------------------------------
Creating a Virtual Environment
------------------------------
.. tip::
If you want to learn more about virtual environments, see page: `about-venvs`
We require installing Red into a virtual environment. Don't be scared, it's very
straightforward.
**************
Using ``venv``
**************
This is the quickest way to get your virtual environment up and running, as `venv` is shipped with
python.
First, choose a directory where you would like to create your virtual environment. It's a good idea
to keep it in a location which is easy to type out the path to. From now, we'll call it
``redenv`` and it will be located in your home directory.
Create your virtual environment with the following command:
.. prompt:: bash
python3.9 -m venv ~/redenv
And activate it with the following command:
.. prompt:: bash
source ~/redenv/bin/activate
.. important::
You must activate the virtual environment with the above command every time you open a new
shell to run, install or update Red.

View File

@@ -0,0 +1,52 @@
--------------
Installing Red
--------------
Choose one of the following commands to install Red.
To install without additional config backend support:
.. prompt:: bash
:prompts: (redenv) $
python -m pip install -U pip setuptools wheel
python -m pip install -U Red-DiscordBot
Or, to install with PostgreSQL support:
.. prompt:: bash
:prompts: (redenv) $
python -m pip install -U pip setuptools wheel
python -m pip install -U "Red-DiscordBot[postgres]"
--------------------------
Setting Up and Running Red
--------------------------
After installation, set up your instance with the following command:
.. prompt:: bash
:prompts: (redenv) $
redbot-setup
This will set the location where data will be stored, as well as your
storage backend and the name of the instance (which will be used for
running the bot).
Once done setting up the instance, run the following command to run Red:
.. prompt:: bash
:prompts: (redenv) $
redbot <your instance name>
It will walk through the initial setup, asking for your token and a prefix.
You can find out how to obtain a token with
`this guide <../bot_application_guide>`.
.. tip::
If it's the first time you're using Red, you should check our `getting-started` guide
that will walk you through all essential information on how to interact with Red.

View File

@@ -0,0 +1,26 @@
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
Red Hat Enterprise Linux (RHEL) 8.4-8.x and its derivatives have all required packages available in official repositories.
Install them with dnf:
.. prompt:: bash
sudo dnf -y update
sudo dnf -y group install development
sudo dnf -y install python39 python39-pip python39-devel java-11-openjdk-headless nano git
Set ``java`` executable to point to Java 11:
.. prompt:: bash
sudo alternatives --set java "java-11-openjdk.$(uname -i)"
.. Include common instructions:
.. include:: _includes/create-env-with-venv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,27 @@
----------------------------
Installing Python with pyenv
----------------------------
On distributions where Python 3.9 needs to be compiled from source, we recommend the use of pyenv.
This simplifies the compilation process and has the added bonus of simplifying setting up Red in a
virtual environment.
.. include:: _includes/_install-pyenv-and-setup-path.rst
.. prompt:: bash
CONFIGURE_OPTS=--enable-optimizations pyenv install 3.9.9 -v
This may take a long time to complete, depending on your hardware. For some machines (such as
Raspberry Pis and micro-tier VPSes), it may take over an hour; in this case, you may wish to remove
the ``CONFIGURE_OPTS=--enable-optimizations`` part from the front of the command, which will
drastically reduce the install time. However, be aware that this will make Python run about 10%
slower.
After that is finished, run:
.. prompt:: bash
pyenv global 3.9.9
Pyenv is now installed and your system should be configured to run Python 3.9.

View File

@@ -0,0 +1,27 @@
----------------------------
Installing Python with pyenv
----------------------------
On distributions where Python 3.8 needs to be compiled from source, we recommend the use of pyenv.
This simplifies the compilation process and has the added bonus of simplifying setting up Red in a
virtual environment.
.. include:: _includes/_install-pyenv-and-setup-path.rst
.. prompt:: bash
CONFIGURE_OPTS=--enable-optimizations pyenv install 3.8.12 -v
This may take a long time to complete, depending on your hardware. For some machines (such as
Raspberry Pis and micro-tier VPSes), it may take over an hour; in this case, you may wish to remove
the ``CONFIGURE_OPTS=--enable-optimizations`` part from the front of the command, which will
drastically reduce the install time. However, be aware that this will make Python run about 10%
slower.
After that is finished, run:
.. prompt:: bash
pyenv global 3.8.12
Pyenv is now installed and your system should be configured to run Python 3.8.

View File

@@ -0,0 +1,5 @@
.. warning::
For safety reasons, DO NOT install Red with a root user. If you are unsure how to create
a new user on Linux, see `DigitalOcean's tutorial: How To Create a New Sudo-enabled User
<https://www.digitalocean.com/community/tutorials/how-to-create-a-new-sudo-enabled-user-on-ubuntu-20-04-quickstart>`_.

View File

@@ -0,0 +1,7 @@
.. _install-alma-linux-8:
====================================
Installing Red on Alma Linux 8.4-8.x
====================================
.. include:: _includes/install-guide-rhel-derivatives.rst

View File

@@ -0,0 +1,23 @@
.. _install-arch:
============================
Installing Red on Arch Linux
============================
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
Install the pre-requirements with pacman:
.. prompt:: bash
sudo pacman -Syu python python-pip git jre11-openjdk-headless base-devel nano
.. Include common instructions:
.. include:: _includes/create-env-with-venv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,42 @@
.. _install-centos-7:
==========================
Installing Red on CentOS 7
==========================
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
Install the pre-requirements with yum:
.. prompt:: bash
sudo yum -y groupinstall development
sudo yum -y install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel java-11-openjdk-headless nano git
In order to install gcc 8, we'll use SCL repository:
.. prompt:: bash
sudo yum -y install centos-release-scl
sudo yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++
echo "source scl_source enable devtoolset-8" >> ~/.bashrc
source ~/.bashrc
In order to install Git 2.11 or greater, we recommend adding the IUS repository:
.. prompt:: bash
sudo yum -y install https://repo.ius.io/ius-release-el7.rpm
sudo yum -y swap git git224
.. Include common instructions:
.. include:: _includes/install-python-pyenv.rst
.. include:: _includes/create-env-with-pyenv-virtualenv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,7 @@
.. _install-centos-stream-8:
=================================
Installing Red on CentOS Stream 8
=================================
.. include:: _includes/install-guide-rhel-derivatives.rst

View File

@@ -0,0 +1,28 @@
.. _install-debian-10:
==================================
Installing Red on Debian 10 Buster
==================================
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
We recommend installing pyenv as a method of installing non-native versions of Python on
Debian Buster. This guide will tell you how. First, run the following commands:
.. prompt:: bash
sudo apt update
sudo apt -y install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre-headless nano
CXX=/usr/bin/g++
.. Include common instructions:
.. include:: _includes/install-python-pyenv.rst
.. include:: _includes/create-env-with-pyenv-virtualenv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,25 @@
.. _install-debian-11:
====================================
Installing Red on Debian 11 Bullseye
====================================
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
Debian 11 "Bullseye" has all required packages available in official repositories. Install them
with apt:
.. prompt:: bash
sudo apt update
sudo apt -y install python3 python3-dev python3-venv python3-pip git openjdk-11-jre-headless build-essential nano
.. Include common instructions:
.. include:: _includes/create-env-with-venv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,24 @@
.. _install-fedora:
==============================
Installing Red on Fedora Linux
==============================
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
Fedora Linux 34 and above has all required packages available in official repositories. Install
them with dnf:
.. prompt:: bash
sudo dnf -y install python39 git java-11-openjdk-headless @development-tools nano
.. Include common instructions:
.. include:: _includes/create-env-with-venv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,32 @@
.. _install-guides:
Installing Red
==============
The list below shows the installation guides available based on the operating system being used.
If you want to host Red on a VPS and are unsure what operating system you should choose,
we recommend **Ubuntu 20.04 LTS**.
.. toctree::
:maxdepth: 1
windows
mac
alma-linux-8
arch
centos-7
centos-stream-8
debian-10
debian-11
fedora
opensuse-leap-15
opensuse-tumbleweed
oracle-linux-8
raspberry-pi-os-10
raspberry-pi-os-11
rhel-8
rocky-linux-8
ubuntu-1804
ubuntu-2004
ubuntu-non-lts

View File

@@ -0,0 +1,41 @@
.. _install-mac:
=======================
Installing Red on macOS
=======================
-------------------------------
Installing the pre-requirements
-------------------------------
To install pre-requirements, we first have to install Brew.
In Finder or Spotlight, search for and open *Terminal*. In the terminal, paste the
following, then press Enter:
.. prompt:: bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
After the installation, install the required packages by pasting the commands and pressing enter,
one-by-one:
.. prompt:: bash
brew install python@3.9
brew install git
brew install --cask adoptopenjdk/openjdk/adoptopenjdk11
By default, Python installed through Homebrew is not added to the load path.
To fix this, you should run these commands:
.. prompt:: bash
profile=$([ -n "$ZSH_VERSION" ] && echo ~/.zprofile || ([ -f ~/.bash_profile ] && echo ~/.bash_profile || echo ~/.profile))
echo 'export PATH="$(brew --prefix)/opt/python@3.9/bin:$PATH"' >> "$profile"
source "$profile"
.. Include common instructions:
.. include:: _includes/create-env-with-venv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,54 @@
.. _install-opensuse-leap-15:
=====================================
Installing Red on openSUSE Leap 15.2+
=====================================
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
We recommend installing a community package to get Python 3.9 on openSUSE Leap 15.2+. This package will
be installed to the ``/opt`` directory.
First, add the Opt-Python community repository:
.. prompt:: bash
source /etc/os-release
sudo zypper -n ar -f https://download.opensuse.org/repositories/home:/Rotkraut:/Opt-Python/openSUSE_Leap_${VERSION_ID}/ Opt-Python
sudo zypper -n --gpg-auto-import-keys ref
Now install the pre-requirements with zypper:
.. prompt:: bash
sudo zypper -n install opt-python39 opt-python39-setuptools git-core java-11-openjdk-headless nano
sudo zypper -n install -t pattern devel_basis
Since Python is now installed to ``/opt/python``, we should add it to PATH. You can add a file in
``/etc/profile.d/`` to do this:
.. prompt:: bash
echo 'export PATH="/opt/python/bin:$PATH"' | sudo tee /etc/profile.d/opt-python.sh
source /etc/profile.d/opt-python.sh
Now, bootstrap pip with ensurepip:
.. prompt:: bash
sudo /opt/python/bin/python3.9 -m ensurepip --altinstall
.. note::
After this command, a warning about running pip as root might be printed.
For this specific command, this warning can be safely ignored.
.. Include common instructions:
.. include:: _includes/create-env-with-venv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,25 @@
.. _install-opensuse-tumbleweed:
=====================================
Installing Red on openSUSE Tumbleweed
=====================================
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
openSUSE Tumbleweed has all required dependencies available in official repositories. Install them
with zypper:
.. prompt:: bash
sudo zypper -n install python39-base python39-pip git-core java-11-openjdk-headless nano
sudo zypper -n install -t pattern devel_basis
.. Include common instructions:
.. include:: _includes/create-env-with-venv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,7 @@
.. _install-oracle-linux-8:
======================================
Installing Red on Oracle Linux 8.4-8.x
======================================
.. include:: _includes/install-guide-rhel-derivatives.rst

View File

@@ -0,0 +1,48 @@
.. _install-raspberry-pi-os-10:
====================================================
Installing Red on Raspberry Pi OS (Legacy) 10 Buster
====================================================
.. note::
While we do provide support and install instructions for running Red
on Raspberry Pi OS (Legacy) 10 Buster, we highly recommend installing/upgrading to
the new version - Raspberry Pi OS 11 Bullseye.
If you're not sure what version you are using,
you can check your version of Raspberry Pi OS by running:
.. prompt:: bash
lsb_release -a
If you're running Bullseye already, read `install-raspberry-pi-os-11` document instead.
If you're using Buster, please consider upgrading to Bullseye if possible.
You can read
`the post about Bullseye release from Raspberry Pi Foundation <https://www.raspberrypi.com/news/raspberry-pi-os-debian-bullseye/>`__
to learn how you can install/upgrade to the new version.
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
We recommend installing pyenv as a method of installing non-native versions of Python on
Raspberry Pi OS. This guide will tell you how. First, run the following commands:
.. prompt:: bash
sudo apt update
sudo apt -y install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre-headless nano
CXX=/usr/bin/g++
.. Include common instructions:
.. include:: _includes/install-python38-pyenv.rst
.. include:: _includes/create-env-with-pyenv-virtualenv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,40 @@
.. _install-raspberry-pi-os-11:
=============================================
Installing Red on Raspberry Pi OS 11 Bullseye
=============================================
.. note::
This guide can only be used with Raspberry Pi OS 11 Bullseye,
it will not work with any older (e.g. Raspberry Pi OS 10 Buster)
or newer (e.g. Raspberry Pi OS 12 Bookworm) releases.
You can check your version of Raspberry Pi OS by running:
.. prompt:: bash
lsb_release -a
If you're not running Bullseye, you should read
`the post about Bullseye release from Raspberry Pi Foundation <https://www.raspberrypi.com/news/raspberry-pi-os-debian-bullseye/>`__
to learn how you can install/upgrade to the new version.
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
Raspberry Pi OS "Bullseye" has all required packages available in official repositories. Install them
with apt:
.. prompt:: bash
sudo apt update
sudo apt -y install python3 python3-dev python3-venv python3-pip git openjdk-11-jre-headless build-essential nano
.. Include common instructions:
.. include:: _includes/create-env-with-venv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,7 @@
.. _install-rhel-8:
=========================================================
Installing Red on Red Hat Enterprise Linux (RHEL) 8.4-8.x
=========================================================
.. include:: _includes/install-guide-rhel-derivatives.rst

View File

@@ -0,0 +1,7 @@
.. _install-rocky-linux-8:
===============================
Installing Red on Rocky Linux 8
===============================
.. include:: _includes/install-guide-rhel-derivatives.rst

View File

@@ -0,0 +1,37 @@
.. _install-ubuntu-1804:
==================================
Installing Red on Ubuntu 18.04 LTS
==================================
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. prompt:: bash
sudo apt update
sudo apt -y install software-properties-common
sudo add-apt-repository -y ppa:git-core/ppa
We recommend adding the ``deadsnakes`` ppa to install Python 3.9:
.. prompt:: bash
sudo add-apt-repository -y ppa:deadsnakes/ppa
Now install the pre-requirements with apt:
.. prompt:: bash
sudo apt -y install python3.9 python3.9-dev python3.9-venv python3-pip git openjdk-11-jre-headless build-essential nano
.. Include common instructions:
.. include:: _includes/create-env-with-venv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,31 @@
.. _install-ubuntu-2004:
==================================
Installing Red on Ubuntu 20.04 LTS
==================================
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. prompt:: bash
sudo apt update
sudo apt -y install software-properties-common
sudo add-apt-repository -y ppa:git-core/ppa
Now install the pre-requirements with apt:
.. prompt:: bash
sudo apt -y install python3.9 python3.9-dev python3.9-venv python3-pip git openjdk-11-jre-headless build-essential nano
.. Include common instructions:
.. include:: _includes/create-env-with-venv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -0,0 +1,35 @@
.. _install-ubuntu-non-lts:
=========================================
Installing Red on Ubuntu non-LTS versions
=========================================
.. include:: _includes/linux-preamble.rst
-------------------------------
Installing the pre-requirements
-------------------------------
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. prompt:: bash
sudo apt update
sudo apt -y install software-properties-common
sudo add-apt-repository -yu ppa:git-core/ppa
Now, to install non-native version of python on non-LTS versions of Ubuntu, we recommend
installing pyenv. To do this, first run the following commands:
.. prompt:: bash
sudo apt -y install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre-headless nano
CXX=/usr/bin/g++
.. Include common instructions:
.. include:: _includes/install-python-pyenv.rst
.. include:: _includes/create-env-with-pyenv-virtualenv.rst
.. include:: _includes/install-and-setup-red-unix.rst

View File

@@ -10,15 +10,6 @@ Installing the pre-requirements
Please install the pre-requirements by following instructions from one of the following subsections.
The pre-requirements are:
- Python 3.8.1 or greater; **Python 3.9 is currently not supported!**
- Pip 18.1 or greater
- Git 2.11+
- Java Runtime Environment 11 (for audio support)
We also recommend installing some basic compiler tools, in case our dependencies don't provide
pre-built "wheels" for your architecture.
.. contents:: Choose a method of installing pre-requirements:
:local:
@@ -40,13 +31,13 @@ Then run each of the following commands:
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco upgrade git --params "/GitOnlyOnPath /WindowsTerminal" -y
choco upgrade visualstudio2019-workload-vctools -y
choco upgrade python3 -y --version 3.8.9
choco upgrade python3 -y --version 3.9.9
For Audio support, you should also run the following command before exiting:
.. prompt:: powershell
choco upgrade adoptopenjdk11jre -y
choco upgrade temurin11 -y
From here, exit the prompt then continue onto `creating-venv-windows`.
@@ -64,7 +55,7 @@ Manually installing dependencies
* `MSVC Build tools <https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2019>`_
* `Python 3.8.1 or greater <https://www.python.org/downloads/>`_; **Python 3.9 is currently not supported!**
* `Python 3.8.1 - 3.9.x <https://www.python.org/downloads/windows/>`_
.. attention:: Please make sure that the box to add Python to PATH is CHECKED, otherwise
you may run into issues when trying to run Red.
@@ -73,7 +64,7 @@ Manually installing dependencies
.. attention:: Please choose the option to "Git from the command line and also from 3rd-party software" in Git's setup.
* `Java 11 <https://adoptopenjdk.net/?variant=openjdk11&jvmVariant=hotspot>`_ - needed for Audio
* `Java 11 <https://adoptium.net/?variant=openjdk11>`_ - needed for Audio
From here, continue onto `creating-venv-windows`.
@@ -111,7 +102,7 @@ Then create your virtual environment with the following command
.. prompt:: batch
py -3.8 -m venv "%userprofile%\redenv"
py -3.9 -m venv "%userprofile%\redenv"
And activate it with the following command
@@ -175,8 +166,7 @@ Once done setting up the instance, run the following command to run Red:
redbot <your instance name>
It will walk through the initial setup, asking for your token and a prefix.
You can find out how to obtain a token with
`this guide <bot_application_guide>`.
`See how to obtain a token. <../bot_application_guide>`
.. tip::
If it's the first time you're using Red, you should check our `getting-started` guide

View File

@@ -1,498 +0,0 @@
.. _linux-mac-install-guide:
==============================
Installing Red on Linux or Mac
==============================
.. warning::
For safety reasons, DO NOT install Red with a root user. If you are unsure how to create
a new user on Linux, see `this guide by DigitalOcean
<https://www.digitalocean.com/community/tutorials/how-to-create-a-sudo-user-on-ubuntu-quickstart>`_.
-------------------------------
Installing the pre-requirements
-------------------------------
Please install the pre-requirements using the commands listed for your operating system.
The pre-requirements are:
- Python 3.8.1 or greater; **Python 3.9 is currently not supported!**
- Pip 18.1 or greater
- Git 2.11+
- Java Runtime Environment 11 (for audio support)
We recommend installing the nano text editor as our guides may instruct you to create or edit some files. We also recommend installing some basic compiler tools in case our dependencies don't provide pre-built "wheels" for your architecture.
*****************
Operating systems
*****************
.. contents::
:local:
----
.. _install-arch:
~~~~~~~~~~
Arch Linux
~~~~~~~~~~
.. warning::
Latest Python packages for Arch Linux provide Python 3.9 which Red does not currently support.
To use Red on Arch Linux, you will need to install latest version of Python 3.8 on your own.
.. prompt:: bash
sudo pacman -Syu python python-pip git jre11-openjdk-headless base-devel nano
Continue by `creating-venv-linux`.
----
.. _install-centos7:
.. _install-rhel7:
~~~~~~~~~~~~~~~~~
CentOS and RHEL 7
~~~~~~~~~~~~~~~~~
.. prompt:: bash
sudo yum -y groupinstall development
sudo yum -y install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel tk-devel libffi-devel findutils java-11-openjdk-headless nano
sudo yum -y install centos-release-scl
sudo yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++
echo "source scl_source enable devtoolset-8" >> ~/.bashrc
source ~/.bashrc
In order to install Git 2.11 or greater, we recommend adding the IUS repository:
.. prompt:: bash
sudo yum -y install https://repo.ius.io/ius-release-el7.rpm
sudo yum -y swap git git224
Complete the rest of the installation by `installing Python 3.8 with pyenv <install-python-pyenv>`.
----
.. _install-centos:
.. _install-rhel:
~~~~~~~~~~~~~~~~~
CentOS and RHEL 8
~~~~~~~~~~~~~~~~~
.. prompt:: bash
sudo yum -y install epel-release
sudo yum -y update
sudo yum -y groupinstall development
sudo yum -y install git zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel tk-devel libffi-devel findutils java-11-openjdk-headless nano
Complete the rest of the installation by `installing Python 3.8 with pyenv <install-python-pyenv>`.
----
.. _install-debian:
.. _install-raspbian:
~~~~~~~~~~~~~~~~~~~~~~~~~~
Debian and Raspbian Buster
~~~~~~~~~~~~~~~~~~~~~~~~~~
We recommend installing pyenv as a method of installing non-native versions of python on
Debian/Raspbian Buster. This guide will tell you how. First, run the following commands:
.. prompt:: bash
sudo apt update
sudo apt -y install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre-headless nano
CXX=/usr/bin/g++
Complete the rest of the installation by `installing Python 3.8 with pyenv <install-python-pyenv>`.
----
.. _install-fedora:
~~~~~~~~~~~~
Fedora Linux
~~~~~~~~~~~~
Fedora Linux 32 and above has all required packages available in official repositories. Install
them with dnf:
.. prompt:: bash
sudo dnf -y install python38 git java-11-openjdk-headless @development-tools nano
Continue by `creating-venv-linux`.
----
.. _install-mac:
~~~
Mac
~~~
Install Brew: in Finder or Spotlight, search for and open *Terminal*. In the terminal, paste the
following, then press Enter:
.. prompt:: bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
After the installation, install the required packages by pasting the commands and pressing enter,
one-by-one:
.. prompt:: bash
brew install python@3.8
echo 'export PATH="/usr/local/opt/python@3.8/bin:$PATH"' >> ~/.profile
source ~/.profile
brew install git
brew install --cask adoptopenjdk/openjdk/adoptopenjdk11
Continue by `creating-venv-linux`.
----
.. _install-opensuse:
~~~~~~~~
openSUSE
~~~~~~~~
openSUSE Leap 15.2+
*******************
We recommend installing a community package to get Python 3.8 on openSUSE Leap 15.2+. This package will
be installed to the ``/opt`` directory.
First, add the Opt-Python community repository:
.. prompt:: bash
source /etc/os-release
sudo zypper -n ar -f https://download.opensuse.org/repositories/home:/Rotkraut:/Opt-Python/openSUSE_Leap_${VERSION_ID}/ Opt-Python
sudo zypper -n --gpg-auto-import-keys ref
Now install the pre-requirements with zypper:
.. prompt:: bash
sudo zypper -n install opt-python38 opt-python38-setuptools git-core java-11-openjdk-headless nano
sudo zypper -n install -t pattern devel_basis
Since Python is now installed to ``/opt/python``, we should add it to PATH. You can add a file in
``/etc/profile.d/`` to do this:
.. prompt:: bash
echo 'export PATH="/opt/python/bin:$PATH"' | sudo tee /etc/profile.d/opt-python.sh
source /etc/profile.d/opt-python.sh
Now, install pip with easy_install:
.. prompt:: bash
sudo /opt/python/bin/easy_install-3.8 pip
Continue by `creating-venv-linux`.
openSUSE Tumbleweed
*******************
openSUSE Tumbleweed has all required dependencies available in official repositories. Install them
with zypper:
.. prompt:: bash
sudo zypper -n install python38-base python38-pip git-core java-11-openjdk-headless nano
sudo zypper -n install -t pattern devel_basis
Continue by `creating-venv-linux`.
----
.. _install-ubuntu-1804:
~~~~~~~~~~~~~~~~
Ubuntu 18.04 LTS
~~~~~~~~~~~~~~~~
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. prompt:: bash
sudo apt update
sudo apt -y install software-properties-common
sudo add-apt-repository -y ppa:git-core/ppa
We recommend adding the ``deadsnakes`` ppa to install Python 3.8.1 or greater:
.. prompt:: bash
sudo add-apt-repository -y ppa:deadsnakes/ppa
Now install the pre-requirements with apt:
.. prompt:: bash
sudo apt -y install python3.8 python3.8-dev python3.8-venv python3-pip git openjdk-11-jre-headless build-essential nano
Continue by `creating-venv-linux`.
----
.. _install-ubuntu:
~~~~~~~~~~~~~~~~
Ubuntu 20.04 LTS
~~~~~~~~~~~~~~~~
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. prompt:: bash
sudo apt update
sudo apt -y install software-properties-common
sudo add-apt-repository -y ppa:git-core/ppa
Now install the pre-requirements with apt:
.. prompt:: bash
sudo apt -y install python3.8 python3.8-dev python3.8-venv python3-pip git openjdk-11-jre-headless build-essential nano
Continue by `creating-venv-linux`.
----
.. _install-ubuntu-non-lts:
~~~~~~~~~~~~~~~~~~~~~~~
Ubuntu non-LTS versions
~~~~~~~~~~~~~~~~~~~~~~~
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. prompt:: bash
sudo apt update
sudo apt -y install software-properties-common
sudo add-apt-repository -yu ppa:git-core/ppa
Now, to install non-native version of python on non-LTS versions of Ubuntu, we recommend
installing pyenv. To do this, first run the following commands:
.. prompt:: bash
sudo apt -y install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre-headless nano
CXX=/usr/bin/g++
And then complete the rest of the installation by `installing Python 3.8 with pyenv <install-python-pyenv>`.
----
.. _install-python-pyenv:
****************************
Installing Python with pyenv
****************************
.. note::
If you followed one of the sections above, and weren't linked here afterwards, you should skip
this section.
On distributions where Python 3.8 needs to be compiled from source, we recommend the use of pyenv.
This simplifies the compilation process and has the added bonus of simplifying setting up Red in a
virtual environment.
.. prompt:: bash
command -v pyenv && pyenv update || curl https://pyenv.run | bash
**After this command, you may see a warning about 'pyenv' not being in the load path. Follow the
instructions given to fix that, then close and reopen your shell.**
Then run the following command:
.. prompt:: bash
CONFIGURE_OPTS=--enable-optimizations pyenv install 3.8.9 -v
This may take a long time to complete, depending on your hardware. For some machines (such as
Raspberry Pis and micro-tier VPSes), it may take over an hour; in this case, you may wish to remove
the ``CONFIGURE_OPTS=--enable-optimizations`` part from the front of the command, which will
drastically reduce the install time. However, be aware that this will make Python run about 10%
slower.
After that is finished, run:
.. prompt:: bash
pyenv global 3.8.9
Pyenv is now installed and your system should be configured to run Python 3.8.
Continue by `creating-venv-linux`.
.. _creating-venv-linux:
------------------------------
Creating a Virtual Environment
------------------------------
.. tip::
If you want to learn more about virtual environments, see page: `about-venvs`
We require installing Red into a virtual environment. Don't be scared, it's very
straightforward.
You have 2 options:
* :ref:`using-venv` (quick and easy, involves just two commands)
* :ref:`using-pyenv-virtualenv` (only available and recommended when you installed Python with pyenv)
----
.. _using-venv:
**************
Using ``venv``
**************
This is the quickest way to get your virtual environment up and running, as `venv` is shipped with
python.
First, choose a directory where you would like to create your virtual environment. It's a good idea
to keep it in a location which is easy to type out the path to. From now, we'll call it
``redenv`` and it will be located in your home directory.
Create your virtual environment with the following command:
.. prompt:: bash
python3.8 -m venv ~/redenv
And activate it with the following command:
.. prompt:: bash
source ~/redenv/bin/activate
.. important::
You must activate the virtual environment with the above command every time you open a new
shell to run, install or update Red.
Continue by `installing-red-linux-mac`.
----
.. _using-pyenv-virtualenv:
**************************
Using ``pyenv virtualenv``
**************************
Using ``pyenv virtualenv`` saves you the headache of remembering where you installed your virtual
environments. This option is only available if you installed Python with pyenv.
First, ensure your pyenv interpreter is set to python 3.8.1 or greater with the following command:
.. prompt:: bash
pyenv version
Now, create a virtual environment with the following command:
.. prompt:: bash
pyenv virtualenv <name>
Replace ``<name>`` with whatever you like. If you ever forget what you named it,
you can always use the command ``pyenv versions`` to list all virtual environments.
Now activate your virtualenv with the following command:
.. prompt:: bash
pyenv shell <name>
.. important::
You must activate the virtual environment with the above command every time you open a new
shell to run, install or update Red. You can check out other commands like ``pyenv local`` and
``pyenv global`` if you wish to keep the virtualenv activated all the time.
Continue by `installing-red-linux-mac`.
.. _pyenv-installer: https://github.com/pyenv/pyenv-installer/blob/master/README.rst
.. _installing-red-linux-mac:
--------------
Installing Red
--------------
Choose one of the following commands to install Red.
To install without additional config backend support:
.. prompt:: bash
:prompts: (redenv) $
python -m pip install -U pip setuptools wheel
python -m pip install -U Red-DiscordBot
Or, to install with PostgreSQL support:
.. prompt:: bash
:prompts: (redenv) $
python -m pip install -U pip setuptools wheel
python -m pip install -U "Red-DiscordBot[postgres]"
.. note::
These commands are also used for updating Red
--------------------------
Setting Up and Running Red
--------------------------
After installation, set up your instance with the following command:
.. prompt:: bash
:prompts: (redenv) $
redbot-setup
This will set the location where data will be stored, as well as your
storage backend and the name of the instance (which will be used for
running the bot).
Once done setting up the instance, run the following command to run Red:
.. prompt:: bash
:prompts: (redenv) $
redbot <your instance name>
It will walk through the initial setup, asking for your token and a prefix.
You can find out how to obtain a token with
`this guide <bot_application_guide>`.
.. tip::
If it's the first time you're using Red, you should check our `getting-started` guide
that will walk you through all essential information on how to interact with Red.

134
docs/intents.rst Normal file
View File

@@ -0,0 +1,134 @@
.. _intents:
.. |br| raw:: html
<br />
==========================================
About (privileged) intents and public bots
==========================================
This page aims to explain Red's current intents requirements,
our stance regarding "public bots" and the impact of some announced
Discord changes coming in April 2022.
To clarify:
- **Small bots** are bots under 100 servers. They currently do not need to undergo Discord's
bot verification process
- **Public bots** (or big bots) are bots that have reached 100 servers. They need to be
`verified <https://support.discord.com/hc/en-us/articles/360040720412-Bot-Verification-and-Data-Whitelisting>`_
by Discord to join more than 100 servers and gain privileged intents
.. warning::
It is **very** important that you fully read this page if you're the owner of a public bot or strive to scale your bot at that level.
.. _intents-intents:
-------
Intents
-------
Red currently requires **all intents** to be active in order to function properly.
The reason for this requirement is that there are some technical challenges that need
to be overcome before we're able to adapt Red to function with only *some* intents:
these challenges are mainly due to the modular / extensible nature of Red and the fact
that Red has a long history (dating back to 2016!), making big changes naturally slower
to happen. In comparison, intents have been introduced fairly recently. |br|
This is not a problem if you have a small bot: you can simply go to the
`Discord development portal <https://discord.com/developers/applications/me>`_
and enable them. However, if you have a public bot Discord will want you to attain
verified status: you should read :ref:`our stance regarding public bots <intents-public-bots>`
and our guidelines for the :ref:`verification process <intents-bot-verification-process>`.
.. _intents-public-bots:
-----------
Public bots
-----------
Public bots, or big bots, are not our target audience and we **do not** offer support for them.
Red was designed with one single goal in mind: a bot that you can host on your own hardware
and customize to your needs, making it really *your* bot. **The target audience of Red are server
owners with a few servers**, often with specific needs that can be covered by the vast cog ecosystem
that the community has built over the years. |br| Red was never built with big bots in mind,
bots with thousands upon thousands of servers: these bots face unique challenges.
Such Red instances *do exist*, it is not impossible to adapt Red and meet those criteria,
but it requires work and bot owners with the technical knowledge to make it happen.
It is **not** something that we support. |br|
When your bot reaches the public bot scale and it is therefore required to be verified it
is *expected* that you know what's in your bot and how it works: that doesn't just mean on the
surface level, it means coding knowledge and the ability to maintain it on your own.
.. _intents-bot-verification-process:
------------------------
Bot verification process
------------------------
When your bot ceases to be a small bot Discord will require you to verify your bot before allowing
it to join more servers and gain privileged intents. If you've read the previous section,
you will know that we do **not** support public bots. Logically, we also do not provide help for
the verification process.
Regardless of our stance, we do feel the need to give some pointers: many bot owners reach this point
and become fairly lost, as they've simply been *users* so far.
They have installed their bot, some cogs, personalized it, yadda yadda. Again, they have been users,
not developers. Unless they also have an interest in development, they will likely not have a clue about
what's going under the hood, much like you're not expected to be a mechanic to drive your car. And there's
nothing wrong with that! Red has been designed to be as user friendly as possible. |br|
The problem is this: Red is an outlier. Discord has built the bot verification process with the expectation
that the owner knows *on a technical level* what their bot does and how it works. And this is because outside
Red, the typical bot owner is also a developer who coded their own bot from scratch.
While, again, we *cannot* support you going forward we want to give you some pointers to follow when filling
out your application:
- Learn on a technical level what intents are and what's going on, under the hood, in your bot. Knowing its
features at a surface level is not enough. What features need intents to work and why?
- Forget that you're hosting Red. You're hosting *a bot* and Discord wants to know what *your bot* does and why
you're requesting privileged intents. |br| A **very bad** answer is: *"Because Red needs them"*. |br|
A **good** answer is: *"My bot has X features and it needs Y intents to work properly"*. |br| We've had a fair share
of people that in their naivety went with the bad answer and it seems that at this point merely mentioning Red
is a guaranteed way to have your application rejected.
.. _intents-slash-commands:
---------------------------------
Message intent and slash commands
---------------------------------
.. warning::
If you own a public bot it is extremely important that you read this section.
Discord has announced that **starting April 2022** the content of users' messages
`will be "locked" behind message intent <https://support-dev.discord.com/hc/en-us/articles/4404772028055>`_ |br|
If you're the owner of a small bot, fear not, this is yet another box that you have to tick from the
`Discord development portal <https://discord.com/developers/applications/me>`_. |br|
But if you're the owner of a public bot, things might be a lot less pleasant.
To recap, unless you have
message intent, you will only receive message content for:
- Messages that your bot sends
- Messages that your bot receives in DM
- Messages in which your bot is mentioned
In case it's not clear by now, your bot needs message content to parse (see) the commands it receives. And if
you don't attain message intent, your bot will not be able to... well, do anything. |br|
The *bandaid fix* is for you to change your bot's prefix to a mention and a good portion of your commands will likely
still work. You will however lose many functions, namely anything that relies on seeing message content to act. |br|
The more *proper fix* is also not easy. You will need to justify your need for the message intent to Discord and
they will only accept "compelling use cases".
`It is not known what those even entail <https://gist.github.com/spiralw/091714718718379b6efcdbcaf807a024#q-what-usecases-will-be-valid>`_ at this point, but they have already stated that "parsing commands" is not a valid justification. |br|
To make the matter worse, Discord is making `a huge push for all bot developers to implement slash commands <https://support.discord.com/hc/en-us/articles/1500000368501-Slash-Commands-FAQ>`_, which at the moment
are rather lacking in features and cannot cover all the functionalities that standard commands offer. |br|
Discord staff
`stated that they will want your bot to have slash commands when you ask for message intent <https://gist.github.com/spiralw/091714718718379b6efcdbcaf807a024#q-if-we-are-granted-this-intent-will-bots-be-sanctioned-if-they-use-it-for-their-own-use-case-but-also-to-continue-to-run-normal-non-slash-commands-or-do-we-assume-that-if-you-are-granted-the-intent-you-are-trusted-with-it-and-are-allowed-to-use-it-for-additional-uses>`_. |br|
Slash commands might very well turn out to be a big undertaking for the Red team to implement, even more now that our
underlying library, `discord.py <https://github.com/Rapptz/discord.py>`_, has been discontinued. |br|
The time window that Discord is giving us to adapt is very narrow: **Red will likely not be able to support slash
commands for April 2022** and you should plan accordingly.

View File

@@ -27,16 +27,16 @@
.. |role-input-quotes| replace:: Please give **the exact role name or ID**, or it won't be detected.
If the role name has spaces, provide it enclosed in quotes like this: ``"my role with spaces"``
.. |member-input| replace:: You can either mention the member, provide its ID, its exact name with
the tag or not, or its nickname.
.. |member-input| replace:: You can either mention the member, provide their ID, their exact name with
the tag or not, or their nickname.
.. |member-input-quotes| replace:: You can either mention the member, provide its ID, its exact
name with the tag or not, or its nickname enclosed in quotes if there are spaces.
.. |member-input-quotes| replace:: You can either mention the member, provide their ID, their exact
name with the tag or not, or their nickname enclosed in quotes if there are spaces.
.. |user-input| replace:: You can either provide the member's ID or its exact name with the tag or
.. |user-input| replace:: You can either provide the member's ID or their exact name with the tag or
not.
.. |user-input-quotes| replace:: You can either provide the member's ID or its exact name with the
.. |user-input-quotes| replace:: You can either provide the member's ID or their exact name with the
tag or not, enclosed in quotes if there are spaces.
.. |channel-input| replace:: You can either mention the channel, provide its exact name or its ID.
@@ -48,3 +48,7 @@
.. |color-input| replace:: You can either provide the hexadecimal code of the color, or one of the
colors listed here: :class:`discord.Color`.
.. These are the comments for parameter types such as `bool`.
.. |bool-input| replace:: You should provide either 'true' or 'false'.

View File

@@ -1,2 +0,0 @@
# We still need this because RTD is special
setuptools==40.8.0

View File

@@ -97,10 +97,7 @@ Red 3.1.X
If you have Red 3.1.X, you will need to follow the install instructions for your operating system. Make sure that you turn your bot off first.
- `Windows <install_windows>`
- `Linux & Mac <install_linux_mac>`
Follow every step to ensure you have all dependencies up-to-date and only skip ``redbot-setup`` step as you already have a bot instance.
Go to the `install_guides/index` guide and follow every step to ensure you have all dependencies up-to-date and only skip the ``redbot-setup`` step as you already have a bot instance.
**If you already have Red installed in a virtual environment, you will need to delete it before starting this process.**
@@ -139,9 +136,6 @@ Red 3.0.2 and older
If you have Red 3.0.2 or older, you will need to follow the install instructions for your operating system. Make sure that you turn your bot off first.
- `Windows <install_windows>`
- `Linux & Mac <install_linux_mac>`
Follow every step to ensure you have all dependencies up-to-date and only skip ``redbot-setup`` step as you already have a bot instance.
Go to the `install_guides/index` guide and follow every step to ensure you have all dependencies up-to-date and only skip the ``redbot-setup`` step as you already have a bot instance.
**If you already have Red installed in a virtual environment, you will need to delete it before starting this process.**

View File

@@ -1,3 +1,7 @@
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[tool.black]
line-length = 99
target-version = ['py38']

View File

@@ -191,7 +191,30 @@ def _update_event_loop_policy():
_asyncio.set_event_loop_policy(_uvloop.EventLoopPolicy())
__version__ = "3.4.9"
def _ensure_no_colorama():
# a hacky way to ensure that nothing initialises colorama
# if we're not running with legacy Windows command line mode
from rich.console import detect_legacy_windows
if not detect_legacy_windows():
import colorama
import colorama.initialise
colorama.deinit()
def _colorama_wrap_stream(stream, *args, **kwargs):
return stream
colorama.wrap_stream = _colorama_wrap_stream
colorama.initialise.wrap_stream = _colorama_wrap_stream
def _early_init():
_update_event_loop_policy()
_ensure_no_colorama()
__version__ = "3.4.15"
version_info = VersionInfo.from_str(__version__)
# Filter fuzzywuzzy slow sequence matcher warning
@@ -204,3 +227,12 @@ if "--debug" not in _sys.argv:
# Individual warnings - tracked in https://github.com/Cog-Creators/Red-DiscordBot/issues/3529
# DeprecationWarning: an integer is required (got type float). Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
_warnings.filterwarnings("ignore", category=DeprecationWarning, module="importlib", lineno=219)
# DeprecationWarning: The loop argument is deprecated since Python 3.8, and scheduled for removal in Python 3.10
# stdin, stdout, stderr = await tasks.gather(stdin, stdout, stderr,
# this is a bug in CPython
_warnings.filterwarnings(
"ignore",
category=DeprecationWarning,
module="asyncio",
message="The loop argument is deprecated since Python 3.8",
)

View File

@@ -18,13 +18,14 @@ from pathlib import Path
from typing import NoReturn
import discord
import rich
# Set the event loop policies here so any subsequent `new_event_loop()`
# calls, in particular those as a result of the following imports,
# return the correct loop object.
from redbot import _update_event_loop_policy, __version__
from redbot import _early_init, __version__
_update_event_loop_policy()
_early_init()
import redbot.logging
from redbot.core.bot import Red, ExitCodes
@@ -84,8 +85,7 @@ def debug_info():
os_info = platform.mac_ver()
osver = "Mac OSX {} {}".format(os_info[0], os_info[2])
else:
os_info = distro.linux_distribution()
osver = "{} {}".format(os_info[0], os_info[1]).strip()
osver = f"{distro.name()} {distro.version()}".strip()
user_who_ran = getpass.getuser()
info = (
"Debug Info for Red\n\n"
@@ -395,10 +395,12 @@ async def run_bot(red: Red, cli_flags: Namespace) -> None:
sys.exit(0)
sys.exit(1)
except discord.PrivilegedIntentsRequired:
print(
console = rich.get_console()
console.print(
"Red requires all Privileged Intents to be enabled.\n"
"You can find out how to enable Privileged Intents with this guide:\n"
"https://docs.discord.red/en/stable/bot_application_guide.html#enabling-privileged-intents"
"https://docs.discord.red/en/stable/bot_application_guide.html#enabling-privileged-intents",
style="red",
)
sys.exit(1)
@@ -446,13 +448,18 @@ def global_exception_handler(red, loop, context):
"""
Logs unhandled exceptions in other tasks
"""
msg = context.get("exception", context["message"])
exc = context.get("exception")
# These will get handled later when it *also* kills loop.run_forever
if not isinstance(msg, (KeyboardInterrupt, SystemExit)):
if isinstance(msg, Exception):
log.critical("Caught unhandled exception in task:\n", exc_info=msg)
else:
log.critical("Caught unhandled exception in task: %s", msg)
if exc is not None and isinstance(exc, (KeyboardInterrupt, SystemExit)):
return
# Maybe in the future we should handle some of the other things
# that the default exception handler handles, but this should work fine for now.
log.critical(
"Caught unhandled exception in %s:\n%s",
context.get("future", "event loop"),
context["message"],
exc_info=exc,
)
def red_exception_handler(red, red_task: asyncio.Future):

View File

@@ -2,4 +2,4 @@ from .admin import Admin
def setup(bot):
bot.add_cog(Admin())
bot.add_cog(Admin(bot))

View File

@@ -3,10 +3,11 @@ import logging
from typing import Tuple
import discord
from redbot.core import Config, checks, commands
from redbot.core.i18n import Translator, cog_i18n
from redbot.core.utils.chat_formatting import box
from redbot.core.utils.predicates import MessagePredicate
from .announcer import Announcer
from .converters import SelfRole
@@ -56,7 +57,7 @@ ROLE_USER_HIERARCHY_ISSUE = _(
" in the Discord hierarchy."
)
NEED_MANAGE_ROLES = _("I need manage roles permission to do that.")
NEED_MANAGE_ROLES = _('I need the "Manage Roles" permission to do that.')
RUNNING_ANNOUNCEMENT = _(
"I am already announcing something. If you would like to make a"
@@ -70,7 +71,9 @@ _ = T_
class Admin(commands.Cog):
"""A collection of server administration utilities."""
def __init__(self):
def __init__(self, bot):
self.bot = bot
self.config = Config.get_conf(self, 8237492837454039, force_registration=True)
self.config.register_global(serverlocked=False, schema_version=0)
@@ -448,45 +451,98 @@ class Admin(commands.Cog):
pass
@selfroleset.command(name="add")
async def selfroleset_add(self, ctx: commands.Context, *, role: discord.Role):
async def selfroleset_add(self, ctx: commands.Context, *roles: discord.Role):
"""
Add a role to the list of available selfroles.
Add a role, or a selection of roles, to the list of available selfroles.
NOTE: The role is case sensitive!
"""
if not self.pass_user_hierarchy_check(ctx, role):
await ctx.send(
_(
"I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
).format(role=role)
)
return
async with self.config.guild(ctx.guild).selfroles() as curr_selfroles:
if role.id not in curr_selfroles:
curr_selfroles.append(role.id)
await ctx.send(_("Added."))
current_selfroles = await self.config.guild(ctx.guild).selfroles()
for role in roles:
if not self.pass_user_hierarchy_check(ctx, role):
await ctx.send(
_(
"I cannot let you add {role.name} as a selfrole because that role is"
" higher than or equal to your highest role in the Discord hierarchy."
).format(role=role)
)
return
if role.id not in current_selfroles:
current_selfroles.append(role.id)
else:
await ctx.send(
_('The role "{role.name}" is already a selfrole.').format(role=role)
)
return
await ctx.send(_("That role is already a selfrole."))
await self.config.guild(ctx.guild).selfroles.set(current_selfroles)
if (count := len(roles)) > 1:
message = _("Added {count} selfroles.").format(count=count)
else:
message = _("Added 1 selfrole.")
await ctx.send(message)
@selfroleset.command(name="remove")
async def selfroleset_remove(self, ctx: commands.Context, *, role: SelfRole):
async def selfroleset_remove(self, ctx: commands.Context, *roles: SelfRole):
"""
Remove a role from the list of available selfroles.
Remove a role, or a selection of roles, from the list of available selfroles.
NOTE: The role is case sensitive!
"""
if not self.pass_user_hierarchy_check(ctx, role):
await ctx.send(
_(
"I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
).format(role=role)
)
return
async with self.config.guild(ctx.guild).selfroles() as curr_selfroles:
curr_selfroles.remove(role.id)
current_selfroles = await self.config.guild(ctx.guild).selfroles()
for role in roles:
if not self.pass_user_hierarchy_check(ctx, role):
await ctx.send(
_(
"I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
).format(role=role)
)
return
current_selfroles.remove(role.id)
await ctx.send(_("Removed."))
await self.config.guild(ctx.guild).selfroles.set(current_selfroles)
if (count := len(roles)) > 1:
message = _("Removed {count} selfroles.").format(count=count)
else:
message = _("Removed 1 selfrole.")
await ctx.send(message)
@selfroleset.command(name="clear")
async def selfroleset_clear(self, ctx: commands.Context):
"""Clear the list of available selfroles for this server."""
current_selfroles = await self.config.guild(ctx.guild).selfroles()
if not current_selfroles:
return await ctx.send(_("There are currently no selfroles."))
await ctx.send(
_("Are you sure you want to clear this server's selfrole list?") + " (yes/no)"
)
try:
pred = MessagePredicate.yes_or_no(ctx, user=ctx.author)
await ctx.bot.wait_for("message", check=pred, timeout=60)
except asyncio.TimeoutError:
await ctx.send(_("You took too long to respond."))
return
if pred.result:
for role in current_selfroles:
role = ctx.guild.get_role(role)
if role is None:
continue
if not self.pass_user_hierarchy_check(ctx, role):
await ctx.send(
_(
"I cannot clear the selfroles because the selfrole '{role.name}' is higher than or equal to your highest role in the Discord hierarchy."
).format(role=role)
)
return
await self.config.guild(ctx.guild).selfroles.clear()
await ctx.send(_("Selfrole list cleared."))
else:
await ctx.send(_("No changes have been made."))
@commands.command()
@checks.is_owner()
@@ -504,6 +560,13 @@ class Admin(commands.Cog):
@commands.Cog.listener()
async def on_guild_join(self, guild: discord.Guild):
if await self.config.serverlocked():
if len(self.bot.guilds) == 1: # will be 0 once left
log.warning(
f"Leaving guild '{guild.name}' ({guild.id}) due to serverlock. You can "
"temporarily disable serverlock by starting up the bot with the --no-cogs flag."
)
else:
log.info(f"Leaving guild '{guild.name}' ({guild.id}) due to serverlock.")
await guild.leave()

View File

@@ -17,5 +17,7 @@ class SelfRole(commands.Converter):
selfroles = await admin.config.guild(ctx.guild).selfroles()
if role.id not in selfroles:
raise commands.BadArgument(_("The provided role is not a valid selfrole."))
raise commands.BadArgument(
_('The role "{role_name}" is not a valid selfrole.').format(role_name=role.name)
)
return role

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-16 19:14+0000\n"
"POT-Creation-Date: 2021-10-17 16:51+0000\n"
"Last-Translator: \n"
"Language-Team: Afrikaans\n"
"MIME-Version: 1.0\n"
@@ -15,64 +15,64 @@ msgstr ""
"X-Crowdin-File-ID: 42\n"
"Language: af_ZA\n"
#: redbot/cogs/admin/admin.py:18
#: redbot/cogs/admin/admin.py:19
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr ""
#: redbot/cogs/admin/admin.py:23
#: redbot/cogs/admin/admin.py:24
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:29
#: redbot/cogs/admin/admin.py:30
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:35
#: redbot/cogs/admin/admin.py:36
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:41
#: redbot/cogs/admin/admin.py:42
msgid "I can not let you give {role.name} to {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:47
#: redbot/cogs/admin/admin.py:48
msgid "I can not let you remove {role.name} from {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:53
#: redbot/cogs/admin/admin.py:54
msgid "I can not let you edit {role.name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
#: redbot/cogs/admin/admin.py:60
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
#: redbot/cogs/admin/admin.py:62
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr ""
#: redbot/cogs/admin/admin.py:71
#: redbot/cogs/admin/admin.py:72
#, docstring
msgid "A collection of server administration utilities."
msgstr ""
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:165
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:185
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:195
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:215
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:226
#, docstring
msgid "\n"
" Add a role to a user.\n\n"
@@ -81,7 +81,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:242
#, docstring
msgid "\n"
" Remove a role from a user.\n\n"
@@ -90,12 +90,12 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:256
#, docstring
msgid "Edit role settings."
msgstr ""
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:263
#, docstring
msgid "\n"
" Edit a role's colour.\n\n"
@@ -108,11 +108,11 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:292 redbot/cogs/admin/admin.py:325
msgid "Done."
msgstr ""
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:296
#, docstring
msgid "\n"
" Edit a role's name.\n\n"
@@ -122,34 +122,34 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:330
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:337
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:344
#, docstring
msgid "Cancel a running announce."
msgstr ""
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:346
msgid "There is no currently running announcement."
msgstr ""
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:349
msgid "The current announcement has been cancelled."
msgstr ""
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:355
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:360
#, docstring
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
@@ -157,16 +157,16 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:369
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:374
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:399
#, docstring
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
@@ -175,7 +175,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:409
#: redbot/cogs/admin/admin.py:412
#, docstring
msgid "\n"
" Add a selfrole to yourself.\n\n"
@@ -184,7 +184,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:420
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\n"
" Remove a selfrole from yourself.\n\n"
@@ -193,69 +193,106 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:431
#: redbot/cogs/admin/admin.py:434
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:441
#: redbot/cogs/admin/admin.py:444
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:447
#: redbot/cogs/admin/admin.py:450
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:452
#: redbot/cogs/admin/admin.py:455
#, docstring
msgid "\n"
" Add a role to the list of available selfroles.\n\n"
" Add a role, or a selection of roles, to the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:459
#: redbot/cogs/admin/admin.py:464
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:467
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:470
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:474
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:480
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:482
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:488
#, docstring
msgid "\n"
" Remove a role from the list of available selfroles.\n\n"
" Remove a role, or a selection of roles, from the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:481
#: redbot/cogs/admin/admin.py:497
msgid "I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:489
msgid "Removed."
#: redbot/cogs/admin/admin.py:507
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:494
#: redbot/cogs/admin/admin.py:509
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Clear the list of available selfroles for this server."
msgstr ""
#: redbot/cogs/admin/admin.py:519
msgid "There are currently no selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:522
msgid "Are you sure you want to clear this server's selfrole list?"
msgstr ""
#: redbot/cogs/admin/admin.py:528
msgid "You took too long to respond."
msgstr ""
#: redbot/cogs/admin/admin.py:537
msgid "I cannot clear the selfroles because the selfrole '{role.name}' is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:543
msgid "Selfrole list cleared."
msgstr ""
#: redbot/cogs/admin/admin.py:545
msgid "No changes have been made."
msgstr ""
#: redbot/cogs/admin/admin.py:550
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
#: redbot/cogs/admin/admin.py:499
#: redbot/cogs/admin/admin.py:555
msgid "The bot is no longer serverlocked."
msgstr ""
#: redbot/cogs/admin/admin.py:501
#: redbot/cogs/admin/admin.py:557
msgid "The bot is now serverlocked."
msgstr ""
@@ -271,7 +308,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-16 19:14+0000\n"
"POT-Creation-Date: 2021-10-17 16:51+0000\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"MIME-Version: 1.0\n"
@@ -15,64 +15,64 @@ msgstr ""
"X-Crowdin-File-ID: 42\n"
"Language: ar_SA\n"
#: redbot/cogs/admin/admin.py:18
#: redbot/cogs/admin/admin.py:19
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr "حاولت القيام بشيء لا أملك تصريح من ديسكورد لفعله. فشل أمرك في إكمال نجاحه."
#: redbot/cogs/admin/admin.py:23
#: redbot/cogs/admin/admin.py:24
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr "لا يمكنني إعطاء {role.name} إلى {member.display_name} لأن هذا الرتبة أعلى من أو يساوي أعلى رتبةي في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:29
#: redbot/cogs/admin/admin.py:30
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr "لا يمكنني إزالة {role.name} من {member.display_name} لأن هذا الرتبة أعلى من أو يساوي أعلى رتبةي في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:35
#: redbot/cogs/admin/admin.py:36
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr "لا يمكنني تحرير {role.name} لأن هذا الرتبة أعلى من رتبةي أو يساوي أعلى رتبة في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:41
#: redbot/cogs/admin/admin.py:42
msgid "I can not let you give {role.name} to {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "لا يمكنني السماح لك بإعطاء {role.name} لـ {member.display_name} لأن هذا الرتبة أعلى من أو يساوي أعلى رتبةك في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:47
#: redbot/cogs/admin/admin.py:48
msgid "I can not let you remove {role.name} from {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "لا يمكنني السماح لك بإزالة {role.name} من {member.display_name} لأن هذا الرتبة أعلى من أو يساوي أعلى رتبةك في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:53
#: redbot/cogs/admin/admin.py:54
msgid "I can not let you edit {role.name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "لا يمكنني السماح لك بتحرير {role.name} لأن هذا الرتبة أعلى من أو يساوي أعلى رتبةك في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgstr "أحتاج إلى إذن إدارة الرتبللقيام بذلك."
#: redbot/cogs/admin/admin.py:60
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
#: redbot/cogs/admin/admin.py:62
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr "أنا بالفعل أُعلن شيئاً. إذا كنت ترغب في إصدار إعلان مختلف الرجاء إستخدام `{prefix}announce cancel` أولاً."
#: redbot/cogs/admin/admin.py:71
#: redbot/cogs/admin/admin.py:72
#, docstring
msgid "A collection of server administration utilities."
msgstr "مجموعة من أدوات إدارة السيرفر."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:165
msgid "{member.display_name} already has the role {role.name}."
msgstr "{member.display_name} بالفعل يملك الرتبة {role.name}."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:185
msgid "I successfully added {role.name} to {member.display_name}"
msgstr "لقد قمت بنجاح بإضافة {role.name} إلى {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:195
msgid "{member.display_name} does not have the role {role.name}."
msgstr "{member.display_name} ليس له الرتبة {role.name}."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:215
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "لقد قمت بنجاح بإزالة {role.name} من {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:226
#, docstring
msgid "\n"
" Add a role to a user.\n\n"
@@ -84,7 +84,7 @@ msgstr "\n"
" استخدام علامات اقتباس مزدوجة إذا كان الرتبة يحتوي على مسافات.\n"
" إذا ترك المستخدم فارغاً فإنه افتراضياً لمؤلف الأمر.\n"
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:242
#, docstring
msgid "\n"
" Remove a role from a user.\n\n"
@@ -96,12 +96,12 @@ msgstr "\n"
" استخدام علامات اقتباس مزدوجة إذا كان الرتبة يحتوي على مسافات.\n"
" إذا ترك المستخدم فارغاً فإنه افتراضياً لمؤلف الأمر.\n"
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:256
#, docstring
msgid "Edit role settings."
msgstr "تعديل إعدادات الرتبة."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:263
#, docstring
msgid "\n"
" Edit a role's colour.\n\n"
@@ -120,11 +120,11 @@ msgstr "\n"
" أمثلة:\n"
" '[p]editrole اللون \"الترانزستور\" #ff0000'n'n'[p]editrole لون اختبار #ff9900'n"
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:292 redbot/cogs/admin/admin.py:325
msgid "Done."
msgstr "تم."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:296
#, docstring
msgid "\n"
" Edit a role's name.\n\n"
@@ -138,34 +138,34 @@ msgstr "\n"
" المثال:\n"
" '[p]اسم تحرير \"The Transistor\" Test'\n"
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:330
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr "الإعلان عن رسالة إلى جميع السيرفرات المتواجد بها البوت."
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:337
msgid "The announcement has begun."
msgstr "تم البدء في الإعلان."
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:344
#, docstring
msgid "Cancel a running announce."
msgstr "إلغاء إعلان جارٍ."
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:346
msgid "There is no currently running announcement."
msgstr "لا يوجد إعلان قيد التشغيل حالياً."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:349
msgid "The current announcement has been cancelled."
msgstr "تم إلغاء الإعلان الحالي."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:355
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr "تغيير كيفية إرسال الإعلانات في هذه النقابة."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:360
#, docstring
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
@@ -173,16 +173,16 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:369
msgid "The announcement channel has been set to {channel.mention}"
msgstr "تم تحديث قناة الإعلانات إلى {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:374
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:399
#, docstring
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
@@ -191,7 +191,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:409
#: redbot/cogs/admin/admin.py:412
#, docstring
msgid "\n"
" Add a selfrole to yourself.\n\n"
@@ -203,7 +203,7 @@ msgstr "\n"
" يجب أن يكون مسؤولو الخادم قد قاموا بتكوين الرتبة كـ settable للمستخدم.\n"
" ملاحظة: الرتبة حساس للحالة!\n"
#: redbot/cogs/admin/admin.py:420
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\n"
" Remove a selfrole from yourself.\n\n"
@@ -215,7 +215,7 @@ msgstr "\n"
" يجب أن يكون مسؤولو الخادم قد قاموا بتكوين الرتبة كـ settable للمستخدم.\n"
" ملاحظة: الرتبة حساس للحالة!\n"
#: redbot/cogs/admin/admin.py:431
#: redbot/cogs/admin/admin.py:434
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
@@ -223,65 +223,100 @@ msgid "\n"
msgstr "\n"
" يسرد كافة الرتب الذاتية المتوفرة.\n"
#: redbot/cogs/admin/admin.py:441
#: redbot/cogs/admin/admin.py:444
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr "الرتب الذاتية المتوفرة:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:447
#: redbot/cogs/admin/admin.py:450
#, docstring
msgid "Manage selfroles."
msgstr "تطبيق الرتبالذاتية."
#: redbot/cogs/admin/admin.py:452
#: redbot/cogs/admin/admin.py:455
#, docstring
msgid "\n"
" Add a role to the list of available selfroles.\n\n"
" Add a role, or a selection of roles, to the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" إضافة رتبة إلى قائمة الرتب الذاتية المتوفرة.\n\n"
" ملاحظة: الرتبة حساس للحالة!\n"
msgstr ""
#: redbot/cogs/admin/admin.py:459
#: redbot/cogs/admin/admin.py:464
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "لا يمكنني السماح لك بإضافة {role.name} لرتبة ذاتي لأن هذا الرتبة أعلى من أو يساوي أعلى رتبةك في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:467
msgid "Added."
msgstr "لقد قمت بنجاح بإضافة {role.name} إلى {member.display_name}"
#: redbot/cogs/admin/admin.py:470
msgid "That role is already a selfrole."
msgstr "الرتبة المذكورة ليست على قائمة الرتب الذاتية."
#: redbot/cogs/admin/admin.py:474
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:480
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:482
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:488
#, docstring
msgid "\n"
" Remove a role from the list of available selfroles.\n\n"
" Remove a role, or a selection of roles, from the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\\ ن أ شن ة أشنة الان زة الان اكل سالت الكلسه \\ ن \\ ن ن ن جال: الـ\"با\" \\ ن"
msgstr ""
#: redbot/cogs/admin/admin.py:481
#: redbot/cogs/admin/admin.py:497
msgid "I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "لا يمكنني السماح لك بإزالة {role.name} من كونه رتبةًا ذاتيًا لأن هذا الرتبة أعلى من أو يساوي أعلى رتبة لك في التسلسل الهرمي Discord."
#: redbot/cogs/admin/admin.py:489
msgid "Removed."
msgstr "لقد قمت بنجاح بإزالة {role.name} من {member.display_name}"
#: redbot/cogs/admin/admin.py:507
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:494
#: redbot/cogs/admin/admin.py:509
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Clear the list of available selfroles for this server."
msgstr ""
#: redbot/cogs/admin/admin.py:519
msgid "There are currently no selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:522
msgid "Are you sure you want to clear this server's selfrole list?"
msgstr ""
#: redbot/cogs/admin/admin.py:528
msgid "You took too long to respond."
msgstr ""
#: redbot/cogs/admin/admin.py:537
msgid "I cannot clear the selfroles because the selfrole '{role.name}' is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:543
msgid "Selfrole list cleared."
msgstr ""
#: redbot/cogs/admin/admin.py:545
msgid "No changes have been made."
msgstr ""
#: redbot/cogs/admin/admin.py:550
#, docstring
msgid "Lock a bot to its current servers only."
msgstr "قفل البوت للسيرفر الحالي فقط."
#: redbot/cogs/admin/admin.py:499
#: redbot/cogs/admin/admin.py:555
msgid "The bot is no longer serverlocked."
msgstr "لم يعد البوت مقفول للسيرفر الحالي فقط."
#: redbot/cogs/admin/admin.py:501
#: redbot/cogs/admin/admin.py:557
msgid "The bot is now serverlocked."
msgstr "لقد تم قفل البوت للسيرفر الحالي فقط."
@@ -297,7 +332,7 @@ msgstr "لم أستطع أن أعلن للخوادم التالية:"
msgid "The Admin cog is not loaded."
msgstr "لم يتم تحميل وحدة الأدمن cog."
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "الرتبة المذكورة ليست على قائمة الرتب الذاتية."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-16 19:14+0000\n"
"POT-Creation-Date: 2021-10-17 16:51+0000\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"MIME-Version: 1.0\n"
@@ -15,64 +15,64 @@ msgstr ""
"X-Crowdin-File-ID: 42\n"
"Language: bg_BG\n"
#: redbot/cogs/admin/admin.py:18
#: redbot/cogs/admin/admin.py:19
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr "Опитах да направя нещо, за което Discord ми забрани права. Команда не успя да завърши успешно."
#: redbot/cogs/admin/admin.py:23
#: redbot/cogs/admin/admin.py:24
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr "Не мога да премахна {role.name} на {member.display_name}, защото ролята е по-голяма или равна на моята най-висока роля в йерархията на Discord."
#: redbot/cogs/admin/admin.py:29
#: redbot/cogs/admin/admin.py:30
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr "Не мога да махна {role.name} на {member.display_name}, защото ролята е по-голяма или равна на моята най-висока роля в йерархията на Discord."
#: redbot/cogs/admin/admin.py:35
#: redbot/cogs/admin/admin.py:36
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr "Не мога да редактирам {role.name}, защото ролята е по-голяма или равна на моята най-висока роля в йерархията на Discord."
#: redbot/cogs/admin/admin.py:41
#: redbot/cogs/admin/admin.py:42
msgid "I can not let you give {role.name} to {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Не мога да ти позволя да дадеш {role.name} на {member.display_name}, защото ролята е по-голяма или равна на най-високата ти роля в йерархията на Discord."
#: redbot/cogs/admin/admin.py:47
#: redbot/cogs/admin/admin.py:48
msgid "I can not let you remove {role.name} from {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Не мога да ти позволя да махнеш {role.name} на {member.display_name}, защото ролята е по-голяма или равна на най-високата ти роля в йерархията на Discord."
#: redbot/cogs/admin/admin.py:53
#: redbot/cogs/admin/admin.py:54
msgid "I can not let you edit {role.name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Не мога да ти позволя да редактираш {role.name}, защото ролята е по-голяма или равна на най-високата ти роля в йерархията на Discord."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgstr "Трябва ми разрешение да управлявам ролите за да направя това."
#: redbot/cogs/admin/admin.py:60
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
#: redbot/cogs/admin/admin.py:62
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr "Вече обявявам нещо. Ако искаш да направиш различно съобщение, моля използвай `{prefix}announce cancel` първо."
#: redbot/cogs/admin/admin.py:71
#: redbot/cogs/admin/admin.py:72
#, docstring
msgid "A collection of server administration utilities."
msgstr "Колекция от помощни програми за администриране на сървъри."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:165
msgid "{member.display_name} already has the role {role.name}."
msgstr "{member.display_name} вече има ролята {role.name}."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:185
msgid "I successfully added {role.name} to {member.display_name}"
msgstr "Успешно добавих {role.name} на {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:195
msgid "{member.display_name} does not have the role {role.name}."
msgstr "{member.display_name} няма ролята {role.name}."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:215
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "Успешно махнах {role.name} от {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:226
#, docstring
msgid "\n"
" Add a role to a user.\n\n"
@@ -85,7 +85,7 @@ msgstr "\n"
" Ако потребител е празно, то по подразбиране е автора на командата.\n"
" "
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:242
#, docstring
msgid "\n"
" Remove a role from a user.\n\n"
@@ -98,12 +98,12 @@ msgstr "\n"
" Ако потребител е празно, то по подразбиране е автора на командата.\n"
" "
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:256
#, docstring
msgid "Edit role settings."
msgstr "Редактирай настройките на ролята."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:263
#, docstring
msgid "\n"
" Edit a role's colour.\n\n"
@@ -116,11 +116,11 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:292 redbot/cogs/admin/admin.py:325
msgid "Done."
msgstr "Завършено."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:296
#, docstring
msgid "\n"
" Edit a role's name.\n\n"
@@ -130,34 +130,34 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:330
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:337
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:344
#, docstring
msgid "Cancel a running announce."
msgstr ""
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:346
msgid "There is no currently running announcement."
msgstr ""
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:349
msgid "The current announcement has been cancelled."
msgstr ""
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:355
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:360
#, docstring
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
@@ -165,16 +165,16 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:369
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:374
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:399
#, docstring
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
@@ -183,7 +183,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:409
#: redbot/cogs/admin/admin.py:412
#, docstring
msgid "\n"
" Add a selfrole to yourself.\n\n"
@@ -192,7 +192,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:420
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\n"
" Remove a selfrole from yourself.\n\n"
@@ -201,69 +201,106 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:431
#: redbot/cogs/admin/admin.py:434
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:441
#: redbot/cogs/admin/admin.py:444
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:447
#: redbot/cogs/admin/admin.py:450
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:452
#: redbot/cogs/admin/admin.py:455
#, docstring
msgid "\n"
" Add a role to the list of available selfroles.\n\n"
" Add a role, or a selection of roles, to the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:459
#: redbot/cogs/admin/admin.py:464
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:467
msgid "Added."
msgstr "Добавено."
#: redbot/cogs/admin/admin.py:470
msgid "That role is already a selfrole."
msgstr "Тази роля вече е самостоятелна роля."
#: redbot/cogs/admin/admin.py:474
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:480
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:482
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:488
#, docstring
msgid "\n"
" Remove a role from the list of available selfroles.\n\n"
" Remove a role, or a selection of roles, from the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:481
#: redbot/cogs/admin/admin.py:497
msgid "I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:489
msgid "Removed."
msgstr "Премахнато."
#: redbot/cogs/admin/admin.py:507
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:494
#: redbot/cogs/admin/admin.py:509
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Clear the list of available selfroles for this server."
msgstr ""
#: redbot/cogs/admin/admin.py:519
msgid "There are currently no selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:522
msgid "Are you sure you want to clear this server's selfrole list?"
msgstr ""
#: redbot/cogs/admin/admin.py:528
msgid "You took too long to respond."
msgstr ""
#: redbot/cogs/admin/admin.py:537
msgid "I cannot clear the selfroles because the selfrole '{role.name}' is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:543
msgid "Selfrole list cleared."
msgstr ""
#: redbot/cogs/admin/admin.py:545
msgid "No changes have been made."
msgstr ""
#: redbot/cogs/admin/admin.py:550
#, docstring
msgid "Lock a bot to its current servers only."
msgstr "Заключете бота само за текущите му сървъри."
#: redbot/cogs/admin/admin.py:499
#: redbot/cogs/admin/admin.py:555
msgid "The bot is no longer serverlocked."
msgstr "Ботът вече не е заключен за сървъри."
#: redbot/cogs/admin/admin.py:501
#: redbot/cogs/admin/admin.py:557
msgid "The bot is now serverlocked."
msgstr "Ботът е заключен за сървъри."
@@ -279,7 +316,7 @@ msgstr "Не можах да обявя в следните сървъри: "
msgid "The Admin cog is not loaded."
msgstr "Admin cog не беше зареден."
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Предоставената роля не е валидна самостоятелна роля."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-16 19:14+0000\n"
"POT-Creation-Date: 2021-10-17 16:51+0000\n"
"Last-Translator: \n"
"Language-Team: Bosnian\n"
"MIME-Version: 1.0\n"
@@ -15,64 +15,64 @@ msgstr ""
"X-Crowdin-File-ID: 42\n"
"Language: bs_BA\n"
#: redbot/cogs/admin/admin.py:18
#: redbot/cogs/admin/admin.py:19
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr ""
#: redbot/cogs/admin/admin.py:23
#: redbot/cogs/admin/admin.py:24
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:29
#: redbot/cogs/admin/admin.py:30
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:35
#: redbot/cogs/admin/admin.py:36
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:41
#: redbot/cogs/admin/admin.py:42
msgid "I can not let you give {role.name} to {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:47
#: redbot/cogs/admin/admin.py:48
msgid "I can not let you remove {role.name} from {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:53
#: redbot/cogs/admin/admin.py:54
msgid "I can not let you edit {role.name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
#: redbot/cogs/admin/admin.py:60
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
#: redbot/cogs/admin/admin.py:62
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr ""
#: redbot/cogs/admin/admin.py:71
#: redbot/cogs/admin/admin.py:72
#, docstring
msgid "A collection of server administration utilities."
msgstr ""
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:165
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:185
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:195
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:215
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:226
#, docstring
msgid "\n"
" Add a role to a user.\n\n"
@@ -81,7 +81,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:242
#, docstring
msgid "\n"
" Remove a role from a user.\n\n"
@@ -90,12 +90,12 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:256
#, docstring
msgid "Edit role settings."
msgstr ""
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:263
#, docstring
msgid "\n"
" Edit a role's colour.\n\n"
@@ -108,11 +108,11 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:292 redbot/cogs/admin/admin.py:325
msgid "Done."
msgstr ""
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:296
#, docstring
msgid "\n"
" Edit a role's name.\n\n"
@@ -122,34 +122,34 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:330
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:337
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:344
#, docstring
msgid "Cancel a running announce."
msgstr ""
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:346
msgid "There is no currently running announcement."
msgstr ""
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:349
msgid "The current announcement has been cancelled."
msgstr ""
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:355
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:360
#, docstring
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
@@ -157,16 +157,16 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:369
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:374
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:399
#, docstring
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
@@ -175,7 +175,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:409
#: redbot/cogs/admin/admin.py:412
#, docstring
msgid "\n"
" Add a selfrole to yourself.\n\n"
@@ -184,7 +184,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:420
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\n"
" Remove a selfrole from yourself.\n\n"
@@ -193,69 +193,106 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:431
#: redbot/cogs/admin/admin.py:434
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:441
#: redbot/cogs/admin/admin.py:444
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:447
#: redbot/cogs/admin/admin.py:450
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:452
#: redbot/cogs/admin/admin.py:455
#, docstring
msgid "\n"
" Add a role to the list of available selfroles.\n\n"
" Add a role, or a selection of roles, to the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:459
#: redbot/cogs/admin/admin.py:464
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:467
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:470
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:474
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:480
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:482
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:488
#, docstring
msgid "\n"
" Remove a role from the list of available selfroles.\n\n"
" Remove a role, or a selection of roles, from the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:481
#: redbot/cogs/admin/admin.py:497
msgid "I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:489
msgid "Removed."
#: redbot/cogs/admin/admin.py:507
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:494
#: redbot/cogs/admin/admin.py:509
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Clear the list of available selfroles for this server."
msgstr ""
#: redbot/cogs/admin/admin.py:519
msgid "There are currently no selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:522
msgid "Are you sure you want to clear this server's selfrole list?"
msgstr ""
#: redbot/cogs/admin/admin.py:528
msgid "You took too long to respond."
msgstr ""
#: redbot/cogs/admin/admin.py:537
msgid "I cannot clear the selfroles because the selfrole '{role.name}' is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:543
msgid "Selfrole list cleared."
msgstr ""
#: redbot/cogs/admin/admin.py:545
msgid "No changes have been made."
msgstr ""
#: redbot/cogs/admin/admin.py:550
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
#: redbot/cogs/admin/admin.py:499
#: redbot/cogs/admin/admin.py:555
msgid "The bot is no longer serverlocked."
msgstr ""
#: redbot/cogs/admin/admin.py:501
#: redbot/cogs/admin/admin.py:557
msgid "The bot is now serverlocked."
msgstr ""
@@ -271,7 +308,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-16 19:14+0000\n"
"POT-Creation-Date: 2021-10-17 16:51+0000\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"MIME-Version: 1.0\n"
@@ -15,64 +15,64 @@ msgstr ""
"X-Crowdin-File-ID: 42\n"
"Language: ca_ES\n"
#: redbot/cogs/admin/admin.py:18
#: redbot/cogs/admin/admin.py:19
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr "He intentat fer una cosa per la qual Discord m'ha denegat els permisos. La vostra comanda no s'ha pogut completar correctament."
#: redbot/cogs/admin/admin.py:23
#: redbot/cogs/admin/admin.py:24
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr "No puc donar {role.name} a {member.display_name} perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:29
#: redbot/cogs/admin/admin.py:30
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr "No puc treure {role.name} a {member.display_name} perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:35
#: redbot/cogs/admin/admin.py:36
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr "No puc editar {role.name} perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:41
#: redbot/cogs/admin/admin.py:42
msgid "I can not let you give {role.name} to {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "No puc deixar-te donar {role.name} a {member.display_name} perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:47
#: redbot/cogs/admin/admin.py:48
msgid "I can not let you remove {role.name} from {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "No puc deixar-te treure {role.name} a {member.display_name} perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:53
#: redbot/cogs/admin/admin.py:54
msgid "I can not let you edit {role.name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "No puc deixar-te editar {role.name} perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgstr "Necessito permís de gestió de rols per fer-ho."
#: redbot/cogs/admin/admin.py:60
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
#: redbot/cogs/admin/admin.py:62
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr "Ja estic anunciant alguna cosa. Si voleu fer un anunci diferent, primer utilitzeu `{prefix}announce cancel`."
#: redbot/cogs/admin/admin.py:71
#: redbot/cogs/admin/admin.py:72
#, docstring
msgid "A collection of server administration utilities."
msgstr "Una col·lecció dutilitats dadministració de servidors."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:165
msgid "{member.display_name} already has the role {role.name}."
msgstr "{member.display_name} ja té el rol {role.name}."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:185
msgid "I successfully added {role.name} to {member.display_name}"
msgstr "He afegit amb èxit {role.name} a {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:195
msgid "{member.display_name} does not have the role {role.name}."
msgstr "{member.display_name} no té el rol {role.name}."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:215
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "He tret amb èxit {role.name} a {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:226
#, docstring
msgid "\n"
" Add a role to a user.\n\n"
@@ -85,7 +85,7 @@ msgstr "\n"
" Si l'usuari es deixa en blanc el valor per defecte és l'autor del comandament.\n"
" "
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:242
#, docstring
msgid "\n"
" Remove a role from a user.\n\n"
@@ -98,12 +98,12 @@ msgstr "\n"
" Si l'usuari es deixa en blanc el valor per defecte és l'autor del comandament.\n"
" "
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:256
#, docstring
msgid "Edit role settings."
msgstr "Editar la configuració del rol."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:263
#, docstring
msgid "\n"
" Edit a role's colour.\n\n"
@@ -124,11 +124,11 @@ msgstr "\n"
" `[p]editrole colour Test #ff9900`\n"
" "
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:292 redbot/cogs/admin/admin.py:325
msgid "Done."
msgstr "Fet."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:296
#, docstring
msgid "\n"
" Edit a role's name.\n\n"
@@ -143,34 +143,34 @@ msgstr "\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:330
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr "Anunciar un missatge a tots els servidors en què es troba el bot."
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:337
msgid "The announcement has begun."
msgstr "Lanunci ha començat."
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:344
#, docstring
msgid "Cancel a running announce."
msgstr "Cancel·lar un anunci en curs."
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:346
msgid "There is no currently running announcement."
msgstr "Actualment no hi ha cap anunci en curs."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:349
msgid "The current announcement has been cancelled."
msgstr "L'anunci actual s'ha cancel·lat."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:355
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr "Canvia com senvien els anuncis en aquest servidor."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:360
#, docstring
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
@@ -181,16 +181,16 @@ msgstr "\n"
" Si el canal es deixa en blanc el canal per defecte és el canal actual.\n"
" "
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:369
msgid "The announcement channel has been set to {channel.mention}"
msgstr "El canal d'anuncis s'ha establert a {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:374
#, docstring
msgid "Unsets the channel for announcements."
msgstr "Treu el canal per als anuncis."
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:399
#, docstring
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
@@ -203,7 +203,7 @@ msgstr "\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
#: redbot/cogs/admin/admin.py:409
#: redbot/cogs/admin/admin.py:412
#, docstring
msgid "\n"
" Add a selfrole to yourself.\n\n"
@@ -216,7 +216,7 @@ msgstr "\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
#: redbot/cogs/admin/admin.py:420
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\n"
" Remove a selfrole from yourself.\n\n"
@@ -229,7 +229,7 @@ msgstr "\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
#: redbot/cogs/admin/admin.py:431
#: redbot/cogs/admin/admin.py:434
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
@@ -238,69 +238,100 @@ msgstr "\n"
" Llista tots els selfrols disponibles.\n"
" "
#: redbot/cogs/admin/admin.py:441
#: redbot/cogs/admin/admin.py:444
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr "Selfroles disponibles:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:447
#: redbot/cogs/admin/admin.py:450
#, docstring
msgid "Manage selfroles."
msgstr "Gestiona selfroles."
#: redbot/cogs/admin/admin.py:452
#: redbot/cogs/admin/admin.py:455
#, docstring
msgid "\n"
" Add a role to the list of available selfroles.\n\n"
" Add a role, or a selection of roles, to the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Afegeix un rol a la llista de selfroles disponibles.\n\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:459
#: redbot/cogs/admin/admin.py:464
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "No puc deixar-te afegir {role.name} com a selfrole perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:467
msgid "Added."
msgstr "Afegit."
#: redbot/cogs/admin/admin.py:470
msgid "That role is already a selfrole."
msgstr "Aquest rol ja és un selfrole."
#: redbot/cogs/admin/admin.py:474
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:480
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:482
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:488
#, docstring
msgid "\n"
" Remove a role from the list of available selfroles.\n\n"
" Remove a role, or a selection of roles, from the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Treu un rol de la llista de selfroles disponibles.\n\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:481
#: redbot/cogs/admin/admin.py:497
msgid "I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "No puc deixar-te treure {role.name} de ser un selfrole perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:489
msgid "Removed."
msgstr "Esborrat."
#: redbot/cogs/admin/admin.py:507
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:494
#: redbot/cogs/admin/admin.py:509
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Clear the list of available selfroles for this server."
msgstr ""
#: redbot/cogs/admin/admin.py:519
msgid "There are currently no selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:522
msgid "Are you sure you want to clear this server's selfrole list?"
msgstr ""
#: redbot/cogs/admin/admin.py:528
msgid "You took too long to respond."
msgstr ""
#: redbot/cogs/admin/admin.py:537
msgid "I cannot clear the selfroles because the selfrole '{role.name}' is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:543
msgid "Selfrole list cleared."
msgstr ""
#: redbot/cogs/admin/admin.py:545
msgid "No changes have been made."
msgstr ""
#: redbot/cogs/admin/admin.py:550
#, docstring
msgid "Lock a bot to its current servers only."
msgstr "Bloqueja el bot només als seus servidors actuals."
#: redbot/cogs/admin/admin.py:499
#: redbot/cogs/admin/admin.py:555
msgid "The bot is no longer serverlocked."
msgstr "El bot ja no està bloquejat pel servidor."
#: redbot/cogs/admin/admin.py:501
#: redbot/cogs/admin/admin.py:557
msgid "The bot is now serverlocked."
msgstr "El bot està ara bloquejat pel servidor."
@@ -316,7 +347,7 @@ msgstr "No he pogut anunciar als servidor següents: "
msgid "The Admin cog is not loaded."
msgstr "El cog Admin no s'ha carregat."
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "El rol proporcionat no és un selfrole vàlid."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-16 19:14+0000\n"
"POT-Creation-Date: 2021-10-17 16:51+0000\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"MIME-Version: 1.0\n"
@@ -15,64 +15,64 @@ msgstr ""
"X-Crowdin-File-ID: 42\n"
"Language: cs_CZ\n"
#: redbot/cogs/admin/admin.py:18
#: redbot/cogs/admin/admin.py:19
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr "Pokusil jsem se udělat něco, co mi Discord odepřel. Tvůj příkaz se nepodažilo úspěšně dokončit."
#: redbot/cogs/admin/admin.py:23
#: redbot/cogs/admin/admin.py:24
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr "Nemohu dát {role.name} uživateli {member.display_name}, protože tato role je vyšší nebo rovna mé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:29
#: redbot/cogs/admin/admin.py:30
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr "Nemohu odebrat {role.name} uživateli {member.display_name}, protože tato role je vyšší nebo rovna mé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:35
#: redbot/cogs/admin/admin.py:36
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr "Nemohu upravit {role.name}, protože tato role je vyšší, než moje nebo stejná jako nejvyšší role v Discord hierarchii."
#: redbot/cogs/admin/admin.py:41
#: redbot/cogs/admin/admin.py:42
msgid "I can not let you give {role.name} to {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Nemohu ti dovolit dát {role.name} uživateli {member.display_name}, protože tato role je vyšší nebo rovna tvé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:47
#: redbot/cogs/admin/admin.py:48
msgid "I can not let you remove {role.name} from {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Nemohu ti dovolit odebrat {role.name} uživateli {member.display_name}, protože tato role je vyšší nebo rovna tvé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:53
#: redbot/cogs/admin/admin.py:54
msgid "I can not let you edit {role.name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Nemohu ti dovolit upravit {role.name}, protože tato role je vyšší nebo rovna tvé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgstr "K tomu potřebuji oprávnění spravovat role."
#: redbot/cogs/admin/admin.py:60
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
#: redbot/cogs/admin/admin.py:62
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr "Už něco oznamuji. Pokud bys rád provedl jiné oznámení, nejdříve použij `{prefix}announce cancel`."
#: redbot/cogs/admin/admin.py:71
#: redbot/cogs/admin/admin.py:72
#, docstring
msgid "A collection of server administration utilities."
msgstr "Kolekce nástrojů pro správu serveru."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:165
msgid "{member.display_name} already has the role {role.name}."
msgstr "{member.display_name} již má roli {role.name}."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:185
msgid "I successfully added {role.name} to {member.display_name}"
msgstr "Úspěšně jsem přidal {role.name} k {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:195
msgid "{member.display_name} does not have the role {role.name}."
msgstr "{member.display_name} již má roli {role.name}."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:215
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "Úspěšně jsem odstranil {role.name} od {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:226
#, docstring
msgid "\n"
" Add a role to a user.\n\n"
@@ -85,7 +85,7 @@ msgstr "\n"
" Ponecháte-li uživatel prázdný, výchozí hodnota autorovi příkazu.\n"
" "
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:242
#, docstring
msgid "\n"
" Remove a role from a user.\n\n"
@@ -98,12 +98,12 @@ msgstr "\n"
" Ponecháte-li uživatel prázdný, výchozí hodnota autorovi příkazu.\n"
" "
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:256
#, docstring
msgid "Edit role settings."
msgstr "Upraví nastavení role."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:263
#, docstring
msgid "\n"
" Edit a role's colour.\n\n"
@@ -124,11 +124,11 @@ msgstr "\n"
" `[p]editrole colour Spravce #ff9900`\n"
" "
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:292 redbot/cogs/admin/admin.py:325
msgid "Done."
msgstr "Hotovo."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:296
#, docstring
msgid "\n"
" Edit a role's name.\n\n"
@@ -143,34 +143,34 @@ msgstr "\n"
" `[p]editrole name \"Spravce\" Admin`\n"
" "
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:330
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr "Oznámit zprávu na všechny servery ve kterých je bot."
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:337
msgid "The announcement has begun."
msgstr "Oznámení začalo."
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:344
#, docstring
msgid "Cancel a running announce."
msgstr "Zrušit běžící oznámení."
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:346
msgid "There is no currently running announcement."
msgstr "V současné době neexistuje žádné spuštěné oznámení."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:349
msgid "The current announcement has been cancelled."
msgstr "Momentální oznámení bylo zrušeno."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:355
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr "Změňte způsob odesílání oznámení v tomto klanu."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:360
#, docstring
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
@@ -181,16 +181,16 @@ msgstr "\n"
" Pokud je kanál prázdný, nastaví aktuální kanál.\n"
" "
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:369
msgid "The announcement channel has been set to {channel.mention}"
msgstr "Kanál pro oznámení byl nastaven na {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:374
#, docstring
msgid "Unsets the channel for announcements."
msgstr "Zruší kanál pro oznámení."
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:399
#, docstring
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
@@ -199,7 +199,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:409
#: redbot/cogs/admin/admin.py:412
#, docstring
msgid "\n"
" Add a selfrole to yourself.\n\n"
@@ -212,7 +212,7 @@ msgstr "\n"
" POZNÁMKA: Role je citlivá na malá a velká písmena!\n"
" "
#: redbot/cogs/admin/admin.py:420
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\n"
" Remove a selfrole from yourself.\n\n"
@@ -225,7 +225,7 @@ msgstr "\n"
" POZNÁMKA: Role je citlivá na malá a velká písmena!\n"
" "
#: redbot/cogs/admin/admin.py:431
#: redbot/cogs/admin/admin.py:434
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
@@ -234,69 +234,100 @@ msgstr "\n"
" Seznam všech dostupných self-rolí.\n"
" "
#: redbot/cogs/admin/admin.py:441
#: redbot/cogs/admin/admin.py:444
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr "Dostupné self-role:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:447
#: redbot/cogs/admin/admin.py:450
#, docstring
msgid "Manage selfroles."
msgstr "Spravovat self-role."
#: redbot/cogs/admin/admin.py:452
#: redbot/cogs/admin/admin.py:455
#, docstring
msgid "\n"
" Add a role to the list of available selfroles.\n\n"
" Add a role, or a selection of roles, to the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Přidá roli do seznamu dostupných self-rolí.\n\n"
" POZNÁMKA: Role je citlivá na malá a velká písmena!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:459
#: redbot/cogs/admin/admin.py:464
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Nemohu ti dovolit odebrat {role.name} jako self-roli uživateli, protože tato role je vyšší nebo rovna tvé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:467
msgid "Added."
msgstr "Přidáno."
#: redbot/cogs/admin/admin.py:470
msgid "That role is already a selfrole."
msgstr "Tato role je již self-rolí."
#: redbot/cogs/admin/admin.py:474
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:480
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:482
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:488
#, docstring
msgid "\n"
" Remove a role from the list of available selfroles.\n\n"
" Remove a role, or a selection of roles, from the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Odstraní roli ze seznamu dostupných self-rolí.\n\n"
" POZNÁMKA: Role je citlivá na malá a velká písmena!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:481
#: redbot/cogs/admin/admin.py:497
msgid "I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Nemohu ti dovolit odebrat {role.name} uživateli, protože tato role je vyšší nebo rovna tvé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:489
msgid "Removed."
msgstr "Odstraněno."
#: redbot/cogs/admin/admin.py:507
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:494
#: redbot/cogs/admin/admin.py:509
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Clear the list of available selfroles for this server."
msgstr ""
#: redbot/cogs/admin/admin.py:519
msgid "There are currently no selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:522
msgid "Are you sure you want to clear this server's selfrole list?"
msgstr ""
#: redbot/cogs/admin/admin.py:528
msgid "You took too long to respond."
msgstr ""
#: redbot/cogs/admin/admin.py:537
msgid "I cannot clear the selfroles because the selfrole '{role.name}' is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:543
msgid "Selfrole list cleared."
msgstr ""
#: redbot/cogs/admin/admin.py:545
msgid "No changes have been made."
msgstr ""
#: redbot/cogs/admin/admin.py:550
#, docstring
msgid "Lock a bot to its current servers only."
msgstr "Uzamkne bota pouze na jeho aktuální servery."
#: redbot/cogs/admin/admin.py:499
#: redbot/cogs/admin/admin.py:555
msgid "The bot is no longer serverlocked."
msgstr "Bot již není uzamčen na server."
#: redbot/cogs/admin/admin.py:501
#: redbot/cogs/admin/admin.py:557
msgid "The bot is now serverlocked."
msgstr "Bot je nyní serverem uzamčen."
@@ -312,7 +343,7 @@ msgstr "Nemohu oznámit následujícím serverům: "
msgid "The Admin cog is not loaded."
msgstr "Admin cog není načten."
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Daná role není platná self-role."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-16 19:14+0000\n"
"POT-Creation-Date: 2021-10-17 16:51+0000\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"MIME-Version: 1.0\n"
@@ -15,64 +15,64 @@ msgstr ""
"X-Crowdin-File-ID: 42\n"
"Language: da_DK\n"
#: redbot/cogs/admin/admin.py:18
#: redbot/cogs/admin/admin.py:19
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr "Jeg forsøgte på noget som Discord har nægtet mig adgang til. Din kommando blev ikke gennemført."
#: redbot/cogs/admin/admin.py:23
#: redbot/cogs/admin/admin.py:24
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr "Jeg kan ikke give {role.name} til {member.display_name} da denne rolle er højere eller tilsvarende til min tildelte rolle i hierarkiet."
#: redbot/cogs/admin/admin.py:29
#: redbot/cogs/admin/admin.py:30
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr "Jeg kan ikke fjerne {role.name} fra {member.display_name} da denne rolle er højere eller tilsvarende til min tildelte rolle i hierarkiet."
#: redbot/cogs/admin/admin.py:35
#: redbot/cogs/admin/admin.py:36
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr "Jeg kan ikke redigere {role.name} da denne rolle er højere eller tilsvarende til min tildelte rolle i hierarkiet."
#: redbot/cogs/admin/admin.py:41
#: redbot/cogs/admin/admin.py:42
msgid "I can not let you give {role.name} to {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Jeg kan ikke lade dig tildele {role.name} til {member.display_name} da denne rolle er højere eller tilsvarende til din tildelte rolle i hierarkiet."
#: redbot/cogs/admin/admin.py:47
#: redbot/cogs/admin/admin.py:48
msgid "I can not let you remove {role.name} from {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Jeg kan ikke lade dig fjerne {role.name} fra {member.display_name} da denne rolle er højere eller tilsvarende til din tildelte rolle i hierarkiet."
#: redbot/cogs/admin/admin.py:53
#: redbot/cogs/admin/admin.py:54
msgid "I can not let you edit {role.name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Jeg kan ikke lade dig redigere {role.name} da denne rolle er højere eller tilsvarende til din tildelte rolle i hierarkiet."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgstr "Jeg mangler evnen til at kunne administere roller for at kunne gøre dette."
#: redbot/cogs/admin/admin.py:60
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
#: redbot/cogs/admin/admin.py:62
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr "Jeg annoncere allerede noget. Hvis du ønsker at annoncere noget andet, benyt dig af '{prefix} annoncere annuller' først."
#: redbot/cogs/admin/admin.py:71
#: redbot/cogs/admin/admin.py:72
#, docstring
msgid "A collection of server administration utilities."
msgstr "En samling af server administrations værktøjer."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:165
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:185
msgid "I successfully added {role.name} to {member.display_name}"
msgstr "Jeg gennemførte tilføjelsen af {role.name} til {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:195
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:215
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "Jeg gennemførte fjernelsen af {role.name} fra {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:226
#, docstring
msgid "\n"
" Add a role to a user.\n\n"
@@ -81,7 +81,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:242
#, docstring
msgid "\n"
" Remove a role from a user.\n\n"
@@ -90,12 +90,12 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:256
#, docstring
msgid "Edit role settings."
msgstr "Rediger rolle indstillinger."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:263
#, docstring
msgid "\n"
" Edit a role's colour.\n\n"
@@ -108,11 +108,11 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:292 redbot/cogs/admin/admin.py:325
msgid "Done."
msgstr "Færdig."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:296
#, docstring
msgid "\n"
" Edit a role's name.\n\n"
@@ -122,34 +122,34 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:330
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr "Annoncer en besked til alle serverne botten er i."
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:337
msgid "The announcement has begun."
msgstr "Annonceringen er påbegyndt."
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:344
#, docstring
msgid "Cancel a running announce."
msgstr "Afbryd en kørende annonce."
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:346
msgid "There is no currently running announcement."
msgstr "Der er i øjeblikket ikke nogen kørende annonceringer."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:349
msgid "The current announcement has been cancelled."
msgstr "Den nuværende annoncering er blevet afbrudt."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:355
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr "Ændre hvordan annonceringer er udsendt i denne server."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:360
#, docstring
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
@@ -157,16 +157,16 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:369
msgid "The announcement channel has been set to {channel.mention}"
msgstr "Annoncerings kanalen er blevet sat til {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:374
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:399
#, docstring
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
@@ -175,7 +175,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:409
#: redbot/cogs/admin/admin.py:412
#, docstring
msgid "\n"
" Add a selfrole to yourself.\n\n"
@@ -184,7 +184,7 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:420
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\n"
" Remove a selfrole from yourself.\n\n"
@@ -193,69 +193,106 @@ msgid "\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:431
#: redbot/cogs/admin/admin.py:434
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:441
#: redbot/cogs/admin/admin.py:444
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:447
#: redbot/cogs/admin/admin.py:450
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:452
#: redbot/cogs/admin/admin.py:455
#, docstring
msgid "\n"
" Add a role to the list of available selfroles.\n\n"
" Add a role, or a selection of roles, to the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:459
#: redbot/cogs/admin/admin.py:464
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:467
msgid "Added."
msgstr "Tilføjet."
#: redbot/cogs/admin/admin.py:470
msgid "That role is already a selfrole."
#: redbot/cogs/admin/admin.py:474
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:474
#: redbot/cogs/admin/admin.py:480
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:482
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:488
#, docstring
msgid "\n"
" Remove a role from the list of available selfroles.\n\n"
" Remove a role, or a selection of roles, from the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:481
#: redbot/cogs/admin/admin.py:497
msgid "I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:489
msgid "Removed."
msgstr "Fjernet."
#: redbot/cogs/admin/admin.py:507
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:494
#: redbot/cogs/admin/admin.py:509
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Clear the list of available selfroles for this server."
msgstr ""
#: redbot/cogs/admin/admin.py:519
msgid "There are currently no selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:522
msgid "Are you sure you want to clear this server's selfrole list?"
msgstr ""
#: redbot/cogs/admin/admin.py:528
msgid "You took too long to respond."
msgstr ""
#: redbot/cogs/admin/admin.py:537
msgid "I cannot clear the selfroles because the selfrole '{role.name}' is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
#: redbot/cogs/admin/admin.py:543
msgid "Selfrole list cleared."
msgstr ""
#: redbot/cogs/admin/admin.py:545
msgid "No changes have been made."
msgstr ""
#: redbot/cogs/admin/admin.py:550
#, docstring
msgid "Lock a bot to its current servers only."
msgstr "Lås en bot til dens nuværende server."
#: redbot/cogs/admin/admin.py:499
#: redbot/cogs/admin/admin.py:555
msgid "The bot is no longer serverlocked."
msgstr "Botten er ikke længere låst til serveren."
#: redbot/cogs/admin/admin.py:501
#: redbot/cogs/admin/admin.py:557
msgid "The bot is now serverlocked."
msgstr "Botten er nu låst til serveren."
@@ -271,7 +308,7 @@ msgstr "Jeg kunne ikke annoncere til de følgende servere: "
msgid "The Admin cog is not loaded."
msgstr "Admin cog er ikke indlæst."
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Den vedlagte rolle er ikke en valid selvrolle."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

Some files were not shown because too many files have changed in this diff Show More