【问题标题】:Embed in Discord.js send also the command嵌入 Discord.js 也发送命令
【发布时间】:2020-10-09 17:09:42
【问题描述】:

我正在尝试创建一个 discord.js 公告机器人 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;
}

})

【问题讨论】:

    标签: discord discord.js


    【解决方案1】:

    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(" ")
    

    【讨论】:

    • 发送相同的东西 ?ann Hello World
    【解决方案2】:

    为此做了一支笔: 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);
        }
    }
    
    })
    

    希望对你有帮助

    【讨论】:

    • messsage.startsWith 不是函数
    • message.content.startsWith() ?抱歉,真的不知道字符串在哪里...
    猜你喜欢
    • 2021-07-10
    • 2020-07-14
    • 2021-04-19
    • 2021-11-07
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 2020-10-17
    • 2021-08-22
    相关资源
    最近更新 更多