Compare commits

..

381 Commits

Author SHA1 Message Date
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
jack1142
6a99becdb2 Update publish_release.yml 2021-04-06 03:57:06 +02:00
github-actions[bot]
062211d099 Version bump to 3.4.9 (#4951)
* Version bump to 3.4.9

* Update changelog_3_4_0.rst

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-04-06 03:50:53 +02:00
jack1142
84f1699b8f Red 3.4.9 - Changelog (#4950)
* Red 3.4.9 - Changelog

* Add info about d.py bump
2021-04-06 03:43:05 +02:00
jack1142
6cf54db308 Fix command error handlers (d.py micro bump) (#4949) 2021-04-06 03:35:55 +02:00
jack1142
fa25033be1 Fix dev bump in Publish Release workflow (#4948) 2021-04-06 03:22:01 +02:00
jack1142
36c9d9aaee Version bump to 3.4.9.dev1 (#4947) 2021-04-06 01:41:29 +02:00
github-actions[bot]
2c82a4ba2b Version bump to 3.4.8 (#4945)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-04-06 00:55:59 +02:00
github-actions[bot]
6cae1c0204 [i18n] Automated Crowdin downstream (#4946)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-04-06 00:55:36 +02:00
jack1142
1b6fc00039 Red 3.4.8 - Changelog (#4941)
* Add 3.4.8 section

* PR 3833 (issue 3699)

* PR 4801 (issue 4789)

* PR 4742 (issue 4731)

* PR 4898

* PR 4871 (issue 4766)

* PR 4878

* PR 4904 (issue 4900)

* PR 4897

* PR 4889 (issue 4888)

* PR 4877 (issue 4700)

* PR 4876

* PR 4869, 4870

* PR 4866

* PR 4865

* PR 4864

* PR 4942

* PR 4830

* PR 4821

* PR 4790

* PR 4746 (issue 4735)

* PR 4831 (issue 4720)

* PR 4049

* PR 4928

* PR 4914 (issue 4905)

* PR 4917 (issue 4916)

* PR 4940

* PR 4938

* PR 4004

* PR 4883 (issue 4808)

* PR 4933

* PR 2952

* PR 4910

* PR 4907

* PR 4908

* PR 4839

* PR 4906

* PR 4932

* PR 4565

* Add release date and contributor list

* Remove empty section

* 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-04-06 00:55:26 +02:00
jack1142
e2c0f2aca8 Revert "[Streams] Remove stream alert if stream not found (#4939)" (#4943)
This reverts commit 3c742e39d2.
2021-04-05 23:40:06 +02:00
jack1142
83deb7c563 Update instructions to use Python 3.8.9 (#4942) 2021-04-05 23:25:10 +02:00
jack1142
c574271cee Fix no dispatch on shared API token removal (#4917) 2021-04-05 14:28:23 -06:00
PredaaA
a6d15dc385 [Streams] Stop suppressing task cancelation in _stream_alerts() (#4940)
* Minimize the API calls

* Address Jack's review.

* [Streams] Actually cancel the _stream_alerts task.
2021-04-05 22:22:20 +02:00
jack1142
07099dd1dd allowed_by_whitelist_blacklist() - add guild param, deprecate guild_id (#4914)
* allowed_by_whitelist_blacklist() - add guild param, deprecate guild_id

* Add clarification to description of `guild`, `guild_id`, and `role_ids`

* style :|

* Update redbot/core/bot.py

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

Co-authored-by: TrustyJAID <TrustyJAID@gmail.com>
2021-04-05 14:20:21 -06:00
Kreusada
d1ed41c46b [Image] Improve explanations of arguments in docstrings and help (#4874)
* Initial commit

* Give arguments their descriptions

* Add usage

* fixes for black
2021-04-05 16:16:41 -04:00
PredaaA
3c742e39d2 [Streams] Remove stream alert if stream not found (#4939)
* Remove stream if not found

* Address Jack's review.
2021-04-05 20:13:00 +00:00
PredaaA
9a7c178db5 [Streams] Minimize Twitch API calls (#4938)
* Minimize the API calls

* Address Jack's review.

* Check for self.id first.

* *inhales*

* Update redbot/cogs/streams/streamtypes.py

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

* Apply suggestions from code review

* Update redbot/cogs/streams/streamtypes.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-04-05 22:10:41 +02:00
jack1142
67fa735555 Use partial messages in Streams cog to avoid potential leakage (#4742)
* Use partial messages in Streams cog to avoid leakage

* Stop trying to save bot object to Config...

* Put guild id as part of message data

* Fix AttributeError

* Pass bot object to stream classes in commands

* ugh

* Another place we use this class in

* more...
2021-04-05 21:39:33 +02:00
Twentysix
c25095ba2d [Core] Use menus for [p]servers, improve [p]leave (#4831)
* [Core] Use menus for [p]servers, improve [p]leave

* Apply suggestions from code review

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

* Few more changes

* Add empty line...

* style

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: Samuel <50765275+npc203@users.noreply.github.com>
2021-04-05 19:37:23 +00:00
jack1142
adda30cbee Bump discord.py to 1.7.0 (#4928)
* Bump discord.py, but to the git version for now

* Import GuildConverter from d.py and deprecate our implementation

* Import PartialMessageConverter in our commands extension

* Use newly added `Cog.has_error_handler()` rather than private method

* Update snowflake regex to use 20 as max length

See Rapptz/discord.py#6501

* Use new supported way for custom cooldown buckets

* Include group args in command signature

* Update code to use `Client.close()` over `Client.logout()`

* Add StageChannelConverter and StoreChannelConverter

* Fix AttributeError in licenseinfo
2021-04-05 21:33:19 +02:00
jack1142
9008410fa4 Fix dropping db in redbot-setup delete (#3833)
* Fix dropping db in `redbot-setup delete`

* fix docstrings
2021-04-05 21:17:18 +02:00
Draper
b7d8b0552e I promise I'm not doing this on purpose (#4565)
* Prep for 0.7.2

* So What di i do here? I done Magic, magic only found in the tales of old.

* turns out formatting is something important

* fixes

* improved Error handling when Global API is enabled

* further improve resuming logic

* more of dat dark voodoo blood magic

* major tweaks to auto restore when auto play is enabled 👀

* fix duplicated "Auto play stated." message + Auto play restart :feelsgoodman:

* missed these

* fix the new duplicated fucking message bitch.

* Let discord handle player reconnects

* eh

* `Requires force install`, utilize new Exponential Backoff object on player and safer reconnect logic, emulating d.py and WL.

* hmmmmm gotta monitor

* mother fucking brackets

* Why didnt i consider this the first time?????????????

* new error code to handle?

* soooooooooooooooo these are import so why arent we ensuring they are set.

* improved logging

* improved logging

* aaaaaaaaaaaaaaa

* We need our own error and special handling to not conflict with dpy

* (Last Known Bug) Fix the infinite loop of 4006 that sometimes could happen as an edge case after a successful resume.

* This will require a force reinstall to install `RLL 0.8.0`, this properly fixes the bug mentioned on the previous commit.

* address "Localtrack names/paths need to be escaped." comment

* address Fixators crash mentioned in #AT

* style

* fix preda's crash mentioned in PR

* add a thing here add a thing there add a thing everywhere

* style

* fixes here, fixes there, and backbone for curated playlist.

* bypass aiohttp and githubs and cloudflare and yo mammas cache

* I propose the new style is no style.

* allow curated playlist to be updated it `[p]playlist update` and show the diff

* fix `[p]summon` not resuming playback until next track.

* Hopefully handle predas rate limits.

* what else did i break now

* Update Lavalink.jar build

* lets try this

* reset the queue

* Bring Edge commits over fix a bunch of shiz again

* Bring Edge commits over fix a bunch of shiz again

* Handle 4014 OPs, Change `skip_votes` key to be an int rather than guild object

* aaaaaaaaaaaaaaa im dumb

* ...

* Simplify some shiz + use a set instead of a list for votes.

Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>
2021-04-05 21:02:24 +02:00
Pred
1199f160d0 Add plural forms to Downloader (#4004)
* 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

Co-authored-by: Predeactor <ubuntu@vps-35e65bf5.vps.ovh.net>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-04-05 16:37:36 +00:00
PredaaA
5ddc6d2ea8 [Streams] Handle Twitch ratelimits (#4883)
* [Streams] Handle Twitch ratelimits.

* Also handle possible API or client errors.

* Add Jack's changes request.

* Update redbot/cogs/streams/streamtypes.py

* Update redbot/cogs/streams/streamtypes.py

* Update redbot/cogs/streams/streamtypes.py

* Update redbot/cogs/streams/streamtypes.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-04-05 14:23:04 +00:00
aikaterna
6e764c7e04 [Audio] Update Lavalink.jar build (#4932) 2021-04-05 10:18:06 +02:00
Toby Harradine
18a23813c8 Better user feedback during slow backend migrations (#2952)
* Better user feedback during slow backend migrations

This uses a tqdm progress bar to keep the user updated on the progress of the migrations.

I didn't realise this was necessary until I did a migration from Mongo to Postgres on CASE, and it took quite a long time to complete, I started to doubt that it was actually making progress.

Also includes a utility to help with tqdm in slow asynchronous for-loops.

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>

* Make `async_tqdm` support async-for loops

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>

* Reformat

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>

* Remove unused method

* Remove quotes for the return type annotation

* Few style improvements

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-04-05 09:41:31 +02:00
jack1142
560e1dfc3d Add per-command embed settings (embed_requested) (#4049)
* Add per-command embed settings

* Update `[p]embedset showsettings`

* Use command.qualified_name in `[p]embedset` commands

* Fix the call to subcommand and simplify it

* And I oversimplified this

* Update end user messages to use 'guild' rather than 'server'

* meh

* This should be a named field

* Add check for Embed Links perm to confuse users a bit less

* Wrap this string in _()

* Let's use a different exception then...

* Let's clear the setting when we can in whole `[p]embedset`

* Add the order of checking to help of `[p]embedset`

* Add note about full evaluation order to subcommands
2021-04-04 13:37:46 -06:00
Pred
03d72dd5fa [Cleanup] Pre-set the variable to None in [p]cleanup before (#4931)
* [Cleanup] Handle missing message_id and reply

* Fix a new situation where we could end up with unwanted `None`

* I suck at this (style fix)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-04-04 09:34:11 +00:00
PredaaA
847444eab1 [Mutes] Fix data conversion to shema_version 1 and add a note about it (#4934)
* [Mutes] Add a note about conversion to schema_version 1

* Only start the conversion if all_channels

* Actually do what the previous commit said

* okay this time is the right time

* Update mutes.py

* Move conversion to its own method

* Update mutes.py
2021-04-03 18:43:36 -06:00
Jamie
6c338f175b [Audio] ctx.message.guild -> ctx.guild + store ids rather than whole guild in skip_votes (#4867)
* ctx.invoke -> bot.invoke
ctx.message.guild -> ctx.guild

* remove the invoke stuff

* remove invoke stuff

* use id attrib instead of entire guild

* change type hinting too

* change second typehint
2021-04-04 00:01:10 +02:00
PredaaA
363a2e8a17 [Mod] Only loop through guilds in config when checking tempbans (#4907)
* [Mod] No longer loop through all guilds on check_tempban_expirations.

* Address Jack's review.

* I don't think this comment actually served any purpose

* Split this into more methods

* Small optimization for cases where the guild tempbans weren't updated

* Blackify

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-04-03 23:59:41 +02:00
PredaaA
edbd31413b Handle NSFWChannelRequired in events. (#4933) 2021-04-03 23:23:53 +02:00
Vexed
4813c68185 Add note about updating cogs to update message and docs (#4910)
* Add update note to the docs

* And now the DM

* consistent wording

* Clarify the command should be ran in Discord

* apply docs suggestions

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

* apply events.py review

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-04-03 20:38:57 +02:00
jack1142
0becf70b05 Use sphinx-prompt extension (#4908)
* Use sphinx-prompt extension

* Update PM2 guide

* Use an actual proper way to run Red with PM2

* Fix pm2 docs

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
2021-04-03 16:52:11 +00:00
jack1142
0144cbf88b Add deprecated-removed directive to Sphinx (#4912)
* Add `deprecated-removed` directive to Sphinx

* Add equivalent function to internal utils
2021-04-03 18:48:17 +02:00
Kreusada
76bb65912e [Core] Improve responses to [p]set (server)prefix commands (#4898) 2021-04-03 03:10:53 +02:00
Kreusada
01637a9798 [Docs] Use pascal casing for example cog in cog creation guide (#4930) 2021-04-03 02:56:10 +02:00
Flame442
7c853db9f4 [Alias] Strip extra whitespace from fake command messages (#4871) 2021-04-03 02:33:29 +02:00
OofChair
a919610588 Use embed_color for embeds in Warnings cog (#4878)
* add  color 

* add color on line 315, fix line 340

* Black style

* fix color on line 341

* thanks jojo >_>

* dont need i18n here

* Black style again :D
2021-04-03 02:30:26 +02:00
Kreusada
49da854eb7 Add user/role names to [p](local)allow/blocklist list (#4839)
* start

* Get user inside blocklist/allowlist lists

* Changes to cover unknown or deleted users

* Use square brackets for clarity

* Implement the above commit for all four versions

* Much improved UI, removed `[]` to fit new format

* updates to support roles in local version

* add /role to unknown str

* Improve variable names

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-04-03 01:28:06 +02:00
Obi-Wan3
c168e55be9 [Warnings] fix raw namedtuple output (#4904) 2021-04-02 23:09:18 +02:00
PredaaA
35dfb04066 [Mutes] Add guild ID to mutes data (#4906)
* [Mutes] Add guild ID to mutes data.

* Actually make the whole thing works.

* config version as integer, and init task no longer in setup

* oops

* Fix cog_disabled_in_guild check.

* Add Trusty's requested changes.
2021-04-01 19:01:43 -06:00
PhenoM4n4n
fb701d8c72 Allow Cleanup before/after to accept message replies (#4790)
* cleanup after

* style

* bring back cleanup before

* style

* docstring

* make message id optional
2021-03-29 14:39:31 +02:00
jack1142
24fadad4cf Remove unnecessary escape (#4901) 2021-03-29 14:07:53 +02:00
jack1142
f30772a7bd Raise StreamNotFound for 404 errors in YouTube RSS feed (#4746)
* Raise `StreamNotFound` for 404 errors in YouTube RSS feed

* Catch `StreamNotFound` exception in bg task and remove such streams
2021-03-29 14:05:42 +02:00
jack1142
b71d278ae5 Use explicit name of the python packages for openSUSE Tumbleweed, add warning for Arch instructions (#4866)
* [Docs] Use explicit name of the python packages for openSUSE Tumbleweed

* Add warning for Arch Linux instructions

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
2021-03-29 13:59:19 +02:00
jack1142
be00a59ab3 Fix the tracking of nicks that were set just before nick reset (#4830) 2021-03-29 13:54:37 +02:00
❥sora
d45a02166d a small typo (#4915) 2021-03-26 19:13:00 +01:00
Sougata das
a4db7a1028 Add meaningful error messages for bad arguments in [p]bank set (#4801)
* bot will give meaning full message for bad argument

* reformated python code and updated warning message!

* warning message updated

* warning message updated

* warning message updated(1)

* warning message updated(2)

* warning message updated(3)

* Address the review

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-03-26 16:00:56 +01:00
jack1142
ef803072fa Update ambiguous oid parsing to detect candidates on Git 2.31+ (#4897)
* Update ambiguous oid parsing to detect candidates on Git 2.31+

* Update tests
2021-03-24 00:52:52 +01:00
jack1142
e5ffe86c4e Improve labeler configuration to include docs (#4902) 2021-03-21 01:25:47 +01:00
jack1142
d1bc4b4302 Small meta cleanups (#4893)
* Remove the unneeded pytest options from pyproject.toml

* Clean up setup.py from old readthedocs.org workaround

* Removes unused folder

* Simplify list of excluded files in black's configuration

* Fix returned exit codes in `make.ps1`

* Add Sublime's project files to `.gitignore`

* Update the link to Black in README and contributing guidelines
2021-03-16 19:51:48 +01:00
jack1142
6c903aacff Update Downloader tests to work with newer git versions (#4891) 2021-03-16 19:50:51 +01:00
Kreusada
1b3958515b [Reports] Improve usage in the report command's decorator (#4881)
* [Reports] Improve usage in the report decorator

* fix sig
2021-03-15 00:01:36 -04:00
Kreusada
fef56427ae [Docs] Add explanation for multiple arguments (#4889)
* [Docs] Add explanation for multiple arguments

* ordering fix

* Add example

* syntax
2021-03-14 23:47:53 -04:00
jack1142
18fea4e4a7 Remove duplicate questions in hockey trivia (#4887) 2021-03-14 04:49:24 +01:00
Pred
f82d613a11 how dare you... (#4885) 2021-03-13 18:18:55 -05:00
kingslayer268
0c3e772135 Added use spoilers functionality (#4877)
* Added use spoilers functionallity

* Update trivia.py

* Update session.py
2021-03-07 22:27:41 +01:00
kingslayer268
c78ee14617 Fix AttributeError in Context.delete_messages() (#4876)
delete_messages() isn't an attribute of DMChannels
2021-03-06 16:21:25 +01:00
TheDiscordHistorian
3782e9c1b9 fix a minor grammar issue (#4846)
The docstring says "cogs the folder" which should be "cogs folder"
2021-03-03 20:44:39 +01:00
kreusada
8d03fef566 [Docs] Image Cog Guide (#4821)
* [Docs] Images Cog Guide

* [Docs] Image Cog Guide

* Fixes for directory inside the index

* The cog is cakked IMAGE not IMAGES

* Potential fixes for failing checks

* Grammar fixes

* Some formatting updates

* Fix merge conflicts from 3.4.7

* Re-format for requested changes
2021-03-03 14:19:33 -05:00
OofChair
77896494c4 [Docs] Add nano package to Linux install guides (#4870)
* [Docs] Add installation instructions for nano

As some servers don't have nano preinstalled, I added the installation instructions here.

* Formatting fix

* Update autostart_systemd.rst

* Add nano to installation instructions

* Add nano to all OS installation instructions

* Remove nano from OSX installation

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

* Remove trailing whitspace

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

* Put nano at the end

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

* Put nano at the end

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

* Put nano at the end

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

* Put nano at the end

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

* Update install_linux_mac.rst

* Minimize diffs

Co-authored-by: kreusada <67752638+kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-03-03 17:14:15 +01:00
OofChair
aad34f2b08 sudo -e -> sudo nano (#4869)
I changed this as it was mentioned in #4082. (https://github.com/Cog-Creators/Red-DiscordBot/pull/4082#issuecomment-789291030)
2021-03-03 00:19:59 +01:00
jack1142
85dc6f4cc9 Use brew install --cask instead of brew cask install (#4865) 2021-03-01 09:25:55 -08:00
jack1142
7126482449 Drop support for EOL systems and update instructions to use Python 3.8.8 (#4864)
* Drop support for EOL systems (Fedora 31, openSUSE Leap 15.1)

* Bump Python in Windows and pyenv install guides to 3.8.8
2021-02-28 15:45:48 +01:00
jack1142
9bb61ba882 Make files - fallback to python(3.8) from PATH if .venv doesn't exist (#4863) 2021-02-28 15:39:28 +01:00
jack1142
1ff976b3d0 Add make.ps1 cmdlet + activateenv command for Windows make scripts (#4087)
* Add missing command to `make.bat`'s help

* Add `activateenv` and `deactivateenv` commands to `make.bat`

* Add help to `Makefile`

* Add `make.ps1` cmdlet
2021-02-27 12:23:32 +01:00
jack1142
53c069a636 Auto-put PRs from release workflows in the proper milestone + minor things (#4862)
* Make workflow name use TitleCase

* Indicate in the PR description that it's a multi-part workflow

* Auto-put PRs from Prepare Release workflow in the proper milestone

* Rename "Publish the release" workflow to "Publish Release"

* Auto-put PR from Publish Release workflow in the proper milestone
2021-02-27 11:22:54 +01:00
Fixator10
bb90444979 [Changelog] Fix argument name in 3.4.6 changelog (#4861) 2021-02-26 21:37:35 +00:00
jack1142
19fc5a090c Version bump to 3.4.8.dev1 (#4860) 2021-02-26 19:08:12 +00:00
kreusada
0d53b2ab73 [Changelog] Fix URL (#4859) 2021-02-26 19:05:22 +00:00
jack1142
d3b448d50c Fix publish_release workflow (#4858) 2021-02-26 19:04:36 +00:00
github-actions[bot]
02667ef65d Version bump to 3.4.7 (#4856)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-02-26 19:53:11 +01:00
github-actions[bot]
51b73fdd1a [i18n] Automated Crowdin downstream (#4857)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-02-26 19:51:59 +01:00
jack1142
f926fab431 Fix prepare_release workflow (#4855) 2021-02-26 18:43:00 +00:00
jack1142
dbbaa88e8e Red 3.4.7 - Changelog (#4852)
* wip

* wip 2

* wip 3

* Add contribs list!
2021-02-26 19:31:25 +01:00
Kowlin
df5926b51a [Core] Clarify that the owner is a team in [p]info (#4851)
* Clarify that the owner is a team.

* This should do.

* Style check... for a comma, in your dreams Tox...

* Annndddd for the insane people who don't use embeds
2021-02-26 18:48:22 +01:00
jack1142
7d42c4c6c3 Minor text fix in Mutes cog (#4853) 2021-02-26 18:32:11 +01:00
Ellie Saurich
dfe84f9936 [Mutes] Wrong error message when muting fails (#4850)
* [Mutes] Wrong error message when muting fails

* This applies to both mute and unmuting of members.

Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
2021-02-26 08:22:04 +00:00
Jamie
649b4ebb15 add checks to 2 muteset commands (#4849) 2021-02-26 03:14:56 +01:00
jack1142
f476b842d5 Work around actions/labeler's upstream issue with label sync setting (#4844)
* Work around `actions/labeler`'s upstream issue with label sync setting

* Add comment about this being a workaround
2021-02-23 14:57:34 +01:00
kreusada
92ea92b617 [Docs] General Cog Guide (#4797)
* [Docs] General Cog Guide

* Doc Style Fixes

* Requested Changes

* Additional grammar fix that was missed

Co-authored-by: kreusada <67752638+kreus7@users.noreply.github.com>
2021-02-22 13:56:43 -05:00
Jamie
ae2bae058c change domain to .app (#4840) 2021-02-20 23:50:40 +01:00
palmtree5
b20fc9f6af [Docs] Trivia user guide (#4566)
* Start on Trivia user guide

* Finish command coverage + add to toctree

* wip note on list creation section

* Apply suggestions from code review

Co-authored-by: bobloy <alboblexloy@gmail.com>

* Update docs/cog_guides/trivia.rst

Co-authored-by: bobloy <alboblexloy@gmail.com>

* Drop list creation guide for now + fix formatting

* Apply suggestions from code review

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

* permissions notes

Co-authored-by: bobloy <alboblexloy@gmail.com>
Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>
2021-02-20 14:38:18 -05:00
Kowlin
fc5eadd0cc [Meta] Issue template migration (#4809)
* Issue template migration

* Fixes pt. 1

* Fixes pt. 2

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-02-19 19:01:52 +01:00
jack1142
c5fbf5fb94 Change things up with Crowdin and release-related workflows (#4833)
* Alternative way of doing Crowdin...

* Limit the upload translations workflow to V3/develop

* Make the workflow close and reopen the PR automatically while I'm at it

* Add a workflow for preparing PRs for release

* Make the crowdin env vars local to the step requiring them

* Move dev bump to Publish Release workflow
2021-02-18 14:43:21 +01:00
jack1142
54bbdd61e1 Version bump to 3.4.7.dev1 (#4825)
* Version bump to 3.4.6

* Version bump to 3.4.7.dev1
2021-02-16 20:43:18 +01:00
jack1142
512ff7a4b5 Version bump to 3.4.6 (#4824) 2021-02-16 20:22:43 +01:00
jack1142
6881b20c20 Red 3.4.6 - Changelog (#4743)
* Fix some stuff from previous changelogs

* Add 3.4.6 section

* PR 4579

* PR 4710

* PR 4649 (issue 3931)

* PR 4714

* PR 4728

* PR 4740

* PR 4741

* PR 4738 (issue 4405)

* PR 4599

* PR 4733

* PR 4739 (issue 4676)

* PR 4742 (issue 4731)

* PR 3870

* PR 3833 (issue 3699)

* PR 4426

* PR 4715

* PR 4563 (issue 3752)

* PR 3040

* PR 4667

* PR 4726 (issue 4702)

* PR 4647

* PR 4709

* PR 4694 (issue 4693)

* PR 4745

* PR 4749

* PR 4768 (issue 4767)

* PR 4697

* PR 4770

* PR 4772 (issue 4771)

* PR 4758 (issue 4661)

* PR 4705, 4748, 4750, 4788, 4810

* PR 4572 (issue 3777)

* PR 4791

* PR 4754

* PR 4805

* PR 4778

* PR 4800

* PR 4801 (issue 4789)

* PR 4814

* PR 4815

* PR 4819 (issue 4818)

* PR 4822

* Revert entries for unmerged PRs (3833, 4742, 4801)

* PR 4785

* PR 4799

* Add list of contributors

* Add release date

* PR 4763, 4792

* Wew, I almost forgot!

* PR 4660

* Apply suggestions from code review

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

* Update docs/changelog_3_4_0.rst

* Update docs/changelog_3_4_0.rst

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

* Update docs/changelog_3_4_0.rst

* Add Wyn

* What do you think of that, Flame?

* PR 4827

* Jack is dumb

* Jack is dumb 2

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>
2021-02-16 20:22:22 +01:00
github-actions[bot]
e80a00ec1b [i18n] Automated Crowdin downstream (#4829)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-02-16 19:22:05 +00:00
Flame442
7b04c04551 [Mod] Add two new settings to disable name/nickname tracking (#4799)
* Add default settings for name tracking

* Add configuration command for name tracking

* Check the track names settings before tracking

* *grumble*

* Fix permissions levels

* Update settings.py

* Use clean_prefix in inline, and don't use f-strings in `_()`

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-02-16 20:13:37 +01:00
PhenoM4n4n
62411bc2a5 Add a command for deleting usernames and nicknames to Mod cog (#4827)
* mod delete names

* sTyLe fOrMAttInG

* Remove `[p]deletemodkeys` and have `[p]deletenames` remove empty keys

* Rename `[p]deletenames` to `[p]modset deletenames`

* Fix wrong variable being used

* Add confirmation to avoid mistakes

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-02-16 19:58:00 +01:00
Wyn
bee022d1bb Make [p]selfrole without subcommand "toggle" the selfrole (#4826)
* Merge selfrole and remove into one command

replacement pr

* docs

add to the docs

* Update admin.py

remove register name

* Update admin.rst

* Fixes

* Fix the duplicated command decorators

* Minimize the diff

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-02-16 15:16:16 +01:00
Andy
1be7435fb5 fix grammar issues (#4763)
in line 28, it used to be "The message will be send to the user", I fixed it to "The message will be sent to the user".

Co-authored-by: Andy <76832778+AndyButAnnoying@users.noreply.github.com>
2021-02-15 23:32:44 +01:00
Andy
9b4363eff3 grammar fixes (#4792)
* grammar fixes

* author(s)
2021-02-15 23:31:01 +01:00
jack1142
dc68bc5d37 Fix error handling for API calls to videos endpoint in YouTube alerts (#4745) 2021-02-15 12:25:30 -09:00
Andy
5b670c074f Update [p]economyset slottime&paydaytime to use TimedeltaConverter and not accept negative integers (#4807)
* add a time converter, as well as not allowing negative integers

* timedeltaconverter

* styling and unused imports

* update docstrings

* update param name to "duration" instead of seconds

* make timedelta default_unit seconds

* better descriptions & docstrings

* docs for updated paydaytime & slottime

* Fix style

* Few minor fixes

* Cast `total_seconds()` return type to `int`

* Fix one of my own issues

* Make the duration argument catch-rest for convenience

* One more fix for the docs

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-02-15 22:25:03 +01:00
aikaterna
1a9ce2040a [Audio] Update manager.py for new Lavalink build (#4823) 2021-02-15 22:16:47 +01:00
Slave In Utero
4fa8a51ea1 gen-6-pokemon-trivia (#4785) 2021-02-14 23:23:37 -05:00
aleclol
acec5c6efe [Mod] Add default bot color to kick & ban DM (#4822) 2021-02-15 01:34:05 +01:00
aikaterna
d64944d5c3 Update Lavalink.jar build (#4819) 2021-02-15 00:50:58 +01:00
jack1142
6cfaffb8a8 Add i18n deco to Dev and Mutes cog (#4815)
* Add i18n deco to Dev cog

* Add i18n deco to Mutes cog
2021-02-15 00:19:34 +01:00
MAX
3122eb0447 Rename [p]cleanup spam to [p]cleanup duplicates (#4814)
* rename `spam` to `duplicates` and aliases it to `spam`

* style
2021-02-14 21:41:04 +01:00
github-actions[bot]
bf30f2078c [i18n] Automated Crowdin downstream (#4816)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-02-14 16:57:35 +01:00
jack1142
33850a2c35 Update Python version installed in instructions to 3.8.7 (#4770)
* Update Python version installed in instructions to 3.8.7

* Update the one in Windows instructions too
2021-02-13 17:31:14 -05:00
jack1142
40368cc379 Fix changing default state for a cog as enabled/disabled (#4768)
* Fix changing default state for a cog as enabled/disabled

* Add `, None`
2021-02-13 17:24:42 -05:00
kreusada
a9e572d55a [Reports] Use the bot's default colour for report output (#4800)
* [Reports] Use `ctx.embed_colour()` for report output

* Add context

Co-authored-by: kreusada <67752638+kreus7@users.noreply.github.com>
2021-02-13 17:07:48 -05:00
bobloy
4ca2fe0872 [Docs] Add information about the red index (#4778)
* Add information about the red index

* Update docs/guide_publish_cogs.rst

Co-authored-by: BreezeQS <70638053+BreezeQS@users.noreply.github.com>

Co-authored-by: BreezeQS <70638053+BreezeQS@users.noreply.github.com>
2021-02-13 13:08:33 -05:00
iStrqfing
dd9e60b15f [Trivia] [Overwatch] General + Hero Changes (#4805)
Current/up to date answers regarding some hero's health and abilities
Added more options for "What does Tracer say when using her ultimate?"
Competitive point changes for Season 6+ on August 29, 2017 patch
Mercy's major rework on September 19, 2017 patch
Hanzo's major rework on May 3, 2018 patch
Symmetra's major rework on June 6, 2018 patch
"Offense" and "Defense" categories have been merged into "Damage" on June 26, 2018 patch
McCree's roll cooldown decreased on October 9, 2018 patch
Torbjorn's health changed on March 19, 2019 patch
Sombra's translocator cooldown increased on October 15, 2019 patch
Orisa's fortify cooldown decreased on December 10, 2019 patch
Ana's sleep dart duration decreased on April 29, 2020 patch
Orisa's health changed on September 24, 2020 patch
McCree and Widowmaker's health changed on October 29, 2020 patch
Reinhardt's health changed on December 10, 2020 patch
Removed "What was the name of the Lunar New Year themed event in Overwatch?:" since this changes every year.
2021-02-13 12:02:56 -05:00
kreusada
ee33d46732 Grammar fixes (#4810) 2021-02-13 10:44:02 +01:00
MAX
4c58dcedfe Copy info about the bands from [p]eq set help to [p]eq help (#4794)
* Update equalizer.py

* style
2021-02-11 22:47:39 +01:00
kreusada
82595df730 [Utils] Spoiler Function for Chat Formatting (#4754)
* [Utils] Additional chat formatting functions

* [Utils] Updated docstrings to unify with other docstrings

* [Utils] Spoiler feature for chat_formatting

* Fixes for black style

Co-authored-by: kreusada <67752638+kreus7@users.noreply.github.com>
2021-02-11 22:31:47 +01:00
Neuro Assassin
1920212eda [Cleanup] Fix error when providing message snowflake above the maximum (9223372036854775807) (#4791)
* [Cleanup] Fix angry error

* haha just kidding, does not work

* change to be clearer

* update to module level

* cmon black

* added in wrong place
2021-02-11 22:30:16 +01:00
jack1142
7df1570d51 Various improvements in usage of Rich in Red (#4726)
* Use Rich's default console object instead of making one

* Bump Rich to version 9.8.2

* Disable indent guides in tracebacks

* Skip empty lines between stack levels in traceback rendering

* Use full width of the terminal when printing tracebacks

* Disabling syntax highlighting on the log messages

* Make logger name bold

* Make logger level bold

* Make URLs in console bold

* Change `bright_blue` and `blue` colors in syntax theme (NEEDS CHANGING)

* Show only one line per stack level in tracebacks

* Shuffle things in `redbot.logging` a bit

* Change logging handler while redirecting stdout in Dev cog

* Revert last two commits...

This reverts commit cf563bd06a6ae398da12713ceef3db9cc903d902.
This reverts commit 6dddf300726ddf89b8924441eed59b67b58faca0.

* Change Rich console to always print to sys.stdout (therefore ignoring stdout redirects)

* Pass cli_flags to init_logging()

* Add a flag to set the amount of extra lines in rich tracebacks

* First take on the syntax theme colors

* Use the Windows trick

* ARE YOU SERIOUS!?

* Remove dead code

* Use Monokai when Terminal application supports truecolor

* Syntax theme update

* Change logger name color

* This is not needed

* Adjust logging level colors

* Add a flag for showing local variables in Rich tracebacks

* change imports a bit

* Remove usage of blue color fully

* Stop highlighting in Red-DiscordBot splash

* Fix unreadable paths in tracebacks

* Make CRITICAL logging level more readable

* Make time in logs more readable

* Fix the first row being bolded in tables

* Update rich to 9.9.0
2021-02-11 14:20:10 -07:00
github-actions[bot]
663876fba3 Automated Crowdin downstream (#4804)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-02-11 13:20:38 +00:00
jack1142
ae87aa396a Bump Red's deps and all the pip deps used in our Actions (#4572)
* Bump Red's deps

* Bump deps in all our actions

* Don't bump flake8 in Lint Python action

* Bump apsw-wheels too
2021-02-11 02:40:36 +01:00
kreusada
bf624da51b Grammar fixes (#4788) 2021-02-05 09:48:34 -05:00
github-actions[bot]
0f8f33fed2 Automated Crowdin downstream (#4734)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-02-04 18:05:40 +00:00
jack1142
f9848a69b7 So close, and yet so far away - issue forms for the last time tonight (#4784) 2021-02-02 00:50:10 +01:00
Kowlin
082106eb21 Oh boy! more issue templates! (#4783)
* Oh boy! more issue templates!

* Add some descriptions to command_bug.yml

* Update enhancements.yml to refer to "components" since one might want to request API enhancement

* Update feature_request.yml

* Update command_bug.yml

* typo

* I don't think this would cause any issue but I would rather not need another PR

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-02-02 00:35:16 +01:00
jack1142
45f22404d4 Story likes to repeat itself - fix our issue template hopefully for good (#4782)
* Revert "Cut the list in half (#4781)"

This reverts commit 9737c1b5eb.

* Story likes to repeat itself

Yet again, Kowlin makes a small mistake that ends up with us making shitton of commits
2021-02-01 22:41:15 +01:00
jack1142
9737c1b5eb Cut the list in half (#4781) 2021-02-01 21:55:02 +01:00
Kowlin
7c86071a5d Lets "temporarily" remove these. (#4780) 2021-02-01 21:30:46 +01:00
Kowlin
86fbead609 First attempt at issue templates. (#4779)
* Lets try this new fancy thing

* Rename command_bug.md to command_bug.yml

* Update command_bug.yml

* Cog name before command name, thank you

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-02-01 21:21:12 +01:00
jack1142
8139587e5e Update d.py to 1.6.0, aiohttp to 3.7.3, Red-Lavalink to 0.7.2 (#4728)
* Bump d.py, aiohttp, Red-Lavalink

* Remove deprecation warnings that are no longer relevant

* Max concurrency things in `Command.prepare()`

* Two random things that date back to times older than d.py 1.1...
2021-02-01 14:49:50 +01:00
Danstr5544
d6de9c1b94 Add a way to reset rolepayday amounts (#4758)
* Add a way to reset rolepayday amounts

* Totally not fixing a typo...

* Jack found a Typo

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

* Max line length Compliancy

Thanks Jack (again lol)

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

* Including rolepaydayamount changes in docs

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-29 21:50:22 +01:00
bobloy
e24379973c Add guild_only check to [p]command listdisabled guild (#4772) 2021-01-29 21:27:01 +01:00
Predeactor
2bffbd9001 [Core] Fix commands using plural with the same user (#4750)
* [Core] Fix commands using plural with the same user

Some plural checking have also been added to the local blocklist/allowlist and the wording has been revised.

* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* BLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACK

* the

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-29 19:03:24 +00:00
Dennis
51c17110ad Wrap Red-DiscordBot[postgres] in quotes in Unix install docs (#4697)
* Docs: added brackets escape note for Linux/macOS installation

* Corrected punctuation for bracket escaping note

* Use quotes - those work on cmd, bash, zsh, and probably other shells

* Minimize the diff

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-29 19:39:46 +01:00
Vexed
577dbfddb6 Add a note in systemd guide saying working instance is required (#4769)
* [Docs] Add note about pre-existing Red instance to systemd

* lets actually not just copy paste...
2021-01-28 17:18:02 +01:00
MAX
c11e9afec7 [mod] Improve help of ban/kick commands. (#4715)
* better explain on how to use.

* i.... dont know why i removed that dot.

* don't think that was meant to

* Update kickban.py

* smh

* style????

* hm?

* last try to fix style......

i dont even know how to do this :/

* failing style is fun, trynna learn.

* .....

* not the best way but lets try?

* yep, didnt work dropping softban.

* Update kickban.py

* grammar fix
2021-01-23 21:18:29 -05:00
jack1142
991cd46ea3 Add non-generic message when loading a cog with command name that is already registered (#3870)
* Add non-generic message when loading a cog with command name that is already registered

* Use regex instead and add i18n support

* This requires d.py 1.4
2021-01-23 13:49:03 -07:00
jack1142
ad48ef6efd Add filterhit case type to Filter (#4739)
* Add `filterhit` case type to Filter

* Wrong `__init__.py` :|
2021-01-23 13:36:53 -07:00
jack1142
69c8781cec Fix log rotation in Red (#4738)
* Fix log rotation in Red

* Update regexes to only work with single digit suffixes
2021-01-23 13:04:03 -07:00
jack1142
db20cad395 Strip the reason from whitespace in Mutes cog (#4749) 2021-01-23 12:52:50 -07:00
TrustyJAID
e106dfaece Add [p]listcases command and typing indicator to [p]casesfor (#4426)
* [ModLog] Add [p]listcases and typing indicator to casesfor

* weird

* Address review

* Update redbot/cogs/modlog/modlog.py

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

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-23 20:48:31 +01:00
Dav
aa0ee3385d [Mutes] Add ability to send DMs on mute/unmute (#4563)
* handle manual mutes/unmutes

Doing this in the Web-Editor is painful. Let's switch to VSC.

* embed version

* non embed

* config stuff

* testing done

* wow black

* Few things before I start local testing

* Fix new lines

* Make messages not depend on modlog

* Yay voicemutes

* black+import

* what is your ducking problem vscode

* adress review

* this is driving me mad

* Check the config in `_send_dm_notification` to avoid code repetition

* Fix incorrect type hints

* Remove no longer needed line changes

* Remove unused function

* Update the type hints from commit 946299 in the MixinMeta too

* Fixed wrong variable being passed to the method and ensure DMs aren't sent when we couldn't get the member object

* They call me dumb for a reason

* Stop overriding variable with duration + various formatting tweaks

* :(

* We need to differ between voice and text in two places, interesting...

* Show info about no reason provided in embed

* Apparently, the `reason` can also be an empty string :|

* Update redbot/cogs/mutes/mutes.py

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

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-23 11:29:18 +01:00
jack1142
2ce4a275fc Fix command usage of [p]choose command (#4733)
* Fix usage in more commands with variadic required arguments

* Restore filter.py
2021-01-22 19:24:27 -05:00
Fabian H
e23d21ec08 Fixed grammatical mistake in allowlist_add. (#4748)
Changed:

            await ctx.send(_("Users has been added to the allowlist."))

to:

            await ctx.send(_("Users have been added to the allowlist."))
2021-01-22 18:25:46 +01:00
El Laggron
cc885090e6 Docstring fixes for dev env values (#4747)
* Docstring change for add_dev_env_value

* Same for remove_dev_env_value
2021-01-22 18:24:19 +01:00
El Laggron
9b97244f9f [Dev] Customizable environment values (#4667)
* Make the dev env flexible

* Fix rst format in docstrings

* Reproduce current behaviour for _ in repl

* Prevent adding existing or reserved names

* Fix typo with environment

* Docstring changes

Apply suggestions from code review

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

* Get env before loop

* Hey I'm not the only one doing typos

* Keep new messages in env

* Clear exception of stack frames

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

* Include the `channel` variable in the reserved names

* And we're also missing `discord` :)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-22 16:53:34 +01:00
Predeactor
7630e24822 [Core] Add plural forms in allowlist and blocklist commands (#4705)
* Plurial for blocklist/allowlist

* duh

* Apply suggestions from code review

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-22 02:56:07 +00:00
Lui
8dbabe24e0 [Streams] Use timezone-aware time (#4694)
* [Streams] Remove timezone replacement

* [Streams] Convert naive now time to UTC

* [Streams] Format with black
2021-01-21 16:29:54 +01:00
Lui
5b21d37571 [Streams] Change streamtypes log name (#4744) 2021-01-21 16:15:52 +01:00
bobloy
676f34185d [Core] Add sensible character lengths to activity statuses (#4663)
* Add sensible character lengths

* Add translation function

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-21 13:41:28 +00:00
Predeactor
edbbd76b3c Document that discord.DMChannel can be used in MessagePredicate (#4718)
* Allow "discord.DMChannel" for MessagePredicate

This closes #4707.

* Optional only takes a single type, use Union

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-21 11:42:10 +01:00
Fixator10
315b3e5c98 Add on_red_before_identify dispatch (#4647)
* add before_identify_hook with `on_identify` dispatch

* move before_identify_hook closer to other "hooks"

* add `red_` prefix to avoid potential conflict

* on_red_before_identify

Co-authored-by: Fixator10 <fixator10@users.noreply.github.com>
2021-01-21 10:20:20 +01:00
bobloy
41e980c517 Fix usage in [p]filter's commands, make commands consistent (#4599)
* Make *words a required argument.

* Also make delete consistant, and name not positional
2021-01-21 00:23:16 +01:00
Ryan
0358055cce [Docs] Document pyenv workaround for pm2 (#4709)
* add pyenv specific fixes to pm2

* switch note to code-block

* forgot a new line
2021-01-21 00:12:58 +01:00
PredaaA
dcf7368e54 Show command aliases in help with setting to disable (#3040)
* Update help.py

* Create 3040.enhance.rst

* remove towncrier entry

* Make it i18n friendly.

* That was uneeded to change this actually.

* ...

* ..

* .

* Add a setting for aliases.

* DOTS

* Update redbot/core/core_commands.py

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

* Address requested changes maybe

* New format + changes requested.

* okay we'll get there someday

* honk

* aaaaaaaaaaaaaaa

* Black

* Fix missing humanize_timedelta import.

* style

* Two things from my very old pending review, see commit desc

```py
            valid_alias_list = [
                af
                for a in aliases
                if (af := f"{a}")
                and len(af) < 500
                and ((a_counter + len(af)) < 500)
                and (a_counter := a_counter + len(af))
            ]
```
^ This can be simplified:
```suggestion
            valid_alias_list = [
                alias
                for alias in aliases
                if (a_counter := a_counter + len(alias)) < 500
            ]
```
Although I think it would be somewhat clearer to use a `for` loop rather than a list comprehension (+ we can just `break` when there's not gonna be another alias that could fit in the list since it's sorted):
```suggestion
            valid_alias_list = []

            for alias in aliases:
                if (a_counter := a_counter + len(alias)) < 500:
                    valid_alias_list.append(alias)
                else:
                    break
```

* style *again*

* use qualified name of the parent command

* meh

* another meh

* Revert the last commit...

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
2021-01-20 23:40:27 +01:00
jack1142
4138410d33 Ensure no role hierarchy bypassing in Mutes (#4741)
* Ensure no role hierarchy bypassing on bad role configuration

* Do the same for `[p]muteset role`
2021-01-20 13:32:59 -07:00
jack1142
537656c365 Fix role position checks (#4740) 2021-01-20 13:32:43 -07:00
Dav
d7a3da49f0 [Mod] Make tempban not fail if no vanity url is set up (#4714)
* catch if a vanity url is not set up

* black

Co-authored-by: David Bauch <david.bauch@capgemini.com>
2021-01-17 23:42:00 +01:00
Grant LeBlanc
2b5d72c7a4 [Trivia] Add support for payout to multiple trivia winners (#4649)
* Add payout splitting for trivia game tie instances

* Add check for non-human players

* Apply suggestions from code review

* `pay_winner()` -> `pay_winners()`

* style

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-17 23:32:04 +01:00
Ryan
e4d24578b5 [Bank API] Cache global bank settings (#4723)
* cache global bank settings

* Make the global variable name clearer

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-17 23:08:59 +01:00
BreezeQS
2b72f9bb99 [Docs] Restructure of the Host List (#4710)
* Update hostlist

My first pr??

* Rephrase of unsupported warning

Exact reason for lack of container support added. Information about docker support added in case someone finds that repo and tries it.

* Remove azure from free list

Later found unreasonable to include it due to the 750 hours being spread across the entire year, ends up less than 24 hours a week.

* Oops

Fixed something that caused docs build to error

* Removal of extra space

Fix of spelling error noticed during review

Co-authored-by: bobloy <alboblexloy@gmail.com>

* Fix capitalization error

Idk if this was really necessary, but oh well

* Rephrase free tier note

* Rephrase docker warning

* Small changes

Added galaxygate and ramnode, removed contabo, rephrased a few things, added voice region tip.

* Small fix

Just realized i accidentailly removed Contabo

* Update docs/host-list.rst

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

* Update docs/host-list.rst

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

* Update docs/host-list.rst

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

* Update docs/host-list.rst

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

* Update docs/host-list.rst

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

* Update docs/host-list.rst

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

* Update docs/host-list.rst

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

* Update docs/host-list.rst

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

* Update docs/host-list.rst

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

* Update docs/host-list.rst

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

* Update docs/host-list.rst

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

* Update docs/host-list.rst

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

Co-authored-by: bobloy <alboblexloy@gmail.com>
Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>
2021-01-16 18:36:22 -05:00
bobloy
8d512e206a [Docs] Filter Cog Guide (#4579)
* Add filter to index

* Initial generated docs

* Start on docstrings

* More docstrings

* Some more docstrings

* Rest of the doc strings

* Regenerate docs

* Remove unnecessary language. Move to one line.

* Regenerate docs

* Update redbot/cogs/filter/filter.py

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

* Update redbot/cogs/filter/filter.py

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

* Update redbot/cogs/filter/filter.py

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

* Update docs/cog_guides/filter.rst

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

* Update docs/cog_guides/filter.rst

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

* Update docs/cog_guides/filter.rst

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

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-16 02:10:45 +00:00
jack1142
19711d35b2 Update actions/labeler to use v3 version (#4730) 2021-01-13 04:16:07 +01:00
jack1142
1e1fff0d49 Someone can yell at me later... (#4729) 2021-01-13 04:03:26 +01:00
jack1142
21f75c0711 Fix the negation rules in labeler configuration (#4727) 2021-01-12 14:29:19 +01:00
Flame442
a2d0a364fe Fix auto labeler error from invalid yaml -> json (#4719) 2021-01-10 00:31:07 +01:00
github-actions[bot]
b76b6305d1 Automated Crowdin downstream (#4703)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-01-07 17:26:35 +00:00
Kowlin
beedc6d2c7 [CI/meta] Add automatic labeling of changed files. (#4674)
* Theoretically this should work!

* Update .github/labeler.yml

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

* Update .github/labeler.yml

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

* Update .github/labeler.yml

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

* Update .github/labeler.yml

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

* Update .github/labeler.yml

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

* Update .github/labeler.yml

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

* *ughhh*

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2021-01-07 18:09:14 +01:00
Vexed
ecf912bc4b Update docs for 2021 (#4706) 2021-01-01 19:33:48 +01:00
aikaterna
d0a0b3fc53 Update LICENSE for 2021 (#4704)
Thank god this disaster of a year is over, onto the next disaster!
2021-01-01 00:05:44 +01:00
Kowlin
6133075fd6 Bump version to 3.4.6.dev1 (#4691) 2020-12-24 17:40:13 +01:00
Kowlin
e218e092b0 Bump to 3.4.5 (#4690) 2020-12-24 17:23:16 +01:00
Neuro Assassin
7208cdb804 Red 3.4.5 - Changelog (#4692)
* PR 4687

* i dont even know anymore

* fix
2020-12-24 17:21:41 +01:00
github-actions[bot]
13cd751932 Automated Crowdin downstream (#4689)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-12-24 15:45:31 +01:00
Lui
1bdaa9d95e [Streams] Initialize all variables (#4687) 2020-12-24 15:43:05 +01:00
jack1142
67e776a640 Version bump to 3.4.5.dev1 (#4686) 2020-12-24 01:14:16 +01:00
jack1142
dc5f025e02 Version bump to 3.4.4 (#4685) 2020-12-24 00:48:32 +01:00
jack1142
2add689729 Red 3.4.4 - Changelog (#4684)
* Red 3.4.4 - Changelog

* Fix my failures

* Flame is a person too

* Apply suggestions from code review

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

* Update changelog_3_4_0.rst

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>
2020-12-24 00:43:51 +01:00
Flame442
3716bf25a7 [Docs] Create CC requirements docs (#4637)
* Create guide_cog_creators.rst

* Update guide_cog_creation.rst

* FTFY <3

* Bullet other details

* req changes

* Update docs/guide_cog_creators.rst

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

* Apply suggestions from code review

Oh boy I didn't know they added this neat batch commit feature!

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

* Update guide_cog_creation.rst

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-12-24 00:22:10 +01:00
aikaterna
2f18133a93 [Audio] Update Lavalink.jar build (#4683) 2020-12-23 21:59:20 +01:00
Slave In Utero
e8aef1e923 [General] Add new available guild features in [p]serverinfo (#4678)
* add new available guild features

* Remove `ENABLED_DISCOVERABLE_BEFORE`

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-12-23 21:20:12 +01:00
jack1142
30dc6fe171 [Trivia] Remove empty string from answers (again) (#4673) 2020-12-23 21:07:24 +01:00
Kowlin
8ae84b7c81 [Streams] Remove the blank suppression of errors (#4680)
* [Streams] Remove the blank suppression of errors

* Okay, maybe do gracefully handle it a little bit...

* Update redbot/cogs/streams/streams.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-12-23 21:00:55 +01:00
Jamie
d01bca2314 Owners can bypass cooldowns with non persistent toggle (#4440)
* dev bypas cooldowns

* Toggleable within dev, new attrib

* Reuqested changes

* Remake content

* Looks like `reset_cooldown()` is under Command object :)

* Remove `await`

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-12-23 20:25:32 +01:00
Vexed
300346dcd4 [Docs] Update console image in Getting Started guide for Rich logging (#3905)
* update image

* MAXIMISE THE QUALITY

* add storage driver as JSON (#3935)

* fk

* REEEE

how am i faling to use git so much

* rich!

* make image width 696 pixels so it doesn't scale
2020-12-23 15:27:28 +01:00
Kowlin
ab80f46d2e [Core] Rich logging for not so rich people (#4577)
* Pop stash

* add rich to setup

* Added forceful enabling of rich logging

* revert some unintended pushed

* Fix possible unbound var
Fix possible 0 members w/out members intent

* One day I won't forget to do style passes

* So this is a thing apperently...

* Bump rich to 9.5.1

* Lock secondary deps

* Different stuff, see the full commit description for more info

- Change few things from print to log.info
- put the log handlers on the root logger instead of individual loggers
- capture warnings to a logger

* Modify log handler to show logger name

* Add a Triboolian to force disable rich

* Style checks

* shortened time, added logger name... again.

* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

* Style & linking

* Be or not to be? Whatever man, it's 4:30 in the morning, goto sleep >.<

* Reintroduce outdated message.

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-12-23 05:11:44 +01:00
Kowlin
afae84fa6b [CI] Update CodeQL to resolve warnings. (#4681)
* Update CodeQL to resolve warnings.

* Make CodeQL analyze our Python dependencies

* `fetch-depth` should be no longer needed

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-12-23 03:57:28 +01:00
Predeactor
d53ff57794 Shorten the audit log reason appropriately, remove unused vars (#4189)
* [Mod] Check for reason length & remove unused vars

This PR also remove unused variable.

* Blame me

* Apply Kowlin order.

Text will get truncate in audit logs in case we're going over 512 characters.

* This is already handled by ban_user()

* Use `get_audit_reason()` in `[p]tempban`

* Add a new kwarg to `get_audit_reason()` instead

* Include `[p]voiceban` and `[p]voiceunban`

* Include Mutes cog

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-12-23 03:22:59 +01:00
kreusada
d3ffb22e86 [Docs] Raspian Installation Directs to 404 (#4682)
I'd assume this would be an appropriate link to replace with.
2020-12-23 01:49:32 +01:00
jack1142
b36a702e62 Make command usage in help for required arguments consistent (#4589)
* Make command usage in help for required arguments consistent

* Bob 3

* Bob 1

* Docstring updates

* Address Flame's review

* Update cog guides in docs
2020-12-22 14:14:47 -05:00
bobloy
59e1e31634 Fix inviteset public link (#4641) 2020-12-19 21:06:38 +01:00
PhenoM4n4n
8280067b7e Improve grammar in max concurrency error (#4501)
* better concurrency grammar

* remove casing

* Apply Bread's suggestion per Draper's comment

Co-authored-by: Sean <29239704+Bakersbakebread@users.noreply.github.com>

* Thanks Pred

Co-authored-by: Predeactor <61093863+Predeactor@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: Sean <29239704+Bakersbakebread@users.noreply.github.com>
Co-authored-by: Predeactor <61093863+Predeactor@users.noreply.github.com>
2020-12-19 00:31:16 +01:00
github-actions[bot]
7f587ea46b Automated Crowdin downstream (#4664)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-12-18 19:10:17 +01:00
Neuro Assassin
92788a90c1 [CogManagerUI] Fix error when removing path from other OS (#4466)
* Fix error when removing path from other OS

* Update to draper's comment
2020-12-18 04:15:59 +01:00
Ryan
3a12a9b47f [Cleanup] Delete command message when using [p]cleanup self (#4640)
* delete command message

* only delete command if can_mass_purge
2020-12-17 20:37:38 +01:00
bobloy
d22ea2dd11 Warn when new slotmin/slotmax value will cause slots to not work (#4583)
* Properly handle slotmin/slotmax rules

* Use a variable to reduce config calls. No reason to process differently half way through a command anyways.

* Update redbot/cogs/economy/economy.py

* Add positive int converter for slotmin/slotmax

* Option to allow bad mins and maxes.

* Update economy.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-12-17 20:32:57 +01:00
Kowlin
e519286f5c Catch OverflowErrors in the timedelta converter (#4630) 2020-12-16 18:56:42 +01:00
Samuel
06ba425159 bot.remove_command returns a dpy command object instead of None (#4636)
* remove_command returns a dpy command object

* removed typehint at remove_command

* typing

Co-authored-by: npc203 <npc203@users.noreply.github.com>
2020-12-16 18:31:26 +01:00
Slave In Utero
6038ef5550 gen-5-pokemon-trivia (#4646) 2020-12-08 09:53:53 -08:00
github-actions[bot]
b04610b457 Automated Crowdin downstream (#4653)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-12-08 18:39:00 +01:00
Vexed
140693b171 [Docs] Update GC free credit period (#4658)
* [Docs] Update GC free credit period

* i am soo dumb
2020-12-05 17:33:50 +01:00
Ryan
63cc83c81b [Docs] Remove Ubuntu 16.04 from Install Docs (#4650) 2020-12-02 21:07:35 +01:00
El Laggron
e2a6d451c3 [Streams] Handle streams with past schedules (#4631)
* Resolve bug with [p]streamalert youtube

The command didn't handle channels that were not provided as IDs

* Provide a different message if the scheduled date has passed

* Ignore streams scheduled for more than an hour
2020-11-30 18:10:44 +01:00
github-actions[bot]
e2adb29cf3 Automated Crowdin downstream (#4638)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-11-29 22:04:43 +01:00
kreusada
1ca422a636 General geography category :D (#4618)
* General geography category :D

* Fixes

* Fixed typo

* Added some more questions

* Made some changes, and accuracy fixes, corrections

* *state, not actual river
2020-11-28 18:01:45 -05:00
palmtree5
04cb1befe6 [Docs] Streams user guide (#4521)
* Start on streams user guide

* Finish up streams guide

* Fix a typo in the doc page

* Fix the SAME typo in the relevant command's docstring while we're here

Co-authored-by: palmtree5 <palmtree5+3577255@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-11-27 13:52:56 -05:00
Ryan
da8705fb8f force path to be string (#4624)
Welp forgot to merge
2020-11-26 20:12:23 +00:00
bobloy
395c184eef [Docs] Economy Cog Guide (#4519)
* Started docstrings

* Add to index

* First generated guide

* Indented examples, some more docstrings

* Aliases are now `in ticks and fully qualified`

* More economy docstrings

* Started docstrings

* Add to index

* First generated guide

* Indented examples, some more docstrings

* Aliases are now `in ticks and fully qualified`

* More economy docstrings

* Regenerate docs

* Much more docstrings and regenerate docs

* Better explaination of `bank set` and grammar changes

* Regenerate docs

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-11-22 17:57:11 -05:00
bobloy
c7fd561cd5 [Docs] Downloader cog guide (#4511)
* Downloader cog guide initial commit

* Updated cogguide to prepare description on cog as well.

* Lots of docstring updates

* Even more docstrings

* Fix docstring and generate docs

* Switch to alphabetical

* Aliases are `in ticks and fully qualified`

* Fix grammer, arguments, and explain revision.

* Regenerated docs

* Avoid ticks in links

* New URL logic

* Additional grammar fixes

* Regenerate docs
2020-11-20 20:18:04 -05:00
github-actions[bot]
bc8f2311d9 Automated Crowdin downstream (#4627)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-11-19 22:18:05 +01:00
El Laggron
f129dcd1a9 [Streams] Resolve bug with [p]streamalert youtube (#4629)
The command didn't handle channels that were not provided as IDs
2020-11-19 18:50:00 +01:00
jack1142
f1d2be58c1 Add python-dateutil to primary deps and lock six with it (#4622) 2020-11-18 22:12:29 +01:00
El Laggron
6060da0f87 [Streams] Support Youtube stream schedules (#4615)
* Catch scheduled livestreams

* Announce scheduled streams and starts

* Add setting, fix bugs

* Add new dependency

* Black reformat

* Fix the duplicated messages bug

* Do not send messages for schedules

* Format embed
2020-11-18 21:48:36 +01:00
jack1142
13ca9a6c2e Version bump to 3.4.4.dev1 (#4616)
Kowlin would want me to admin merge this, so let's just do it.
2020-11-17 00:11:43 +01:00
1380 changed files with 340170 additions and 148092 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

@@ -0,0 +1,86 @@
name: Bug reports for commands
description: For bugs that involve commands found within Red.
labels: 'Type: Bug'
body:
- type: markdown
attributes:
value: |
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?"
options:
- Admin
- Alias
- Audio
- Bank
- Cleanup
- CogManagerUI
- Core
- Customcom
- Dev
- Downloader
- Economy
- Filter
- General
- Image
- Mod
- Modlog
- Mutes
- Permissions
- Reports
- Streams
- Trivia
- Warnings
validations:
required: true
- type: input
id: command-name
attributes:
label: "Command name"
description: "What is the command that caused the error?"
placeholder: "play"
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: |
A clear and concise description of what the bug is.
If the issue is visual in nature, consider posting a screenshot.
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."
value: |
1.
2.
3.
...
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

@@ -0,0 +1,54 @@
name: Bug report
description: "For bugs that don't involve a command."
labels: 'Type: Bug'
body:
- type: markdown
attributes:
value: |
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: |
If the issue is visual in nature, consider posting a screenshot.
validations:
required: true
- type: textarea
id: reproduction-steps
attributes:
label: "How can we reproduce this error?"
description: |
List of steps required to reproduce the error. If the bug is code related, a minimal code example that reproduces the problem would be a big help.
value: |
1.
2.
3.
...
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

@@ -0,0 +1,29 @@
name: Enhancement proposal
description: For feature requests and improvements related to already existing functionality.
labels: 'Type: Enhancement'
body:
- type: markdown
attributes:
value: |
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

@@ -0,0 +1,52 @@
name: Feature request
description: For feature requests regarding Red itself.
labels: 'Type: Feature'
body:
- type: markdown
attributes:
value: |
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?"
multiple: true
options:
- API functionality
- Cog
- Command
- Other
validations:
required: true
- type: textarea
id: proposal
attributes:
label: "Description of the feature you're suggesting"
description: |
Feel free to describe in as much detail as you wish.
If you are requesting API functionality:
- Describe what it should do
- Note whether it is to extend existing functionality or introduce new functionality
If you are requesting a cog to be included in core:
- Describe the functionality in as much detail as possible
- Include the command structure, if possible
- Please note that unless it's something that should be core functionality,
we reserve the right to reject your suggestion and point you to our cog
board to request it for a third-party cog
If you are requesting a command:
- Include what cog it should be in and a name for the command
- Describe the intended functionality for the command
- 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,20 +0,0 @@
Please be sure to read through other issues as well to make sure what you are suggesting/reporting has not already
been suggested/reported
### Type:
- [ ] Suggestion
- [ ] Bug
### Brief description of the problem
### Expected behavior
### Actual behavior
### Steps to reproduce
1.
2.
3.
4.

View File

@@ -1,34 +0,0 @@
---
name: Bug reports for commands
about: For bugs that involve commands found within Red
title: ''
labels: 'Type: Bug'
assignees: ''
---
# Command bugs
<!--
Did you find a bug with a command? Fill out the following:
-->
#### Command name
<!-- Replace this line with the name of the command -->
#### What cog is this command from?
<!-- Replace this line with the name of the cog -->
#### What were you expecting to happen?
<!-- Replace this line with a description of what you were expecting to happen -->
#### What actually happened?
<!-- Replace this line with a description of what actually happened. Include any error messages -->
#### How can we reproduce this issue?
<!-- Replace with numbered steps to reproduce the issue -->

View File

@@ -1,44 +0,0 @@
---
name: Feature request
about: For feature requests regarding Red itself.
title: ''
labels: 'Type: Feature'
assignees: ''
---
# Feature request
<!-- This template is for feature requests. Please fill out the following: -->
#### Select the type of feature you are requesting:
<!-- To check a box, replace the space between the [] with a x -->
- [ ] Cog
- [ ] Command
- [ ] API functionality
#### Describe your requested feature
<!--
Feel free to describe in as much detail as you wish.
If you are requesting a cog to be included in core:
- Describe the functionality in as much detail as possible
- Include the command structure, if possible
- Please note that unless it's something that should be core functionality,
we reserve the right to reject your suggestion and point you to our cog
board to request it for a third-party cog
If you are requesting a command:
- Include what cog it should be in and a name for the command
- Describe the intended functionality for the command
- Note any restrictions on who can use the command or where it can be used
If you are requesting API functionality:
- Describe what it should do
- Note whether it is to extend existing functionality or introduce new functionality
-->

View File

@@ -1,30 +0,0 @@
---
name: Bug report
about: For bugs that don't involve a command.
title: ''
labels: 'Type: Bug'
assignees: ''
---
# Other bugs
<!--
Did you find a bug with something other than a command? Fill out the following:
-->
#### What were you trying to do?
<!-- Replace this line with a description of what you were trying to do -->
#### What were you expecting to happen?
<!-- Replace this line with a description of what you were expecting to happen -->
#### What actually happened?
<!-- Replace this line with a description of what actually happened. Include any error messages -->
#### How can we reproduce this issue?
<!-- Replace with numbered steps to reproduce the issue -->

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

186
.github/labeler.yml vendored Normal file
View File

@@ -0,0 +1,186 @@
"Category: Admin":
# Source
- redbot/cogs/admin/*
# Docs
- docs/cog_guides/admin.rst
"Category: Alias":
# Source
- redbot/cogs/alias/*
# Docs
- docs/cog_guides/alias.rst
"Category: Audio Cog":
- any:
- redbot/cogs/audio/**/*
all:
- "!redbot/cogs/audio/**/locales/*"
"Category: Bank API":
# Source
- redbot/core/bank.py
# Docs
- docs/framework_bank.rst
"Category: Bank Cog":
# Source
- redbot/cogs/bank/*
# Docs
- docs/cog_guides/bank.rst
"Category: Bot Core":
# Source
- redbot/*
- redbot/core/__init__.py
- redbot/core/_diagnoser.py
- redbot/core/_sharedlibdeprecation.py
- redbot/core/bot.py
- redbot/core/checks.py
- redbot/core/cli.py
- redbot/core/cog_manager.py
- redbot/core/core_commands.py
- redbot/core/data_manager.py
- redbot/core/errors.py
- redbot/core/events.py
- redbot/core/global_checks.py
- redbot/core/settings_caches.py
# Docs
- docs/framework_apikeys.rst
- docs/framework_bot.rst
- docs/framework_cogmanager.rst
- 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":
# Source
- redbot/cogs/cleanup/*
# Docs
- docs/cog_guides/cleanup.rst
"Category: Command Module":
# Source
- any:
# Source
- redbot/core/commands/*
# Docs
- docs/framework_checks.rst
- docs/framework_commands.rst
all:
- "!redbot/core/commands/help.py"
"Category: Config":
# Source
- redbot/core/drivers/*
- redbot/core/config.py
# Docs
- docs/framework_config.rst
"Category: CustomCom":
# Source
- redbot/cogs/customcom/*
# Docs
- docs/cog_customcom.rst
- docs/cog_guides/customcommands.rst
"Category: Dev Cog":
- redbot/core/dev_commands.py
"Category: Docs":
- docs/**/*
"Category: Downloader":
# Source
- redbot/cogs/downloader/*
# Docs
- docs/cog_guides/downloader.rst
"Category: Economy Cog":
# Source
- redbot/cogs/economy/*
# Docs
- docs/cog_guides/economy.rst
"Category: Filter":
# Source
- redbot/cogs/filter/*
# Docs
- docs/cog_guides/filter.rst
"Category: General Cog":
# Source
- redbot/cogs/general/*
# Docs
- docs/cog_guides/general.rst
"Category: Help":
- redbot/core/commands/help.py
"Category: i18n":
# Source
- redbot/core/i18n.py
# Locale files
- redbot/**/locales/*
# Docs
- docs/framework_i18n.rst
"Category: Image":
# Source
- redbot/cogs/image/*
# Docs
- docs/cog_guides/image.rst
"Category: Meta":
- ./*
- .github/*
- .github/ISSUE_TEMPLATE/*
- .github/PULL_REQUEST_TEMPLATE/*
- schema/*
- tools/*
"Category: Mod Cog":
# Source
- redbot/cogs/mod/*
# Docs
- docs/cog_guides/mod.rst
"Category: Modlog API":
# Source
- redbot/core/generic_casetypes.py
- redbot/core/modlog.py
# 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
# Docs
- docs/framework_rpc.rst
"Category: Streams":
# Source
- redbot/cogs/streams/*
# Docs
- docs/cog_guides/streams.rst
"Category: Tests":
- redbot/pytest/*
- tests/**/*
"Category: Trivia Cog":
# Source
- 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":
# Source
- redbot/core/utils/*
# Docs
- docs/framework_utils.rst
"Category: Warnings":
# Source
- redbot/cogs/warnings/*
# Docs
- docs/cog_guides/warnings.rst

View File

@@ -1,8 +1,11 @@
name: Auto Labeler
name: Auto Labeler - Issues
on:
issues:
types: [opened]
permissions:
issues: write
jobs:
build:

16
.github/workflows/auto_labeler_pr.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
name: Auto Labeler - PRs
on:
pull_request_target:
permissions:
pull-requests: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Apply Type Label
uses: actions/labeler@v3
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
sync-labels: "" # this is a temporary workaround, see #4844

View File

@@ -2,9 +2,7 @@ name: "CodeQL"
on:
push:
branches: [V3/develop]
pull_request:
# The branches below must be a subset of the branches above
schedule:
- cron: '0 14 * * 4'
workflow_dispatch:
@@ -13,29 +11,37 @@ jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
security-events: write
actions: read
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.8"
- name: Install dependencies
run: |
python -m pip install -U pip setuptools wheel
python -m pip install .[all]
# Set the `CODEQL-PYTHON` environment variable to the Python executable
# that includes the dependencies
echo "CODEQL_PYTHON=$(which python)" >> $GITHUB_ENV
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: 'python'
# Override automatic language detection by changing the below list
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
# Override the default behavior so that the action doesn't attempt
# to auto-install Python dependencies
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#analyzing-python-dependencies
setup-python-dependencies: false
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl

View File

@@ -0,0 +1,32 @@
name: Crowdin - Upload strings
on:
push:
branches:
- V3/develop
jobs:
deploy:
if: github.repository == 'Cog-Creators/Red-DiscordBot'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: |
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.3
- name: Generate source files
run: |
make gettext
- name: Upload source files
run: |
make upload_translations
env:
CROWDIN_API_KEY: ${{ secrets.crowdin_token}}
CROWDIN_PROJECT_ID: ${{ secrets.crowdin_identifier }}

130
.github/workflows/prepare_release.yml vendored Normal file
View File

@@ -0,0 +1,130 @@
name: Prepare Release
on:
workflow_dispatch:
inputs:
new_stable_version:
description: Version number for the new stable release (leave empty to just strip `.dev1`)
required: false
default: 'auto'
permissions:
contents: write
pull-requests: write
jobs:
crowdin_download_translations:
needs: pr_stable_bump
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: |
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.3
- name: Generate source files
run: |
make gettext
- name: Download translations
run: |
make download_translations
env:
CROWDIN_API_KEY: ${{ secrets.crowdin_token}}
CROWDIN_PROJECT_ID: ${{ secrets.crowdin_identifier }}
- name: Create Pull Request
id: cpr_crowdin
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Automated Crowdin downstream
title: "[i18n] Automated Crowdin downstream"
body: |
This is an automated PR that is part of Prepare Release automated workflow (2 out of 2).
Please ensure that there are no errors or invalid files are in the PR.
labels: "Automated PR, Category: i18n, Changelog Entry: Skipped"
branch: "automated/i18n"
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
milestone: ${{ needs.pr_stable_bump.outputs.milestone_number }}
- name: Close and reopen the PR with different token to trigger CI
uses: actions/github-script@v3
env:
PR_NUMBER: ${{ steps.cpr_crowdin.outputs.pull-request-number }}
PR_OPERATION: ${{ steps.cpr_crowdin.outputs.pull-request-operation }}
with:
github-token: ${{ secrets.cogcreators_bot_repo_scoped }}
script: |
const script = require(
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/close_and_reopen_pr.js`
);
console.log(script({github, context}));
pr_stable_bump:
runs-on: ubuntu-latest
outputs:
milestone_number: ${{ steps.get_milestone_number.outputs.result }}
steps:
# Checkout repository and install Python
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
# Create PR for stable version bump
- name: Update Red version number from input
id: bump_version_stable
run: |
python .github/workflows/scripts/bump_version.py
env:
PYTHONPATH: ${{ github.workspace }}:${{ env.PYTHONPATH }}
NEW_STABLE_VERSION: ${{ github.event.inputs.new_stable_version }}
# Get milestone number of the milestone for the new stable version
- name: Get milestone number
id: get_milestone_number
uses: actions/github-script@v3
env:
MILESTONE_TITLE: ${{ steps.bump_version_stable.outputs.new_version }}
with:
script: |
const script = require(
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/get_milestone_number_by_exact_title.js`
);
return await script({github, context});
- name: Create Pull Request
id: cpr_bump_stable
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Version bump to ${{ steps.bump_version_stable.outputs.new_version }}
title: Version bump to ${{ steps.bump_version_stable.outputs.new_version }}
body: |
This is an automated PR that is part of Prepare Release automated workflow (1 out of 2).
Please ensure that there are no errors or invalid files are in the PR.
labels: "Automated PR, Changelog Entry: Skipped"
branch: "automated/pr_bumps/${{ steps.bump_version_stable.outputs.new_version }}"
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
milestone: ${{ steps.get_milestone_number.outputs.result }}
- name: Close and reopen the PR with different token to trigger CI
uses: actions/github-script@v3
env:
PR_NUMBER: ${{ steps.cpr_bump_stable.outputs.pull-request-number }}
PR_OPERATION: ${{ steps.cpr_bump_stable.outputs.pull-request-operation }}
with:
github-token: ${{ secrets.cogcreators_bot_repo_scoped }}
script: |
const script = require(
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/close_and_reopen_pr.js`
);
console.log(await script({github, context}));

View File

@@ -1,50 +0,0 @@
name: Publish to Crowdin
on:
schedule:
- cron: '0 12 * * THU'
workflow_dispatch:
repository_dispatch:
types: crowdin
env:
CROWDIN_API_KEY: ${{ secrets.crowdin_token}}
CROWDIN_PROJECT_ID: ${{ secrets.crowdin_identifier }}
jobs:
deploy:
if: github.repository == 'Cog-Creators/Red-DiscordBot'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: |
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
- name: Generate source files
run: |
make gettext
- name: Upload source files
run: |
make upload_translations
- name: Download translations
run: |
make download_translations
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Automated Crowdin downstream
title: "[i18n] Automated Crowdin downstream"
body: |
This is an automated PR.
Please ensure that there are no errors or invalid files are in the PR.
labels: "Automated PR, Category: i18n, Changelog Entry: Skipped"
branch: "automated/i18n"
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

View File

@@ -1,27 +0,0 @@
name: Publish to PyPI
on:
push:
tags:
- "*"
jobs:
deploy:
if: github.repository == 'Cog-Creators/Red-DiscordBot'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build and publish
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.pypi_token }}
run: |
python setup.py sdist bdist_wheel
twine upload dist/*

144
.github/workflows/publish_release.yml vendored Normal file
View File

@@ -0,0 +1,144 @@
name: Publish Release
on:
push:
tags:
- "*"
jobs:
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
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine
- name: Build and publish
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.pypi_token }}
run: |
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:
- uses: actions/checkout@v2
with:
ref: ${{ github.event.base_ref }}
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
# Version bump to development version
- name: Update Red version number to dev
id: bump_version_dev
run: |
python .github/workflows/scripts/bump_version.py
env:
PYTHONPATH: ${{ github.workspace }}:${{ env.PYTHONPATH }}
DEV_BUMP: '1'
# Get milestone number of the milestone for the old version
- name: Get milestone number
id: get_milestone_number
uses: actions/github-script@v3
env:
MILESTONE_TITLE: ${{ steps.bump_version_dev.outputs.old_version }}
with:
script: |
const script = require(
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/get_milestone_number_by_exact_title.js`
);
return await script({github, context});
- name: Create Pull Request
id: cpr_bump_dev
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Version bump to ${{ steps.bump_version_dev.outputs.new_version }}
title: Version bump to ${{ steps.bump_version_dev.outputs.new_version }}
body: |
This is an automated PR.
Please ensure that there are no errors or invalid files are in the PR.
labels: "Automated PR, Changelog Entry: Skipped"
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: V3/develop
- name: Close and reopen the PR with different token to trigger CI
uses: actions/github-script@v3
env:
PR_NUMBER: ${{ steps.cpr_bump_dev.outputs.pull-request-number }}
PR_OPERATION: ${{ steps.cpr_bump_dev.outputs.pull-request-operation }}
with:
github-token: ${{ secrets.cogcreators_bot_repo_scoped }}
script: |
const script = require(
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/close_and_reopen_pr.js`
);
console.log(await script({github, context}));

View File

@@ -0,0 +1,52 @@
import os
import re
import sys
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
def repl(match: Match[str]) -> str:
global version_info
print(f"::set-output name=old_version::{match.group('version')}")
new_stable_version = os.environ.get("NEW_STABLE_VERSION", "auto")
if new_stable_version == "auto":
version_info = redbot.VersionInfo.from_str(match.group("version"))
version_info.dev_release = None
else:
version_info = redbot.VersionInfo.from_str(new_stable_version)
if int(os.environ.get("DEV_BUMP", 0)):
version_info.micro += 1
version_info.dev_release = 1
return f'__version__ = "{version_info}"'
with open("redbot/__init__.py", encoding="utf-8") as fp:
new_contents, found = re.subn(
pattern=r'^__version__ = "(?P<version>[^"]*)"$',
repl=repl,
string=fp.read(),
count=1,
flags=re.MULTILINE,
)
if not found:
print("Couldn't find `__version__` line!")
sys.exit(1)
with open("redbot/__init__.py", "w", encoding="utf-8", newline="\n") as fp:
fp.write(new_contents)
print(f"::set-output name=new_version::{version_info}")

View File

@@ -0,0 +1,25 @@
module.exports = (async function ({github, context}) {
const pr_number = process.env.PR_NUMBER;
const pr_operation = process.env.PR_OPERATION;
let sleep_time = 0;
if (!['created', 'updated'].includes(pr_operation)) {
console.log('PR was not created as there were no changes.')
return;
}
for (const new_state of ['closed', 'open']) {
// some sleep time needed to make sure API handles open after close
if (sleep_time)
await new Promise(r => setTimeout(r, sleep_time));
github.issues.update({
issue_number: pr_number,
owner: context.repo.owner,
repo: context.repo.repo,
state: new_state
});
sleep_time = 2000;
}
})

View File

@@ -0,0 +1,49 @@
module.exports = (async function ({github, context}) {
const milestone_title = process.env.MILESTONE_TITLE;
const [repo_owner, repo_name] = process.env.GITHUB_REPOSITORY.split('/');
const {
repository: {
milestones: {
nodes: milestones,
pageInfo: {hasNextPage}
}
}
} = await github.graphql({
query: `
query getMilestoneNumberByTitle(
$repo_owner: String!
$repo_name: String!
$milestone_title: String!
) {
repository(owner:$repo_owner name:$repo_name) {
milestones(query:$milestone_title states:OPEN first:100) {
nodes {
number
title
}
pageInfo {
hasNextPage
}
}
}
}`,
repo_owner: repo_owner,
repo_name: repo_name,
milestone_title: milestone_title,
});
if (hasNextPage) {
// this should realistically never happen so let's just error
core.setFailed('Impossible happened! :)');
return;
}
for (const milestone of milestones)
if (milestone.title === milestone_title)
return milestone.number;
// if no exact match is found, assume the milestone doesn't exist
console.log('The milestone was not found. API returned the array: %o', milestones);
return null;
})

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:

85
.gitignore vendored
View File

@@ -15,6 +15,8 @@ Pipfile.lock
.idea/
*.iws
.vscode/
*.sublime-project
*.sublime-workspace
## Plugin-specific files:
@@ -141,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!
@@ -83,7 +83,7 @@ We're using [tox](https://github.com/tox-dev/tox) to run all of our tests. It's
Currently, tox does the following, creating its own virtual environments for each stage:
- Runs all of our unit tests with [pytest](https://github.com/pytest-dev/pytest) on python 3.8 (test environment `py38`)
- Ensures documentation builds without warnings, and all hyperlinks have a valid destination (test environment `docs`)
- Ensures that the code meets our style guide with [black](https://github.com/ambv/black) (test environment `style`)
- Ensures that the code meets our style guide with [black](https://github.com/psf/black) (test environment `style`)
To run all of these tests, just run the command `tox` in the project directory.
@@ -92,9 +92,9 @@ To run a subset of these tests, use the command `tox -e <env>`, where `<env>` is
Your PR will not be merged until all of these tests pass.
### 4.3 Style
Our style checker of choice, [black](https://github.com/ambv/black), actually happens to be an auto-formatter. The checking functionality simply detects whether or not it would try to reformat something in your code, should you run the formatter on it. For this reason, we recommend using this tool as a formatter, regardless of any disagreements you might have with the style it enforces.
Our style checker of choice, [black](https://github.com/psf/black), actually happens to be an auto-formatter. The checking functionality simply detects whether or not it would try to reformat something in your code, should you run the formatter on it. For this reason, we recommend using this tool as a formatter, regardless of any disagreements you might have with the style it enforces.
Use the command `black --help` to see how to use this tool. The full style guide is explained in detail on [black's GitHub repository](https://github.com/ambv/black). **There is one exception to this**, however, which is that we set the line length to 99, instead of black's default 88. This is already set in `pyproject.toml` configuration file in the repo so you can simply format code with Black like so: `black <src>`.
Use the command `black --help` to see how to use this tool. The full style guide is explained in detail on [black's GitHub repository](https://github.com/psf/black). **There is one exception to this**, however, which is that we set the line length to 99, instead of black's default 88. This is already set in `pyproject.toml` configuration file in the repo so you can simply format code with Black like so: `black <src>`.
### 4.4 Make
You may have noticed we have a `Makefile` and a `make.bat` in the top-level directory. For now, you can do a few things with them:

View File

@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Red - A fully customizable Discord bot
Copyright (C) 2017-2020 Cog Creators
Copyright (C) 2017-2021 Cog Creators
Copyright (C) 2015-2017 Twentysix
This program is free software: you can redistribute it and/or modify
@@ -653,7 +653,7 @@ Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
Red-DiscordBot Copyright (C) 2017-2020 Cog Creators
Red-DiscordBot Copyright (C) 2017-2021 Cog Creators
Red-DiscordBot Copyright (C) 2015-2017 Twentysix
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it

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

@@ -1,14 +1,41 @@
.DEFAULT_GOAL := help
PYTHON ?= python3.8
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
ifneq ($(wildcard $(ROOT_DIR)/.venv/.),)
VENV_PYTHON = $(ROOT_DIR)/.venv/bin/python
else
VENV_PYTHON = $(PYTHON)
endif
define HELP_BODY
Usage:
make <command>
Commands:
reformat Reformat all .py files being tracked by git.
stylecheck Check which tracked .py files need reformatting.
stylediff Show the post-reformat diff of the tracked .py files
without modifying them.
gettext Generate pot files.
upload_translations Upload pot files to Crowdin.
download_translations Download translations from Crowdin.
bumpdeps Run script bumping dependencies.
newenv Create or replace this project's virtual environment.
syncenv Sync this project's virtual environment to Red's latest
dependencies.
endef
export HELP_BODY
# Python Code Style
reformat:
$(PYTHON) -m black $(ROOT_DIR)
$(VENV_PYTHON) -m black $(ROOT_DIR)
stylecheck:
$(PYTHON) -m black --check $(ROOT_DIR)
$(VENV_PYTHON) -m black --check $(ROOT_DIR)
stylediff:
$(PYTHON) -m black --check --diff $(ROOT_DIR)
$(VENV_PYTHON) -m black --check --diff $(ROOT_DIR)
# Translations
gettext:
@@ -29,3 +56,7 @@ newenv:
$(MAKE) syncenv
syncenv:
.venv/bin/pip install -Ur ./tools/dev-requirements.txt
# Help
help:
@echo "$$HELP_BODY"

View File

@@ -32,7 +32,7 @@
<a href="http://red-discordbot.readthedocs.io/en/stable/?badge=stable">
<img src="https://readthedocs.org/projects/red-discordbot/badge/?version=stable" alt="Red on readthedocs.org">
</a>
<a href="https://github.com/ambv/black">
<a href="https://github.com/psf/black">
<img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code Style: Black">
</a>
<a href="http://makeapullrequest.com">
@@ -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.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,129 @@
"""
A Sphinx extension adding a ``deprecated-removed`` directive that works
similarly to CPython's directive with the same name.
The key difference is that instead of passing the version of planned removal,
the writer must provide the minimum amount of days that must pass
since the date of the release it was deprecated in.
Due to lack of a concrete release schedule for Red, this ensures that
we give enough time to people affected by the changes no matter
when the releases actually happen.
`DeprecatedRemoved` class is heavily based on
`sphinx.domains.changeset.VersionChange` class that is available at:
https://github.com/sphinx-doc/sphinx/blob/0949735210abaa05b6448e531984f159403053f4/sphinx/domains/changeset.py
Copyright 2007-2020 by the Sphinx team, see AUTHORS:
https://github.com/sphinx-doc/sphinx/blob/82f495fed386c798735adf675f867b95d61ee0e1/AUTHORS
The original copy was distributed under BSD License and this derivative work
is distributed under GNU GPL Version 3.
"""
import datetime
import multiprocessing
import subprocess
from typing import Any, Dict, List, Optional
from docutils import nodes
from sphinx import addnodes
from sphinx.application import Sphinx
from sphinx.util.docutils import SphinxDirective
class TagDateCache:
def __init__(self) -> None:
self._tags: Dict[str, datetime.date] = {}
def _populate_tags(self) -> None:
with _LOCK:
if self._tags:
return
out = subprocess.check_output(
("git", "tag", "-l", "--format", "%(creatordate:raw)\t%(refname:short)"),
text=True,
)
lines = out.splitlines(False)
for line in lines:
creator_date, tag_name = line.split("\t", maxsplit=1)
timestamp = int(creator_date.split(" ", maxsplit=1)[0])
self._tags[tag_name] = datetime.datetime.fromtimestamp(
timestamp, tz=datetime.timezone.utc
).date()
def get_tag_date(self, tag_name: str) -> Optional[datetime.date]:
self._populate_tags()
return self._tags.get(tag_name)
_LOCK = multiprocessing.Manager().Lock()
_TAGS = TagDateCache()
class DeprecatedRemoved(SphinxDirective):
has_content = True
required_arguments = 2
optional_arguments = 1
final_argument_whitespace = True
def run(self) -> List[nodes.Node]:
# Some Sphinx stuff
node = addnodes.versionmodified()
node.document = self.state.document
self.set_source_info(node)
node["type"] = self.name
node["version"] = tuple(self.arguments)
if len(self.arguments) == 3:
inodes, messages = self.state.inline_text(self.arguments[2], self.lineno + 1)
para = nodes.paragraph(self.arguments[2], "", *inodes, translatable=False)
self.set_source_info(para)
node.append(para)
else:
messages = []
# Text generation
deprecation_version = self.arguments[0]
minimum_days = int(self.arguments[1])
tag_date = _TAGS.get_tag_date(deprecation_version)
text = (
f"Will be deprecated in version {deprecation_version},"
" and removed in the first minor version that gets released"
f" after {minimum_days} days since deprecation"
if tag_date is None
else f"Deprecated since version {deprecation_version},"
" will be removed in the first minor version that gets released"
f" after {tag_date + datetime.timedelta(days=minimum_days)}"
)
# More Sphinx stuff
if self.content:
self.state.nested_parse(self.content, self.content_offset, node)
classes = ["versionmodified"]
if len(node):
if isinstance(node[0], nodes.paragraph) and node[0].rawsource:
content = nodes.inline(node[0].rawsource, translatable=True)
content.source = node[0].source
content.line = node[0].line
content += node[0].children
node[0].replace_self(nodes.paragraph("", "", content, translatable=False))
node[0].insert(0, nodes.inline("", f"{text}: ", classes=classes))
else:
para = nodes.paragraph(
"", "", nodes.inline("", f"{text}.", classes=classes), translatable=False
)
node.append(para)
ret = [node]
ret += messages
return ret
def setup(app: Sphinx) -> Dict[str, Any]:
app.add_directive("deprecated-removed", DeprecatedRemoved)
return {
"version": "1.0",
"parallel_read_safe": True,
}

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,44 +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:
:code:`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, such as :code:`--dev`.
.. code-block:: none
pm2 start redbot --name "<Insert a name here>" --interpreter "<Location to your Python Interpreter>" --interpreter-args "-O" -- <Red Instance> --no-prompt
.. code-block:: none
Arguments to replace.
<Insert a name here>
A name to identify the bot within pm2, this is not your Red instance.
<Location to your Python Interpreter>
The location of your Python interpreter, to find out where that is use the following command inside activated venv:
which python
<Red Instance>
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:
:code:`pm2 save` & :code:`pm2 startup`

View File

@@ -4,6 +4,8 @@
Setting up auto-restart using systemd on Linux
==============================================
.. note:: This guide is for setting up systemd on a Linux environment. This guide assumes that you already have a working Red instance.
-------------------------
Creating the service file
-------------------------
@@ -12,25 +14,27 @@ In order to create the service file, you will first need to know two things, you
First, your Linux :code:`username` can be fetched with the following command:
.. code-block:: bash
.. prompt:: bash
whoami
Next, your python :code:`path` can be fetched with the following commands:
.. code-block:: bash
.. prompt:: bash
:prompts: $,(redenv) $
:modifiers: auto
# If redbot is installed in a venv
source ~/redenv/bin/activate
which python
$ source ~/redenv/bin/activate
(redenv) $ which python
# If redbot is installed in a pyenv virtualenv
pyenv shell <virtualenv_name>
pyenv which python
$ pyenv shell <virtualenv_name>
(redenv) $ pyenv which python
Then create the new service file:
:code:`sudo -e /etc/systemd/system/red@.service`
:code:`sudo nano /etc/systemd/system/red@.service`
Paste the following in the file, and replace all instances of :code:`username` with the Linux username you retrieved above, and :code:`path` with the python path you retrieved above.
@@ -65,20 +69,34 @@ Starting and enabling the service
To start the bot, run the service and add the instance name after the **@**:
:code:`sudo systemctl start red@instancename`
.. prompt:: bash
sudo systemctl start red@instancename
To set the bot to start on boot, you must enable the service, again adding the instance name after the **@**:
:code:`sudo systemctl enable red@instancename`
.. prompt:: bash
sudo systemctl enable red@instancename
If you need to shutdown the bot, you can use the ``[p]shutdown`` command or
type the following command in the terminal, still by adding the instance name after the **@**:
:code:`sudo systemctl stop red@instancename`
.. prompt:: bash
sudo systemctl stop red@instancename
.. 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 **@**:
:code:`sudo journalctl -eu red@instancename`
.. prompt:: bash
sudo systemctl disable red@instancename
You can access Red's log through journalctl:
.. prompt:: bash
sudo journalctl -eu red@instancename

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:`As explained in this page <intents>`, Red Bot requires all 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 as explained :ref:`here <intents>` we do not support public bots. 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

@@ -1,5 +1,780 @@
.. 3.4.x Changelogs
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)
=========================
This is a hotfix release fixing an issue with command error handling.
discord.py version has been bumped to 1.7.1.
Thanks again to :ghuser:`Rapptz` for quick response on this issue.
Redbot 3.4.8 (2021-04-06)
=========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`6days9weeks`, :ghuser:`aikaterna`, :ghuser:`Drapersniper`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`jack1142`, :ghuser:`kingslayer268`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`Obi-Wan3`, :ghuser:`OofChair`, :ghuser:`palmtree5`, :ghuser:`phenom4n4n`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`rijusougata13`, :ghuser:`TheDiscordHistorian`, :ghuser:`Tobotimus`, :ghuser:`TrustyJAID`, :ghuser:`Twentysix26`, :ghuser:`Vexed01`
Read before updating
--------------------
1. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
Red 3.4.8 uses a new Lavalink jar that you will need to manually update from `our GitHub <https://github.com/Cog-Creators/Lavalink-Jars/releases/tag/3.3.2.3_1212>`__.
2. Fedora 31 and OpenSUSE Leap 15.1 are no longer supported as they have already reached end of life.
End-user changelog
------------------
Core Bot
********
- Added per-command embed settings (:issue:`4049`)
- See help of ``[p]embedset`` and ``[p]embedset command`` command group for more information
- The ``[p]servers`` command uses menus now (:issue:`4720`, :issue:`4831`)
- ``[p]leave`` accepts server IDs now (:issue:`4831`)
- Commands for listing global and local allowlists and blocklists will now, in addition to IDs, contain user/role names (:issue:`4839`)
- Messages sent interactively in DM channels no longer fail (:issue:`4876`)
- An error message will now be shown when a command that is only available in NSFW channels is used in a non-NSFW channel (:issue:`4933`)
- Added more singular and plural forms in a bunch of commands in the bot (:issue:`4004`, :issue:`4898`)
- Removed the option to drop the entire PostgreSQL database in ``redbot-setup delete`` due to limitations of PostgreSQL (:issue:`3699`, :issue:`3833`)
- Added a progress bar to ``redbot-setup convert`` (:issue:`2952`)
- Fixed how the command signature is shown in help for subcommands that have group args (:issue:`4928`)
Alias
*****
- Fixed issues with command aliases for commands that take an arbitrary, but non-zero, number of arguments (e.g. ``[p]load``) (:issue:`4766`, :issue:`4871`)
Audio
*****
- Fixed stuttering (:issue:`4565`)
- Fixed random disconnects (:issue:`4565`)
- Fixed the issues causing the player to be stuck on 00:00 (:issue:`4565`)
- Fixed ghost players (:issue:`4565`)
- Audio will no longer stop playing after a while (:issue:`4565`)
- Fixed playlist loading for playlists with over 100 songs (:issue:`4932`)
- Fixed an issue with alerts causing errors in playlists being loaded (:issue:`4932`)
- Improved playlist extraction (:issue:`4932`)
- Fixed an issue with consent pages appearing while trying to load songs or playlists (:issue:`4932`)
Cleanup
*******
- ``[p]cleanup before`` and ``[p]cleanup after`` commands can now be used without a message ID if the invocation message replies to some message (:issue:`4790`)
Downloader
**********
- Improved compatibility with Git 2.31 and newer (:issue:`4897`)
Filter
******
- Added meaningful error messages for incorrect arguments in the ``[p]bank set`` command (:issue:`4789`, :issue:`4801`)
Mod
***
- Improved performance of checking tempban expirations (:issue:`4907`)
- Fixed tracking of nicknames that were set just before nick reset (:issue:`4830`)
Mutes
*****
- Vastly improved performance of automatic unmute handling (:issue:`4906`)
Streams
*******
- Streams cog should now load faster on bots that have many stream alerts set up (:issue:`4731`, :issue:`4742`)
- Fixed possible memory leak related to automatic message deletion (:issue:`4731`, :issue:`4742`)
- Streamer accounts that no longer exist are now properly handled (:issue:`4735`, :issue:`4746`)
- Fixed stream alerts being sent even after unloading Streams cog (:issue:`4940`)
- Checking Twitch streams will now make less API calls (:issue:`4938`)
- Ratelimits from Twitch API are now properly handled (:issue:`4808`, :issue:`4883`)
Trivia
******
- Added a new option for hiding the answer to the Trivia answer in a spoiler (:issue:`4700`, :issue:`4877`)
- ``[p]triviaset usespoilers`` command can be used to enable/disable this option
Warnings
********
- Fixed output of ``[p]warnings`` command for members that are no longer in the server (:issue:`4900`, :issue:`4904`)
- Embeds now use the default embed color of the bot (:issue:`4878`)
Developer changelog
-------------------
- Bumped discord.py version to 1.7.0 (:issue:`4928`)
- Deprecated importing ``GuildConverter`` from ``redbot.core.commands.converter`` namespace (:issue:`4928`)
- ``discord.Guild`` or ``GuildConverter`` from ``redbot.core.commands`` should be used instead
- Added ``guild`` parameter to `bot.allowed_by_whitelist_blacklist() <RedBase.allowed_by_whitelist_blacklist()>` which is meant to replace the deprecated ``guild_id`` parameter (:issue:`4905`, :issue:`4914`)
- Read the method's documentation for more information
- Fixed ``on_red_api_tokens_update`` not being dispatched when the tokens were removed with ``[p]set api remove`` (:issue:`4916`, :issue:`4917`)
Documentation changes
---------------------
- Added a note about updating cogs in update message and documentation (:issue:`4910`)
- Added `cog guide for Image cog <cog_guides/image>` (:issue:`4821`)
- Updated Mac install guide with new ``brew`` commands (:issue:`4865`)
- `getting-started` now contains an explanation of parameters that can take an arbitrary number of arguments (:issue:`4888`, :issue:`4889`)
- Added a warning to Arch Linux install guide about the instructions being out-of-date (:issue:`4866`)
- All shell commands in the documentation are now prefixed with an unselectable prompt (:issue:`4908`)
- `systemd-service-guide` now asks the user to create the new service file using ``nano`` text editor (:issue:`4869`, :issue:`4870`)
- Instructions for all Linux-based operating systems now recommend to install ``nano``
- Updated Python version in ``pyenv`` and Windows instructions (:issue:`4864`, :issue:`4942`)
Redbot 3.4.7 (2021-02-26)
=========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`elijabesu`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`kreusada`, :ghuser:`palmtree5`, :ghuser:`TrustyJAID`
End-user changelog
------------------
- Added proper permission checks to ``[p]muteset senddm`` and ``[p]muteset showmoderator`` (:issue:`4849`)
- Updated the ``[p]lmgtfy`` command to use the new domain (:issue:`4840`)
- Updated the ``[p]info`` command to more clearly indicate that the instance is owned by a team (:issue:`4851`)
- Fixed minor issues with error messages in Mutes cog (:issue:`4847`, :issue:`4850`, :issue:`4853`)
Documentation changes
---------------------
- Added `cog guide for General cog <cog_guides/general>` (:issue:`4797`)
- Added `cog guide for Trivia cog <cog_guides/trivia>` (:issue:`4566`)
Redbot 3.4.6 (2021-02-16)
=========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`aikaterna`, :ghuser:`aleclol`, :ghuser:`Andeeeee`, :ghuser:`bobloy`, :ghuser:`BreezeQS`, :ghuser:`Danstr5544`, :ghuser:`Dav-Git`, :ghuser:`Elysweyr`, :ghuser:`Fabian-Evolved`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`Injabie3`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`kreusada`, :ghuser:`leblancg`, :ghuser:`maxbooiii`, :ghuser:`NeuroAssassin`, :ghuser:`phenom4n4n`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`retke`, :ghuser:`siu3334`, :ghuser:`Strafee`, :ghuser:`TheWyn`, :ghuser:`TrustyJAID`, :ghuser:`Vexed01`, :ghuser:`yamikaitou`
Read before updating
--------------------
1. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
Red 3.4.6 uses a new Lavalink jar that you will need to manually update from `our GitHub <https://github.com/Cog-Creators/Lavalink-Jars/releases/tag/3.3.2.3_1199>`__.
End-user changelog
------------------
Core Bot
********
- Fixed the rotation of Red's logs that could before result in big disk usage (:issue:`4405`, :issue:`4738`)
- Fixed command usage in the help messages for few commands in Red (:issue:`4599`, :issue:`4733`)
- Fixed errors in ``[p]command defaultdisablecog`` and ``[p]command defaultenablecog`` commands (:issue:`4767`, :issue:`4768`)
- ``[p]command listdisabled guild`` can no longer be run in DMs (:issue:`4771`, :issue:`4772`)
- Improvements and fixes for our new (colorful) logging (:issue:`4702`, :issue:`4726`)
- The colors used have been adjusted to be readable on many more terminal applications
- The ``NO_COLOR`` environment variable can now be set to forcefully disable all colors in the console output
- Tracebacks will now use the full width of the terminal again
- Tracebacks no longer contain multiple lines per stack level (this can now be changed with the flag ``--rich-traceback-extra-lines``)
- Disabled syntax highlighting on the log messages
- Dev cog no longer captures logging output
- Added some cool features for developers
- Added the flag ``--rich-traceback-extra-lines`` which can be used to set the number of additional lines in tracebacks
- Added the flag ``--rich-traceback-show-locals`` which enables showing local variables in tracebacks
- Improved and fixed a few other minor things
- Added a friendly error message to ``[p]load`` that is shown when trying to load a cog with a command name that is already taken by a different cog (:issue:`3870`)
- Help now includes command aliases in the command help (:issue:`3040`)
- This can be disabled with ``[p]helpset showaliases`` command
- Fixed errors appearing when using Ctrl+C to interrupt ``redbot --edit`` (:issue:`3777`, :issue:`4572`)
Admin
*****
- ``[p]selfrole`` can now be used without a subcommand and passed with a selfrole directly to add/remove it from the user running the command (:issue:`4826`)
Audio
*****
- Improved detection of embed players for fallback on age-restricted YT tracks (:issue:`4818`, :issue:`4819`)
- Improved MP4/AAC decoding (:issue:`4818`, :issue:`4819`)
- Requests for YT tracks are now retried if the initial request causes a connection reset (:issue:`4818`, :issue:`4819`)
Cleanup
*******
- Renamed the ``[p]cleanup spam`` command to ``[p]cleanup duplicates``, with the old name kept as an alias for the time being (:issue:`4814`)
- Fixed an error from passing an overly large integer as a message ID to ``[p]cleanup after`` and ``[p]cleanup before`` (:issue:`4791`)
Dev Cog
*******
- Help descriptions of the cog and its commands now get translated properly (:issue:`4815`)
Economy
*******
- ``[p]economyset rolepaydayamount`` can now remove the previously set payday amount (:issue:`4661`, :issue:`4758`)
Filter
******
- Added a case type ``filterhit`` which is used to log filter hits (:issue:`4676`, :issue:`4739`)
Mod
***
- The ``[p]tempban`` command no longer errors out when trying to ban a user in a guild with the vanity url feature that doesn't have a vanity url set (:issue:`4714`)
- Fixed an edge case in role hierarchy checks (:issue:`4740`)
- Added two new settings for disabling username and nickname tracking (:issue:`4799`)
- Added a command ``[p]modset trackallnames`` that disables username tracking and overrides the nickname tracking setting for all guilds
- Added a command ``[p]modset tracknicknames`` that disables nickname tracking in a specific guild
- Added a command ``[p]modset deletenames`` that deletes all stored usernames and nicknames (:issue:`4827`)
- Added usage examples to ``[p]kick``, ``[p]ban``, ``[p]massban``, and ``[p]tempban`` (:issue:`4712`, :issue:`4715`)
- Updated DM on kick/ban to use bot's default embed color (:issue:`4822`)
Modlog
******
- Added a command ``[p]listcases`` that allows you to see multiple cases for a user at once (:issue:`4426`)
- Added typing indicator to ``[p]casesfor`` command (:issue:`4426`)
Mutes
*****
- Fixed an edge case in role hierarchy checks (:issue:`4740`)
- The modlog reason no longer contains leading whitespace when it's passed *after* the mute time (:issue:`4749`)
- A DM can now be sent to the (un)muted user on mute and unmute (:issue:`3752`, :issue:`4563`)
- Added ``[p]muteset senddm`` to set whether the DM should be sent (function disabled by default)
- Added ``[p]muteset showmoderator`` to set whether the DM sent to the user should include the name of the moderator that muted the user (function disabled by default)
- Added more role hierarchy checks to ensure permission escalations cannot occur on servers with a careless configuration (:issue:`4741`)
- Help descriptions of the cog and its commands now get translated properly (:issue:`4815`)
Reports
*******
- Reports now use the default embed color of the bot (:issue:`4800`)
Streams
*******
- Fixed incorrect timezone offsets for some YouTube stream schedules (:issue:`4693`, :issue:`4694`)
- Fixed meaningless errors happening when the YouTube API key becomes invalid or when the YouTube quota is exceeded (:issue:`4745`)
Trivia
******
- Payout for trivia sessions ending in a tie now gets split between all the players with the highest score (:issue:`3931`, :issue:`4649`)
Trivia Lists
************
- Added new Who's That Pokémon - Gen. VI trivia list (:issue:`4785`)
- Updated answers regarding some of the hero's health and abilities in the ``overwatch`` trivia list (:issue:`4805`)
Developer changelog
-------------------
Core Bot
********
- Updated versions of the libraries used in Red: discord.py to 1.6.0, aiohttp to 3.7.3 (:issue:`4728`)
- Added an event ``on_red_before_identify`` that is dispatched before IDENTIFYing a session (:issue:`4647`)
Utility Functions
*****************
- Added a function `redbot.core.utils.chat_formatting.spoiler()` that wraps the given text in a spoiler (:issue:`4754`)
Dev Cog
*******
- Cogs can now add their own variables to the environment of ``[p]debug``, ``[p]eval``, and ``[p]repl`` commands (:issue:`4667`)
- Variables can be added and removed from the environment of Dev cog using two new methods:
- `bot.add_dev_env_value() <RedBase.add_dev_env_value()>`
- `bot.remove_dev_env_value() <RedBase.remove_dev_env_value()>`
Documentation changes
---------------------
- Added `cog guide for Filter cog <cog_guides/filter>` (:issue:`4579`)
- 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 Python version in ``pyenv`` and Windows instructions (:issue:`4770`)
Miscellaneous
-------------
- Various grammar fixes (:issue:`4705`, :issue:`4748`, :issue:`4750`, :issue:`4763`, :issue:`4788`, :issue:`4792`, :issue:`4810`)
- Red's dependencies have been bumped (:issue:`4572`)
Redbot 3.4.5 (2020-12-24)
=========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`Injabie3`, :ghuser:`NeuroAssassin`
End-user changelog
------------------
Streams
*******
- Fixed Streams failing to load and work properly (:issue:`4687`, :issue:`4688`)
Redbot 3.4.4 (2020-12-24)
=========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`aikaterna`, :ghuser:`bobloy`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`kreus7`, :ghuser:`NeuroAssassin`, :ghuser:`npc203`, :ghuser:`palmtree5`, :ghuser:`phenom4n4n`, :ghuser:`Predeactor`, :ghuser:`retke`, :ghuser:`siu3334`, :ghuser:`Vexed01`, :ghuser:`yamikaitou`
Read before updating
--------------------
1. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
Red 3.4.4 uses a new Lavalink jar that you will need to manually update from `our GitHub <https://github.com/Cog-Creators/Lavalink-Jars/releases/tag/3.3.2.2_1170>`__.
2. Ubuntu 16.04 is no longer supported as it will soon reach its end of life and it is no longer viable for us to maintain support for it.
While you might still be able to run Red on it, we will no longer put any resources into supporting it. If you're using Ubuntu 16.04, we highly recommend that you upgrade to the latest LTS version of Ubuntu.
End-user changelog
------------------
Core Bot
********
- Red's logging will now shine in your terminal more than ever (:issue:`4577`)
- Improved consistency of command usage in the help messages within all commands in Core Red (:issue:`4589`)
- Added a friendly error when the duration provided to commands that use the ``commands.TimedeltaConverter`` converter is out of the maximum bounds allowed by Python interpreter (:issue:`4019`, :issue:`4628`, :issue:`4630`)
- Fixed an error when removing path from a different operating system than the bot is currently running on with ``[p]removepath`` (:issue:`2609`, :issue:`4662`, :issue:`4466`)
Audio
*****
- Fixed ``[p]llset java`` failing to set the Java executable path (:issue:`4621`, :issue:`4624`)
- Fixed Soundcloud playback (:issue:`4683`)
- Fixed YouTube age-restricted track playback (:issue:`4683`)
- Added more friendly messages for 429 errors to let users know they have been temporarily banned from accessing the service instead of a generic Lavalink error (:issue:`4683`)
- Environment information will now be appended to Lavalink tracebacks in the spring.log (:issue:`4683`)
Cleanup
*******
- ``[p]cleanup self`` will now delete the command message when the bot has permissions to do so (:issue:`4640`)
Dev
***
- Added new ``[p]bypasscooldown`` command that allows owners to bypass command cooldowns (:issue:`4440`)
Economy
*******
- ``[p]economyset slotmin`` and ``[p]economyset slotmax`` now warn when the new value will cause the slots command to not work (:issue:`4583`)
General
*******
- Updated features list in ``[p]serverinfo`` with the latest changes from Discord (:issue:`4678`)
Mod
***
- ``[p]ban`` command will no longer error out when the given reason is too long (:issue:`4187`, :issue:`4189`)
Streams
*******
- Scheduled YouTube streams now work properly with the cog (:issue:`3691`, :issue:`4615`)
- YouTube stream schedules are now announced before the stream (:issue:`4615`)
- Alerts about YouTube stream schedules can be disabled with a new ``[p]streamset ignoreschedule`` command (:issue:`4615`)
- Improved error logging (:issue:`4680`)
Trivia Lists
************
- Added ``whosthatpokemon5`` trivia list containing Pokémon from the 5th generation (:issue:`4646`)
- Added ``geography`` trivia list (:issue:`4618`)
Developer changelog
-------------------
- `get_audit_reason()` can now be passed a ``shorten`` keyword argument which will automatically shorten the returned audit reason to fit the max length allowed by Discord audit logs (:issue:`4189`)
- ``bot.remove_command()`` now returns the command object of the removed command as does the equivalent method from `discord.ext.commands.Bot` class (:issue:`4636`)
Documentation changes
---------------------
- Added `cog guide for Downloader cog <cog_guides/downloader>` (:issue:`4511`)
- Added `cog guide for Economy cog <cog_guides/economy>` (:issue:`4519`)
- Added `cog guide for Streams cog <cog_guides/streams>` (:issue:`4521`)
- Added `guide_cog_creators` document (:issue:`4637`)
- Removed install instructions for Ubuntu 16.04 (:issue:`4650`)
Redbot 3.4.3 (2020-11-16)
=========================
@@ -257,7 +1032,7 @@ Core Bot
- Added API for setting contextual locales (:issue:`3896`, :issue:`1970`)
- New function added: `redbot.core.i18n.set_contextual_locales_from_guild()`
- Contextual locale is automatically set for commands and only needs to be done manually for things like event listeners; see `guidelines-for-cog-creators` for more information
- Contextual locale is automatically set for commands and only needs to be done manually for things like event listeners; see `recommendations-for-cog-creators` for more information
- Added `bot.remove_shared_api_services() <RedBase.remove_shared_api_services()>` to remove all keys and tokens associated with an API service (:issue:`4370`)
- Added an option to return all tokens for an API service if ``service_name`` is not specified in `bot.get_shared_api_tokens() <RedBase.get_shared_api_tokens()>` (:issue:`4370`)
@@ -425,13 +1200,13 @@ Core Bot
- Added cog disabling API (:issue:`4043`, :issue:`3945`)
- New methods added: `bot.cog_disabled_in_guild() <RedBase.cog_disabled_in_guild()>`, `bot.cog_disabled_in_guild_raw() <RedBase.cog_disabled_in_guild_raw()>`
- Cog disabling is automatically applied for commands and only needs to be done manually for things like event listeners; see `guidelines-for-cog-creators` for more information
- Cog disabling is automatically applied for commands and only needs to be done manually for things like event listeners; see `recommendations-for-cog-creators` for more information
- Added data request API (: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 `guidelines-for-cog-creators` for more information
- 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
- Added `bot.message_eligible_as_command() <RedBase.message_eligible_as_command()>` utility method which can be used to determine if a message may be responded to as a command (:issue:`4077`)

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:
@@ -46,13 +46,16 @@ selfrole
.. code-block:: none
[p]selfrole
[p]selfrole <selfrole>
**Description**
Add or remove roles to yourself. Those roles must have been configured as user
settable by admins using the :ref:`selfroleset command
<admin-command-selfroleset>`.
Add or remove a role from yourself. It must have been configured as user settable
by admins using the :ref:`selfroleset command <admin-command-selfroleset>`.
**Arguments**
* ``<selfrole>``: The role you want to attribute or remove from yourself. |role-input|
.. _admin-command-selfrole-add:
@@ -147,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
@@ -171,7 +174,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**
@@ -229,7 +232,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:
@@ -193,7 +193,7 @@ reorderpath
.. code-block:: none
[p]reorderpath <from\_> <to>
[p]reorderpath <from_> <to>
**Description**

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

@@ -0,0 +1,538 @@
.. _downloader:
==========
Downloader
==========
This is the cog guide for the downloader 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 downloader
.. _downloader-usage:
-----
Usage
-----
Install community cogs made by Cog Creators.
Community cogs, also called third party cogs, are not included
in the default Red install.
Community cogs come in repositories. Repos are a group of cogs
you can install. You always need to add the creator's repository
using the ``[p]repo`` command before you can install one or more
cogs from the creator.
.. _downloader-commands:
--------
Commands
--------
.. _downloader-command-cog:
^^^
cog
^^^
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]cog
**Description**
Base command for cog installation management commands.
.. _downloader-command-cog-checkforupdates:
"""""""""""""""""""
cog checkforupdates
"""""""""""""""""""
**Syntax**
.. code-block:: none
[p]cog checkforupdates
**Description**
Check for available cog updates (including pinned cogs).
This command doesn't update cogs, it only checks for updates.
Use ``[p]cog update`` to update cogs.
.. _downloader-command-cog-info:
""""""""
cog info
""""""""
**Syntax**
.. code-block:: none
[p]cog info <repo> <cog>
**Description**
List information about a single cog.
Example:
- ``[p]cog info 26-Cogs defender``
**Arguments**
- ``<repo>`` The repo to get cog info from.
- ``<cog>`` The cog to get info on.
.. _downloader-command-cog-install:
"""""""""""
cog install
"""""""""""
**Syntax**
.. code-block:: none
[p]cog install <repo> <cogs...>
**Description**
Install a cog from the given repo.
Examples:
- ``[p]cog install 26-Cogs defender``
- ``[p]cog install Laggrons-Dumb-Cogs say roleinvite``
**Arguments**
- ``<repo>`` The name of the repo to install cogs from.
- ``<cogs...>`` The cog or cogs to install.
.. _downloader-command-cog-installversion:
""""""""""""""""""
cog installversion
""""""""""""""""""
**Syntax**
.. code-block:: none
[p]cog installversion <repo> <revision> <cogs...>
**Description**
Install a cog from the specified revision of given repo.
Revisions are "commit ids" that point to the point in the code when a specific change was made.
The latest revision can be found in the URL bar for any GitHub repo by `pressing "y" on that repo <https://docs.github.com/en/free-pro-team@latest/github/managing-files-in-a-repository/getting-permanent-links-to-files#press-y-to-permalink-to-a-file-in-a-specific-commit>`_.
Older revisions can be found in the URL bar by `viewing the commit history of any repo <https://cdn.discordapp.com/attachments/133251234164375552/775760247787749406/unknown.png>`_
Example:
- ``[p]cog installversion Broken-Repo e798cc268e199612b1316a3d1f193da0770c7016 cog_name``
**Arguments**
- ``<repo>`` The name of the repo to install cogs from.
- ``<revision>`` The revision to install from.
- ``<cogs...>`` The cog or cogs to install.
.. _downloader-command-cog-list:
""""""""
cog list
""""""""
**Syntax**
.. code-block:: none
[p]cog list <repo>
**Description**
List all available cogs from a single repo.
Example:
- ``[p]cog list 26-Cogs``
**Arguments**
- ``<repo>`` The repo to list cogs from.
.. _downloader-command-cog-listpinned:
""""""""""""""
cog listpinned
""""""""""""""
**Syntax**
.. code-block:: none
[p]cog listpinned
**Description**
List currently pinned cogs.
.. _downloader-command-cog-pin:
"""""""
cog pin
"""""""
**Syntax**
.. code-block:: none
[p]cog pin <cogs...>
**Description**
Pin cogs - this will lock cogs on their current version.
Examples:
- ``[p]cog pin defender``
- ``[p]cog pin outdated_cog1 outdated_cog2``
**Arguments**
- ``<cogs...>`` The cog or cogs to pin. Must already be installed.
.. _downloader-command-cog-uninstall:
"""""""""""""
cog uninstall
"""""""""""""
**Syntax**
.. code-block:: none
[p]cog uninstall <cogs...>
**Description**
Uninstall cogs.
You may only uninstall cogs which were previously installed
by Downloader.
Examples:
- ``[p]cog uninstall defender``
- ``[p]cog uninstall say roleinvite``
**Arguments**
- ``<cogs...>`` The cog or cogs to uninstall.
.. _downloader-command-cog-unpin:
"""""""""
cog unpin
"""""""""
**Syntax**
.. code-block:: none
[p]cog unpin <cogs...>
**Description**
Unpin cogs - this will remove the update lock from those cogs.
Examples:
- ``[p]cog unpin defender``
- ``[p]cog unpin updated_cog1 updated_cog2``
**Arguments**
- ``<cogs...>`` The cog or cogs to unpin. Must already be installed and pinned.
.. _downloader-command-cog-update:
""""""""""
cog update
""""""""""
**Syntax**
.. code-block:: none
[p]cog update [cogs...]
**Description**
Update all cogs, or ones of your choosing.
Examples:
- ``[p]cog update``
- ``[p]cog update defender``
**Arguments**
- ``[cogs...]`` The cog or cogs to update. If omitted, all cogs are updated.
.. _downloader-command-cog-updateallfromrepos:
""""""""""""""""""""""
cog updateallfromrepos
""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]cog updateallfromrepos <repos...>
**Description**
Update all cogs from repos of your choosing.
Examples:
- ``[p]cog updateallfromrepos 26-Cogs``
- ``[p]cog updateallfromrepos Laggrons-Dumb-Cogs 26-Cogs``
**Arguments**
- ``<repos...>`` The repo or repos to update all cogs from.
.. _downloader-command-cog-updatetoversion:
"""""""""""""""""""
cog updatetoversion
"""""""""""""""""""
**Syntax**
.. code-block:: none
[p]cog updatetoversion <repo> <revision> [cogs...]
**Description**
Update all cogs, or ones of your choosing to chosen revision of one repo.
Note that update doesn't mean downgrade and therefore ``revision``
has to be newer than the version that cog currently has installed. If you want to
downgrade the cog, uninstall and install it again.
See ``[p]cog installversion`` for an explanation of ``revision``.
Example:
- ``[p]cog updatetoversion Broken-Repo e798cc268e199612b1316a3d1f193da0770c7016 cog_name``
**Arguments**
- ``<repo>`` The repo or repos to update all cogs from.
- ``<revision>`` The revision to update to.
- ``[cogs...]`` The cog or cogs to update.
.. _downloader-command-findcog:
^^^^^^^
findcog
^^^^^^^
**Syntax**
.. code-block:: none
[p]findcog <command_name>
**Description**
Find which cog a command comes from.
This will only work with loaded cogs.
Example:
- ``[p]findcog ping``
**Arguments**
- ``<command_name>`` The command to search for.
.. _downloader-command-pipinstall:
^^^^^^^^^^
pipinstall
^^^^^^^^^^
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]pipinstall <deps...>
**Description**
Install a group of dependencies using pip.
Examples:
- ``[p]pipinstall bs4``
- ``[p]pipinstall py-cpuinfo psutil``
Improper usage of this command can break your bot, be careful.
**Arguments**
- ``<deps...>`` The package or packages you wish to install.
.. _downloader-command-repo:
^^^^
repo
^^^^
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]repo
**Description**
Base command for repository management.
.. _downloader-command-repo-add:
""""""""
repo add
""""""""
**Syntax**
.. code-block:: none
[p]repo add <name> <repo_url> [branch]
**Description**
Add a new repo.
Examples:
- ``[p]repo add 26-Cogs https://github.com/Twentysix26/x26-Cogs``
- ``[p]repo add Laggrons-Dumb-Cogs https://github.com/retke/Laggrons-Dumb-Cogs v3``
Repo names can only contain characters A-z, numbers, underscores, and hyphens.
The branch will be the default branch if not specified.
**Arguments**
- ``<name>`` The name given to the repo.
- ``<repo_url>`` URL to the cog branch. Usually GitHub or GitLab.
- ``[branch]`` Optional branch to install cogs from.
.. _downloader-command-repo-delete:
"""""""""""
repo delete
"""""""""""
**Syntax**
.. code-block:: none
[p]repo delete <repo>
.. tip:: Aliases: ``repo remove``, ``repo del``
**Description**
Remove repos and their files.
Examples:
- ``[p]repo delete 26-Cogs``
- ``[p]repo delete 26-Cogs Laggrons-Dumb-Cogs``
**Arguments**
- ``<repos...>`` The repo or repos to remove.
.. _downloader-command-repo-info:
"""""""""
repo info
"""""""""
**Syntax**
.. code-block:: none
[p]repo info <repo>
**Description**
Show information about a repo.
Example:
- ``[p]repo info 26-Cogs``
**Arguments**
- ``<repo>`` The name of the repo to show info about.
.. _downloader-command-repo-list:
"""""""""
repo list
"""""""""
**Syntax**
.. code-block:: none
[p]repo list
**Description**
List all installed repos.
.. _downloader-command-repo-update:
"""""""""""
repo update
"""""""""""
**Syntax**
.. code-block:: none
[p]repo update [repos...]
**Description**
Update all repos, or ones of your choosing.
This will *not* update the cogs installed from those repos.
Examples:
- ``[p]repo update``
- ``[p]repo update 26-Cogs``
- ``[p]repo update 26-Cogs Laggrons-Dumb-Cogs``
**Arguments**
- ``[repos...]`` The name or names of repos to update. If omitted, all repos are updated.

539
docs/cog_guides/economy.rst Normal file
View File

@@ -0,0 +1,539 @@
.. _economy:
=======
Economy
=======
This is the cog guide for the economy 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 economy
.. _economy-usage:
-----
Usage
-----
Get rich and have fun with imaginary currency!
.. _economy-commands:
--------
Commands
--------
.. _economy-command-bank:
^^^^
bank
^^^^
**Syntax**
.. code-block:: none
[p]bank
**Description**
Base command to manage the bank.
.. _economy-command-bank-balance:
""""""""""""
bank balance
""""""""""""
**Syntax**
.. code-block:: none
[p]bank balance [user]
**Description**
Show the user's account balance.
Example:
- ``[p]bank balance``
- ``[p]bank balance @Twentysix``
**Arguments**
- ``<user>`` The user to check the balance of. If omitted, defaults to your own balance.
.. _economy-command-bank-prune:
""""""""""
bank prune
""""""""""
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]bank prune
**Description**
Base command for pruning bank accounts.
.. _economy-command-bank-prune-global:
"""""""""""""""""
bank prune global
"""""""""""""""""
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]bank prune global [confirmation=False]
**Description**
Prune bank accounts for users who no longer share a server with the bot.
Cannot be used without a global bank. See ``[p]bank prune server``.
Examples:
- ``[p]bank prune global`` - Did not confirm. Shows the help message.
- ``[p]bank prune global yes``
**Arguments**
- ``<confirmation>`` This will default to false unless specified.
.. _economy-command-bank-prune-server:
"""""""""""""""""
bank prune server
"""""""""""""""""
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]bank prune server [confirmation=False]
.. tip:: Aliases: ``bank prune guild``, ``bank prune local``
**Description**
Prune bank accounts for users no longer in the server.
Cannot be used with a global bank. See ``[p]bank prune global``.
Examples:
- ``[p]bank prune server`` - Did not confirm. Shows the help message.
- ``[p]bank prune server yes``
**Arguments**
- ``<confirmation>`` This will default to false unless specified.
.. _economy-command-bank-prune-user:
"""""""""""""""
bank prune user
"""""""""""""""
**Syntax**
.. code-block:: none
[p]bank prune user <user> [confirmation=False]
**Description**
Delete the bank account of a specified user.
Examples:
- ``[p]bank prune user @TwentySix`` - Did not confirm. Shows the help message.
- ``[p]bank prune user @TwentySix yes``
**Arguments**
- ``<user>`` The user to delete the bank of. Takes mentions, names, and user ids.
- ``<confirmation>`` This will default to false unless specified.
.. _economy-command-bank-reset:
""""""""""
bank reset
""""""""""
.. note:: |guildowner-lock|
**Syntax**
.. code-block:: none
[p]bank reset [confirmation=False]
**Description**
Delete all bank accounts.
Examples:
- ``[p]bank reset`` - Did not confirm. Shows the help message.
- ``[p]bank reset yes``
**Arguments**
- ``<confirmation>`` This will default to false unless specified.
.. _economy-command-bank-set:
""""""""
bank set
""""""""
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]bank set <to> <creds>
**Description**
Set the balance of a user's bank account.
Putting + or - signs before the amount will add/remove currency on the user's bank account instead.
Examples:
- ``[p]bank set @Twentysix 26`` - Sets balance to 26
- ``[p]bank set @Twentysix +2`` - Increases balance by 2
- ``[p]bank set @Twentysix -6`` - Decreases balance by 6
**Arguments**
- ``<to>`` The user to set the currency of.
- ``<creds>`` The amount of currency to set their balance to.
.. _economy-command-bank-transfer:
"""""""""""""
bank transfer
"""""""""""""
**Syntax**
.. code-block:: none
[p]bank transfer <to> <amount>
**Description**
Transfer currency to other users.
This will come out of your balance, so make sure you have enough.
Example:
- ``[p]bank transfer @Twentysix 500``
**Arguments**
- ``<to>`` The user to give currency to.
- ``<amount>`` The amount of currency to give.
.. _economy-command-economyset:
^^^^^^^^^^
economyset
^^^^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]economyset
**Description**
Base command to manage Economy settings.
.. _economy-command-economyset-paydayamount:
"""""""""""""""""""""""
economyset paydayamount
"""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]economyset paydayamount <creds>
**Description**
Set the amount earned each payday.
Example:
- ``[p]economyset paydayamount 400``
**Arguments**
- ``<creds>`` The new amount to give when using the payday command. Default is 120.
.. _economy-command-economyset-paydaytime:
"""""""""""""""""""""
economyset paydaytime
"""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]economyset paydaytime <duration>
**Description**
Set the cooldown for the payday command.
Examples:
- ``[p]economyset paydaytime 86400``
- ``[p]economyset paydaytime 1d``
**Arguments**
- | ``<duration>`` The new duration to wait in between uses of payday. Default is 5 minutes.
| Accepts: seconds, minutes, hours, days, weeks (if no unit is specified, the duration is assumed to be given in seconds)
.. _economy-command-economyset-registeramount:
"""""""""""""""""""""""""
economyset registeramount
"""""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]economyset registeramount <creds>
**Description**
Set the initial balance for new bank accounts.
Example:
- ``[p]economyset registeramount 5000``
**Arguments**
- ``<creds>`` The new initial balance amount. Default is 0.
.. _economy-command-economyset-rolepaydayamount:
"""""""""""""""""""""""""""
economyset rolepaydayamount
"""""""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]economyset rolepaydayamount <role> <creds>
**Description**
Set the amount earned each payday for a role. Setting to 0 will remove the custom payday for that role instead.
Only available when not using a global bank.
Example:
- ``[p]economyset rolepaydayamount @Members 400``
**Arguments**
- ``<role>`` The role to assign a custom payday amount to.
- ``<creds>`` The new amount to give when using the payday command.
.. _economy-command-economyset-showsettings:
"""""""""""""""""""""""
economyset showsettings
"""""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]economyset showsettings
**Description**
Shows the current economy settings
.. _economy-command-economyset-slotmax:
""""""""""""""""""
economyset slotmax
""""""""""""""""""
**Syntax**
.. code-block:: none
[p]economyset slotmax <bid>
**Description**
Set the maximum slot machine bid.
Example:
- ``[p]economyset slotmax 50``
**Arguments**
- ``<bid>`` The new maximum bid for using the slot machine. Default is 100.
.. _economy-command-economyset-slotmin:
""""""""""""""""""
economyset slotmin
""""""""""""""""""
**Syntax**
.. code-block:: none
[p]economyset slotmin <bid>
**Description**
Set the minimum slot machine bid.
Example:
- ``[p]economyset slotmin 10``
**Arguments**
- ``<bid>`` The new minimum bid for using the slot machine. Default is 5.
.. _economy-command-economyset-slottime:
"""""""""""""""""""
economyset slottime
"""""""""""""""""""
**Syntax**
.. code-block:: none
[p]economyset slottime <duration>
**Description**
Set the cooldown for the slot machine.
Examples:
- ``[p]economyset slottime 10``
- ``[p]economyset slottime 10m``
**Arguments**
- | ``<duration>`` The new duration to wait in between uses of the slot machine. Default is 5 seconds.
| Accepts: seconds, minutes, hours, days, weeks (if no unit is specified, the duration is assumed to be given in seconds)
.. _economy-command-leaderboard:
^^^^^^^^^^^
leaderboard
^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]leaderboard [top=10] [show_global=False]
**Description**
Print the leaderboard.
Defaults to top 10.
Examples:
- ``[p]leaderboard``
- ``[p]leaderboard 50`` - Shows the top 50 instead of top 10.
- ``[p]leaderboard 100 yes`` - Shows the top 100 from all servers.
**Arguments**
- ``<top>`` How many positions on the leaderboard to show. Defaults to 10 if omitted.
- ``<show_global>`` Whether to include results from all servers. This will default to false unless specified.
.. _economy-command-payday:
^^^^^^
payday
^^^^^^
**Syntax**
.. code-block:: none
[p]payday
**Description**
Get some free currency.
The amount awarded and frequency can be configured.
.. _economy-command-payouts:
^^^^^^^
payouts
^^^^^^^
**Syntax**
.. code-block:: none
[p]payouts
**Description**
Show the payouts for the slot machine.
.. _economy-command-slot:
^^^^
slot
^^^^
**Syntax**
.. code-block:: none
[p]slot <bid>
**Description**
Use the slot machine.
Example:
- ``[p]slot 50``
**Arguments**
- ``<bid>`` The amount to bet on the slot machine. Winning payouts are higher when you bet more.

335
docs/cog_guides/filter.rst Normal file
View File

@@ -0,0 +1,335 @@
.. _filter:
======
Filter
======
This is the cog guide for the filter 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 filter
.. _filter-usage:
-----
Usage
-----
This cog is designed for "filtering" unwanted words and phrases from a server.
It provides tools to manage a list of words or sentences, and to customize automatic actions to be taken against users who use those words in channels or in their name/nickname.
This can be used to prevent inappropriate language, off-topic discussions, invite links, and more.
.. _filter-commands:
--------
Commands
--------
.. _filter-command-filter:
^^^^^^
filter
^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]filter
**Description**
Base command to add or remove words from the server filter.
Use double quotes to add or remove sentences.
.. _filter-command-filter-add:
""""""""""
filter add
""""""""""
**Syntax**
.. code-block:: none
[p]filter add [words...]
**Description**
Add words to the filter.
Use double quotes to add sentences.
Examples:
- ``[p]filter add word1 word2 word3``
- ``[p]filter add "This is a sentence"``
**Arguments:**
- ``[words...]`` The words or sentences to filter.
.. _filter-command-filter-channel:
""""""""""""""
filter channel
""""""""""""""
**Syntax**
.. code-block:: none
[p]filter channel
**Description**
Base command to add or remove words from the channel filter.
Use double quotes to add or remove sentences.
.. _filter-command-filter-channel-add:
""""""""""""""""""
filter channel add
""""""""""""""""""
**Syntax**
.. code-block:: none
[p]filter channel add [words...]
**Description**
Add words to the filter.
Use double quotes to add sentences.
Examples:
- ``[p]filter channel add word1 word2 word3``
- ``[p]filter channel add "This is a sentence"``
**Arguments:**
- ``[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:
"""""""""""""""""""
filter channel list
"""""""""""""""""""
**Syntax**
.. code-block:: none
[p]filter channel list
**Description**
Send a list of the channel's filtered words.
.. _filter-command-filter-channel-remove:
"""""""""""""""""""""
filter channel remove
"""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]filter channel remove [words...]
**Description**
Remove words from the filter.
Use double quotes to remove sentences.
Examples:
- ``[p]filter channel remove word1 word2 word3``
- ``[p]filter channel remove "This is a sentence"``
**Arguments:**
- ``[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:
"""""""""""""
filter delete
"""""""""""""
**Syntax**
.. code-block:: none
[p]filter delete [words...]
.. tip:: Aliases: ``filter remove``, ``filter del``
**Description**
Remove words from the filter.
Use double quotes to remove sentences.
Examples:
- ``[p]filter remove word1 word2 word3``
- ``[p]filter remove "This is a sentence"``
**Arguments:**
- ``[words...]`` The words or sentences to no longer filter.
.. _filter-command-filter-list:
"""""""""""
filter list
"""""""""""
**Syntax**
.. code-block:: none
[p]filter list
**Description**
Send a list of this server's filtered words.
.. _filter-command-filter-names:
""""""""""""
filter names
""""""""""""
**Syntax**
.. code-block:: none
[p]filter names
**Description**
Toggle name and nickname filtering.
This is disabled by default.
.. _filter-command-filterset:
^^^^^^^^^
filterset
^^^^^^^^^
.. note:: |admin-lock|
**Syntax**
.. code-block:: none
[p]filterset
**Description**
Base command to manage filter settings.
.. _filter-command-filterset-ban:
"""""""""""""
filterset ban
"""""""""""""
**Syntax**
.. code-block:: none
[p]filterset ban <count> <timeframe>
**Description**
Set the filter's autoban conditions.
Users will be banned if they send ``<count>`` filtered words in
``<timeframe>`` seconds.
Set both to zero to disable autoban.
Examples:
- ``[p]filterset ban 5 5`` - Ban users who say 5 filtered words in 5 seconds.
- ``[p]filterset ban 2 20`` - Ban users who say 2 filtered words in 20 seconds.
**Arguments:**
- ``<count>`` The amount of filtered words required to trigger a ban.
- ``<timeframe>`` The period of time in which too many filtered words will trigger a ban.
.. _filter-command-filterset-defaultname:
"""""""""""""""""""""
filterset defaultname
"""""""""""""""""""""
**Syntax**
.. code-block:: none
[p]filterset defaultname <name>
**Description**
Set the nickname for users with a filtered name.
Note that this has no effect if filtering names is disabled
(to toggle, run ``[p]filter names``).
The default name used is *John Doe*.
Example:
- ``[p]filterset defaultname Missingno``
**Arguments:**
- ``<name>`` The new nickname to assign.

218
docs/cog_guides/general.rst Normal file
View File

@@ -0,0 +1,218 @@
.. _general:
=======
General
=======
This is the cog guide for the general 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 general
.. _general-usage:
-----
Usage
-----
This cog includes a miscellaneous group of games, useful
tools, and informative commands such as ``serverinfo`` or ``urban``.
.. _general-commands:
--------
Commands
--------
Here's a list of all commands available for this cog.
.. _general-command-8:
^^^^^^^^^
8 (8ball)
^^^^^^^^^
**Syntax**
.. code-block:: none
[p]8 <question>
**Description**
Ask 8 ball a question.
.. note:: Your question must end with a question mark.
**Arguments**
* ``<question>``: The question you would like to ask 8 ball.
.. _general-command-choose:
^^^^^^
choose
^^^^^^
**Syntax**
.. code-block:: none
[p]choose <first> <second> [others...]
**Description**
Choose between multiple options.
Options are separated by spaces.
.. 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**
* ``<first>``: The first mandatory option.
* ``<second>``: The second mandatory option.
* ``[others...]``: Any remaining optional options.
.. _general-command-flip:
^^^^
flip
^^^^
**Syntax**
.. code-block:: none
[p]flip [user]
**Description**
Flip a coin... or a user.
**Arguments**
* ``[user]``: The user to flip. Defaults to flipping a coin if no user is provided.
.. _general-command-lmgtfy:
^^^^^^
lmgtfy
^^^^^^
**Syntax**
.. code-block:: none
[p]lmgtfy <search_terms>
**Description**
Create a lmgtfy link.
**Arguments**
* ``<search_terms>``: The terms used to generate the lmgtfy link.
.. _general-command-roll:
^^^^
roll
^^^^
**Syntax**
.. code-block:: none
[p]roll [number=100]
**Description**
Roll a random number. The result will be between 1 and ``<number>``.
**Arguments**
* ``[number]``: The maximum number that can be rolled. Defaults to 100.
.. _general-command-rps:
^^^^^^^^^^^^^^^^^^^^^^^^^
rps (Rock Paper Scissors)
^^^^^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]rps <your_choice>
**Description**
Play Rock Paper Scissors.
**Arguments**
* ``<your_choice>``: The choice that you choose.
.. note:: Choices **must** be between ``rock``, ``paper``, or ``scissors``.
.. _general-commands-serverinfo:
^^^^^^^^^^
serverinfo
^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]serverinfo [details=False]
**Description**
Show server information.
**Arguments**
* ``[details]``: Show extra details about the server when set to True. Defaults to False.
.. _general-commands-stopwatch:
^^^^^^^^^
stopwatch
^^^^^^^^^
**Syntax**
.. code-block:: none
[p]stopwatch
**Description**
Start or stop the stopwatch.
.. _general-commands-urban:
^^^^^
urban
^^^^^
**Syntax**
.. code-block:: none
[p]urban <word>
**Description**
Search the Urban Dictionary.
**Arguments**
* ``<word>``: The term to search for.

205
docs/cog_guides/image.rst Normal file
View File

@@ -0,0 +1,205 @@
.. _image:
=====
Image
=====
This is the cog guide for the image 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 image
.. _image-usage:
-----
Usage
-----
This cog provides commands for retrieving pictures from
websites such as Giphy and Imgur.
.. _image-commands:
--------
Commands
--------
Here's a list of all commands available for this cog.
.. _image-command-gif:
^^^
gif
^^^
**Syntax**
.. code-block:: none
[p]gif <keywords...>
**Description**
Retrieve the first search result from Giphy. This command requires API tokens
to be set via the :ref:`giphycreds <image-command-giphycreds>` command.
**Arguments**
* ``<keywords...>``: The keywords used to search Giphy.
.. _image-command-gifr:
^^^^
gifr
^^^^
**Syntax**
.. code-block:: none
[p]gifr <keywords...>
**Description**
Retrieve a random GIF from a Giphy search. This command requires API tokens
to be set via the :ref:`giphycreds <image-command-giphycreds>` command.
**Arguments**
* ``<keywords...>``: The keywords used to generate a random GIF.
.. _image-command-imgur:
^^^^^
imgur
^^^^^
**Syntax**
.. code-block:: none
[p]imgur
**Description**
Retrieves pictures from Imgur. This command requires API tokens to be set
via the :ref:`imgurcreds <image-command-imgurcreds>` command.
.. _image-command-imgur-search:
""""""""""""
imgur search
""""""""""""
**Syntax**
.. code-block:: none
[p]imgur search [count=1] <terms...>
**Description**
Search for pictures on Imgur. This command requires API tokens to be set
via the :ref:`imgurcreds <image-command-imgurcreds>` command.
**Arguments**
* ``[count]``: How many images should be returned (maximum 5). Defaults to 1.
* ``<terms...>``: The terms used to search Imgur.
.. _image-command-imgur-subreddit:
"""""""""""""""
imgur subreddit
"""""""""""""""
**Syntax**
.. code-block:: none
[p]imgur subreddit <subreddit> [count=1] [sort_type=top] [window=day]
**Description**
Get images from a subreddit. This command requires API tokens to be set
via the :ref:`imgurcreds <image-command-imgurcreds>` command.
**Arguments**
* ``<subreddit>``: The subreddit to get images from.
* ``[count]``: The number of images to return (maximum 5). Defaults to 1.
* ``[sort_type]``: New, or top results. Defaults to top.
* ``[window]``: The timeframe, can be the past day, week, month, year or all. Defaults to day.
.. _image-command-giphycreds:
^^^^^^^^^^
giphycreds
^^^^^^^^^^
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]giphycreds
**Description**
Explains how to set GIPHY API tokens.
**Getting your API key**
1. Login (or create) a GIPHY account.
2. Visit `this page <https://developers.giphy.com/dashboard>`__.
3. Press 'Create an App'.
4. Click 'Select API', and then 'Next Step'.
5. Add an app name, for example 'Red'.
6. Add an app description, for example 'Used for Red's image cog'.
7. Click 'Create App'. You'll need to agree to the GIPHY API terms.
8. Copy the API Key.
9. In Discord, run the following command::
[p]set api GIPHY api_key <your_api_key_here>
.. _image-command-imgurcreds:
^^^^^^^^^^
imgurcreds
^^^^^^^^^^
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]imgurcreds
**Description**
Explains how to set Imgur API tokens.
**Getting your API key**
1. Login to (or create) an Imgur account.
2. Visit `this page <https://api.imgur.com/oauth2/addclient>`__.
3. Add an app name for your application, for example 'Red'.
4. Select 'Anonymous usage without user authorization' for the auth type.
5. Set the authorization callback URL to ``https://localhost``
6. Leave the app website blank.
7. Enter a valid email address and a description.
8. Check the captcha box and click next.
9. Your Client ID will be on the next page.
10. In Discord, run the following command::
[p]set api imgur client_id <your_client_id_here>

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 Twentysix 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 Twentysix 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 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.

517
docs/cog_guides/streams.rst Normal file
View File

@@ -0,0 +1,517 @@
.. _streams:
=======
Streams
=======
This is the cog guide for the Streams 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 streams
.. _streams-usage:
-----
Usage
-----
This cog provides commands to check if a channel
on a supported streaming service is live as well
as to create and manage alerts for channels.
Supported streaming services are:
- Twitch
- Youtube
- Picarto
Youtube and Twitch both require setting authentication
details for commands for those services to work. See
:ref:`[p]streamset twitchtoken <streams-command-streamset-twitchtoken>` and
:ref:`[p]streamset youtubekey <streams-command-streamset-youtubekey>`
for more information.
.. _streams-commands:
--------
Commands
--------
.. _streams-command-streamset:
^^^^^^^^^
streamset
^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset
**Description**
Manage stream alert settings.
.. _streams-command-streamset-autodelete:
^^^^^^^^^^^^^^^^^^^^
streamset autodelete
^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset autodelete <on_off>
**Description**
Toggles automatic deletion of stream alerts when the
stream goes offline.
**Arguments**
* ``<on_off>``: Whether to turn on or off
.. _streams-command-streamset-ignorereruns:
^^^^^^^^^^^^^^^^^^^^^^
streamset ignorereruns
^^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset ignorereruns
**Description**
Toggles excluding reruns from the alerts.
At this time, this functionality only applies to Twitch stream alerts.
.. _streams-command-streamset-mention:
^^^^^^^^^^^^^^^^^
streamset mention
^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset mention
**Description**
Toggle mentions for stream alerts.
.. _streams-command-streamset-mention-all:
^^^^^^^^^^^^^^^^^^^^^
streamset mention all
^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset mention all
**Description**
Toggle mentioning ``@everyone`` for stream alerts.
.. _streams-command-streamset-mention-online:
^^^^^^^^^^^^^^^^^^^^^^^^
streamset mention online
^^^^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset mention online
**Description**
Toggle mentioning ``@here`` for stream alerts.
.. _streams-command-streamset-mention-role:
^^^^^^^^^^^^^^^^^^^^^^
streamset mention role
^^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset mention role <role>
**Description**
Toggle mentioning a role for stream alerts.
**Arguments**
* ``<role>``: The role to toggle a mention for. |role-input|
.. _streams-command-streamset-message:
^^^^^^^^^^^^^^^^^
streamset message
^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset message
**Description**
Manage custom messages for stream alerts.
.. _streams-command-streamset-message-mention:
^^^^^^^^^^^^^^^^^^^^^^^^^
streamset message mention
^^^^^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset message mention <message>
**Description**
Sets a stream alert message for when mentions are enabled.
Use ``{mention}`` in the message to insert the selected mentions.
Use ``{stream}`` in the message to insert the channel or user name.
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**
* ``<message>``: Your alert message
.. _streams-command-streamset-message-nomention:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
streamset message nomention
^^^^^^^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset message nomention <message>
**Description**
Sets a stream alert message for when mentions are disabled.
Use ``{stream}`` in the message to insert the channel or user name.
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**
* ``<message>``: Your alert message
.. _streams-command-streamset-message-clear:
^^^^^^^^^^^^^^^^^^^^^^^
streamset message clear
^^^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset message clear
**Description**
Resets the stream alert messages for the server.
.. _streams-command-streamset-timer:
^^^^^^^^^^^^^^^
streamset timer
^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset timer <refresh_timer>
**Description**
Sets the refresh time for stream alerts (how frequently they will be checked).
This cannot be set to anything less than 60 seconds.
**Arguments**
* ``<refresh_timer>``: The frequency with which streams should be checked, in seconds
.. _streams-command-streamset-youtubekey:
^^^^^^^^^^^^^^^^^^^^
streamset youtubekey
^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset youtubekey
**Description**
Explains how to set the YouTube token.
To get one, do the following:
1. Create a project
(see https://support.google.com/googleapi/answer/6251787 for details)
2. Enable the YouTube Data API v3
(see https://support.google.com/googleapi/answer/6158841 for instructions)
3. Set up your API key
(see https://support.google.com/googleapi/answer/6158862 for instructions)
4. Copy your API key and run the command ``[p]set api youtube api_key <your_api_key_here>``
.. attention:: These tokens are sensitive and should only be
used in a private channel or in DM with the bot.
.. _streams-command-streamset-twitchtoken:
^^^^^^^^^^^^^^^^^^^^^
streamset twitchtoken
^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamset twitchtoken
**Description**
Explains how to set the Twitch token.
To set the Twitch API tokens, follow these steps:
1. Go to this page: https://dev.twitch.tv/dashboard/apps.
2. Click Register Your Application.
3. Enter a name, set the OAuth Redirect URI to http://localhost, and select an Application Category of your choosing.
4. Click Register.
5. Copy your client ID and your client secret into:
``[p]set api twitch client_id <your_client_id_here> client_secret <your_client_secret_here>``
.. attention:: These tokens are sensitive and should only be
used in a private channel or in DM with the bot.
.. _streams-command-picarto:
^^^^^^^
picarto
^^^^^^^
**Syntax**
.. code-block:: none
[p]picarto <channel_name>
**Description**
Check if a Picarto channel is live.
**Arguments**
* ``<channel_name>``: The Picarto channel to check.
.. _streams-command-twitchstream:
^^^^^^^^^^^^
twitchstream
^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]twitchstream <channel_name>
**Description**
Check if a Twitch channel is live.
**Arguments**
* ``<channel_name>``: The Twitch channel to check.
.. _streams-command-youtubestream:
^^^^^^^^^^^^^
youtubestream
^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]youtubestream <channel_id_or_name>
**Description**
Check if a YouTube channel is live.
**Arguments**
* ``<channel_id_or_name>``: The name or id of the YouTube channel to be checked.
.. _streams-command-streamalert:
^^^^^^^^^^^
streamalert
^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamalert
**Description**
Manage automated stream alerts.
.. _streams-command-streamalert-list:
^^^^^^^^^^^^^^^^
streamalert list
^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamalert list
**Description**
Lists all active alerts in the current server.
.. _streams-command-streamalert-picarto:
^^^^^^^^^^^^^^^^^^^
streamalert picarto
^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamalert picarto <channel_name>
**Description**
Toggle alerts in the current channel for the
specified Picarto channel.
**Arguments**
* ``<channel_name>``: The Picarto channel to toggle the alert for.
.. _streams-command-streamalert-twitch-channel:
^^^^^^^^^^^^^^^^^^^^^^^^^^
streamalert twitch channel
^^^^^^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamalert twitch channel <channel_name>
**Description**
Toggle alerts in the current channel for the
specified Twitch channel.
**Arguments**
* ``<channel_name>``: The Twitch channel to toggle the alert for.
.. _streams-command-streamalert-youtube:
^^^^^^^^^^^^^^^^^^^
streamalert youtube
^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamalert youtube <channel_name>
**Description**
Toggle alerts in the current channel for the
specified Picarto channel.
**Arguments**
* ``<channel_id_or_name>``: The name or id of the YouTube channel to be checked.
.. _streams-command-streamalert-stop:
^^^^^^^^^^^^^^^^
streamalert stop
^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]streamalert stop [disable-all=No]
**Description**
Disable all stream alerts for this channel or server.
**Arguments**
* ``[disable-all]``: Defaults to ``no``. If this is set to ``yes``, all
stream alerts in the current server will be disabled.
If ``no`` or unspecified, all stream alerts in the
current channel will be stopped.

439
docs/cog_guides/trivia.rst Normal file
View File

@@ -0,0 +1,439 @@
.. _trivia:
======
Trivia
======
This is the cog guide for the trivia 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 trivia
.. _trivia-usage:
-----
Usage
-----
This cog allows for playing trivia with others. You may
choose to play just one category at a time or choose
multiple to add variety to your game. You can even create
your own lists!
.. _trivia-commands:
--------
Commands
--------
Here is a list of all of the commands for this cog:
.. _trivia-command-triviaset:
^^^^^^^^^
triviaset
^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]triviaset
**Description**
Commands for managing trivia settings.
.. _trivia-command-triviaset-botplays:
^^^^^^^^^^^^^^^^^^
triviaset botplays
^^^^^^^^^^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]triviaset botplays <true_or_false>
**Description**
Sets whether the bot gains a point if nobody guesses correctly.
**Arguments**
- ``<true_or_false>`` If ``true``, the bot will gain a point if nobody
guesses correctly, otherwise it will not.
.. _trivia-command-triviaset-maxscore:
^^^^^^^^^^^^^^^^^^
triviaset maxscore
^^^^^^^^^^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]triviaset maxscore <score>
**Description**
Sets the total points required to win.
**Arguments**
- ``<score>`` The amount of points required to win.
.. _trivia-command-triviaset-override:
^^^^^^^^^^^^^^^^^^
triviaset override
^^^^^^^^^^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]triviaset override <enabled>
**Description**
Allow/disallow trivia lists to override the settings.
**Arguments**
- ``<enabled>`` Whether trivia lists should be able to override settings.
.. _trivia-command-triviaset-payout:
^^^^^^^^^^^^^^^^
triviaset payout
^^^^^^^^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]triviaset payout <multiplier>
**Description**
Sets the payout multiplier.
If a user wins trivia when at least 3 users are playing, they will receive credits;
the amount received is determined by multiplying their total score by this multiplier.
**Arguments**
- ``<multiplier>`` The amount to multiply the winner's score by to determine payout.
This can be any positive decimal number. Setting this to 0 will disable.
.. _trivia-command-triviaset-revealanswer:
^^^^^^^^^^^^^^^^^^^^^^
triviaset revealanswer
^^^^^^^^^^^^^^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]triviaset revealanswer <true_or_false>
**Description**
Sets whether or not the answer is revealed if the time limit for answering runs out.
**Arguments**
- ``<true_or_false>`` If ``true``, the bot will reveal the answer if there is no
correct guess within the time limit.
.. _trivia-command-triviaset-showsettings:
^^^^^^^^^^^^^^^^^^^^^^
triviaset showsettings
^^^^^^^^^^^^^^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]triviaset showsettings
**Description**
Shows the current trivia settings.
.. _trivia-command-triviaset-stopafter:
^^^^^^^^^^^^^^^^^^^
triviaset stopafter
^^^^^^^^^^^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]triviaset stopafter <seconds>
**Description**
Sets how long the bot should wait before stopping the trivia
session due to lack of response.
**Arguments**
- ``<seconds>`` The number of seconds to wait before stopping the session.
.. _trivia-command-triviaset-timelimit:
^^^^^^^^^^^^^^^^^^^
triviaset timelimit
^^^^^^^^^^^^^^^^^^^
.. note:: |mod-lock|
**Syntax**
.. code-block:: none
[p]triviaset timelimit <seconds>
**Description**
Sets the maximum time permitted to answer a question.
**Arguments**
- ``<seconds>`` The number of seconds to wait for an answer.
.. _trivia-command-triviaset-custom:
^^^^^^^^^^^^^^^^
triviaset custom
^^^^^^^^^^^^^^^^
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]triviaset custom
**Description**
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:
^^^^^^^^^^^^^^^^^^^^^^^
triviaset custom upload
^^^^^^^^^^^^^^^^^^^^^^^
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]triviaset custom upload
**Description**
Upload a custom trivia list. The bot will prompt you to upload
your list as an attachment in Discord.
.. _trivia-command-triviaset-custom-list:
^^^^^^^^^^^^^^^^^^^^^
triviaset custom list
^^^^^^^^^^^^^^^^^^^^^
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]triviaset custom list
**Description**
List all uploaded custom trivia lists.
.. _trivia-command-triviaset-custom-delete:
^^^^^^^^^^^^^^^^^^^^^^^
triviaset custom delete
^^^^^^^^^^^^^^^^^^^^^^^
.. note:: |owner-lock|
**Syntax**
.. code-block:: none
[p]triviaset custom delete <name>
**Description**
Delete a custom trivia list.
**Arguments**
- ``<name>`` The name of the custom list to be deleted.
.. _trivia-command-trivia:
^^^^^^
trivia
^^^^^^
**Syntax**
.. code-block:: none
[p]trivia <categories...>
**Description**
Start a trivia session on the specified category.
Multiple categories can be listed, in which case the trivia session
will use all of the specified lists to select questions from.
**Arguments**
- ``<categories...>`` The category to play. Can be multiple.
.. _trivia-command-trivia-leaderboard:
^^^^^^^^^^^^^^^^^^
trivia leaderboard
^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]trivia leaderboard
**Description**
Shows the trivia leaderboard. Defaults to the top ten in the
current server, sorted by total wins. The subcommands provide
more customized leaderboards.
.. _trivia-command-trivia-leaderboard-global:
^^^^^^^^^^^^^^^^^^^^^^^^^
trivia leaderboard global
^^^^^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]trivia leaderboard global [sort_by=wins] [top=10]
**Description**
The global trivia leaderboard.
**Arguments**
- ``[sort_by=wins]`` The method by which to sort the leaderboard (defaults to wins). Can be one of:
- ``wins`` Total wins
- ``avg`` Average score
- ``total`` Total correct answers from all sessions
- ``games`` Total games played.
- ``[top=10]`` The number of ranks to show on the leaderboard. Defaults to 10
.. _trivia-command-trivia-leaderboard-server:
^^^^^^^^^^^^^^^^^^^^^^^^^
trivia leaderboard server
^^^^^^^^^^^^^^^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]trivia leaderboard server [sort_by=wins] [top=10]
**Description**
The trivia leaderboard for this server.
**Arguments**
- ``[sort_by=wins]`` The method by which to sort the leaderboard (defaults to wins). Can be one of:
- ``wins`` Total wins
- ``avg`` Average score
- ``total`` Total correct answers from all sessions
- ``games`` Total games played.
- ``[top=10]`` The number of ranks to show on the leaderboard. Defaults to 10
.. _trivia-command-trivia-list:
^^^^^^^^^^^
trivia list
^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]trivia list
**Description**
Lists the available trivia categories
.. _trivia-command-trivia-stop:
^^^^^^^^^^^
trivia stop
^^^^^^^^^^^
**Syntax**
.. code-block:: none
[p]trivia stop
**Description**
Stops an ongoing trivia session.

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

@@ -21,6 +21,7 @@ import os
import sys
sys.path.insert(0, os.path.abspath(".."))
sys.path.insert(0, os.path.abspath("_ext"))
os.environ["BUILDING_DOCS"] = "1"
@@ -42,6 +43,8 @@ extensions = [
"sphinx.ext.napoleon",
"sphinx.ext.doctest",
"sphinxcontrib_trio",
"sphinx-prompt",
"deprecated_removed",
]
# Add any paths that contain templates here, relative to this directory.
@@ -58,7 +61,7 @@ master_doc = "index"
# General information about the project.
project = "Red - Discord Bot"
copyright = "2018-2020, Cog Creators"
copyright = "2018-2021, Cog Creators"
author = "Cog Creators"
# The version info for the project you're documenting, acts as replacement for
@@ -215,6 +218,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

@@ -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
@@ -92,6 +92,13 @@ parameters.
Sometimes (especially for the last argument) these double quotes are not
required.
Arguments followed by an ellipsis ``...`` means that you may provide
multiple arguments for the command.
For example, the command ``[p]cog install`` in the downloader cog has
the syntax ``cog install <repo> <cogs...>``, meaning that you can provide
1 or more ``cogs`` to install from the ``repo``.
Arguments followed by ``=value`` means that, if not specified,
the argument will be equal to ``value``.
@@ -99,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
@@ -115,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:
@@ -210,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).
~~~~~~~~~~~~~
@@ -230,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:
@@ -246,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,8 +273,8 @@ If you want to do it, follow these steps.
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 list <host-list>` for
quality VPS providers.
on an online service. Please check :ref:`this page <host-list>` for
more information.
You can also buy a Raspberry Pi (~$20), which is a micro-computer that will
be able to host Red. The model 3 or above is recommended.
@@ -277,7 +285,7 @@ If you want to do it, follow these steps.
you're a beginner, we recommend **Ubuntu 20.04 LTS**.
For Raspberry Pi users, just install `Raspbian
<https://www.raspberrypi.org/downloads/raspbian/>`_ on a micro-SD card.
<https://www.raspberrypi.org/software/>`_ on a micro-SD card.
2.1. **Log in**
@@ -336,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**
@@ -347,4 +358,4 @@ The cog guides are formatted the same. They're divided into 3 sections:
* **Arguments**
A list of all arguments needed (or not) for the command, with more details.
A list of all arguments needed (or not) for the command, with more details.

View File

@@ -83,9 +83,12 @@ In that file, place the following code:
from redbot.core import commands
class Mycog(commands.Cog):
class MyCog(commands.Cog):
"""My custom cog"""
def __init__(self, bot):
self.bot = bot
@commands.command()
async def mycom(self, ctx):
"""This does stuff!"""
@@ -96,11 +99,11 @@ Open :code:`__init__.py`. In that file, place the following:
.. code-block:: python
from .mycog import Mycog
from .mycog import MyCog
def setup(bot):
bot.add_cog(Mycog())
bot.add_cog(MyCog(bot))
Make sure that both files are saved.
@@ -156,6 +159,12 @@ Publishing your cog
Go to :doc:`/guide_publish_cogs`
--------------------------------
Becoming an Approved Cog Creator
--------------------------------
:doc:`/guide_cog_creators` explains the Cog Creator Application process and lists requirements and good practices for Cog Creators. This information is worth following for anyone creating cogs for Red, regardless of if you plan to publish your cogs or not.
--------------------
Additional resources
--------------------
@@ -163,103 +172,3 @@ Additional resources
Be sure to check out the :doc:`/guide_migration` for some resources
on developing cogs for V3. This will also cover differences between V2 and V3 for
those who developed cogs for V2.
.. _guidelines-for-cog-creators:
---------------------------
Guidelines for Cog Creators
---------------------------
The following are a list of guidelines Cog Creators should strive to follow.
Not all of these are strict requirements (some are) but are all generally advisable.
1. Cogs should follow a few naming conventions for consistency.
- Cog classes should be TitleCased, using alphabetic characters only.
- Commands should be lower case, using alphanumeric characters only.
- Cog modules should be lower case, using alphabetic characters only.
2. Cogs and commands should have docstrings suitable for use in help output.
- This one is slightly flexible if using other methods of setting help.
3. Don't prevent normal operation of the bot without the user opting into this.
- This includes as a side effect by blocking the event loop.
4. If your cog uses logging:
- The namespace for logging should be: ``red.your_repo_name.cog_name``.
- Print statements are not a substitute for proper logging.
5. If you use asyncio.create_task, your tasks need to:
- Be cancelled on cog unload.
- Handle errors.
6. Event listeners should exit early if it is an event you don't need.
This makes your events less expensive in terms of CPU time. Examples below:
- Checking that you are in a guild before interacting with config for an antispam command.
- Checking that you aren't reacting to a bot message (``not message.author.bot``) early on.
7. Use .gitignore (or something else) to keep unwanted files out of your cog repo.
8. Put a license on your cog repo.
- By default, in most jurisdictions, without a license that at least offers the code for use,
users cannot legally use your code.
9. Use botwide features when they apply. Some examples of this:
- ``ctx.embed_color``
- ``bot.is_automod_immune``
10. Use checks to limit command use when the bot needs special permissions.
11. Check against user input before doing things. Common things to check:
- Resulting output is safe.
- Values provided make sense. (eg. no negative numbers for payday)
- Don't unsafely use user input for things like database input.
12. Don't abuse bot internals.
- If you need access to something, ask us or open an issue.
- If you're sure the current usage is safe, document why,
but we'd prefer you work with us on ensuring you have access to what you need.
13. Update your cogs for breakage.
- We announce this in advance.
- If you need help, ask.
14. Check events against `bot.cog_disabled_in_guild() <RedBase.cog_disabled_in_guild()>`
- Not all events need to be checked, only those that interact with a guild.
- Some discretion may apply, for example,
a cog which logs command invocation errors could choose to ignore this
but a cog which takes actions based on messages should not.
15. Respect settings when treating non command messages as commands.
16. Handle user data responsibly
- Don't do unexpected things with user data.
- Don't expose user data to additional audiences without permission.
- Don't collect data your cogs don't need.
- Don't store data in unexpected locations.
Utilize the cog data path, Config, or if you need something more
prompt the owner to provide it.
17. Utilize the data deletion and statement APIs
- See `redbot.core.commands.Cog.red_delete_data_for_user`
- Make a statement about what data your cogs use with the module level
variable ``__red_end_user_data_statement__``.
This should be a string containing a user friendly explanation of what data
your cog stores and why.
18. Set contextual locales in events and other background tasks that use i18n APIs
- See `redbot.core.i18n.set_contextual_locales_from_guild()`
- Usage of i18n APIs within commands automatically has proper contextual locales set.

201
docs/guide_cog_creators.rst Normal file
View File

@@ -0,0 +1,201 @@
.. Cog Creator Applications
.. role:: python(code)
:language: python
================================
Becoming an Approved Cog Creator
================================
This guide serves to explain the Cog Creator Application process and lays out the requirements to be a Cog Creator.
----------------------------------
Creating a Cog Creator Application
----------------------------------
.. note::
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.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.
-----------------------------
Requirements for Cog Creators
-----------------------------
The following is a list of the requirements for approved Cog Creators.
QA uses this list to request changes for Cog Creator Applications.
Handling these requirements before submitting your application can streamline the review process.
Any Cog Creator that does not follow these requirements will have their repo removed from approved listings and may have their Cog Creator status revoked.
- Readme that contains
- Repository name
- Installation instructions
- Extra setup instructions (if applicable)
- Credits (if applicable)
- Repo-wide ``info.json`` file with the keys
- ``author``
- ``name``
- ``short``
- ``description``
- Cog ``info.json`` files with the keys
- ``author``
- ``name``
- ``short``
- ``requirements`` (if applicable)
- ``description``
See `info-json-format` for more information on how to set up ``info.json`` files.
- No cog contains malicious code.
- No cog contains code that could impact the stability of the bot, such as blocking the event loop for an extended period of time, unreasonably high IO usage, etc.
- No cog contains copied code that does not respect the license of the source.
- Disclose in the ``install_msg`` key of the ``info.json`` file of each cog that contains any of the following:
- Heavy memory or I/O usage.
- Any NSFW material.
- Bundled data.
- Stored data (outside of using Config).
- Interactions with outside services.
- Any extra setup instructions required.
- No cog breaks the Discord TOS.
- No cog conflicts with any core cogs (e.g., causing a core cog to fail to load) unless it is intended to replace that cog.
- Your repo shows an understanding of a range of common cog practices. This requirement exists to ensure QA can trust the safety and functionality of any future code you will create. This is handled on a case-by-case basis, however the following points should outline what we are looking to see:
- Cogs that are more than what is able to be run in a simple eval.
- Cogs that are more than just a simple API access request.
- Cogs that properly use Red utilities, including Config, checks, and any other utility functions.
- Cogs that use event listeners (bot.wait_for or cog-wide listeners) or custom tasks that are efficient and handle exceptions appropriately.
- Cogs that handle errors properly.
- Cogs that handle permissions properly.
*While we're looking for these things to qualify your code, you don't need to apply all of them in order to qualify.*
- Any unusable or broken commands or cogs are hidden.
- The default locale must be English.
- The main cog class and every command must have a doc-string.
- No cog allows for escalation of permissions. (e.g., sending a mass ping through the bot without having permission to do so)
- Respect the role hierarchy. Dont let a lower role have a way to grant a higher role.
- If your cog install comes with any pre-packaged data, use `bundled_data_path()` to access it.
- If your cog install creates any non-config data, use `cog_data_path()` to store it.
- Unless the cog is intentionally designed to listen to certain input from bots, cogs should ignore input from bots.
- Cogs use public methods of Red where possible.
- Use the proper method if one exists. (and ask for one if it doesn't exist)
- If that's not possible, don't break anything in core or any other cog with your code.
- If you have to use private methods, lock the cog to specific Red versions you can guarantee it works on without breaking anything using the ``min_bot_version`` and ``max_bot_version`` keys in that cog's ``info.json`` file.
- Cog Creators must keep their cogs up-to-date with core Red or be delisted until cogs meet Red API changes. Repositories must be kept up to date with the latest version of Red within 3 months of its release.
.. _recommendations-for-cog-creators:
--------------------------------
Recommendations for Cog Creators
--------------------------------
The following is a list of recommendations for Cog Creators.
While not required for approved Cog Creators, they are still recommended in order to ensure consistency between repos.
- Cogs should follow a few naming conventions for consistency.
- Cog classes should be TitleCased, using alphabetic characters only.
- Commands should be lower case, using alphanumeric characters only.
- Cog modules should be lower case, using alphabetic characters only.
- If your cog uses logging:
- The namespace for logging should be: ``red.your_repo_name.cog_name``.
- Print statements are not a substitute for proper logging.
- If you use asyncio.create_task, your tasks should:
- Be cancelled on cog unload.
- Handle errors.
- | Event listeners should exit early if it is an event you don't need.
| This makes your events less expensive in terms of CPU time. Examples below:
- Checking that you are in a guild before interacting with config for an antispam command.
- Checking that you aren't reacting to a bot message (``not message.author.bot``) early on.
- Use .gitignore (or something else) to keep unwanted files out of your cog repo.
- Put a license on your cog repo.
- By default, in most jurisdictions, without a license that at least offers the code for use,
users cannot legally use your code.
- Use botwide features when they apply. Some examples of this:
- ``ctx.embed_color``
- ``bot.is_automod_immune``
- Use checks to limit command use when the bot needs special permissions.
- Check against user input before doing things. Common things to check:
- Resulting output is safe.
- Values provided make sense. (eg. no negative numbers for payday)
- Don't unsafely use user input for things like database input.
- Check events against `bot.cog_disabled_in_guild() <RedBase.cog_disabled_in_guild()>`\
- Not all events need to be checked, only those that interact with a guild.
- Some discretion may apply, for example,
a cog which logs command invocation errors could choose to ignore this
but a cog which takes actions based on messages should not.
- Respect settings when treating non-command messages as commands.
- Handle user data responsibly
- Don't do unexpected things with user data.
- Don't expose user data to additional audiences without permission.
- Don't collect data your cogs don't need.
- | Don't store data in unexpected locations.
| Utilize the cog data path, Config, or if you need something more
prompt the owner to provide it.
- Utilize the data deletion and statement APIs
- See `redbot.core.commands.Cog.red_delete_data_for_user()`
- | Make a statement about what data your cogs use with the module level
variable ``__red_end_user_data_statement__``.
| This should be a string containing a user friendly explanation of what data
your cog stores and why.
- Set contextual locales in events and other background tasks that use i18n APIs
- See `redbot.core.i18n.set_contextual_locales_from_guild()`
- Usage of i18n APIs within commands automatically has proper contextual locales set.
----------------------------
Perks of being a Cog Creator
----------------------------
- Added to a growing, curated list of approved repositories hosted on the `Red Index <https://index.discord.red/>`__.
- The Cog Creator role on the main Red Server and the Cog Support Server.
- Access to an additional testing channel and the #advanced-coding channel on the main Red Server.
- Write permission in the #v3-burndown channel on the main Red Server.
- Access to an additional testing channel and the Cog Creators channel on the Support Server.
- Alerted about breaking changes in Red before anyone else.
- Ability to request a channel in the Cog Support Server if you feel like the traffic/question volume for your cogs warrants it.
-------------
Other Details
-------------
- Once a QA member has conducted a final review, you will have up to 14 days to make the necessary changes.
- The reviewer of your application has the final word.
- Hidden cogs will not be explicitly reviewed, however they are not allowed to contain malicious or ToS breaking code.
- QA reserves the right to revoke these roles and all privileges if you are found to be in gross negligence, malicious intent, or reckless abandonment of your repository.
- If a Cog Creator's repository is not maintained and kept up to date, that repo will be removed from the approved repo listings until such issues are addressed.
- Only 1 person is allowed to be the Cog Creator for a particular repo. Multiple people are allowed to maintain the repo, however the "main" owner (and the Cog Creator) is responsible for any code on the repo.
- The Cog Creator status for a repo can be transferred to another user if the Cog Creator requests it.
- An approved Cog Creator can ask QA to add additional repos they have created to the approved pool.

View File

@@ -86,3 +86,12 @@ Keys specific to the cog info.json (case sensitive)
.. warning::
Shared libraries are deprecated since version 3.2 and are marked for removal in the future.
Adding to the Index
-------------------
Repositories that are correctly configured can be added to the `public index of cogs <https://index.discord.red/>`_.
To be added to the index, make a pull request to the `Red-Index repository <https://github.com/Cog-Creators/Red-Index>`_ in the unapproved section. You can learn more about this process in the repository description.
To be added to the approved repositories, first see `guide_cog_creators`.

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:`here <trivia-command-triviaset-custom>` for more details.
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

@@ -2,16 +2,42 @@
.. _host-list:
=============
VPS providers
=============
===================
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
if you don't know how to host Red on a VPS.
if you don't know how to host Red.
This is a list of the recommended VPS providers.
| For your instance of Red to stay online 24/7, it needs to be hosted on a dedicated system.
This page contains hosting related information and advice for beginners in
topics such as picking a provider.
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.
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
support if an issue occurs when hosting on any of these platforms.
------------------------------------
Hosting on a VPS or Dedicated Server
------------------------------------
| You can host Red in a VPS running Linux or Windows. Using a Linux VPS is the
recommended option. Dedicated servers also work but are overpowered and cost
ineffective unless one plans to run a very large bot or use their server for
more than just hosting Red. If you have already created an instance, Red can be moved to a different
server for hosting with a backup/restore process. More information and guidance
about this process is available in the `Red Support Server <https://discord.com/invite/red>`_.
.. warning::
Please be aware that a Linux server is controlled through a command line.
@@ -19,73 +45,107 @@ This is a list of the recommended VPS providers.
<https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-basics>`_
from DigitalOcean which will introduce you to the Linux basics.
-------------
Linux hosting
-------------
+------------------------------------+------------------------------------------------------+
|Link |Description |
+====================================+======================================================+
|`Scaleway |Incredibly cheap but powerful VPSes, owned by |
|<https://www.scaleway.com/>`_ |`<https://online.net/>`_, based in Europe. |
+------------------------------------+------------------------------------------------------+
|`DigitalOcean |US-based cheap VPSes. The gold standard. Locations |
|<https://www.digitalocean.com/>`_ |available world wide. |
+------------------------------------+------------------------------------------------------+
|`OVH <https://www.ovh.co.uk/>`_ |Cheap VPSes, used by many people. French and Canadian |
| |locations available. |
+------------------------------------+------------------------------------------------------+
|`Time4VPS |Cheap VPSes, seemingly based in Lithuania. |
|<https://www.time4vps.eu/>`_ | |
+------------------------------------+------------------------------------------------------+
|`Linode <https://www.linode.com/>`_ |More cheap VPSes! |
+------------------------------------+------------------------------------------------------+
|`Vultr <https://www.vultr.com/>`_ |US-based, DigitalOcean-like. |
+------------------------------------+------------------------------------------------------+
------
Others
------
+-------------------------------------+-----------------------------------------------------+
|Link | |
+=====================================+=====================================================+
|`AWS <https://aws.amazon.com/>`_ |Amazon Web Services. Free for a year (with certain |
| |limits), but very pricey after that. |
+-------------------------------------+-----------------------------------------------------+
|`Google Cloud |Same as AWS, but it's Google. |
|<https://cloud.google.com/compute/>`_| |
+-------------------------------------+-----------------------------------------------------+
|`Microsoft Azure |Same as AWS, but it's Microsoft. |
|<https://azure.microsoft.com>`_ | |
+-------------------------------------+-----------------------------------------------------+
|`Oracle Cloud |Same as AWS, but it's Oracle. |
|<https://oracle.com/cloud/>`_ | |
+-------------------------------------+-----------------------------------------------------+
|`LowEndBox <http://lowendbox.com/>`_ |A curator for lower specced servers. |
+-------------------------------------+-----------------------------------------------------+
------------
Self-hosting
Self Hosting
------------
You can always self-host on your own hardware.
A Raspberry Pi 3 will be more than sufficient for small to medium sized bots.
| It's possible to self host Red with your own hardware. A Raspberry Pi 3
will have enough computing capacity to handle a small to medium sized bot.
You can also host on your own computer or rack server. Any modern hardware
should work without issues. However, this option leaves you responsible for
keeping the bot online by paying for electricity costs and dealing with power outages.
For bigger bots, you can build your own server PC for usage, or buy a rack
server. Any modern hardware should work 100% fine.
-------------------
Choosing a Provider
-------------------
| The following are some common providers suitable for hosting Red. With
each having their pros and cons, this list is mainly intended to act as a
starting point. You should conduct your own research and come to
a conclusion depending on your needs and budget, taking into account
providers not listed here if desired. The key is the provider offering
an OS supported by Red.
.. tip::
You will have better results with Audio when the region in your Discord
server settings is closer to the bulk of the server's audience and
the location you picked for your Red host.
-----------------
Average Providers
-----------------
| `Scaleway <https://www.scaleway.com/>`_ is a VPS and dedicated server
provider French in origin with locations in Poland and Netherlands.
| `DigitalOcean <https://www.digitalocean.com/>`_ is a US based cloud services company
with locations available worldwide, the VPS service is provided under the brand name
"Droplet".
| `OVH <https://us.ovhcloud.com/vps/>`_ is a company focused on providing hosting
and cloud services with locations in Europe, North America and Asia Pacific.
| `Time4VPS <https://www.time4vps.eu/>`_ is a Lithuanian VPS provider mainly focused
on lower cost.
| `GalaxyGate <https://galaxygate.net/>`_ is a VPS and dedicated server provider
with a single location in New York.
| `Linode <https://www.linode.com/>`_ is a US based cloud services company similar
to DigitalOcean with locations available worldwide.
| `AWS Lightsail <https://aws.amazon.com/lightsail/>`_ is a VPS service from Amazon
Web Services priced lower than their enterprise offerings.
| `Vultr <https://www.vultr.com/>`_ is a US based provider of VPS and dedicated servers
with locations available worldwide.
| `Hetzner Online <https://www.hetzner.com/>`_ is a German VPS and dedicated server
provider with locations in Germany and Finland.
| `Contabo <https://contabo.com/>`_ is also a German VPS and dedicated server provider
with locations in Germany 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.
| `LowEndBox <http://lowendbox.com/>`_ is a website where hosting providers are
discussed and curated, often with lower costs and less known providers.
--------------------
Higher End Providers
--------------------
| `AWS EC2 <https://aws.amazon.com/ec2/>`__ is the enterprise offering of Amazon Web Services.
A limited free plan is available for 12 months, after which a complex pricing model with
high costs take over.
| `Google Compute Engine <https://cloud.google.com/compute/>`__ is Google's EC2 competitor.
However, an always free plan with limited resources is offered.
| `Microsoft Azure VM <https://azure.microsoft.com/services/virtual-machines/>`__ is
Microsoft's EC2 competitor with lower costs than EC2 for Windows instances, but similar
otherwise.
| `Oracle Cloud Compute <https://www.oracle.com/cloud/compute/>`__ is Oracle's EC2
competitor. But an always free plan is available with slightly higher specifications
compared to that of Google Compute Engine.
------------
Free hosting
Free Hosting
------------
| `Google Cloud Compute Engine <https://cloud.google.com/free/docs/gcp-free-tier>`_,
| `Google Compute Engine <https://cloud.google.com/free/docs/gcp-free-tier>`_,
`Oracle Cloud Compute <https://oracle.com/cloud/free/#always-free>`_ and
`AWS EC2 <https://aws.amazon.com/free/>`_ have free tier VPSes suitable for small bots.
| **Note:** AWS EC2's free tier does not last forever - it's a 12 month trial.
| Additionally, new Google Cloud customers get a $300 credit which is valid
for 12 months.
| **Note:** The free tier offered by AWS for EC2 only lasts for 12 months, while
Oracle Cloud and Google Cloud offer always free tiers with limited resources.
Other than that... no. There is no good free VPS hoster, outside of
persuading somebody to host for you, which is incredibly unlikely.
| 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

@@ -18,7 +18,7 @@ Welcome to Red - Discord Bot's documentation!
update_red
about_venv
autostart_systemd
autostart_pm2
autostart_mac
.. toctree::
:maxdepth: 2
@@ -26,18 +26,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::
@@ -47,6 +63,7 @@ Welcome to Red - Discord Bot's documentation!
guide_migration
guide_cog_creation
guide_publish_cogs
guide_cog_creators
framework_apikeys
framework_bank
framework_bot

View File

@@ -8,7 +8,7 @@ Installing Red on Linux or Mac
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>`_.
<https://www.digitalocean.com/community/tutorials/how-to-create-a-new-sudo-enabled-user-on-ubuntu-20-04-quickstart>`_.
-------------------------------
Installing the pre-requirements
@@ -17,13 +17,12 @@ 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!**
- Python 3.8.1 or greater
- 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.
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.
*****************
@@ -41,9 +40,9 @@ Operating systems
Arch Linux
~~~~~~~~~~
.. code-block:: none
.. prompt:: bash
sudo pacman -Syu python python-pip git jre11-openjdk-headless base-devel
sudo pacman -Syu python python-pip git jre11-openjdk-headless base-devel nano
Continue by `creating-venv-linux`.
@@ -56,10 +55,10 @@ Continue by `creating-venv-linux`.
CentOS and RHEL 7
~~~~~~~~~~~~~~~~~
.. code-block:: none
.. 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
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
@@ -67,12 +66,12 @@ CentOS and RHEL 7
In order to install Git 2.11 or greater, we recommend adding the IUS repository:
.. code-block:: none
.. 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>`.
Complete the rest of the installation by `installing Python 3.9 with pyenv <install-python-pyenv>`.
----
@@ -83,34 +82,52 @@ Complete the rest of the installation by `installing Python 3.8 with pyenv <inst
CentOS and RHEL 8
~~~~~~~~~~~~~~~~~
.. code-block:: none
.. 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
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>`.
Complete the rest of the installation by `installing Python 3.9 with pyenv <install-python-pyenv>`.
----
.. _install-debian:
.. _install-raspbian:
~~~~~~~~~~~~~~~~~~~~~~~~~~
Debian and Raspbian Buster
~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Debian 10 Buster and Raspberry Pi OS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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:
.. code-block:: none
.. 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
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>`.
Complete the rest of the installation by `installing Python 3.9 with pyenv <install-python-pyenv>`.
---
.. _install-debian11:
~~~~~~~~~~~~~~~~~~~~
Debian 11 Bullseye
~~~~~~~~~~~~~~~~~~~~
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
Continue by `creating-venv-linux`.
----
@@ -120,12 +137,12 @@ Complete the rest of the installation by `installing Python 3.8 with pyenv <inst
Fedora Linux
~~~~~~~~~~~~
Fedora Linux 31 and above has all required packages available in official repositories. Install
Fedora Linux 33 and above has all required packages available in official repositories. Install
them with dnf:
.. code-block:: none
.. prompt:: bash
sudo dnf -y install python38 git java-11-openjdk-headless @development-tools
sudo dnf -y install python39 git java-11-openjdk-headless @development-tools nano
Continue by `creating-venv-linux`.
@@ -140,20 +157,20 @@ Mac
Install Brew: in Finder or Spotlight, search for and open *Terminal*. In the terminal, paste the
following, then press Enter:
.. code-block:: none
.. 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:
.. code-block:: none
.. prompt:: bash
brew install python@3.8
echo 'export PATH="/usr/local/opt/python@3.8/bin:$PATH"' >> ~/.profile
brew install python@3.9
echo 'export PATH="$(brew --prefix)/opt/python@3.9/bin:$PATH"' >> ~/.profile
source ~/.profile
brew install git
brew cask install adoptopenjdk/openjdk/adoptopenjdk11
brew install --cask adoptopenjdk/openjdk/adoptopenjdk11
Continue by `creating-venv-linux`.
@@ -165,15 +182,15 @@ Continue by `creating-venv-linux`.
openSUSE
~~~~~~~~
openSUSE Leap 15.1+
openSUSE Leap 15.2+
*******************
We recommend installing a community package to get Python 3.8 on openSUSE Leap 15.1+. This package will
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:
.. code-block:: none
.. 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
@@ -181,24 +198,29 @@ First, add the Opt-Python community repository:
Now install the pre-requirements with zypper:
.. code-block:: none
.. prompt:: bash
sudo zypper -n install opt-python38 opt-python38-setuptools git-core java-11-openjdk-headless
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:
.. code-block:: none
.. 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:
Now, bootstrap pip with ensurepip:
.. code-block:: none
.. prompt:: bash
sudo /opt/python/bin/easy_install-3.8 pip
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.
Continue by `creating-venv-linux`.
@@ -208,51 +230,15 @@ openSUSE Tumbleweed
openSUSE Tumbleweed has all required dependencies available in official repositories. Install them
with zypper:
.. code-block:: none
.. prompt:: bash
sudo zypper -n install python3-base python3-pip git-core java-11-openjdk-headless
sudo zypper -n install python39-base python39-pip git-core java-11-openjdk-headless nano
sudo zypper -n install -t pattern devel_basis
Continue by `creating-venv-linux`.
----
.. _install-ubuntu-1604:
~~~~~~~~~~~~~~~~
Ubuntu 16.04 LTS
~~~~~~~~~~~~~~~~
We recommend adding the ``openjdk-r`` ppa to install Java 11:
.. code-block:: none
sudo apt update
sudo apt -y install software-properties-common
sudo add-apt-repository -yu ppa:openjdk-r/ppa
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. code-block:: none
sudo add-apt-repository -yu ppa:git-core/ppa
We recommend adding the ``deadsnakes`` ppa to install Python 3.8.1 or greater:
.. code-block:: none
sudo add-apt-repository -yu ppa:deadsnakes/ppa
Now install the pre-requirements with apt:
.. code-block:: none
sudo apt -y install python3.8 python3.8-dev python3.8-venv python3-pip git openjdk-11-jre-headless build-essential
Continue by `creating-venv-linux`.
----
.. _install-ubuntu-1804:
~~~~~~~~~~~~~~~~
@@ -261,23 +247,23 @@ Ubuntu 18.04 LTS
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. code-block:: none
.. 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:
We recommend adding the ``deadsnakes`` ppa to install Python 3.9:
.. code-block:: none
.. prompt:: bash
sudo add-apt-repository -y ppa:deadsnakes/ppa
Now install the pre-requirements with apt:
.. code-block:: none
.. prompt:: bash
sudo apt -y install python3.8 python3.8-dev python3.8-venv python3-pip git openjdk-11-jre-headless build-essential
sudo apt -y install python3.9 python3.9-dev python3.9-venv python3-pip git openjdk-11-jre-headless build-essential nano
Continue by `creating-venv-linux`.
@@ -291,7 +277,7 @@ Ubuntu 20.04 LTS
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. code-block:: none
.. prompt:: bash
sudo apt update
sudo apt -y install software-properties-common
@@ -299,9 +285,9 @@ We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
Now install the pre-requirements with apt:
.. code-block:: none
.. prompt:: bash
sudo apt -y install python3.8 python3.8-dev python3.8-venv python3-pip git openjdk-11-jre-headless build-essential
sudo apt -y install python3.9 python3.9-dev python3.9-venv python3-pip git openjdk-11-jre-headless build-essential nano
Continue by `creating-venv-linux`.
@@ -315,7 +301,7 @@ Ubuntu non-LTS versions
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. code-block:: none
.. prompt:: bash
sudo apt update
sudo apt -y install software-properties-common
@@ -324,12 +310,12 @@ We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
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:
.. code-block:: none
.. 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
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>`.
And then complete the rest of the installation by `installing Python 3.9 with pyenv <install-python-pyenv>`.
----
@@ -344,11 +330,11 @@ Installing Python with pyenv
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.
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.
.. code-block:: none
.. prompt:: bash
command -v pyenv && pyenv update || curl https://pyenv.run | bash
@@ -357,9 +343,9 @@ instructions given to fix that, then close and reopen your shell.**
Then run the following command:
.. code-block:: none
.. prompt:: bash
CONFIGURE_OPTS=--enable-optimizations pyenv install 3.8.6 -v
CONFIGURE_OPTS=--enable-optimizations pyenv install 3.9.7 -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
@@ -369,11 +355,11 @@ slower.
After that is finished, run:
.. code-block:: none
.. prompt:: bash
pyenv global 3.8.6
pyenv global 3.9.7
Pyenv is now installed and your system should be configured to run Python 3.8.
Pyenv is now installed and your system should be configured to run Python 3.9.
Continue by `creating-venv-linux`.
@@ -409,11 +395,15 @@ First, choose a directory where you would like to create your virtual environmen
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::
Create your virtual environment with the following command:
python3.8 -m venv ~/redenv
.. prompt:: bash
And activate it with the following command::
python3.9 -m venv ~/redenv
And activate it with the following command:
.. prompt:: bash
source ~/redenv/bin/activate
@@ -435,18 +425,24 @@ 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::
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::
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::
Now activate your virtualenv with the following command:
.. prompt:: bash
pyenv shell <name>
@@ -470,17 +466,19 @@ Choose one of the following commands to install Red.
To install without additional config backend support:
.. code-block:: none
.. 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:
.. code-block:: none
.. prompt:: bash
:prompts: (redenv) $
python -m pip install -U pip setuptools wheel
python -m pip install -U Red-DiscordBot[postgres]
python -m pip install -U "Red-DiscordBot[postgres]"
.. note::
@@ -493,7 +491,8 @@ Setting Up and Running Red
After installation, set up your instance with the following command:
.. code-block:: none
.. prompt:: bash
:prompts: (redenv) $
redbot-setup
@@ -503,7 +502,8 @@ running the bot).
Once done setting up the instance, run the following command to run Red:
.. code-block:: none
.. prompt:: bash
:prompts: (redenv) $
redbot <your instance name>

View File

@@ -11,7 +11,7 @@ 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!**
- Python 3.8.1 or greater
- Pip 18.1 or greater
- Git 2.11+
- Java Runtime Environment 11 (for audio support)
@@ -33,18 +33,18 @@ right-click on it and then click "Run as administrator".
Then run each of the following commands:
.. code-block:: none
.. prompt:: powershell
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
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.6
choco upgrade python3 -y --version 3.9.7
For Audio support, you should also run the following command before exiting:
.. code-block:: none
.. prompt:: powershell
choco upgrade adoptopenjdk11jre -y
@@ -64,7 +64,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 or greater <https://www.python.org/downloads/>`_
.. 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.
@@ -109,13 +109,13 @@ Start with opening a command prompt (open Start, search for "command prompt", th
Then create your virtual environment with the following command
.. code-block:: none
.. prompt:: batch
py -3.8 -m venv "%userprofile%\redenv"
py -3.9 -m venv "%userprofile%\redenv"
And activate it with the following command
.. code-block:: none
.. prompt:: batch
"%userprofile%\redenv\Scripts\activate.bat"
@@ -138,14 +138,16 @@ Run **one** of the following set of commands, depending on what extras you want
* Normal installation:
.. code-block:: none
.. prompt:: batch
:prompts: (redenv) C:\\>
python -m pip install -U pip setuptools wheel
python -m pip install -U Red-DiscordBot
* With PostgreSQL support:
.. code-block:: none
.. prompt:: batch
:prompts: (redenv) C:\\>
python -m pip install -U pip setuptools wheel
python -m pip install -U Red-DiscordBot[postgres]
@@ -156,7 +158,8 @@ Setting Up and Running Red
After installation, set up your instance with the following command:
.. code-block:: none
.. prompt:: batch
:prompts: (redenv) C:\\>
redbot-setup
@@ -166,7 +169,8 @@ running the bot).
Once done setting up the instance, run the following command to run Red:
.. code-block:: none
.. prompt:: batch
:prompts: (redenv) C:\\>
redbot <your instance name>

137
docs/intents.rst Normal file
View File

@@ -0,0 +1,137 @@
.. _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 <https://gist.github.com/spiralw/091714718718379b6efcdbcaf807a024#q-what-usecases-will-be-valid>`_
what those even entail 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 <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>`_
that they will want your bot to have slash commands when you ask for message intent. |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

@@ -37,13 +37,14 @@ If you have Red 3.2.0 or newer, you can upgrade by following these 4 easy steps:
2. Activate your venv with the following command:
.. code:: none
.. prompt:: batch
"%userprofile%\redenv\Scripts\activate.bat"
3. Update Red with this command:
.. code:: none
.. prompt:: batch
:prompts: (redenv) C:\\>
python -m pip install -U Red-DiscordBot
@@ -53,6 +54,8 @@ If you have Red 3.2.0 or newer, you can upgrade by following these 4 easy steps:
4. Start your bot.
5. If you have any 3rd-party cogs installed, we highly recommend you update them with this command in Discord: ``[p]cog update`` (``[p]`` is considered as your prefix)
Linux & Mac
-----------
@@ -64,19 +67,20 @@ If you have Red 3.2.0 or newer, you can upgrade by following these 4 easy steps:
If you used ``venv`` for your virtual environment, use:
.. code:: none
.. prompt:: bash
source ~/redenv/bin/activate
If you used ``pyenv`` for your virtual environment, use:
.. code:: none
.. prompt:: bash
pyenv shell <name>
3. Update Red with this command:
.. code:: none
.. prompt:: bash
:prompts: (redenv) $
python -m pip install -U Red-DiscordBot
@@ -86,6 +90,8 @@ If you have Red 3.2.0 or newer, you can upgrade by following these 4 easy steps:
4. Start your bot.
5. If you have any 3rd-party cogs installed, we highly recommend you update them with this command in Discord: ``[p]cog update`` (``[p]`` is considered as your prefix)
Red 3.1.X
*********
@@ -107,7 +113,8 @@ Follow every step to ensure you have all dependencies up-to-date and only skip `
- If you were using the MongoDB driver, **prior to launching your instance after update**,
you will need to run the following commands to convert:
.. code::
.. prompt:: bash
:prompts: (redenv) $
python -m pip install dnspython~=1.16.0 motor~=2.0.0 pymongo~=3.8.0
redbot-setup convert [instancename] json
@@ -125,7 +132,8 @@ Red 3.0.2 and older
- If you were using the MongoDB driver, **prior to updating**, you will need to convert your data to JSON backend,
using following command:
.. code::
.. prompt:: bash
:prompts: (redenv) $
redbot-setup --edit

View File

@@ -2,31 +2,38 @@
if [%1] == [] goto help
REM This allows us to expand variables at execution
setlocal ENABLEDELAYEDEXPANSION
if exist "%~dp0.venv\" (
set "VENV_PYTHON=%~dp0.venv\Scripts\python"
) else (
set VENV_PYTHON=python
)
goto %1
:reformat
black "%~dp0."
exit /B %ERRORLEVEL%
"%VENV_PYTHON%" -m black "%~dp0."
goto:eof
:stylecheck
black --check "%~dp0."
exit /B %ERRORLEVEL%
"%VENV_PYTHON%" -m black --check "%~dp0."
goto:eof
:stylediff
black --check --diff "%~dp0."
exit /B %ERRORLEVEL%
"%VENV_PYTHON%" -m black --check --diff "%~dp0."
goto:eof
:newenv
py -3.8 -m venv --clear .venv
.\.venv\Scripts\python -m pip install -U pip setuptools wheel
"%~dp0.venv\Scripts\python" -m pip install -U pip setuptools wheel
goto syncenv
:syncenv
.\.venv\Scripts\python -m pip install -Ur .\tools\dev-requirements.txt
exit /B %ERRORLEVEL%
"%~dp0.venv\Scripts\python" -m pip install -Ur .\tools\dev-requirements.txt
goto:eof
:activateenv
CALL "%~dp0.venv\Scripts\activate.bat"
goto:eof
:help
echo Usage:
@@ -35,6 +42,9 @@ echo.
echo Commands:
echo reformat Reformat all .py files being tracked by git.
echo stylecheck Check which tracked .py files need reformatting.
echo stylediff Show the post-reformat diff of the tracked .py files
echo without modifying them.
echo newenv Create or replace this project's virtual environment.
echo syncenv Sync this project's virtual environment to Red's latest
echo dependencies.
echo activateenv Activates project's virtual environment.

97
make.ps1 Normal file
View File

@@ -0,0 +1,97 @@
<#
.Synopsis
Makefile script in PowerShell that contains commands useful during development for Red.
.Description
Available commands:
reformat Reformat all .py files being tracked by git.
stylecheck Check which tracked .py files need reformatting.
stylediff Show the post-reformat diff of the tracked .py files
without modifying them.
newenv Create or replace this project's virtual environment.
syncenv Sync this project's virtual environment to Red's latest
dependencies.
activateenv Activates project's virtual environment.
.Parameter Command
Command to execute. See Cmdlet's description for more information.
#>
# I'm too dumb for PowerShell, so $script:availableCommands needs to be defined in 2 places // Jack
[CmdletBinding()]
param (
[Parameter(Mandatory=$false)]
[ArgumentCompleter({
param (
$commandName,
$parameterName,
$wordToComplete,
$commandAst,
$fakeBoundParameters
)
$script:availableCommands = @("reformat", "stylecheck", "stylediff", "newenv", "syncenv", "activateenv")
return $script:availableCommands | Where-Object { $_ -like "$wordToComplete*" }
})]
[String]
$command,
[switch]
$help = $false
)
function reformat() {
& $script:venvPython -m black $PSScriptRoot
}
function stylecheck() {
& $script:venvPython -m black --check $PSScriptRoot
Exit $LASTEXITCODE
}
function stylediff() {
& $script:venvPython -m black --check --diff $PSScriptRoot
Exit $LASTEXITCODE
}
function newenv() {
py -3.8 -m venv --clear .venv
& $PSScriptRoot\.venv\Scripts\python.exe -m pip install -U pip setuptools
syncenv
}
function syncenv() {
& $PSScriptRoot\.venv\Scripts\python.exe -m pip install -Ur .\tools\dev-requirements.txt
}
function activateenv() {
& $PSScriptRoot\.venv\Scripts\Activate.ps1
}
$script:availableCommands = @("reformat", "stylecheck", "stylediff", "newenv", "syncenv", "activateenv")
if (Test-Path -LiteralPath "$PSScriptRoot\.venv" -PathType Container) {
$script:venvPython = "$PSScriptRoot\.venv\Scripts\python.exe"
} else {
$script:venvPython = "python"
}
if ($help -or !$command) {
Get-Help $MyInvocation.InvocationName
exit
}
switch ($command) {
{$script:availableCommands -contains $_} {
& $command
break
}
default {
Write-Host (
"""$command"" is not a valid command.",
"To see available commands, type: ""$($MyInvocation.InvocationName) -help"""
)
break
}
}

View File

@@ -1,23 +1,14 @@
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[tool.black]
line-length = 99
target-version = ['py38']
include = '\.py$'
exclude = '''
force-exclude = '''
/(
\.eggs
| \.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| _build
| buck-out
| build
| dist
| redbot\/vendored
redbot\/vendored
)/
'''
[tool.pytest.ini_options]
minversion = "6.0"
addopts = "--import-mode=importlib"

View File

@@ -191,7 +191,30 @@ def _update_event_loop_policy():
_asyncio.set_event_loop_policy(_uvloop.EventLoopPolicy())
__version__ = "3.4.3"
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.13"
version_info = VersionInfo.from_str(__version__)
# Filter fuzzywuzzy slow sequence matcher warning
@@ -204,12 +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: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
# def noop(*args, **kwargs): # type: ignore
_warnings.filterwarnings("ignore", category=DeprecationWarning, module="aiohttp", lineno=107)
# DeprecationWarning: The loop argument is deprecated since Python 3.8, and scheduled for removal in Python 3.10.
# hosts = await asyncio.shield(self._resolve_host(..
_warnings.filterwarnings("ignore", category=DeprecationWarning, module="aiohttp", lineno=964)
# DeprecationWarning: The loop argument is deprecated since Python 3.8, and scheduled for removal in Python 3.10.
# self._event = asyncio.Event(loop=loop)
_warnings.filterwarnings("ignore", category=DeprecationWarning, module="aiohttp", lineno=21)
# 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"
@@ -181,7 +181,7 @@ async def _edit_prefix(red, prefix, no_prompt):
async def _edit_owner(red, owner, no_prompt):
if owner:
if not (15 <= len(str(owner)) <= 21):
if not (15 <= len(str(owner)) <= 20):
print(
"The provided owner id doesn't look like a valid Discord user id."
" Instance's owner will remain unchanged."
@@ -199,7 +199,7 @@ async def _edit_owner(red, owner, no_prompt):
print("Please enter a Discord user id for new owner:")
while True:
owner_id = input("> ").strip()
if not (15 <= len(owner_id) <= 21 and owner_id.isdecimal()):
if not (15 <= len(owner_id) <= 20 and owner_id.isdecimal()):
print("That doesn't look like a valid Discord user id.")
continue
owner_id = int(owner_id)
@@ -335,7 +335,9 @@ async def run_bot(red: Red, cli_flags: Namespace) -> None:
await driver_cls.initialize(**data_manager.storage_details())
redbot.logging.init_logging(
level=cli_flags.logging_level, location=data_manager.core_data_path() / "logs"
level=cli_flags.logging_level,
location=data_manager.core_data_path() / "logs",
cli_flags=cli_flags,
)
log.debug("====Basic Config====")
@@ -393,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)
@@ -432,7 +436,7 @@ async def shutdown_handler(red, signal_type=None, exit_code=None):
red._shutdown_mode = exit_code
try:
await red.logout()
await red.close()
finally:
# Then cancels all outstanding tasks other than ourselves
pending = [t for t in asyncio.all_tasks() if t is not asyncio.current_task()]
@@ -444,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

@@ -56,7 +56,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 +70,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)
@@ -391,12 +393,20 @@ class Admin(commands.Cog):
return valid_roles
@commands.guild_only()
@commands.group()
async def selfrole(self, ctx: commands.Context):
"""Apply selfroles."""
pass
@commands.group(invoke_without_command=True)
async def selfrole(self, ctx: commands.Context, *, selfrole: SelfRole):
"""
Add or remove a selfrole from yourself.
@selfrole.command(name="add")
Server admins must have configured the role as user settable.
NOTE: The role is case sensitive!
"""
if selfrole in ctx.author.roles:
return await self._removerole(ctx, ctx.author, selfrole, check_user=False)
else:
return await self._addrole(ctx, ctx.author, selfrole, check_user=False)
@selfrole.command(name="add", hidden=True)
async def selfrole_add(self, ctx: commands.Context, *, selfrole: SelfRole):
"""
Add a selfrole to yourself.
@@ -407,7 +417,7 @@ class Admin(commands.Cog):
# noinspection PyTypeChecker
await self._addrole(ctx, ctx.author, selfrole, check_user=False)
@selfrole.command(name="remove")
@selfrole.command(name="remove", hidden=True)
async def selfrole_remove(self, ctx: commands.Context, *, selfrole: SelfRole):
"""
Remove a selfrole from yourself.
@@ -440,45 +450,64 @@ 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)
@commands.command()
@checks.is_owner()
@@ -496,6 +525,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,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Afrikaans\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -44,7 +44,7 @@ msgid "I can not let you edit {role.name} because that role is higher than or eq
msgstr ""
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
@@ -56,161 +56,214 @@ msgstr ""
msgid "A collection of server administration utilities."
msgstr ""
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr ""
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr ""
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr ""
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr ""
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr ""
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr ""
@@ -226,7 +279,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,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -21,30 +21,30 @@ msgstr "حاولت القيام بشيء لا أملك تصريح من ديسك
#: redbot/cogs/admin/admin.py:23
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 ""
msgstr "لا يمكنني إعطاء {role.name} إلى {member.display_name} لأن هذا الرتبة أعلى من أو يساوي أعلى رتبةي في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:29
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 ""
msgstr "لا يمكنني إزالة {role.name} من {member.display_name} لأن هذا الرتبة أعلى من أو يساوي أعلى رتبةي في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:35
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
msgstr "لا يمكنني تحرير {role.name} لأن هذا الرتبة أعلى من رتبةي أو يساوي أعلى رتبة في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:41
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 ""
msgstr "لا يمكنني السماح لك بإعطاء {role.name} لـ {member.display_name} لأن هذا الرتبة أعلى من أو يساوي أعلى رتبةك في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:47
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 ""
msgstr "لا يمكنني السماح لك بإزالة {role.name} من {member.display_name} لأن هذا الرتبة أعلى من أو يساوي أعلى رتبةك في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:53
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 ""
msgstr "لا يمكنني السماح لك بتحرير {role.name} لأن هذا الرتبة أعلى من أو يساوي أعلى رتبةك في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
@@ -56,177 +56,254 @@ msgstr "أنا بالفعل أُعلن شيئاً. إذا كنت ترغب في
msgid "A collection of server administration utilities."
msgstr "مجموعة من أدوات إدارة السيرفر."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "{member.display_name} بالفعل يملك الرتبة {role.name}."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
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:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
msgstr "{member.display_name} ليس له الرتبة {role.name}."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
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:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" إضافة رتبة إلى مستخدم.\n\n"
" استخدام علامات اقتباس مزدوجة إذا كان الرتبة يحتوي على مسافات.\n"
" إذا ترك المستخدم فارغاً فإنه افتراضياً لمؤلف الأمر.\n"
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" إزالة رتبة من مستخدم.\n\n"
" استخدام علامات اقتباس مزدوجة إذا كان الرتبة يحتوي على مسافات.\n"
" إذا ترك المستخدم فارغاً فإنه افتراضياً لمؤلف الأمر.\n"
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr "تعديل إعدادات الرتبة."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr ""
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr "\n"
" تحرير لون رتبة.\n\n"
" استخدام علامات اقتباس مزدوجة إذا كان الرتبة يحتوي على مسافات.\n"
" يجب أن يكون اللون بتنسيق سداسي عشري.\n"
" [منتقي الألوان عبر الإنترنت](http://www.w3schools.com/colors/colors_picker.asp)\n\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:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr "تم."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr ""
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr "\n"
" تحرير اسم رتبة.\n\n"
" استخدام علامات اقتباس مزدوجة إذا كان الرتبة أو الاسم يحتويعلى مسافات.\n\n"
" المثال:\n"
" '[p]اسم تحرير \"The Transistor\" Test'\n"
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr "الإعلان عن رسالة إلى جميع السيرفرات المتواجد بها البوت."
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr "تم البدء في الإعلان."
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr "إلغاء إعلان جارٍ."
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
msgstr "لا يوجد إعلان قيد التشغيل حالياً."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr "تم إلغاء الإعلان الحالي."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
msgstr "تغيير كيفية إرسال الإعلانات في هذه النقابة."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr "تم تحديث قناة الإعلانات إلى {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" إضافة رتبة ذاتي لنفسك.\n\n"
" يجب أن يكون مسؤولو الخادم قد قاموا بتكوين الرتبة كـ settable للمستخدم.\n"
" ملاحظة: الرتبة حساس للحالة!\n"
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgstr ""
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" إزالة رتبة ذاتي من نفسك.\n\n"
" يجب أن يكون مسؤولو الخادم قد قاموا بتكوين الرتبة كـ settable للمستخدم.\n"
" ملاحظة: الرتبة حساس للحالة!\n"
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
msgstr ""
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr "\n"
" يسرد كافة الرتب الذاتية المتوفرة.\n"
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr "الرتب الذاتية المتوفرة:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
msgstr "تطبيق الرتبالذاتية."
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "لا يمكنني السماح لك بإضافة {role.name} لرتبة ذاتي لأن هذا الرتبة أعلى من أو يساوي أعلى رتبةك في التسلسل الهرمي لـ Discord."
#: redbot/cogs/admin/admin.py:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr "قفل البوت للسيرفر الحالي فقط."
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr "لم يعد البوت مقفول للسيرفر الحالي فقط."
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr "لقد تم قفل البوت للسيرفر الحالي فقط."
#: redbot/cogs/admin/announcer.py:68
msgid "I could not announce to the following server: "
msgstr ""
msgstr "لم أستطع أن أعلن للخوادم التالية:"
#: redbot/cogs/admin/announcer.py:70
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "لم أستطع أن أعلن للخوادم التالية:"
#: redbot/cogs/admin/converters.py:12
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,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -17,216 +17,277 @@ msgstr ""
#: redbot/cogs/admin/admin.py:18
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr ""
msgstr "Опитах да направя нещо, за което Discord ми забрани права. Команда не успя да завърши успешно."
#: redbot/cogs/admin/admin.py:23
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 ""
msgstr "Не мога да премахна {role.name} на {member.display_name}, защото ролята е по-голяма или равна на моята най-висока роля в йерархията на Discord."
#: redbot/cogs/admin/admin.py:29
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 ""
msgstr "Не мога да махна {role.name} на {member.display_name}, защото ролята е по-голяма или равна на моята най-висока роля в йерархията на Discord."
#: redbot/cogs/admin/admin.py:35
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
msgstr "Не мога да редактирам {role.name}, защото ролята е по-голяма или равна на моята най-висока роля в йерархията на Discord."
#: redbot/cogs/admin/admin.py:41
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 ""
msgstr "Не мога да ти позволя да дадеш {role.name} на {member.display_name}, защото ролята е по-голяма или равна на най-високата ти роля в йерархията на Discord."
#: redbot/cogs/admin/admin.py:47
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 ""
msgstr "Не мога да ти позволя да махнеш {role.name} на {member.display_name}, защото ролята е по-голяма или равна на най-високата ти роля в йерархията на Discord."
#: redbot/cogs/admin/admin.py:53
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 ""
msgstr "Не мога да ти позволя да редактираш {role.name}, защото ролята е по-голяма или равна на най-високата ти роля в йерархията на Discord."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr ""
msgstr "Вече обявявам нещо. Ако искаш да направиш различно съобщение, моля използвай `{prefix}announce cancel` първо."
#: redbot/cogs/admin/admin.py:71
#, docstring
msgid "A collection of server administration utilities."
msgstr ""
msgstr "Колекция от помощни програми за администриране на сървъри."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "{member.display_name} вече има ролята {role.name}."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
msgstr "Успешно добавих {role.name} на {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
msgstr "{member.display_name} няма ролята {role.name}."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
msgstr "Успешно махнах {role.name} от {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Добави роля на потребител.\n\n"
" Използвай двойни кавички, ако ролята съдържа място.\n"
" Ако потребител е празно, то по подразбиране е автора на командата.\n"
" "
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Махни роля на потребител.\n\n"
" Използвай двойни кавички, ако ролята съдържа място.\n"
" Ако потребител е празно, то по подразбиране е автора на командата.\n"
" "
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr ""
msgstr "Редактирай настройките на ролята."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr "Завършено."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr ""
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr ""
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
msgstr "Заключете бота само за текущите му сървъри."
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr ""
msgstr "Ботът вече не е заключен за сървъри."
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr ""
msgstr "Ботът е заключен за сървъри."
#: redbot/cogs/admin/announcer.py:68
msgid "I could not announce to the following server: "
msgstr ""
msgstr "Не можах да обявя в следния сървър: "
#: redbot/cogs/admin/announcer.py:70
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "Не можах да обявя в следните сървъри: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Admin cog не беше зареден."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Bosnian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -44,7 +44,7 @@ msgid "I can not let you edit {role.name} because that role is higher than or eq
msgstr ""
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
@@ -56,161 +56,214 @@ msgstr ""
msgid "A collection of server administration utilities."
msgstr ""
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr ""
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr ""
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr ""
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr ""
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr ""
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr ""
@@ -226,7 +279,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,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -17,216 +17,308 @@ msgstr ""
#: redbot/cogs/admin/admin.py:18
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr ""
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
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 ""
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
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 ""
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
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
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
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 ""
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
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 ""
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
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 ""
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."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr ""
msgstr "Ja estic anunciant alguna cosa. Si voleu fer un anunci diferent, primer utilitzeu `{prefix}announce cancel`."
#: redbot/cogs/admin/admin.py:71
#, docstring
msgid "A collection of server administration utilities."
msgstr ""
msgstr "Una col·lecció dutilitats dadministració de servidors."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "{member.display_name} ja té el rol {role.name}."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
msgstr "He afegit amb èxit {role.name} a {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
msgstr "{member.display_name} no té el rol {role.name}."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
msgstr "He tret amb èxit {role.name} a {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Afegir un rol a un usuari.\n\n"
" Fer servir cometes si el rol té espais.\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:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Treu un rol d'un usuari.\n\n"
" Fer servir cometes si el rol té espais.\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:255
#, docstring
msgid "Edit role settings."
msgstr ""
msgstr "Editar la configuració del rol."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr ""
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr "\n"
" Editar el color d'un rol.\n\n"
" Fes servir cometes dobles si el rol té espais.\n"
" El color ha d'estar en format hexadecimal.\n"
" [Selector de color en línia](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Exemples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr ""
msgstr "Fet."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr ""
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr "\n"
" Editar el nom d'un rol.\n\n"
" Fes servir cometes dobles si el rol o el nom té espais.\n\n"
" Exemple:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
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:336
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#, docstring
msgid "Cancel a running announce."
msgstr ""
msgstr "Lanunci ha començat."
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr "Cancel·lar un anunci en curs."
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
msgstr "Actualment no hi ha cap anunci en curs."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr ""
msgstr "L'anunci actual s'ha cancel·lat."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
msgstr "Canvia com senvien els anuncis en aquest servidor."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgstr ""
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr "\n"
" Canvieu el canal on el bot enviarà anuncis.\n\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:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
msgstr "El canal d'anuncis s'ha establert a {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
msgstr "Treu el canal per als anuncis."
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgstr ""
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Afegeix o treu un rol a tu mateix.\n\n"
" Els administradors del servidor han d'haver configurat la funció com a configurable per l'usuari.\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Afegeix un rol a tu mateix.\n\n"
" Els administradors del servidor han d'haver configurat la funció com a configurable per l'usuari.\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgstr ""
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Treu un rol de tu mateix.\n\n"
" Els administradors del servidor han d'haver configurat la funció com a configurable per l'usuari.\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
msgstr ""
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr "\n"
" Llista tots els selfrols disponibles.\n"
" "
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr "Selfroles disponibles:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
msgstr "Gestiona selfroles."
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
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:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
msgstr "Bloqueja el bot només als seus servidors actuals."
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr ""
msgstr "El bot ja no està bloquejat pel servidor."
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr ""
msgstr "El bot està ara bloquejat pel servidor."
#: redbot/cogs/admin/announcer.py:68
msgid "I could not announce to the following server: "
msgstr ""
msgstr "No he pogut anunciar al servidor següent: "
#: redbot/cogs/admin/announcer.py:70
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "No he pogut anunciar als servidor següents: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "El cog Admin no s'ha carregat."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -44,8 +44,8 @@ msgid "I can not let you edit {role.name} because that role is higher than or eq
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."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
@@ -56,161 +56,249 @@ msgstr "Už něco oznamuji. Pokud bys rád provedl jiné oznámení, nejdříve
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:164
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:184
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:194
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:214
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:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr "\\n Přidá roli uživateli.\\n\\n Pokud role obsahuje mezery, použijte dvojí uvozovky.\\n Ponecháte-li uživatel prázdný, výchozí hodnota autorovi příkazu.\\n "
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Přidá roli uživateli.\n\n"
" Pokud role obsahuje mezery, použijte dvojí uvozovky.\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:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr "\\n Odebrat roli uživateli.\\n\\n Pokud role obsahuje mezery, použijte dvojí uvozovky.\\n Ponecháte-li uživatel prázdný, výchozí hodnota autorovi příkazu.\\n "
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Odebrat roli uživateli.\n\n"
" Pokud role obsahuje mezery, použijte dvojí uvozovky.\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:255
#, docstring
msgid "Edit role settings."
msgstr "Upraví nastavení role."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr "\\n Upravit barvu role.\\n\\n Pokud role obsahuje mezery, použij dvojité uvozovky.\\n Barva musí být v hexadecimálním formátu.\\n [Výběr barev online](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Příklady:\\n `[p]editrole colour \\\"Spravce\\\" #ff0000`\\n `[p]editrole colour Spravce #ff9900`\\n "
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr "\n"
" Upravit barvu role.\n\n"
" Pokud role obsahuje mezery, použij dvojité uvozovky.\n"
" Barva musí být v hexadecimálním formátu.\n"
" [Výběr barev online](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Příklady:\n"
" `[p]editrole colour \"Spravce\" #ff0000`\n"
" `[p]editrole colour Spravce #ff9900`\n"
" "
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr "Hotovo."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr "\\n Upraví název role\\n\\n Použijte dvojité uvozovky, pokud role nebo název obsahuje mezery.\\n\\n Příklady:\\n `[p]editrole name \\\"Spravce\\\" Admin`\\n "
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr "\n"
" Upraví název role\n\n"
" Použijte dvojité uvozovky, pokud role nebo název obsahuje mezery.\n\n"
" Příklady:\n"
" `[p]editrole name \"Spravce\" Admin`\n"
" "
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, 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:336
msgid "The announcement has begun."
msgstr "Oznámení začalo."
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr "Zrušit běžící oznámení."
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
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:348
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:354
#, 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:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgstr ""
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr "\n"
" Změnit kanál, kam bot bude posílat oznámení.\n\n"
" Pokud je kanál prázdný, nastaví aktuální kanál.\n"
" "
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
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:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr "Zruší kanál pro oznámení."
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "Apply selfroles."
msgstr "Aplikovat self-role."
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Přidá vám self-roli.\n\n"
" Administrátoři serveru musí mít nastavenou roli podle nastaveného uživatele.\n"
" POZNÁMKA: Role je citlivá na malá a velká písmena!\n"
" "
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Přidá vám self-roli.\\n\\n Administrátoři serveru musí mít nastavenou roli podle nastaveného uživatele.\\n POZNÁMKA: Role je citlivá na malá a velká písmena!\\n "
#: redbot/cogs/admin/admin.py:412
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Odstraní vámself-roli.\\n\\n Administrátoři serveru musí mít nastavenou roli podle nastaveného uživatele.\\n POZNÁMKA: Role je citlivá na malá a velká písmena!\\n "
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgstr "\\n Seznam všech dostupných self-rolí.\\n "
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Odstraní vámself-roli.\n\n"
" Administrátoři serveru musí mít nastavenou roli podle nastaveného uživatele.\n"
" POZNÁMKA: Role je citlivá na malá a velká písmena!\n"
" "
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
msgstr "Dostupné vlastní role:\\n{selfroles}"
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr "\n"
" Seznam všech dostupných self-rolí.\n"
" "
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr "Dostupné self-role:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr "Spravovat self-role."
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role 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 "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr "Přidáno."
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr "Tato role je již self-rolí."
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role 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 "
#: redbot/cogs/admin/admin.py:473
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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:481
msgid "Removed."
msgstr "Odstraněno."
#: redbot/cogs/admin/admin.py:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr "Uzamkne bota pouze na jeho aktuální servery."
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr "Bot již není uzamčen na server."
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr "Bot je nyní serverem uzamčen."
@@ -226,7 +314,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,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -17,216 +17,269 @@ msgstr ""
#: redbot/cogs/admin/admin.py:18
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr ""
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
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 ""
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
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 ""
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
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
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
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 ""
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
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 ""
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
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 ""
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."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr ""
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
#, docstring
msgid "A collection of server administration utilities."
msgstr ""
msgstr "En samling af server administrations værktøjer."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
msgstr "Jeg gennemførte tilføjelsen af {role.name} til {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
msgstr "Jeg gennemførte fjernelsen af {role.name} fra {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr ""
msgstr "Rediger rolle indstillinger."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr ""
msgstr "Færdig."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
msgstr "Annoncer en besked til alle serverne botten er i."
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#, docstring
msgid "Cancel a running announce."
msgstr ""
msgstr "Annonceringen er påbegyndt."
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr "Afbryd en kørende annonce."
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
msgstr "Der er i øjeblikket ikke nogen kørende annonceringer."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr ""
msgstr "Den nuværende annoncering er blevet afbrudt."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
msgstr "Ændre hvordan annonceringer er udsendt i denne server."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
msgstr "Annoncerings kanalen er blevet sat til {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
msgstr "Lås en bot til dens nuværende server."
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr ""
msgstr "Botten er ikke længere låst til serveren."
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr ""
msgstr "Botten er nu låst til serveren."
#: redbot/cogs/admin/announcer.py:68
msgid "I could not announce to the following server: "
msgstr ""
msgstr "Jeg kunne ikke annoncere til den følgende server: "
#: redbot/cogs/admin/announcer.py:70
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "Jeg kunne ikke annoncere til de følgende servere: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Admin cog er ikke indlæst."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: German\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -44,8 +44,8 @@ msgid "I can not let you edit {role.name} because that role is higher than or eq
msgstr "Du darfst nicht die Rolle „{role.name}“ bearbeiten, weil diese Rolle höher oder gleich deiner höchsten Rolle in der Discord Rollen-Hierarchie ist."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgstr "Ich braucht dafür die Bereichtigung „Rollen verwalten“."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr "Ich brauche dafür die Bereichtigung „Rollen verwalten“."
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
@@ -56,161 +56,253 @@ msgstr "Ich kündige bereits etwas an. Wenn du eine andere Ankündigung machen w
msgid "A collection of server administration utilities."
msgstr "Eine Sammlung von administrativen Server-Verwaltungsprogrammen."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr "{member.display_name} hat die Rolle „{role.name}“ bereits."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr "Ich habe {member.display_name} erfolgreich die Rolle „{role.name}“ gegeben."
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr "{member.display_name} hat nicht die Rolle „{role.name}“."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "Ich habe die Rolle „{role.name}“ erfolgreich von {member.display_name} entfernt."
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr "\\n Füge einem Mitglied eine Rolle hinzu.\\n\\n Benutze (amerikanische) Anführungszeichen, wenn im Namen Leerzeichen enthalten sind.\\n Wenn keine Person definiert wurde, wird die Rolle dem Ausführer des Befehls gegeben.\\n "
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Füge einem Mitglied eine Rolle hinzu.\n\n"
" Benutze (amerikanische) Anführungszeichen, wenn im Namen Leerzeichen enthalten sind.\n"
" Wenn keine Person definiert wurde, wird die Rolle dem Autor des Befehls gegeben.\n"
" "
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr "\\n Füge einem Mitglied eine Rolle hinzu.\\n\\n Benutze (amerikanische) Anführungszeichen, wenn im Namen Leerzeichen enthalten sind.\\n Wenn keine Person definiert wurde, wird die Rolle von dem Ausführer des Befehls entfernt.\\n "
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Füge einem Mitglied eine Rolle hinzu.\n\n"
" Benutze (amerikanische) Anführungszeichen, wenn im Namen Leerzeichen enthalten sind.\n"
" Wenn keine Person definiert wurde, wird die Rolle von dem Autor des Befehls entfernt.\n"
" "
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr "Rolleneinstellungen bearbeiten."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr "\\n Bearbeite die Farbe einer Rolle.\\n\\n Verwende (amerikanische) Anführungszeichen, wenn die Rolle Leerzeichen enthält.\\n Die Farbe muss im Hexadezimalformat angegeben werden.\\n [Online Farbwähler](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Beispiele:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr "\n"
" Bearbeite die Farbe einer Rolle.\n\n"
" Verwende (amerikanische) Anführungszeichen, wenn die Rolle Leerzeichen enthält.\n"
" Die Farbe muss im Hexadezimalformat angegeben werden.\n"
" [Online Farbwähler](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Beispiele:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr "Erledigt."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr "\\n Bearbeite den Namen einer Rolle.\\n\\n Verwende (amerikanische) Anführungszeichen, wenn die Rolle Leerzeichen enthält.\\n\\n Beispiel:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr "\n"
" Bearbeite den Namen einer Rolle.\n\n"
" Verwende (amerikanische) Anführungszeichen, wenn die Rolle Leerzeichen enthält.\n\n"
" Beispiel:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr "Mache eine Ankündigung auf allen Servern auf denen der Bot ist."
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr "Die Ankündigung hat begonnen."
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr "Breche eine laufende Ankündigung ab."
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr "Es gibt keine derzeit laufende Ankündigung."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr "Die aktuelle Ankündigung wurde abgebrochen."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr "Ändere, wie Ankündigungen in diesem Server gesendet werden."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgstr ""
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr "\n"
" Ändert den Kanal, in den der Bot Ankündigungen senden wird.\n\n"
" Wenn der Kanal freigelassen wird, wird es auf den aktuellen angewendet.\n"
" "
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr "{channel.mention} wurde nun als Ankündigungskanal festgelegt."
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
msgstr "Setzt den Kanal für Ankündigungen zurück."
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgstr "Selbst hinzufügbare Rollen anwenden."
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Entferne oder gib eine Rolle zu dir selbst.\n\n"
" Server Admins müssen die Rolle für Mitglieder freigeben.\n\n"
" HINWEIS: Beachte Groß- und Kleinschreibung!\n"
" "
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Gib dir selbst eine Rolle.\\n\\n Server Admins müssen die Rolle für Mitglieder freigeben.\\n\\n HINWEIS: Beachte Groß- und Kleinschreibung!\\n "
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Gib dir selbst eine Rolle.\n\n"
" Server Admins müssen die Rolle für Mitglieder freigeben.\n\n"
" HINWEIS: Beachte Groß- und Kleinschreibung!\n"
" "
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Entferne eine Rolle von dir selbst.\\n\\n Server Admins müssen die Rolle für Mitglieder freigeben.\\n\\n HINWEIS: Beachte Groß- und Kleinschreibung!\\n "
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgstr "\\nGibt eine Liste verfügbarer selbst auswählbarer Rollen aus.\\n "
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Entferne eine Rolle von dir selbst.\n\n"
" Server Admins müssen die Rolle für Mitglieder freigeben.\n\n"
" HINWEIS: Beachte Groß- und Kleinschreibung!\n"
" "
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
msgstr "Verfügbare selbst auswählbare Rollen:\\n{selfroles}"
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr "\n"
"Gibt eine Liste verfügbarer selbst auswählbarer Rollen aus.\n"
" "
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr "Verfügbare selbst auswählbare Rollen:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr "Selbst hinzufügbare Rollen verwalten."
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Füge eine Rolle zur Liste der selbst hinzufügbaren Rollen hinzu.\\n\\n HINWEIS: Beachte Groß- und Kleinschreibung!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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 "Du kannst dir nicht die Rolle „{role.name}“ zuweisen, weil diese Rolle höher oder gleich deiner höchsten Rolle in der Discord Rollen-Hierarchie ist."
#: redbot/cogs/admin/admin.py:459
msgid "Added."
msgstr "Hinzugefügt."
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr "Diese Rolle ist bereits selbst hinzufügbar."
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Entferne eine Rolle von der Liste der selbst hinzufügbaren Rollen.\\n\\n HINWEIS: Beachte Groß- und Kleinschreibung!\\n "
#: redbot/cogs/admin/admin.py:473
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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 "Du darfst nicht die Rolle „{role.name}“ von der Liste der selbst hinzufügbaren Rollen entfernen, weil diese Rolle höher oder gleich deiner höchsten Rolle in der Discord Rollen-Hierarchie ist."
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgstr "Entfernt."
#: redbot/cogs/admin/admin.py:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr "Der Bot kann keinem neuen Server beitreten."
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr "Der Bot kann nun anderen Servern beitreten."
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr "Der Bot ist jetzt gesperrt neuen Servern beizutreten."
@@ -226,7 +318,7 @@ msgstr "Ich konnte die Ankündigung auf diesen Servern nicht ausführen: "
msgid "The Admin cog is not loaded."
msgstr "Das Admin-Cog ist nicht geladen."
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Die angegebene Rolle ist keine gültige selbst auswählbare Rolle."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -44,7 +44,7 @@ msgid "I can not let you edit {role.name} because that role is higher than or eq
msgstr ""
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
@@ -56,161 +56,214 @@ msgstr ""
msgid "A collection of server administration utilities."
msgstr ""
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr ""
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr ""
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr ""
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr ""
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr ""
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr ""
@@ -226,7 +279,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,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -21,7 +21,7 @@ msgstr "Intenté hacer algo que Discord me ha negado el permiso. Su comando no s
#: redbot/cogs/admin/admin.py:23
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 puedo dar el rol{role.name} a {member.display_name} porque ese rol es mayor o igual a mi rol más alto en la jerarquía de Discord."
msgstr "No puedo dar el rol {role.name} a {member.display_name} porque ese rol es mayor o igual a mi rol más alto en la jerarquía de Discord."
#: redbot/cogs/admin/admin.py:29
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."
@@ -44,8 +44,8 @@ msgid "I can not let you edit {role.name} because that role is higher than or eq
msgstr "No puedo permitir que edites el rol{role.name} porque ese rol es mayor o igual a tu rol más alto en la jerarquía de Discord."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgstr "Necesito el permiso gestionar roles para hacerlo."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr "Necesito el permiso de \"Gestionar Roles\" para hacer eso."
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
@@ -56,161 +56,253 @@ msgstr "Ya estoy anunciando algo. Si quieres hacer un anuncio diferente, por fav
msgid "A collection of server administration utilities."
msgstr "Una colección de utilidades de administración de servidores."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr "{member.display_name} ya tiene el rol {role.name}."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr "He añadido con éxito {role.name} a {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr "{member.display_name} no tiene el rol {role.name}."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "He retirado con éxito {role.name} de {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr "\\n Añadir un rol a un usuario.\\n\\n Usar comillas dobles si el rol contiene espacios.\\n Si el usuario se deja en blanco el valor por defecto es el autor del comando.\\n "
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Añadir un rol a un usuario.\n\n"
" Usar comillas dobles si el rol contiene espacios.\n"
" Si el usuario se deja en blanco el valor por defecto es el autor del comando.\n"
" "
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr "\\n Elimina un rol de un usuario.\\n\\n Usar comillas dobles si el rol contiene espacios.\\n Si el usuario se deja en blanco el valor por defecto es el autor del comando.\\n "
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Elimina un rol de un usuario.\n\n"
" Usar comillas dobles si el rol contiene espacios.\n"
" Si el usuario se deja en blanco el valor por defecto es el autor del comando.\n"
" "
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr "Editar configuración de rol."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr "\\n Edita el color de un rol.\\n\\n Usar comillas dobles si el rol contiene espacios.\\n El color debe estar en formato hexadecimal.\\n [Selector de color en línea](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Ejemplos:\\n `[p]color editrole \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr "\n"
" Edita el color de un rol.\n\n"
" Usar comillas dobles si el rol contiene espacios.\n"
" El color debe estar en formato hexadecimal.\n"
" [Selector de color en línea](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Ejemplos:\n"
" `[p]color editrole \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr "Listo."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr "\\n Edita el nombre de un rol.\\n\\n Utilice comillas dobles si el rol o el nombre contiene espacios.\\n\\n Ejemplo:\\n `[p]nombre editrole \\\"The Transistor\\\" Test`\\n "
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr "\n"
" Edita el nombre de un rol.\n\n"
" Utilice comillas dobles si el rol o el nombre contiene espacios.\n\n"
" Ejemplo:\n"
" `[p]nombre editrole \"The Transistor\" Test`\n"
" "
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr "Anunciar un mensaje a todos los servidores en que el bot está."
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr "El anuncio ha comenzado."
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr "Cancela un anuncio en ejecución."
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr "No hay ningún anuncio en ejecución."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr "El anuncio actual ha sido cancelado."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr "Cambia cómo son enviados los anuncios en este servidor."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgstr "\\n Cambia el canal donde el bot enviará anuncios.\\n\\n Si el canal se deja en blanco el canal por defecto es el canal actual.\\n "
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr "\n"
" Cambia el canal donde el bot enviará anuncios.\n\n"
" Si el canal se deja en blanco el canal por defecto es el canal actual.\n"
" "
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr "El canal de anuncios se ha establecido en {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr "Quita el canal para los anuncios."
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgstr "Aplicar selfroles."
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Añade un rol a ti mismo.\\n\\n Los administradores del servidor deben haber configurado el rol como usuario configurable.\\n NOTA: El rol es sensible a mayúsculas!\\n "
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Añade un rol a ti mismo.\n\n"
" Los administradores del servidor deben haber configurado el rol como usuario configurable.\n"
" NOTA: El rol es sensible a mayúsculas!\n"
" "
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Elimina un rol de ti mismo.\\n\\n Los administradores del servidor deben haber configurado el rol como usuario configurable.\\n NOTA: El rol es sensible a mayúsculas!\\n "
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgstr "\\n Lista de todos los selfroles disponibles.\\n "
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Elimina un rol de ti mismo.\n\n"
" Los administradores del servidor deben haber configurado el rol como usuario configurable.\n"
" NOTA: El rol es sensible a mayúsculas!\n"
" "
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
msgstr "Selfroles disponibles:\\n{selfroles}"
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr "\n"
" Lista de todos los selfroles disponibles.\n"
" "
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr "Selfroles disponibles:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr "Gestionar selfroles."
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Añade un rol a la lista de selfroles disponibles.\\n\\n NOTA: ¡El rol es sensible a mayúsculas\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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 puedo permitir que añadas {role.name} como selfrole porque ese rol es mayor o igual a tu rol más alto en la jerarquía de Discord."
#: redbot/cogs/admin/admin.py:459
msgid "Added."
msgstr "Añadido."
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr "Ese rol ya es un selfrole."
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Quita un rol de la lista de selfroles disponibles.\\n\\n NOTA: El rol es sensible a mayúsculas\\n "
#: redbot/cogs/admin/admin.py:473
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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 puedo permitir que elimines a {role.name} de ser un selfrole porque ese rol es mayor o igual a tu rol más alto en la jerarquía de Discord."
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgstr "Eliminado."
#: redbot/cogs/admin/admin.py:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr "Bloquea el bot sólo a sus servidores actuales."
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr "El bot ya no está bloqueado por el servidor."
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr "El bot está bloqueado por el servidor."
@@ -226,7 +318,7 @@ msgstr "No pude anunciar en los siguientes servidores: "
msgid "The Admin cog is not loaded."
msgstr "El cog Admin no está cargado."
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "El rol proporcionado no es un selfrole válido."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -33,19 +33,19 @@ msgstr "En voi muokata roolia {role.name}, koska se on korkeammalla kuin minun y
#: redbot/cogs/admin/admin.py:41
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 ""
msgstr "En voi antaa roolia {role.name} käyttäjälle {member.display_name}, koska rooli on korkeammalla kuin minun ylin roolini Discordin hierarkiassa."
#: redbot/cogs/admin/admin.py:47
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 ""
msgstr "En voi poistaa roolia {role.name} käyttäjältä {member.display_name}, koska rooli on korkeammalla kuin minun ylin roolini Discordin hierarkiassa."
#: redbot/cogs/admin/admin.py:53
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 ""
msgstr "En voi antaa sinun muokata roolia {role.name}, koska rooli on korkeammalla kuin sinun korkein rooli Discordin hierarkiassa."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgstr ""
msgid "I need the \"Manage Roles\" permission to do that."
msgstr "Tarvitsen \"Muokkaa Rooleja\" oikeudet tehdäkseni tuon."
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
@@ -56,177 +56,267 @@ msgstr "Olen jo ilmoittanut jotain. Jos haluat tehdä toisen ilmoituksen, käyt
msgid "A collection of server administration utilities."
msgstr "Kokoelma palvelinhallintaohjelmia."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "Käyttäjällä {member.display_name} on jo rooli {role.name}."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr "Lisäsin {role.name} onnistuneesti {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
msgstr "Käyttäjällä {member.display_name} ei ole roolia {role.name}."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "Olen poistanut {role.name} onnistuneesti {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Lisää rooli käyttäjälle.\n\n"
" Käytä kaksinkertaisia lainausmerkkejä, jos rooli sisältää välilyöntejä.\n"
" Jos käyttäjä jätetään tyhjäksi, se on oletuksena tekijä komennon.\n"
" "
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Lisää rooli käyttäjälle.\n\n"
" Käytä kaksinkertaisia lainausmerkkejä, jos rooli sisältää välilyöntejä.\n"
" Jos käyttäjä jätetään tyhjäksi, se on oletuksena tekijä komennon.\n"
" "
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr "Muokkaa rooliasetuksia."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr ""
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr "\n"
" Muokkaa roolin väriä.\n\n"
" Käytä kaksinkertaisia lainausmerkkejä, jos rooli sisältää välilyöntejä.\n"
" Värin on oltava heksadesimaalissa.\n"
" [Väripoimija](http://www.w3schools. om/colors/colors_picker. sp)\n\n"
" Esimerkkejä:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr "Tehty."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr ""
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr "\n"
" Muokkaa roolin nimeä.\n\n"
" Käytä kaksoislainausmerkkejä, jos rooli tai nimi sisältää välilyöntejä.\n\n"
" Esimerkki:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr "Ilmoita viesti kaikille palvelimille, joihin botti on."
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#, docstring
msgid "Cancel a running announce."
msgstr ""
msgstr "Ilmoittaminen on aloitettu."
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr "Peruuta käynnissä oleva ilmoitus."
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
msgstr "Tällä hetkellä ei ole käynnissä olevaa ilmoitusta."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr ""
msgstr "Tämänhetkinen ilmoitus on peruutettu."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
msgstr "Muokkaa kuinka ilmoitukset lähetetään tässä guildissa."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgstr ""
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr "\n"
" Muuta kanavaa, jossa botti lähettää ilmoituksia.\n\n"
" Jos kanava jätetään tyhjäksi, se oletetaan nykyiselle kanavalle.\n"
" "
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
msgstr "Ilmoituskanava on asetettu {channel.mention} -kanavalle"
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
msgstr "Poista ilmoituskanava käytöstä."
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgstr ""
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "Lisää tai poista rooli itseltäsi.\n\n"
"Palvelimen ylläpitäjän pitää olla asettanut se rooli käyttäjä-asetettavaksi.\n"
"MUISTA: Roolin nimessä merkitsee isot ja pienet kirjaimet."
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Lisää selfrole itseesi.\n\n"
" Palvelimen ylläpitäjien on täytynyt konfiguroida rooli käyttäjän asettamana.\n"
" HUOM: Rooli on kirjainkoolla herkkä!\n"
" "
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgstr ""
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Lisää selfrole itseesi.\n\n"
" Palvelimen ylläpitäjien on täytynyt konfiguroida rooli käyttäjän asettamana.\n"
" HUOM: Rooli on kirjainkoolla herkkä!\n"
" "
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
msgstr ""
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr "\n"
" Luettele kaikki saatavilla olevat selfrot.\n"
" "
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr "Saatavilla olevat omafroles:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
msgstr "Hallitse selfroleja."
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "En voi antaa roolia {role.name} käyttäjälle, koska rooli on korkeammalla kuin minun ylin roolini Discordin hierarkiassa."
#: redbot/cogs/admin/admin.py:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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 "En voi antaa roolia {role.name} käyttäjälle, koska rooli on korkeammalla kuin minun ylin roolini Discordin hierarkiassa."
#: redbot/cogs/admin/admin.py:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
msgstr "Lukitse botti vain nykyisille palvelimille."
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr ""
msgstr "Botti ei ole enää palvelinlukittu."
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr ""
msgstr "Botti on nyt palvelinlukittu."
#: redbot/cogs/admin/announcer.py:68
msgid "I could not announce to the following server: "
msgstr ""
msgstr "En voinut ilmoittaa seuraavalle palvelimelle: "
#: redbot/cogs/admin/announcer.py:70
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "En voinut ilmoittaa seuraavalle palvelimelle: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Admin cog ei ole ladattu."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: French\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -44,173 +44,265 @@ msgid "I can not let you edit {role.name} because that role is higher than or eq
msgstr "Je ne peux pas vous permettre de modifier {role.name} car ce rôle est supérieur ou égal à votre rôle le plus élevé dans la hiérarchie Discord."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgstr "Jai besoin de la permission de gérer les rôles pour faire cela."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr "Jai besoin de la permission \"Gérer les rôles\" pour faire cela."
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr "Je suis déjà en train d'annoncer quelque chose. Si tu souhaites faire une annonce différente, tu dois d'abord utiliser la commande `{prefix}announce cancel`."
msgstr "Je suis déjà en train d'annoncer quelque chose. Si vous souhaitez faire une annonce différente, vous devez d'abord utiliser la commande `{prefix}announce cancel`."
#: redbot/cogs/admin/admin.py:71
#, docstring
msgid "A collection of server administration utilities."
msgstr "Un ensemble d'utilitaires d'administration du serveur."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr "{member.display_name} a déjà le rôle {role.name}."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr "J'ai bien ajouté le rôle {role.name} à {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr "{member.display_name} n'a pas le rôle {role.name}."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "J'ai bien retiré le rôle {role.name} de {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr "\\n Ajouter un rôle à un utilisateur.\\n\\n Utilisez des guillemets si le rôle contient des espaces.\\n Si l'utilisateur est laissé vide, c'est par défaut l'auteur de la commande.\\n "
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Ajouter un rôle à un utilisateur.\n\n"
" Utilisez des guillemets si le rôle contient des espaces.\n"
" Si l'utilisateur est laissé vide, ce sera par défaut l'auteur de la commande.\n"
" "
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr "\\n Retirer un rôle d'un utilisateur.\\n\\n Utilisez des guillemets doubles si le rôle contient des espaces.\\n Si l'utilisateur est laissé vide, c'est par défaut l'auteur de la commande.\\n "
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Retirer un rôle d'un utilisateur.\n\n"
" Utilisez des guillemets doubles si le rôle contient des espaces.\n"
" Si l'utilisateur est laissé vide, ce sera par défaut l'auteur de la commande.\n"
" "
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr "Modifier les paramètres d'un rôle."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr "\\n Modifiez la couleur d'un rôle.\\n\\n Utilisez des guillemets doubles si le rôle contient des espaces.\\n La couleur doit être au format hexadécimal.\\n [Sélecteur de couleurs en ligne](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Exemples:\\n `[p]editrole color \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr "\n"
" Modifiez la couleur d'un rôle.\n\n"
" Utilisez des guillemets doubles si le rôle contient des espaces.\n"
" La couleur doit être au format hexadécimal.\n"
" [Sélecteur de couleurs en ligne](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Exemples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr "Fait."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr "\\n Modifier le nom d'un rôle.\\n\\n Utiliser des guillemets si le rôle ou le nom contient des espaces.\\n\\n Exemple:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr "\n"
" Modifier le nom d'un rôle.\n\n"
" Utiliser des guillemets si le rôle ou le nom contient des espaces.\n\n"
" Exemple:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr "Faire une annonce à tous les serveurs dans lesquels le bot se trouve."
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr "Lannonce a commencé."
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr "Interrompre une annonce en cours."
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr "Il n'y a aucune annonce en cours d'exécution."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr "L'annonce actuelle a été interrompue."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr "Change la façon dont les annonces sont envoyées dans ce serveur."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgstr "\\n Change le salon où le bot enverra les annonces.\\n\\n Si le champ salon est laissé vide, il utilisera, par défaut, le salon actuel.\\n "
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr "\n"
" Change le salon où le bot enverra les annonces.\n\n"
" Si le champ salon est laissé vide, il utilisera par défaut le salon actuel.\n"
" "
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr "Les annonces seront maintenant faites dans {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr "Désactive le salon pour les annonces."
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgstr "Appliquer auto-rôles."
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Ajoutez ou supprimez un auto-rôle de vous-même.\n\n"
" Les administrateurs du serveur doivent avoir configuré le rôle en tant qu'utilisable par les utilisateurs.\n"
" NOTE : Le rôle est sensible aux majuscules et minuscules !\n"
" "
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Ajouter un auto-rôle à vous-même.\\n\\n Les administrateurs du serveur doivent avoir configuré le rôle en tant qu'utilisable par les utilisateurs.\\n NOTE : Le rôle est sensible aux majuscules et minuscules !\\n "
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Ajouter un auto-rôle à vous-même.\n\n"
" Les administrateurs du serveur doivent avoir configuré le rôle en tant qu'utilisable par les utilisateurs.\n"
" NOTE : Le rôle est sensible aux majuscules et minuscules !\n"
" "
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Supprimez un auto-rôle de vous-même.\\n\\n Les administrateurs du serveur doivent avoir configuré le rôle en tant qu'utilisable par les utilisateurs.\\n NOTE : Le rôle est sensible aux majuscules et minuscules !\\n "
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgstr "\\n Liste de tous les auto-rôles disponibles.\\n "
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Supprimez un auto-rôle de vous-même.\n\n"
" Les administrateurs du serveur doivent avoir configuré le rôle en tant qu'utilisable par les utilisateurs.\n"
" NOTE : Le rôle est sensible aux majuscules et minuscules !\n"
" "
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
msgstr "Auto-rôles disponibles :\\n{selfroles}"
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr "\n"
" Liste de tous les auto-rôles disponibles.\n"
" "
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr "Auto-rôles disponibles :\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr "Gérer les auto-roles."
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr "\\nAjouter un rôle à la liste des auto-rôles disponibles.\\n\\n NOTE : Le nom du rôle est sensible aux majuscules et minuscules !\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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 "Je ne peux pas vous laisser ajouter {role.name} comme auto-rôle car ce rôle est supérieur ou égal à votre rôle le plus haut dans la hiérarchie Discord."
#: redbot/cogs/admin/admin.py:459
msgid "Added."
msgstr "Ajouté."
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr "Ce rôle est déjà un selfrole."
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Supprimer un rôle de la liste des auto-rôles.\\n\\n REMARQUE : Le nom du rôle est sensible aux majuscules et minuscules !\\n "
#: redbot/cogs/admin/admin.py:473
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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 "Je ne peux pas vous laisser ajouter {role.name} comme auto-rôle car ce rôle est supérieur ou égal à votre rôle le plus haut dans la hiérarchie Discord."
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgstr "Retiré."
#: redbot/cogs/admin/admin.py:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr "Verrouiller un bot sur ses serveurs actuels uniquement."
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr "Le bot n'est plus verrouillé sur ses serveurs actuels."
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr "Le bot est maintenant verrouillé sur ses serveurs actuels."
@@ -226,7 +318,7 @@ msgstr "Je n'ai pas pu annoncer aux serveurs suivants : "
msgid "The Admin cog is not loaded."
msgstr "Le cog Admin n'est pas chargé."
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Le rôle fourni n'est pas un auto-rôle valide."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -44,7 +44,7 @@ msgid "I can not let you edit {role.name} because that role is higher than or eq
msgstr ""
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
@@ -56,161 +56,214 @@ msgstr ""
msgid "A collection of server administration utilities."
msgstr ""
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr ""
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr ""
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr ""
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr ""
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr ""
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr ""
@@ -226,7 +279,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

@@ -0,0 +1,285 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
"X-Crowdin-Language: hi\n"
"X-Crowdin-File-ID: 42\n"
"Language: hi_IN\n"
#: redbot/cogs/admin/admin.py:18
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
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 "मैं {member.display_name} को {role.name} नहीं दे सकती क्योंकि वह रोल डिस्कॉर्ड् पदानुक्रम में मेरे उच्चतम रोल से अधिक या उसके बराबर है।"
#: redbot/cogs/admin/admin.py:29
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} से नहीं निकाल सकती, क्योंकि वह रोल डिस्कॉर्ड पदानुक्रम में मेरे उच्चतम रोल से अधिक या उसके बराबर है।"
#: redbot/cogs/admin/admin.py:35
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} को संपादित नहीं कर सकती, क्योंकि यह रोल डिस्कॉर्ड पदानुक्रम में मेरे रोल से अधिक है,या सबसे उच्चतम रोल के बराबर है।"
#: redbot/cogs/admin/admin.py:41
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
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
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 the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
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
#, docstring
msgid "A collection of server administration utilities."
msgstr ""
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr ""
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr ""
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr ""
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr ""
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:433
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\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:463
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:473
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr ""
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr ""
#: redbot/cogs/admin/announcer.py:68
msgid "I could not announce to the following server: "
msgstr ""
#: redbot/cogs/admin/announcer.py:70
msgid "I could not announce to the following servers: "
msgstr ""
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -17,19 +17,19 @@ msgstr ""
#: redbot/cogs/admin/admin.py:18
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr ""
msgstr "Olyan műveletet próbáltam elvégezni, amihez a Discord elutasította a jogosultságom. A parancsod végrehajtása sikertelen volt."
#: redbot/cogs/admin/admin.py:23
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 ""
msgstr "Nem adhatom meg a {role.name} rangot {member.display_name}-nak/nek, mert az a rang magasabb vagy egyenlő az én legmagasabb rangommal a Discord rangsorrendben."
#: redbot/cogs/admin/admin.py:29
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 ""
msgstr "Nem vonhatom meg a {role.name} rangot {member.display_name}-tól/től, mert az a rang magasabb vagy egyenlő az én legmagasabb rangommal a Discord rangsorrendben."
#: redbot/cogs/admin/admin.py:35
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
msgstr "Nem szerkeszthetem a {role.name} rangot, mert az a rang magasabb vagy egyenlő az én legmagasabb rangommal a Discord rangsorrendben."
#: redbot/cogs/admin/admin.py:41
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."
@@ -44,7 +44,7 @@ msgid "I can not let you edit {role.name} because that role is higher than or eq
msgstr ""
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
@@ -56,161 +56,214 @@ msgstr ""
msgid "A collection of server administration utilities."
msgstr ""
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr ""
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr "Kész."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr ""
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr ""
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr ""
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr ""
@@ -226,7 +279,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,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -17,216 +17,301 @@ msgstr ""
#: redbot/cogs/admin/admin.py:18
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr ""
msgstr "Saya mencoba melakukan sesuatu yang tidak diizinkan oleh Discord untuk saya. Perintah Anda gagal untuk dijalankan."
#: redbot/cogs/admin/admin.py:23
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 ""
msgstr "Saya tidak dapat memberikan {role.name} kepada {member.display_name} karena Role itu lebih tinggi atau sama dengan Role tertinggi saya dalam tingkatan Discord."
#: redbot/cogs/admin/admin.py:29
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 ""
msgstr "Saya tidak dapat memberikan {role.name} kepada {member.display_name} karena Role itu lebih tinggi atau sama dengan Role tertinggi saya dalam tingkatan Discord."
#: redbot/cogs/admin/admin.py:35
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
msgstr "Saya tidak dapat mengedit {role.name} karena role itu lebih tinggi dari saya atau sama dengan role tertinggi dalam tingkatan Discord."
#: redbot/cogs/admin/admin.py:41
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 ""
msgstr "Saya tidak dapat memberikan {role.name} kepada {member.display_name} karena Role itu lebih tinggi atau sama dengan Role tertinggi saya dalam tingkatan Discord."
#: redbot/cogs/admin/admin.py:47
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 ""
msgstr "Saya tidak dapat memberikan {role.name} kepada {member.display_name} karena Role itu lebih tinggi atau sama dengan Role tertinggi saya dalam tingkatan Discord."
#: redbot/cogs/admin/admin.py:53
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 ""
msgstr "Saya tidak dapat memberikan {role.name} kepada karena Role itu lebih tinggi atau sama dengan Role tertinggi saya dalam tingkatan Discord."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr ""
msgstr "Saya sudah mengumumkan sesuatu. Jika Anda ingin membuat pengumuman lain, gunakan `{prefix} umumkan pembatalan` terlebih dahulu."
#: redbot/cogs/admin/admin.py:71
#, docstring
msgid "A collection of server administration utilities."
msgstr ""
msgstr "Kumpulan utilitas administrasi server."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "{member.display_name} sudah memiliki role {role.name}."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
msgstr "Saya berhasil menambahkan {role.name} ke {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
msgstr "{member.display_name} tidak memiliki role {role.name}."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
msgstr "Saya berhasil menambahkan {role.name} ke {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
" Tambahkan role ke user. \n"
" \n"
" Gunakan tanda kutip ganda jika role berisi spasi. \n"
" Jika pengguna dibiarkan kosong, defaultnya adalah pembuat perintah. \n"
" "
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\\ n Tambahkanrole ke user. \\ n \\ n Gunakan tanda kutip ganda jika role berisi spasi. \\ n Jika pengguna dibiarkan kosong, defaultnya adalah pembuat perintah. \\ n "
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr ""
msgstr "Edit pengaturan role."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr ""
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr "\n"
" Ubah warna role.\n\n"
" Gunakan tanda kutip ganda jika peran tersebut berisi spasi.\n"
" Warna harus dalam format heksadesimal.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Contoh:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr "Selesai."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr ""
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr "\n"
" Ubah nama role.\n\n"
" Gunakan tanda kutip ganda jika role atau namanya mengandung spasi.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
msgstr "Umumkan pesan ke semua server tempat bot berada."
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#, docstring
msgid "Cancel a running announce."
msgstr ""
msgstr "Pengumuman telah dimulai."
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr "Batalkan pengumuman berjalan."
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
msgstr "Tidak ada pengumuman yang sedang berjalan."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr ""
msgstr "Pengumuman saat ini telah dibatalkan."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
msgstr "Ubah cara pengumuman dikirim di guild ini."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgstr ""
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr "\n"
" Ubah Channel tempat bot akan mengirim pengumuman.\n\n"
" Jika channel dibiarkan kosong maka default nya adalah channel saat ini.\n"
" "
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
msgstr "Channel pengumuman telah di setel ke {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr "Tidak menyetel saluran untuk pengumuman."
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "Apply selfroles."
msgstr ""
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Tambahkan role diri sendiri.\n\n"
" Admin server harus melakukan konfigurasi role sebagai dapat diatur pengguna.\n"
" NOTE: Role peka huruf besar / kecil!\n"
" "
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:412
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgstr ""
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
" Hapus role diri sendiri.\n\n"
" Admin server harus melakukan konfigurasi role sebagai dapat diatur pengguna.\n"
" NOTE: Role peka huruf besar / kecil!\n"
" "
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
msgstr ""
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr "\n"
" Daftar semua role diri yang tersedia.\n"
" "
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr "Role diri yang tersedia:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
msgstr "Kelola Roles diri sendiri."
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "Saya tidak dapat memberikan {role.name} kepada karena Role itu lebih tinggi atau sama dengan Role tertinggi saya dalam tingkatan Discord."
#: redbot/cogs/admin/admin.py:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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 "Saya tidak dapat menghapus {role.name} dari role diri sendiri karena role itu lebih tinggi dari atau sama dengan role tertinggi Anda dalam tingkatan Discord."
#: redbot/cogs/admin/admin.py:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
msgstr "Kunci bot ke servernya saat ini saja."
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr ""
msgstr "Bot tidak lagi terkunci server."
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr ""
msgstr "Bot sekarang terkunci server."
#: redbot/cogs/admin/announcer.py:68
msgid "I could not announce to the following server: "
msgstr ""
msgstr "Saya tidak bisa mengumumkan ke server berikut: "
#: redbot/cogs/admin/announcer.py:70
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "Saya tidak dapat mengumumkan ke server berikut: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Cog Admin belum/tidak dimuat."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -17,216 +17,299 @@ msgstr ""
#: redbot/cogs/admin/admin.py:18
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr "Ho cercato di fare qualcosa ma Discord mi ha negato i permessi per farla. Il tuo comando non è stato completato con successo."
msgstr "Ho provato a fare qualcosa ma Discord mi ha negato i permessi per farla. Il tuo comando non è stato completato con successo."
#: redbot/cogs/admin/admin.py:23
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 ""
msgstr "Non posso dare {role.name} a {member.display_name} poiché quel ruolo è superiore o uguale al mio ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:29
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 ""
msgstr "Non posso rimuovere {role.name} da {member.display_name} poiché quel ruolo è superiore o uguale al mio ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:35
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
msgstr "Non posso modificare {role.name} poiché quel ruolo è superiore o uguale al mio ruolo nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:41
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 ""
msgstr "Non posso permetterti di dare {role.name} a {member.display_name} perché quel ruolo è superiore o uguale al tuo ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:47
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 ""
msgstr "Non posso permetterti di rimuovere {role.name} da {member.display_name} poiché quel ruolo è superiore o uguale al tuo ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:53
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 ""
msgstr "Non posso permetterti di modificare {role.name} perché quel ruolo è superiore o uguale al tuo ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgstr ""
msgid "I need the \"Manage Roles\" permission to do that."
msgstr "Mi serve l'autorizzazione \"Gestisci Ruoli\" per farlo."
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr "Sto già annunciando qualcosa. Se desideri fare un annuncio diverso, usa prima `{prefix}announce cancel`."
msgstr "Sto già annunciando qualcosa. Se vorresti fare un annuncio diverso, usa prima `{prefix}announce cancel`."
#: redbot/cogs/admin/admin.py:71
#, docstring
msgid "A collection of server administration utilities."
msgstr "Una collezione di servizi di amministrazione del server."
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "{member.display_name} ha già il ruolo {role.name}."
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr "Ho aggiunto con successo {role.name} al gruppo {member.display_name}"
msgstr "Ho aggiunto con successo {role.name} a {member.display_name}"
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
msgstr "{member.display_name} non ha il ruolo {role.name}."
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "Ho rimosso con successo {role.name} dal gruppo {member.display_name}"
msgstr "Ho rimosso con successo {role.name} da {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
"Aggiungi un ruolo ad un membro.\n\n"
"Usa le virgolette se il ruolo contiene spazi.\n"
"Se l'utente è lasciato vuoto, prenderà per predefinito chi ha utilizzato il comando. "
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr "\n"
"Rimuove un ruolo da un utente.\n\n"
"Usa le virgolette se il ruolo contiene spazi.\n"
"Se l'utente è lasciato vuoto, prenderà per predefinito chi ha utilizzato il comando. "
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr "Modifica impostazioni ruolo."
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr ""
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr "\n"
"Modifica il colore di un ruolo.\n\n"
"Usa le virgolette se il ruolo contiene spazi.\n"
"Il colore deve essere in formato esadecimale.\n"
"[Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Esempi:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900` "
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr "Fatto."
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr ""
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr "\n"
"Modifica il nome di un ruolo.\n\n"
"Usa le virgolette se il ruolo o il nome contengono spazi.\n\n"
"Esempio:\n"
" `[p]editrole name \"The Transistor\" Test` "
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr "Invia un annuncio a tutti i server in cui si trova il bot."
msgstr "Annuncia un messaggio a tutti i server in cui si trova il bot."
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr "L'annuncio è partito."
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr "Cancella un annuncio in corso."
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
msgstr "Non c'è alcun annuncio in corso."
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr "L'annuncio in corso è stato cancellato."
msgstr "Il corrente annuncio è stato cancellato."
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
msgstr "Cambia come gli annunci sono inviati in questo server."
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgstr ""
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr "\n"
"Cambia il canale dove il bot manderà gli annunci.\n\n"
"Se il canale è lasciato vuoto prenderà per predefinito il canale corrente. "
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr "Il canale per gli annunci è stato impostato su {channel.mention}"
msgstr "Il canale di annuncio è stato impostato su {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
msgstr "Rimuove il canale per gli annunci."
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgstr ""
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
"Aggiungi o rimuovi un ruolo a te stesso.\n\n"
"Gli amministratori devono avere configurato il ruolo come impostabile dall'utente.\n"
"NOTA: Il ruolo è caso sensitivo! "
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
"Aggiungi un ruolo a te stesso.\n\n"
"Gli amministratori devono avere configurato il ruolo come impostabile dall'utente.\n"
"NOTA: Il ruolo è caso sensitivo! "
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgstr ""
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr "\n"
"Rimuovi un ruolo a te stesso.\n\n"
"Gli amministratori devono avere configurato il ruolo come impostabile dall'utente.\n"
"NOTA: Il ruolo è caso sensitivo! "
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
msgstr ""
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr "\n"
"Elenca tutti i ruoli assegnabili dall'utente. "
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr "Ruoli assegnabili dall'utente:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
msgstr "Gestisci i ruoli assegnabili dall'utente."
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "Non posso permetterti di aggiungere {role.name} come ruolo assegnabile dall'utente poiché tale ruolo è superiore o uguale al tuo ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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 "Non posso permetterti di rimuovere {role.name} dall'essere un selfrole perché quel ruolo è superiore o uguale al tuo ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr "Blocca un bot ai suoi server attuali."
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr "Il bot non è più bloccato ai server."
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr "Il bot è bloccato ai server."
msgstr "Il bot è adesso bloccato ai server."
#: redbot/cogs/admin/announcer.py:68
msgid "I could not announce to the following server: "
msgstr ""
msgstr "Non ho potuto annunciare al seguente server: "
#: redbot/cogs/admin/announcer.py:70
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "Non ho potuto annunciare ai seguenti server: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr "Il cog Admin non è caricato."
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Il ruolo fornito non è un ruolo autoassegnabile valido."
#: redbot/cogs/admin/converters.py:21
msgid "The role \"{role_name}\" is not a valid selfrole."
msgstr ""

View File

@@ -1,13 +1,13 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-09-03 12:24+0000\n"
"POT-Creation-Date: 2021-09-01 22:38+0000\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: redgettext 3.1\n"
"Generated-By: redgettext 3.3\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Project-ID: 289505\n"
@@ -17,15 +17,15 @@ msgstr ""
#: redbot/cogs/admin/admin.py:18
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr "私は不和が私に権限を拒否した何かをしようとしました。コマンド正常に完了できませんでした。"
msgstr "私はDiscordが許可を拒否した何かをしようとしました。あなたのコマンド正常に完了できませんでした。"
#: redbot/cogs/admin/admin.py:23
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 ""
msgstr "{role.name} を {member.display_name} に与えることはできません。その役職は、私が持っている最高役職より、上にあるためです。"
#: redbot/cogs/admin/admin.py:29
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 ""
msgstr "{role.name}から{member.display_name}を削除することはできません。 その役割は、Discord階層における私の最高の役割以上のものだからです。"
#: redbot/cogs/admin/admin.py:35
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
@@ -44,7 +44,7 @@ msgid "I can not let you edit {role.name} because that role is higher than or eq
msgstr ""
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgid "I need the \"Manage Roles\" permission to do that."
msgstr ""
#: redbot/cogs/admin/admin.py:61
@@ -56,177 +56,230 @@ msgstr ""
msgid "A collection of server administration utilities."
msgstr ""
#: redbot/cogs/admin/admin.py:162
#: redbot/cogs/admin/admin.py:164
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:182
#: redbot/cogs/admin/admin.py:184
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:192
#: redbot/cogs/admin/admin.py:194
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
#: redbot/cogs/admin/admin.py:212
#: redbot/cogs/admin/admin.py:214
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
#: redbot/cogs/admin/admin.py:223
#: redbot/cogs/admin/admin.py:225
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Add a role to a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:239
#: redbot/cogs/admin/admin.py:241
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgid "\n"
" Remove a role from a user.\n\n"
" Use double quotes if the role contains spaces.\n"
" If user is left blank it defaults to the author of the command.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:253
#: redbot/cogs/admin/admin.py:255
#, docstring
msgid "Edit role settings."
msgstr ""
#: redbot/cogs/admin/admin.py:260
#: redbot/cogs/admin/admin.py:262
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgid "\n"
" Edit a role's colour.\n\n"
" Use double quotes if the role contains spaces.\n"
" Colour must be in hexadecimal format.\n"
" [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Examples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
#: redbot/cogs/admin/admin.py:291 redbot/cogs/admin/admin.py:324
msgid "Done."
msgstr ""
#: redbot/cogs/admin/admin.py:293
#: redbot/cogs/admin/admin.py:295
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgid "\n"
" Edit a role's name.\n\n"
" Use double quotes if the role or the name contain spaces.\n\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:327
#: redbot/cogs/admin/admin.py:329
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
#: redbot/cogs/admin/admin.py:334
#: redbot/cogs/admin/admin.py:336
msgid "The announcement has begun."
msgstr ""
#: redbot/cogs/admin/admin.py:341
#: redbot/cogs/admin/admin.py:343
#, docstring
msgid "Cancel a running announce."
msgstr ""
#: redbot/cogs/admin/admin.py:343
#: redbot/cogs/admin/admin.py:345
msgid "There is no currently running announcement."
msgstr ""
#: redbot/cogs/admin/admin.py:346
#: redbot/cogs/admin/admin.py:348
msgid "The current announcement has been cancelled."
msgstr ""
#: redbot/cogs/admin/admin.py:352
#: redbot/cogs/admin/admin.py:354
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
#: redbot/cogs/admin/admin.py:357
#: redbot/cogs/admin/admin.py:359
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n\\n If channel is left blank it defaults to the current channel.\\n "
msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:366
#: redbot/cogs/admin/admin.py:368
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
#: redbot/cogs/admin/admin.py:371
#: redbot/cogs/admin/admin.py:373
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
#: redbot/cogs/admin/admin.py:396
#: redbot/cogs/admin/admin.py:398
#, docstring
msgid "Apply selfroles."
msgid "\n"
" Add or remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:401
#: redbot/cogs/admin/admin.py:411
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgid "\n"
" Add a selfrole to yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:412
#: redbot/cogs/admin/admin.py:422
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:423
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgid "\n"
" Remove a selfrole from yourself.\n\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:433
msgid "Available Selfroles:\\n{selfroles}"
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
#: redbot/cogs/admin/admin.py:439
#: redbot/cogs/admin/admin.py:443
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
#: redbot/cogs/admin/admin.py:449
#, docstring
msgid "Manage selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:444
#: redbot/cogs/admin/admin.py:454
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgid "\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:451
#: redbot/cogs/admin/admin.py:463
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:459
msgid "Added."
msgstr ""
#: redbot/cogs/admin/admin.py:462
msgid "That role is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:466
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
#: redbot/cogs/admin/admin.py:473
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."
msgid "The role \"{role.name}\" is already a selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:479
msgid "Added {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:481
msgid "Removed."
msgid "Added 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:486
#: redbot/cogs/admin/admin.py:487
#, docstring
msgid "\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:496
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:506
msgid "Removed {count} selfroles."
msgstr ""
#: redbot/cogs/admin/admin.py:508
msgid "Removed 1 selfrole."
msgstr ""
#: redbot/cogs/admin/admin.py:515
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
msgstr "Botを現在のサーバーにのみロックします。"
#: redbot/cogs/admin/admin.py:491
#: redbot/cogs/admin/admin.py:520
msgid "The bot is no longer serverlocked."
msgstr ""
msgstr "Botはもうサーバーロックされていません。"
#: redbot/cogs/admin/admin.py:493
#: redbot/cogs/admin/admin.py:522
msgid "The bot is now serverlocked."
msgstr ""
msgstr "Botはサーバーロックされました。"
#: redbot/cogs/admin/announcer.py:68
msgid "I could not announce to the following server: "
msgstr ""
msgstr "以下のサーバーに通知できませんでした: "
#: redbot/cogs/admin/announcer.py:70
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "以下のサーバーに通知できませんでした: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr ""
#: 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 ""

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