Commit Graph
3169 Commits
Author SHA1 Message Date
khazhykandRapptz fc22d288be [commands] unload cog submodules
When unloading cogs, currently we do not remove submodules from
sys.modules, meaning they will not be reloaded. Removing here
makes new imports reload from file. Of course, any already imported
modules will still hold a reference to the old module, since they
will not re-import it, and will not be forcably unloaded.
2017-07-07 18:02:29 -04:00
DanielandRapptz a037d469d7 Add basic rewrite voice example 2017-07-07 17:55:12 -04:00
Rapptz c2544b9101 Handle everyone role having top priority in permission resolution.
In Discord, if the @everyone role has an explicit allow but a later
role has an explicit deny, the permission is denied rather than allowed
despite the fact that on Discord, allows have a higher priority than
denies.

This is because the @everyone role is supposed to be the first role to
be applied, while the rest could be applied in an aggregate fashion.

Fixes #630.
2017-07-07 17:53:38 -04:00
Rapptz bd67cb5137 Hide constructor for objects that shouldn't be created by users. 2017-07-05 17:30:36 -04:00
Rapptz b88cc8156c Accidentally left a print statement. 2017-07-05 00:48:27 -04:00
Rapptz ea078f1c68 Fix TextChannel.purge not working. 2017-07-04 21:59:44 -04:00
Rapptz 3bd0c2120c Implement a LRU cache for private channels.
Another fix related to the discord issue[1].

[1]: https://github.com/hammerandchisel/discord-api-docs/issues/184
2017-07-04 20:02:17 -04:00
Rapptz 169f3a8322 Don't unnecessarily re-create private channels.
New API change[1] will make it so CHANNEL_CREATE will keep getting
sent for private channels, so might as well avoid the overhead of
constantly creating the channel if we can avoid it.

[1]: https://github.com/hammerandchisel/discord-api-docs/issues/184
2017-07-04 20:02:11 -04:00
JWandGitHub c220b3faa4 Fixed a typo in calls.py
Suggested by libffi-dev-on on Discord. Changed Optiona into Optional
2017-07-04 23:16:16 +03:00
Rapptz e0f02f1775 Rename AsyncIterator.get to next to prevent shadowing. 2017-07-04 10:45:38 -04:00
khazhyk 94eb938d29 handle Game.name being None
re #221, Game.name can still be None, which will cause TypeError on
str(game).

Currently discord does not treat these weird statuses uniformly, with it
showing as playing a game on mobile, but not playing a game on desktop. It
may be useful to know users are in this weird state.
2017-07-03 23:14:16 -07:00
khazhyk 6c01250c39 [commands] fix unloading incorrect cogs
unload_extension would incorrectly unload cogs/listeners
of other extensions if the name of one was a prefix of
another.
2017-07-03 20:56:04 -07:00
khazhykandGitHub bca72e64d6 [commands] clean up remove_cog documentation
remove_cog always returns None, even if the cog is found.
2017-07-03 19:02:00 -07:00
Rapptz c98443e9aa Fix wrong order in migrating docs. 2017-07-02 17:49:56 -04:00
Rapptz 8caa088d25 Allow PartialReactionEmoji in add_reaction and remove_reaction. 2017-07-02 01:43:45 -04:00
Rapptz f607febaf7 Fix Message.remove_reaction and Message.add_reaction taking in Reaction 2017-07-02 01:40:13 -04:00
Rapptz da6ced72c9 Bump requirements to aiohttp 2.2 and PyNaCl 1.1.2 2017-07-01 16:56:39 -04:00
Rapptz 0b9d402272 [commands] Improve commands.when_mentioned_or documentation. 2017-07-01 16:32:36 -04:00
Rapptz 867d918e30 Add when_mentioned and when_mentioned_or to the documentation. 2017-07-01 16:18:07 -04:00
Rapptz 25a1d8c300 Add support for user flags in Profile. 2017-06-30 18:49:49 -04:00
Rapptz 77f04539b1 Typo in docstring for TextChannel.delete_messages 2017-06-29 20:33:19 -04:00
Rapptz 51429f98e8 Fix typo in migrating page. 2017-06-29 20:25:40 -04:00
Rapptz 64cba11656 Allow TextChannel.delete_messages to take lists of 0 or 1 element. 2017-06-29 14:06:12 -04:00
Rapptz ce34713c45 [commands] Do not take up 'command' keyword-argument in Context.invoke.
It was annoying when commands would have a keyword-only argument
named 'command', such as a help command or a disable command.
2017-06-27 04:58:20 -04:00
Rapptz ad20e3066e [commands] Add parameter that failed in fall-back BadArgument error. 2017-06-26 18:13:46 -04:00
Rapptz 649e4de149 Add Reaction.__str__ 2017-06-26 01:27:09 -04:00
Rapptz 723e392c95 Properly sort roles and discard everyone role in Member.colour. 2017-06-24 20:55:47 -04:00
Rapptz 4ee90cd6e4 Fix missing lazy logging format calls.
Not sure how I missed these.
2017-06-24 20:52:19 -04:00
Rapptz 72780e7737 Actually expose Message.webhook_id. 2017-06-24 20:26:58 -04:00
Rapptz 3618f51f97 [commands] Ensure that Context.command is the command in Command.can_run
Previously, Context.command was not guaranteed to be the actual command
being checked if it can run. This could be troublesome when
implementing help commands or when using the default help command.

This new change allows at least for the guarantee that Context.command
to be technically correct in Command.can_run.
2017-06-21 02:30:24 -04:00
Rapptz c23ef9e8a4 [commands] Add __global_check_once to list of cog functions. 2017-06-20 23:55:17 -04:00
Rapptz 717f11d635 [commands] Add Bot.check_once for a global check that is called once.
There is a counterpart for this in cogs, called __global_check_once.
This allows for predicates that would filter a command globally that
do not necessarily require rechecking in the case of e.g. the help
command such as blocking users or blocking channels.
2017-06-20 23:41:13 -04:00
Rapptz 06c99533de Fix passing None to afk_channel in Guild.edit. 2017-06-19 04:22:42 -04:00
Rapptz 7d001ef46e [commands] Try to use the proper name when conversion fails. 2017-06-17 21:16:10 -04:00
Rapptz 851d4ce22a Properly quote reason header so non-ASCII works in audit log reasons. 2017-06-17 01:04:38 -04:00
Rapptz 15edfc2b26 Make checking for truth-ness of EmbedProxy easier. 2017-06-16 22:17:24 -04:00
Rapptz e62e2c7cc6 [commands] Fix cog error detection in the default global error handler. 2017-06-13 23:51:11 -04:00
Rapptz 7d6435fa9c [commands] Don't display default error handler if a cog local exists. 2017-06-12 17:44:05 -04:00
Rapptz efe8fbf6ed Fix format string in documentation. 2017-06-12 17:39:12 -04:00
Rapptz c1dad43f9d Downgrade PartialReactionEmoji to str in non-raw reaction events. 2017-06-09 22:01:31 -04:00
Rapptz b06899e7d4 Defer logging formatting until the logger is actually called.
This would cause unnecessary format calls even if you didn't have
logging enabled.
2017-06-09 18:53:24 -04:00
Rapptz d239cc2666 Implement "partial" message events.
These are events that get triggered regardless of the state of the
message cache. Useful for getting data from before the bot was booted.
2017-06-09 18:36:59 -04:00
BeatButtonandRapptz 1be119cd45 Allow sending files list smaller than 2 elements in Messageable.send
The previous restriction was unwarranted.
2017-06-07 20:07:43 -04:00
Rapptz 0f7c1e09b0 Fix mixed order in migrating docs. 2017-06-05 23:15:29 -04:00
Rapptz 83dc93559c [commands] Add docstrings for extension loading. 2017-06-05 22:55:57 -04:00
Rapptz 1cf50f8054 Fix AuditLogDiff.__iter__ to return an actual iterable.
Fixes #589.
2017-06-04 20:32:09 -04:00
Rapptz 6135d4cd45 Fix typing/history showing up twice in the documentation. 2017-06-03 02:46:20 -04:00
Rapptz bef636e1e3 Fix mistake in migrating docs. 2017-06-02 16:51:58 -04:00
Rapptz daf066dd39 Log when a player's after function fails. 2017-06-02 06:43:33 -04:00
Rapptz a18267ca49 Fix FAQ to showcase that there is a single parameter, the error. 2017-06-02 06:25:39 -04:00