it was a silly error ( " } " in the wrong position ), whoever is interested in this handler I upgraded to v13 is very simple but it works well with it.
Well, I was trying to learn about slash commands, and in the meantime I did a handler based on some videos, and github, but when executing a slash command the error is thrown x times the number of existing commands. (There are 3 commands, if I use a command the console receives 2 errors)
I suppose the bot is trying to execute all commands, but I don't know exactly what it is, or why!
my code:
const { fs, Discord, erros, colors, emojis, database } = require('../../exports.js'); const slash = []; const arquivos = fs.readdirSync("./src/slash").filter((file) => file.endsWith(".js")) module.exports = async (client) => { for (const files of arquivos) { const file = require(`../../slash/${files}`); slash.push(file); client.api.applications(client.user.id).commands.post({data: file.data}) } client.ws.on('INTERACTION_CREATE', async (i) => { const command = slash.find(cmd => cmd.data.name === i.data.name.toLowerCase()) if(command) command.execute(client, send, i); }) async function send(interaction, content) { return client.api.interactions(interaction.id, interaction.token).callback.post({ data: { type: 4, data: await msg(interaction, content), }, }); } async function msg(i, c) { const m = await Discord.APIMessage.create(client.channels.resolve(i.channel_id), c) .resolveData() .resolveFiles(); return { ...m.data, files: m.files } } } module.exports.help = { name: "ready", title: "Comandos slashs" } the event handlers get normal, the only problem is in the send function, in command
const { Discord, erros, colors, emojis, database, titles} = require('../exports.js'); module.exports = { data: { name: "say", description: "Faça o bot falar", options: [{ name: "text", description: "texto que vai na mensagem", type: 3, required: true }] }, async execute (client, send, i) { var args = i.data.options var texto = args.find(args => args.name.toLowerCase() === "text").value; await send(i, texto) } } Err:
(node:84) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown interaction at RequestHandler.execute (/home/runner /Shinobu/node_modules/ equestHandler.js:154:13) at processTicksAndRejections (internal/ process/task_queues.js:97:5) at async RequestHandler.push ner/Shinobu/node_modules/ t/RequestHandler.js:39:14) at Object.execute (/home/runner/S hinobu/src/slash/say.js:20:5) 12 Answers
When you are using the slash commands you have 3 seconds to response.
To solve this using the latest discordjs (13.0.1) you can follow these solutions which will give you 15 mins.
Solution 1: Differ the reply and then edit it.
await interaction.deferReply(); const result = await YOUR_FUNCTION(); await interaction.editReply(result); Solution 2: Reply and then edit it.
await interaction.reply('Working on it'); const result = await YOUR_FUNCTION(); await interaction.editReply(result); Solution 3: Reply and then response with a follow up.
await interaction.reply('Working on it'); const result = await YOUR_FUNCTION(); await interaction.followUp(result); You can find more information here!
6This can be 2 things:
- Your bot is taking too long to respond (pretty sure it has a 3 min limit or something)
- It just does that sometimes. I have it working but with buttons and slash commands, and it works 99% of the time and sometimes it just does that.
Btw, I can't find anything wrong with your code so you should be good on that front.