如何将命令限制为另一个服务器中的角色? Discord JS

时间:2020-06-01 03:05:00

标签: javascript discord discord.js

我正在努力做到这一点,以使用户需要在另一台服务器中扮演角色才能使用特定命令。

我知道如何将命令限制为使用该命令的服务器中的角色,但不知道如何使它脱离服务器。

我能得到一些帮助还是至少朝着正确的方向迈进了一步

1 个答案:

答案 0 :(得分:1)

您可以获取所需角色的服务器,并检查用户是否在该角色中。请记住,客户端需要同时位于两台服务器中。

// Guild the user needs to have the role in
let guildA = client.guilds.cache.get("GUILD ID");

// Role that the user needs
let requiredRole = guildA.roles.cache.get("ROLE ID");

// Member object of the user in guildA
let member = guildA.members.cache.get(message.author.id);

// Check if they have the role 
if (member.roles.cache.has(requiredRole.id)) {
    message.channel.send("You have the required role.");
} else {
    message.channel.send("You do not have the required role");
};

“角色ID”和“ GUILD ID”是用户所需角色以及角色所在服务器的ID。

编辑:该代码适用于discord.js v12。较低的内容,您必须删除所有“缓存”实例,例如guildA.members.cache.get-> guildA.members.get