Discord.js 如何编辑以前的机器人消息?

Discord.js How can I edit previous bot's message?

所以我正在尝试执行 ROSTER 命令。命令是$roster add/remove @user RANK。这个命令基本上应该编辑以前的机器人的消息(花名册)并将用户添加到花名册到命令中的 RANK ...这是我到目前为止的代码,但我还没有设法制作花名册消息和编辑部分它和RANK系统。如果有人能提供帮助那就太好了!

//ROOSTER COMMAND
client.on('message', async message => {
    if (message.content.startsWith(prefix + "roster")) {
        if (!message.member.hasPermission('ADMINISTRATOR')) return message.channel.send('You do not have that permission! :x:').then(message.react(':x:'))

        const args = message.content.slice(prefix.length + 7).split(/ +/)
        let uReply = args[0];
        const user = message.mentions.members.first()

        if(!uReply) message.channel.send("Please use `add` or `remove`.")
        if(uReply === 'add')  {
            if(!user) return message.channel.send("Please make sure to provide which user you would like to add...")
            message.channel.send(`you are adding **${user.displayName}** from the roster.`)
           
        } else if(uReply === 'remove') {
            if(!user) return message.channel.send("Please make sure to provide which user you would like to add...")
            message.channel.send(`you are removing **${user.displayName}** from the roster.`)
        }
        
    }})

听起来 .edit() 方法就是您想要的。

来自 docs 的示例:

// Update the content of a message
message.edit('This is my new content!')
  .then(msg => console.log(`Updated the content of a message to ${msg.content}`))
  .catch(console.error);

要编辑您的机器人之前的消息,您需要有您要编辑的消息的参考。返回的引用是一个承诺,所以不要忘记使用 await 关键字。然后您可以在参考上使用 .edit() 函数来更新您的消息。

        const msgRef = await msg.channel.send("Hello");
        msgRef.edit("Bye");