首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >斜杠命令“未知交互”

斜杠命令“未知交互”
EN

Stack Overflow用户
提问于 2021-05-06 06:40:50
回答 2查看 20.8K关注 0票数 5

这是一个愚蠢的错误(“}”在错误的位置),无论谁对我升级到v13的处理程序感兴趣,都非常简单,但它与它工作得很好。

https://github.com/Inkeee/Tutorial-Discord-Bot

嗯,我试着学习斜杠命令,同时我做了一个基于一些视频和github的处理程序,但是当执行斜杠命令时,错误会抛出x倍的现有命令。(有3个命令,如果我使用一个命令,控制台会收到2个错误)

我想机器人正在尝试执行所有的命令,但我不知道它到底是什么,也不知道为什么!

我的代码:

代码语言:javascript
复制
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"
}

事件处理程序变得正常,唯一的问题是发送函数中的命令。

代码语言:javascript
复制
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)
    
  }
}

错误:

代码语言:javascript
复制
(node:84) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown interaction at RequestHandler.execute (/home/runner /Shinobu/node_modules/discord.js/src/rest/R equestHandler.js:154:13) at processTicksAndRejections (internal/ process/task_queues.js:97:5) at async RequestHandler.push ner/Shinobu/node_modules/discord.js/src/res t/RequestHandler.js:39:14) at Object.execute (/home/runner/S hinobu/src/slash/say.js:20:5) ```
EN

回答 2

Stack Overflow用户

发布于 2021-08-13 14:58:30

当您使用斜杠命令时,您有3秒的时间来响应。

要使用最新的不和谐15 (13.0.1)解决这个问题,您可以遵循这些解决方案,这将给您15分钟的时间。

解决方案1:不同答复,然后编辑它。

代码语言:javascript
复制
  await interaction.deferReply();
  const result = await YOUR_FUNCTION();
  await interaction.editReply(result);

解决方案2:回复,然后编辑它。

代码语言:javascript
复制
  await interaction.reply('Working on it');
  const result = await YOUR_FUNCTION();
  await interaction.editReply(result);

解决方案3:回复,然后使用后续响应。

代码语言:javascript
复制
  await interaction.reply('Working on it');
  const result = await YOUR_FUNCTION();
  await interaction.followUp(result);

你可以在这里找到更多的信息!

票数 27
EN

Stack Overflow用户

发布于 2021-06-27 13:52:13

这可以是两件事:

  1. 你的机器人需要很长时间才能做出反应(很确定它有3分钟的限制)
  2. 有时候就是这样。我让它工作,但使用按钮和斜杠命令,它工作了99%的时间,有时它只是这样做。

顺便说一句,我没有发现你的代码有什么问题,所以你应该在这方面做得很好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67413046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档