User Based / Personal Slash Commands #4666
Unanswered
bryceroethel
asked this question in
API Feature Requests & Ideas
Replies: 3 comments 7 replies
-
Looks like a dupe of #2361 |
Beta Was this translation helpful? Give feedback.
0 replies
-
from @msciotti, #2361 (comment) |
Beta Was this translation helpful? Give feedback.
0 replies
-
Beta Was this translation helpful? Give feedback.
7 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
One thought I've have even before slash commands for bots was implemented was the ability for users to create custom commands for their account that can be ran anywhere. The idea stemmed from the original (and still available) built-in commands:
The thought is that apps can register slash commands that when authorized by a user are added to their slash commands menu everywhere (If desired, it could be affected by permissions v2, and/or by adding a "Use external application commands" permission in guilds).
Running one of these commands may look like this:
The entire premise of adding user-based commands is to add more ways for applications to improve the Discord experience, like they already have. Adding a globally accessible path to using apps (Keep in mind, these commands would be able to be used in direct messages as well!) would be a welcome addition to the platform. It also allows for easier integration of applications that use a user oriented paradigm, or applications that are more "utility" focused that provide simple outputs to enhance discussions (Searching something on Wikipedia and returning the results, adding a caption to an image, simply posting a funny video, etc). I can only imagine the brilliant solutions developers will come up with. Bots / applications have been an extremely important component of Discord, and this proposal brings them even closer to users.
Possible issues
Abuse is most certainly the primary issue that could arise. Most likely, additional restrictions would have to be put on this system over the current interactions system. The use of followup messages could become spammy, as well as extremely large embeds (or embeds at all). Applications that run these user based commands would most likely have to face similar restrictions that user accounts do.
Implementation
Here are some possible methods in which developers will interact with Discord to create user based commands:
RPC
If centrally hosted applications that interface with many users isn't desired, hosting the application locally and using RPC would be a viable alternative. However, a foreseeable issue is friction created when non-developers want to setup personal commands, as it would require self hosting.
The existing REST/gateway system
The existing REST/gateway system could be extended to support user based commands. It would most likely have separate REST routes, similar to guild specific commands (Use
POST
/applications/{application.id}/users/commands
to create a command for all users with the app authorized,POST
/applications/{application.id}/users/{user.id}/commands
for specific users, etc).The existing REST/webhook system
The existing pure HTTP system (using REST to modify application commands, and webhooks to receive interactions) seems to be the most viable solution, as it isn't centered around guilds like the gateway is (I also can't imagine many use cases of user based commands where the gateway is needed, as the gateway is primarily used for guild events), and doesn't necessarily require users to self host their application like RPC requires. It would probably still include the aforementioned abstractions for REST requests. It is also, from my assumption, less taxing on Discord's infrastructure.
Closing Notes
As someone that definitely doesn't know what they're talking about when it comes to Discord's inner workings, I am still confident in saying that this type of system would require an enormous amount of work; I don't expect this concept to be something of an easy accomplishment on Discord's side, nor do I see it happening anytime soon, if considered. Additionally, I don't believe that my specific definitions outlined above on how this system would work are definitely the most intuitive or plausible for Discord to develop. I more or less wanted to put the idea out there, to question if this is a reasonable proposal, and to see interesting possible use cases that other developers come up with for user based commands.
Beta Was this translation helpful? Give feedback.
All reactions