使用表情赋予角色 Discord.js
Using emotes to give roles Discord.js
在我的 discord 服务器中,作为一种验证方法,我希望我的机器人让所有用户对消息做出反应,然后获得经过验证的角色,并删除旧角色。我的当前代码不会授予或删除角色,但不会出错。
client.on("messageReactionAdd", function(users) {
users.addRole(users.guild.roles.find("name", setup.verify));
users.removeRole(users.guild.roles.find("name", setup.default));
});
这样的东西行得通吗?
我不确定我还没有测试过。如果他们反应的消息包含单词 "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))
}
});
当前代码有问题。 messageReactionAdd
事件 returns 一个 User
对象,它不包含您尝试访问的 属性 .guilds
:users.guilds.r-
。
也许您应该 User
对象的 id
并将其插入 message.guild.members.get("id here")
而不是这个。然后将返回的 Member
对象与您当前的代码一起使用。那应该有用!
参考文献:
是角色的名字; 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
在我的 discord 服务器中,作为一种验证方法,我希望我的机器人让所有用户对消息做出反应,然后获得经过验证的角色,并删除旧角色。我的当前代码不会授予或删除角色,但不会出错。
client.on("messageReactionAdd", function(users) {
users.addRole(users.guild.roles.find("name", setup.verify));
users.removeRole(users.guild.roles.find("name", setup.default));
});
这样的东西行得通吗? 我不确定我还没有测试过。如果他们反应的消息包含单词 "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))
}
});
当前代码有问题。 messageReactionAdd
事件 returns 一个 User
对象,它不包含您尝试访问的 属性 .guilds
:users.guilds.r-
。
也许您应该 User
对象的 id
并将其插入 message.guild.members.get("id here")
而不是这个。然后将返回的 Member
对象与您当前的代码一起使用。那应该有用!
参考文献:
是角色的名字; 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