Discord Bot - 反应收集器/嵌入编辑
Posted
技术标签:
【中文标题】Discord Bot - 反应收集器/嵌入编辑【英文标题】:Discord Bot - Reaction Collector/Embed Edit 【发布时间】:2021-01-21 13:12:41 【问题描述】:我正在为我的机器人创建“你愿意”命令。 我什么都准备好了,除了一个我不知道如何实现的功能。
我很想拥有它,这样当有人对他们的答案(????️ 或 ????️)做出反应时,机器人会编辑嵌入并将回复的用户置于他们的答案下,如下所示:
我目前拥有的代码是:
case "wyr":
embed.setColor('#fc2803')
embed.setTitle('Would You Rather?')
embed.setDescription(':a: **Be able to fly** \n \n :b: **Breathe underwater**')
message.channel.send(embed).then(m => m.react('????️')).then(r => r.message.react('????️'));
【问题讨论】:
【参考方案1】:您可以使用discord.js-collector package 轻松实现此功能。 但是,如果你想使用普通的 discord.js 来制作它,那么你必须在发送嵌入时听取反应,然后将其编辑为你想要的,就像我将给出的示例中一样。
使用discord.js-collector package的简单示例:
Code Here 还有Live Preview Here
使用 Plaine Discord.js 的简单示例:
const Discord = require("discord.js");
const embed = new Discord.MessageEmbed()
.setTitle("Hello There!");
const embedtosend = await message.channel.send(embed).then(m => m.react('?️')).then(r => r.message.react('?️'));
const filter = (reaction, user) =>
return ['?️', '?️'].includes(reaction.emoji.name) && user.id === message.author.id;
;
message.awaitReactions(filter, max: 2, time: 60000, errors: ['time'] )
.then(collected =>
const reaction = collected.first();
if (reaction.emoji.name === '?️')
const someotherembed = new Discord.MessageEmbed()
.setTitle("This Is A Different Hello There!");
embedtosend.edit(someotherembed)
else if (reaction.emoji.name === '?️')
const anotherembed = new Discord.MessageEmbed()
.setTitle("This Is A Different Embed!");
embedtosend.edit(anotherrembed)
);
我没有测试过这段代码,所以它可能不起作用...
【讨论】:
以上是关于Discord Bot - 反应收集器/嵌入编辑的主要内容,如果未能解决你的问题,请参考以下文章
Discord.js Bot 赠品命令:.array() 不是函数
编辑嵌入 Discord Music Bot 的“正在播放”