Bots 根据对嵌入的响应为新用户添加已验证的角色

Bots 根据对嵌入的响应为新用户添加已验证的角色,bots,discord,discord.js,Bots,Discord,Discord.js,我正在尝试为加入我的服务器的用户创建一个验证系统。他们必须对正确的表情做出反应,才能获得成员角色。我花了大约14个多小时阅读文档,甚至尝试使用集合和try-catch块。如何让事件处理程序识别成员和消息属性,以便该事件能够相应地运行 client.on('guildMemberAdd',member=>{ member.guild.channels.get('549387603773828971')。发送(嵌入)。然后(异步嵌入消息=>{ 等待消息。反应('✔️'); 等待消息。反应('❌');

我正在尝试为加入我的服务器的用户创建一个验证系统。他们必须对正确的表情做出反应,才能获得成员角色。我花了大约14个多小时阅读文档,甚至尝试使用集合和try-catch块。如何让事件处理程序识别成员和消息属性,以便该事件能够相应地运行

client.on('guildMemberAdd',member=>{
member.guild.channels.get('549387603773828971')。发送(嵌入)。然后(异步嵌入消息=>{
等待消息。反应('✔️');
等待消息。反应('❌');
});
client.on('messageReactionAdd',(reaction,user)=>{
如果(reaction.emoji.name==”✔️") {
//将角色分配给新用户
}else if(reaction.emoji.name==”❌")
//告诉用户对正确的表情做出反应
});
});

首先,我使用
reaction.message
获取
guildMember
以获取所有消息属性和方法。之后,我使用
reaction.message.guild
属性和方法以其名称获取角色

对于您的消息,我还使用了
reaction.message.channel
方法

请尝试使用以下代码:

client.on('guildMemberAdd',member=>{
member.guild.channels.get('549387603773828971')。发送(嵌入)。然后(异步嵌入消息=>{
等待消息。反应('✔️');
等待消息。反应('❌');
});
client.on('messageReactionAdd',异步(反应,用户)=>{
如果(reaction.emoji.name==”✔️") {
const guildMember=reaction.message.guild.members.get(user.id);
如果(!guildMember)抛出“无法获得guildMember!”
const-roletosign=reaction.message.guild.roles.find(r=>r.name==='角色名称')
如果(!roletosign)抛出“无法获取roletosign!”
等待guildMember.addRole(角色分配)
}else if(reaction.emoji.name==”❌")
reaction.message.channel.send('告诉用户对正确的表情做出反应');
});
});
我的最佳猜测是,邮件被缓存了。您是否在与邮件相同的代码运行中对邮件做出反应?但在其他方面,似乎没有任何错误。您收到了什么错误?或者什么没有发生。