For general programming questions, visit StackOverflow.
Issue Information
Check all that apply:
[x] This is a bug report about an error, issue, or bug in JDA-Utilities.
[ ] I have been able to consistently reproduce this bug.
[x] This is a feature request for the JDA-Utilities library.
This issue tracker does not assist or handle issues with the JDA library.
For JDA related issues, visit the JDA issue tracker
and open an issue there.
Description
Currently every command is executed sequentially. In practice this means that sometimes a user will have to wait for a command to finish running which isn't clear to that user. While running heavy code asynchronously within the execute function is a solution for this, a much better solution would be to simply run every command asynchronously.
There's a few reasons why this shouldn't be changed:
For most commands, you don't want to run them asynchronously. Generally you should only run commands async if they do processing that takes a long time or are making external calls; doing everything async can lead to race conditions, and can also have worse performance.
You can already do this; we provide CommandEvent#async(Runnable) so that you can run the contents of a specific command asynchronously
If you want to do everything async, you should just write a custom event manager, as JDA-Utils' command client is just an event listener, not an event manager. We shouldn't have the internals of this event listener deviate from the developer's intended event manager system.
Issue
Issue Checklist
Please follow the following steps before opening this issue.
Issues that do not complete the checklist may be closed without any help.
Issue Information
Check all that apply:
Description
Currently every command is executed sequentially. In practice this means that sometimes a user will have to wait for a command to finish running which isn't clear to that user. While running heavy code asynchronously within the
execute
function is a solution for this, a much better solution would be to simply run every command asynchronously.