Rework Components deferring #3766
Replies: 4 comments 10 replies
-
as a hack, you can acknowledge component interactions by editing the message to the same thing it already is (or just provide an empty object, I think that works too) |
Beta Was this translation helpful? Give feedback.
-
Can you elaborate on this? We currently show a loading state when a deferred response is received until the message gets updated by the bot. You can then update the message according to further actions a user can take, if any. |
Beta Was this translation helpful? Give feedback.
-
I think there is some misunderstanding here: application command interactions can only be deferred one way: component interactions can be deferred in the above way, but you can also choose to use If you want to respond with a message, you should still use (also, slash commands are a type of application command, it's not a "former" name) |
Beta Was this translation helpful? Give feedback.
-
I agree, it'd be really nice to have a loading state for up to 15 minutes, just as with slash commands. I'm curious as to why this is not already possible. It seems like an unusual inconsistency. |
Beta Was this translation helpful? Give feedback.
-
Background Story
With the introduction of application commands (former: slash commands) interactions have been implemented. Those interactions need to be answered in 3 seconds which makes absolute sense because the user needs some sign of life from the bot. This deferring system has been copied to components that are also based on interactions.
The current problem
The major difference between deferring an application command or a component is, that deferring an application command states "Am alive. I need some more time to process the command. " and a component states "I finished the action" by ending the loading animation.
The main flaw: After deferring a component the user can provide his next input.
That means any action triggered by a component needs to be answered in 3 seconds.
How to solve it
There should be a way for a bot to acknowledge a component interaction. Afterward, the bot should be able to finish his action for 15min similar to slash commands. If the bot didn't answer after acknowledging, the interaction should throw an error.
Beta Was this translation helpful? Give feedback.
All reactions