在我的 discord 服务器中,作为一种验证方法,我希望我的机器人让所有用户对消息做出反应,然后获得已验证角色,并删除旧角色。我拥有的当前代码不会授予或删除角色,但不会出错。
client.on("messageReactionAdd", function(users) {
users.addRole(users.guild.roles.find("name", setup.verify));
users.removeRole(users.guild.roles.find("name", setup.default));
});
当前代码中存在问题。messageReactionAdd
事件返回一个 User
对象,该对象不包含您尝试访问的属性.guilds
:users.guilds.r-
。
取而代之的是,也许您应该id
User
对象并将其插入message.guild.members.get("id here")
。然后将返回的 Member
对象与当前代码一起使用。这应该有效!
引用:
公会会员、消息反应事件、用户对象
的东西会起作用吗?我不确定它是否会我没有测试过它。如果他们对消息做出反应的消息包含单词"role1",则应添加角色,如果他们对不同的消息做出反应,则会删除该角色。我不知道这是否是你想要的,但理论上这应该有效。
client.on("MessageReactionAdd", function(users) {
if (message.content === "role1") {
users.addRole(users.guild.roles.find("name", setup.verify))
} else if (!message.content === "role1") {
user.removeRole(users.guild.role.find("name", setup.default))
}
});
角色的名称是 setup.verify & setup.default?
如果没有,这就是它不起作用的原因。
尝试:
client.on("messageReactionAdd", function(users) {
users.addRole(users.guild.roles.find("id", ROLEIDHERE));
users.removeRole(users.guild.roles.find("id", ROLEIDHERE));
});
其中 ROLEIDHERE 放置role id
以查找角色 ID 只需标记角色,在点击发送之前,在标记之前放置 \,它将提供 ID