gpt4 book ai didi

javascript - RichEmbed 使用硬编码 react 进行更新 (Discord.js)

转载 作者:行者123 更新时间:2023-12-02 22:23:39 25 4
gpt4 key购买 nike

我按照其他一些问题制作了一个用于丰富嵌入的 react 收集器(我确实首先尝试使用awaitReaction方法,但我无法应用它)。现在我遇到一个问题,即机器人添加 react 后就会立即进行编辑,而我希望等待用户输入相同的内容。我在下面添加了我的原始代码。

                        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);

实现此目的的正确方法是什么,或者是否有更好的方法?

最佳答案

您可以在此代码中更改两个主要内容。首先,使用异步/等待 promise 工作流程而不是面向回调。它更容易理解并且更具可读性。其次,将问题分解为更小的函数,它很难快速理解,因此您可以将一些任务拆分到其他函数之间。

也很难理解您在这里遇到的问题,但是,如果您的问题是机器人正在收集自己的 react ,您只需将 react 过滤器更改为:

const reactionFilter = (reaction, user) => reaction.emoji.name === '🗒️' && !user.bot;

关于javascript - RichEmbed 使用硬编码 react 进行更新 (Discord.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59137453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com