1

我在 discord.js 上编写了一个机器人,我想知道如何才能做到这一点,以便在按下按钮后嵌入会刷新?应该发生的是嵌入的敌人值将被更改,但它不会刷新。它实际上确实改变了价值,正如button.channel.send(enemyamt);我认为可以通过以下一种(或多种)方式完成的那样:

  1. 让它焕然一新。显然是通过 message.edit() ?我不知道。
  2. 删除消息,然后重新发送,更新。

我有下面的代码,只是其中的一小部分,因为我不希望它占用太多空间。是的,我知道它看起来不是最好的哈哈。先感谢您 :)

    if (button.id === 'charge') {
        enemyamt = 75;
        button.channel.send(enemyamt);
    }
    if (button.id === 'rally') {
        //button.channel.send('Vive le Roy');
        //enemyamt = 75;
    }
})

client.on('message', message => {
    if (message.content === '!battle') {
        let embed = new Discord.MessageEmbed()
            .setColor('#318CE7')
            .setTitle('Battle')
            .addField('<:rebel:852380749242957824> Rebel Forces', enemyamt + ' hussars\nMorale: ' + enemymor + '%', true)
            .addField('<:HKPL:852380579248341022> HKPL Forces', homeamt + ' hussars\nMorale: ' + homemor + '%', true)
            .setImage('https://media.discordapp.net/attachments/798525635215360003/852027255336599552/unknown.jpeg')
            .setFooter('Niech żyje król')
        
        let btn1 = new disbut.MessageButton()
            .setStyle('red')
            .setLabel('⚔️ Charge')
            .setID('charge')
            //.setDisabled()

        let btn2 = new disbut.MessageButton()
            .setStyle('red')
            .setLabel(' Rally')
            .setID('rally')
            //.setDisabled()

        message.channel.send({ buttons: [btn1, btn2], embed: embed})
    }
})```


4

1 回答 1

0

.send 方法也是一个 Promise 并且回调是消息句柄,所以你可以只使用这个句柄并在其上使用 .edit 方法

message.channel.send("My Initial Message").then(msg => {
    msg.edit("My edited Message");
});
于 2021-06-15T02:07:58.560 回答