tandemdude / hikari-lightbulb

Simple, elegant and powerful command handler for the Python Discord library, Hikari.
https://hikari-lightbulb.readthedocs.io/en/latest/
MIT License
200 stars 30 forks source link

Features to add in lightbulb V2 #142

Closed tandemdude closed 2 years ago

tandemdude commented 3 years ago

Summary

Features that should be added in lightbulb V2. Please comment on this issue with anything you would like to see added during the rewrite.

Please check the TODO list before adding your suggestion as it may already be written there.

Problem

I want to know what people would like to see from the lightbulb rewrite.

Ideal implementation

I'll figure it out later 😉

Checklist

tandemdude commented 3 years ago

Reposting this from the Hikari discord so I don't lose it:

# Lightbulb
- Rillrate dashboard
- Single function slash and prefix commands
- (+Hikari) context menus
- Paginate built-in help
- built-in help as an embed
- Support more argument parsing types:
  * IpAddress
  * CodeBlock - returns a class that has 2 fields: language and code
  * regex lazy arguments
  * flag arguments - is true if the argument name is in the right position, and false if it's not
  * specific channel type arguments (like only voice, or only thread and text channels, etc...)
  * key-value args (key1=value key2="value with spaces" "key with spaces"="value with \"quotes\"")
- Allow the user to make custom argument parsing; some class/function that will return the custom type, that takes ctx as the only argument, and can be synchronous or asynchronous
- Track prefix commands edits, so if a command invocation is edited, the existing sent message will edit as well
- Custom help functions, so the help value of the command is returned from a function
- Allow for custom `on_error` functions per command
- Default allowed mentions
- Allow multiple bot owners
- `defer_response` decorator to send an interaction acknoweldgement on invocation, for commands that can take long, so it won't time out
- `broadcast_typing` decorator to show that the bot is typing on command invocation, for commands that can take really long
- Allow for Regex prefixes
- Allow for synchronous commands
- `spawn_task` decorator to spawn a task for that command execution.
- `spawn_executor` decorator to run the command in an executor.
- Group prefixes, so commands in a group require the prefix as well (kinda like subcommands)
- `ephemeral` decorator that will automatically send all messages from that command as ephemeral
- (+Hikari) slash commands default/auto-complete arguments