首页 > 解决方案 > Discord command not doing what I want it to do - discord.js

问题描述

Here is my code, if I do !say hi, the bot would delete my message and write "say hi" and I don't know how to fix it


if (message.content.startsWith("!say")) {
        if (message.deletable) { 
            message.delete();
        }
        if (args.length < 1) {
            return message.reply("Nothing to say").then(m => m.delete(5000));
        }
        message.channel.send(args.join(" "));
    }

标签: javascriptdiscord.js

解决方案


正如评论已经指出的那样,试试下面的剪断,你刚刚剪掉了第一部分。如果你输入 "!say hi" args 变量看起来像这样 ["!say","hi"] 和 args.slice(1) 你删除了第一部分,所以你删除了 "!say" 并且 "hi" 是args 中剩下的唯一参数。然后,您可以将消息发送到带有剩余参数的通道。

if (message.content.startsWith("!say")) {
        if (message.deletable) { 
            message.delete();
        }
        if (args.length < 1) {
            return message.reply("Nothing to say").then(m => m.delete(5000));
        }
        message.channel.send(args.slice(1).join(" "));
    }

对不起我的英语不好:D


推荐阅读