首页 > 解决方案 > 如何将命令限制为另一个服务器中的角色 | 不和谐 JS

问题描述

我正在尝试使用户需要在另一台服务器中的角色才能使用特定命令。

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

我可以得到一些帮助或至少朝着正确的方向迈出一步

标签: javascriptdiscorddiscord.js

解决方案


您可以获取他们需要的角色所在的服务器,并检查用户是否在那里。请记住,客户端需要在两个服务器中。

// 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");
};

'ROLE ID' 和 'GUILD ID' 是用户需要的角色的 ID,以及角色所在的服务器。

编辑:此代码适用于 discord.js v12。任何更低的值,您都必须删除“缓存”的所有实例,例如guildA.members.cache.get->guildA.members.get


推荐阅读