[英]RichEmbed updates with the hard coded reaction (Discord.js)
我按照其他一些問題為豐富的嵌入制作了一個反應收集器(我確實先嘗試了 awaitReaction 方法,但我無法應用它)。 現在我遇到了一個問題,即一旦機器人添加了反應,編輯就會發生,而我希望等待用戶輸入。 我在下面添加了我的原始代碼。
let botembed = new Discord.RichEmbed()
.setTitle(data.englishTitle)
.setAuthor(data.title + ", " + data.synonyms)
.setColor(rcolor)
.setFooter(data.url, data.thumbnail)
.setThumbnail(data.picture)
.addField("Score", data.score)
.addField("Episodes", data.episodes)
.addField("Description", "React");
return message.channel.send(botembed).then(msg => msg.react('🗒️'))
.then(mReaction => {
const reactionFilter = (reaction, user) => reaction.emoji.name === '🗒️';
const collector = mReaction.message
.createReactionCollector(reactionFilter, {
time: 15000
});
collector.on('collect', r => {
const newEmbed = new Discord.RichEmbed()
.setTitle(data.englishTitle)
.setAuthor(data.title + ", " + data.synonyms)
.setColor(rcolor)
.setFooter(data.url, data.thumbnail)
.setImage(data.picture)
.addField("Score", data.score)
.addField("Episodes", data.episodes)
.addField("Description", data.synopsis);
r.message.edit(newEmbed)
.catch(console.log);
});
})
.catch(console.log);
實現此目的的正確方法是什么,或者是否有更好的方法?
您可以在此代碼中更改兩個主要內容。 首先,使用異步/等待承諾工作流而不是面向回調。 它更容易理解並且更具可讀性。 其次,將您的問題分解為更小的功能,它很難快速理解,因此您可以在其他功能之間拆分一些任務。
也有點難以理解您在這里遇到了什么問題,但是,如果您的問題是機器人正在收集自己的反應,您可以將反應過濾器更改為:
const reactionFilter = (reaction, user) => reaction.emoji.name === '🗒️' && !user.bot;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.