嵌入Discord.js并发送命令

时间:2020-06-19 12:32:13

标签: discord discord.js

我正在尝试创建一个discord.js公告bot ex。当我写?Ann Hello Guys时,机器人会删除我的消息并发送Hello Guys,但现在如果我写?Ann Hello Guys机器人会删除我的消息并发送?Ann Hello Guys ,代码就是这个


const client = new Discord.Client();

client.login('--------------');

const PREFIX = '?';

client.once('ready', () => {
    console.log('Questo bot e online!');
});

client.on('message', message=>{

    let args = message.content.slice(PREFIX.length).split(' ');

    switch(args[0]){
        case 'ann':
        const embed = new Discord.MessageEmbed()
        .addField('test', message.content  );
        message.channel.send(embed);
    break;
}

})

2 个答案:

答案 0 :(得分:1)

为此制造了一支笔: https://codepen.io/herbievine/pen/YzwNewQ

client.on('message', message=>{

    let args

    if (message.startsWith('?')) 
      args = message.content.replace('?', '').split(' ')

    if (args[0].toLowerCase() === 'ann') {
      const embed = new Discord.MessageEmbed()
        .addField('test', message.contentreplace('?ann', ''));
        message.channel.send(embed);
    }
}

})

希望有帮助

答案 1 :(得分:0)

message.content代表您要发送的整个邮件,因此在这种情况下为?Ann Hello Guys

DiscordJS不了解命令是什么,也不会为您拆分这些内容。

由于您的邮件格式为?Mention <Command arguments here>,因此您可以通过字符串中的空格进行拆分。

let messageContent = message.content.split(" ")

这将获取您的"?Ann Hello Guys"字符串,并将其变成"?Ann", "Hello", "Guys"

.split(" ")通过空格分隔您的字符串,并返回一个数组。

然后您可以执行messageContent.pop()删除数组中的第一个元素"?Ann"

然后您可以.join(" ")一起返回,形成字符串"Hello Guys"并将其发送。完整的代码:

let splitMessage = message.content.split(" ")

splitMessage.pop();

const transformedMessage = splitMessage.join(" ")