我将如何“刷新”嵌入 discord.js 的不和谐?更多信息下来 vv
Posted
技术标签:
【中文标题】我将如何“刷新”嵌入 discord.js 的不和谐?更多信息下来 vv【英文标题】:How would I "refresh" a discord embed on discord.js? More info down vv 【发布时间】:2021-08-30 21:02:34 【问题描述】:我在 discord.js 上编写了一个机器人,我想知道如何才能做到这一点,以便在按下按钮后嵌入会刷新?应该发生的是嵌入的敌人值将被更改,但它不会刷新。但它实际上确实改变了值,正如button.channel.send(enemyamt);
所示,我认为它可以通过以下一种(或多种)方式完成:
-
刷新一下。显然是通过 message.edit() ?我不知道。
删除邮件,然后重新发送、更新。
我有下面的代码,但是只有 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)
)```
【问题讨论】:
【参考方案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 中定义它?什么是按钮代码?谢谢你的问题和迟到的回复以上是关于我将如何“刷新”嵌入 discord.js 的不和谐?更多信息下来 vv的主要内容,如果未能解决你的问题,请参考以下文章
Discord js v12 如果有人对嵌入做出反应,则发送消息