So I have a 'say' command, that doesn't reply back to the user, but just "says" whatever the user types. But it seems like my bot expects to reply back to the user, which I think is unnecessary in this case. Is there a way to just end the interaction without the bot timing out and saying an error occurred? I know deferReply exists, but that just makes the bot display the "Bot is thinking..." message. I just don't want any reply to be sent. Here is the relevant code:
async execute(interaction) {
await interaction.channel.send(interaction.options.getString("string"));
}
EDIT: I believe the closest way to do this would be to send a message, then delete it immediatly after:
async execute(interaction) {
await interaction.reply({
content: `.`,
});
await interaction.deleteReply();
await interaction.channel.send(interaction.options.getString("string"));
},
Discord really should add the ability to just silently end interactions like:
await interaction.noReply();
There is no real solution to not reply to a slash command.
Below will only work for select menus and buttons.
<Interaction>.deferUpdate() acknowledges the interaction without doing anything else.
No errors or replies will be required after an interaction is acknowledged.