Rapptz
cd87f247d3
[commands] Make Bot.check decorator an actual decorator.
9 years ago
PapyrusThePlant
1aaeeff02b
[commands] Added missing parenthesis in examples
9 years ago
Rapptz
166d8257ec
[commands] Refactor pagination into its own class.
This change allows users to more easily create their own formatters
without having to reinvent the pagination logic themselves. Hopefully
this makes it less of a pain for people to create custom help pages.
9 years ago
Rapptz
1500001b04
[commands] Fix error in converters in a private message context.
I was referencing a member function that did not actually exist. So I
ported it over to a free function that could be used.
9 years ago
Rapptz
4d71b3fe7d
[commands] Do not lower-case the function name for default command names
There are some badlets out there that apparently violate PEP-8.
9 years ago
Rapptz
a2b053a517
[commands] Make GroupMixin.remove_command return None.
This is for cases where the command has been removed already. This will
make the function have a somewhat no exception guarantee.
9 years ago
Rapptz
6556392a9c
[commands] Fix error where consume rest would not work.
I didn't end up refactoring this piece of work out.
9 years ago
Rapptz
629c24339b
[commands] Fix bug that made functions stop working as converters.
9 years ago
Rapptz
e64eb08c92
[commands] Port special cased discord converters to commands.Converter
9 years ago
Rapptz
880ca3162e
[commands] Add commands.Converter base for converts with context.
This allows users to implement converters that work similar to the ones
special cased by the `discord` classes.
9 years ago
Rapptz
324d10c9d9
[commands] Add Command.ignore_extra attribute to ignore extra arguments
This allows you to strictly require a number of arguments. The default
behaviour in this case is still `True`, since it would be a breaking
change otherwise and is a sane default. However if someone would want
to set this to `False`, they would receive an exception of type
`TooManyArguments` if too many arguments are passed to a command.
Hopefully this removes the uses of `ctx.message.content == 'stuff'`
inside commands.
9 years ago
Rapptz
adbf2c720f
[commands] Add the concept of global checks.
Global checks are checks that are executed before regular per-command
checks except done to every command that the bot has registered. This
allows you to have checks that apply to every command without having to
override `on_message` or appending the check to every single command.
9 years ago
Rapptz
6f173cc095
[commands] Add `delete_after` keyword argument to utility functions.
This includes things like `Bot.say`, `Bot.upload`, `Bot.whisper`,
and `Bot.reply`.
9 years ago
Rapptz
183e7341f6
[commands] Add Context.cog property.
9 years ago
Rapptz
4dbac9423d
[commands] Only show CommandNotFound on non-empty commands.
9 years ago
Rapptz
5f9ed8c9d2
[commands] Make the CommandError required argument optional again.
9 years ago
Rapptz
bde266bbb9
[commands] Fix @everyone elevation in the default help command.
9 years ago
Rapptz
1228159f30
[commands] Fix bug with Context.command not updating in groups.
This happened when `invoke_without_command` was set to True.
9 years ago
Rapptz
74cfc53bc8
[commands] Make it so CommandError does not contain @everyone mentions.
Mitigates some permission elevation issues.
9 years ago
Rapptz
43bbecd519
[commands] Exceptions raised while invocation raise CommandInvokeError.
This change should make it a bit more intuitive to get the original
exception without having the gotcha of checking ``isinstance`` inside
the error handler.
9 years ago
Rapptz
a0f37f8e85
[commands] Fix issue with proper local error handlers not beign called.
9 years ago
Rapptz
b9c7b05176
[commands] Unify Command.handle_local_error into general dispatcher.
9 years ago
Rapptz
661645ac97
[commands] Add Command.qualified_name to get the full command name.
This also sets `__str__` to do the same thing.
9 years ago
Rapptz
37dfe38af5
[commands] Fix bug where Context.command would not update.
9 years ago
Rapptz
9d9a20c128
[commands] Fix bug where subgroups would be repeatedly called.
This happened due to not resetting the `invoked_subcommand` state
tracking. Since the `invoked_subcommand` was not reset, it would always
assume that it was valid and repeatedly call it when passed invalid
subcommands/arguments.
9 years ago
Rapptz
24a9da04db
[commands] Cleanup Command.invoke code due to exception propagation.
9 years ago
Khazhismel Kumykov
33a69681fc
[commands] Dispatch command_error on command exec error.
Provide fallback on_command_error - will only fire if no cog handlers and
no local handler.
Propagate exceptions in checks and argument parsing to bot.
9 years ago
Rapptz
20e86973ea
[commands] Delete frame objects when done using them.
9 years ago
Rapptz
3c8fcd3584
[commands] Add support for self-bots.
9 years ago
Rapptz
fdaa4299a3
[commands] Fix when_mentioned when handling nicknames.
9 years ago
Rapptz
7f09acf871
[commands] Allow role mentions to work with discord.Role params.
This also fixes the Member regex to support the new <@!user_id> syntax
and allows colours to have a leading # before the number.
9 years ago
Rapptz
1c623ccf11
Begin working on gateway v4 support.
Bump websockets requirement to v3.1
Should be squashed...
9 years ago
Rapptz
e0ca746ad4
[commands] Make sure that mentions are the entire string.
9 years ago
Rapptz
054c9c7109
[commands] CommandError derived exceptions in checks don't crash help.
9 years ago
Rapptz
82b2421ac7
[commands] Add deterministic cog unloading.
The special function is `__unload` to prevent with name conflicts with
existing or future cogs.
9 years ago
Rapptz
4451091c91
[commands] Fix pagination logic a little inside HelpFormatter.
This should prevent pages accidentally reaching >2k chars.
9 years ago
Rapptz
d79a13d7bc
[commands] Refactor special cased discord.py converters.
Code is a little more straightforward. The Member and Channel special
cases will now work in private message contexts when given a name. The
Member special case will also work if you pass in a name and
discriminator combo.
9 years ago
Rapptz
c015e492d7
[commands] Don't yield from inside bot utility functions.
9 years ago
Will Tekulve
174016c918
[commands] Fix infinite recursion on subgroups without a command.
Just as an FYI, ctx.invoked_subcommand will end up being an instance
of commands.Group!
9 years ago
Rapptz
050c668eac
[commands] Add bot decorators into __all__.
9 years ago
Rapptz
4a1313f00c
[commands] Add when_mentioned_or helper to have mentions and prefixes.
9 years ago
Rapptz
c0dba0f4f2
[commands] Fix typo in Bot.upload docstring.
9 years ago
Rapptz
6a31f6af1e
[commands] Fix NameError in bot_has_permissions.
9 years ago
Rapptz
f49dc81adf
[commands] bot_has_permissions decorator actually checks for bot.
9 years ago
Rapptz
bf2b8744a5
[commands] Do not swallow AttributeErrors raised by the setup function
9 years ago
Rapptz
98090a2a57
[commands] Helper functions now take *args and **kwargs.
9 years ago
Rapptz
baf1312d0e
[commands] Raise RuntimeError instead of StopIteration.
9 years ago
Rapptz
17e17cade9
[commands] Fix crash when a group has no commands and help is requested
9 years ago
Rapptz
7056a1f0ec
[commands] Change signature convention to use POSIX standards.
9 years ago
Rapptz
0466f5965b
[commands] Raise TypeError if the name is not a string.
9 years ago