* Most slash command support completed, needs some debugging (and reindent)
* Implement a ctx.send helper for slash commands
* Add group command support
* Add Option converter, fix default optional, fix help command
* Add client.setup and move readying commands to that
* Implement _FakeSlashMessage.from_interaction
* Rename normmal_command to message_command
* Add docs for added params
* Add slash_command_guilds to bot and decos
* Fix merge conflict
* Remove name from commands.Option, wasn't used
* Move slash command processing to BotBase.process_slash_commands
* Create slash_only.py
Basic example for slash commands
* Create slash_and_message.py
Basic example for mixed commands
* Fix slash_command and normal_command bools
* Add some basic error handling for registration
* Fixed converter upload errors
* Fix some logic and make an actual example
* Thanks Safety Jim
* docstrings, *args, and error changes
* Add proper literal support
* Add basic documentation on slash commands
* Fix non-slash command interactions
* Fix ctx.reply in slash command context
* Fix typing on Context.reply
* Fix multiple optional argument sorting
* Update ctx.message docs to mention error instead of warning
* Move slash command creation to BotBase
* Fix code style issues with Black
* Rearrange some stuff and add flag support
* Change some errors and fix interaction.channel fixing
* Fix slash command quoting for *args
Co-authored-by: iDutchy <42503862+iDutchy@users.noreply.github.com>
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
get_type_hints had a few issues:
1. It would convert = None default parameters to Optional
2. It would not allow values as type annotations
3. It would not implicitly convert some string literals as ForwardRef
In Python 3.9 `list['Foo']` does not convert into
`list[ForwardRef('Foo')]` even though `typing.List` does this
behaviour. In order to streamline it, evaluation had to be rewritten
manually to support our usecases.
This patch also flattens nested typing.Literal which was not done
until Python 3.9.2.