首页 > 解决方案 > discord.js 在多行中说命令重复消息

问题描述

所以我正在研究我的机器人,对于我的;say命令,我有以下代码。问题是,当用户执行“;say hi”之类的操作时,它会重复为 ;say 在一行上,下一行,然后在那一行上说 hi。在我添加命令处理程序之前,该命令运行良好,但是现在我遇到了问题。

代码(包括 vars + 命令处理程序部分) -

const Prefix = require('./../../config.json');

module.exports = {
    name: "say",
    description: "Says the user input",
    execute (Client, message, Args) {
        let Say = message.content.substring(({Prefix} + 'say').Args).split(" ");
        let Output = Say.splice(1);
        message.channel.send(Output);
        message.delete({ timeout: 1 });
    },
};

如果出于某种原因有必要,我的 config.json 文件(可能是前缀问题)位于以下文件位置的“容器”目录中 -

container/commands/fun/say.js

标签: discorddiscord.js

解决方案


一开始,你为什么不用message.content.substring(`${Prefix}say`);这两行来代替

    let Say = message.content.substring(({Prefix} + 'say').Args).split(" ");
    let Output = Say.splice(1);

那是一样的,不是吗?我还认为,如果您遇到这样的问题,可能是因为您的代码的事件处理部分缺少某些内容。

此外,您还需要从 config.json 文件中选择前缀,方法是在 .json 文件中添加.prefix或变量的名称,而require('./../../config.json');不是获取整个对象。


推荐阅读