javascript - 如何将命令限制为另一个服务器中的角色 | 不和谐 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
推荐阅读
- css - Bootstrap 4:获取主菜单容器的全宽下拉菜单
- ios - 需要帮助在 UITableViewCell 中使用动画制作进度
- flutter - Firestore 要求我创建已经存在的索引
- swift - 无法使用可编码的通用参数调用函数
- jpa - SpringData JPA 事务管理
- sql - 大型表的公用表表达式 (CTE)
- r - 如何根据列名“覆盖”许多列而不生成新列?
- r - ggplot2::geom_text 字体作为图形的其余部分
- python - ansi 代码工作一次,但不是其他时间 - python
- xamarin - 是否可以在 Xamarin Forms 的选项卡式页面中使用模式页面?