【问题标题】:How would I "refresh" a discord embed on discord.js? More info down vv我将如何“刷新”嵌入 discord.js 的不和谐?更多信息下来 vv
【发布时间】:2021-08-30 21:02:34
【问题描述】:

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

  1. 刷新一下。显然是通过 message.edit() ?我不知道。
  2. 删除邮件,然后重新发送、更新。

我有下面的代码,但是只有 sn-ps,因为我不希望它占用太多空间。是的,我知道它看起来不是最好的哈哈。提前谢谢你:)

    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})
    }
})```


【问题讨论】:

    标签: javascript discord.js embed discord-buttons


    【解决方案1】:

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

    message.channel.send("My Initial Message").then(msg => {
        msg.edit("My edited Message");
    });
    

    【讨论】:

    • 1.非常感谢! 2. 我添加了那个代码,对于“我编辑的消息”,我会再次输入{buttons: [btn1, btn2], embed: embed} 吗? 3. 再次感谢您:)
    • 您输入的内容与您为 channel.send() 输入的内容完全相同
    • 嗯.. 很有趣。当我这样做时,它会起作用,但前提是我再次键入命令?有没有办法替换原始嵌入或刷新它? (非常感谢)
    • 要复制消息的嵌入,请使用:var embed = button.message.embeds[0]。这样,您可以以相同的方式发送嵌入,但是,我认为您需要复制粘贴按钮代码。
    • 抱歉回复晚了,我该怎么办?就像我会在顶部还是在 client.on 中定义它?什么是按钮代码?谢谢你的问题和迟到的回复
    猜你喜欢
    • 2020-01-22
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 2021-01-09
    • 2021-08-04
    • 2019-09-29
    • 2020-11-02
    相关资源
    最近更新 更多