Discord js v12 如果有人对嵌入做出反应,则发送消息
Posted
技术标签:
【中文标题】Discord js v12 如果有人对嵌入做出反应,则发送消息【英文标题】:Discord js v12 Send message if someone reacts to embed 【发布时间】:2022-01-08 08:11:21 【问题描述】:我目前正在使用 discord.js v12(是 12 不是 13)制作一个不和谐机器人,我做了一个命令,该机器人发送一个嵌入并对其做出反应,在过滤器中我将最大值设置为 2(最大值: 2,...)。我希望每次有人对此嵌入做出反应时,都会在频道中发送他的名字。我目前的概念是这样的(它在一个函数中,因为我不想把所有东西都放在 switch 中):
async function fun_2p()
const reactionMessage2p = await message.channel.send(embed2p);
const filter2p = (reaction, user) => user.id !== bot;
await reactionMessage2p.react('????')
reactionMessage2p.awaitReactions( filter2p, max: 2, time: 20000, errors: ['time'] ).then(collected =>
)
在最后一个)
之前应该是答案的代码(我猜)。
【问题讨论】:
【参考方案1】:改用Message#createReactionCollector
,并监听collect
事件
const reactionMessage2p = await message.channel.send(embed2p);
const filter2p = (reaction, user) => user.id !== bot
await reactionMessage2p.react('?')
const collector = reactionMessage2p.createReactionCollector(filter2p, max: 2, time: 20000, errors: ['time'] )
collector.on("collect", (reaction, user) =>
reaction.message.channel.send(`$user.tag has just reacted to the message`)
)
您可以将消息更改为您想要的任何内容
【讨论】:
我不知道我做错了什么,但这对我不起作用:/ 怎么样?你有错误吗?它没有做任何事情吗? 不,我没有收到错误,什么都没有。聊天中没有消息,也没有控制台日志。 啊,我发现了错误,它是:const collector = reactionMessage2p.createReactionCollector
... 而不是 const collector = message.createReactionCollector
... 感谢您的帮助 :)
我会这样做 :) 也许将 message
更改为 reactionMessage2p
,所以 100% 正确。谢谢以上是关于Discord js v12 如果有人对嵌入做出反应,则发送消息的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Discord.js v12 中创建随机颜色作为嵌入强调色?