node.js - 当成员具有增强角色时,不和谐角色集会出错
问题描述
我正在使用 djs v12 我正在尝试制作 jail 命令并且我正在使用<member>.roles.set(["id"])
但是当成员具有助推器角色时,它会给出 Missing Permissions 错误。我试过了
<member>.roles.remove(<member>.roles.cache.filter(x => !x.id == "booster role id"))
await <member>.roles.add("jail role id")
当我尝试这个机器人从成员中删除所有角色但它删除监狱角色时,我尝试了
<member>.roles.remove(<member>.roles.cache.filter(x => !x.id == "booster role id" || !x.id == "jail role id"))
await <member>.roles.add("jail role id")
但是机器人仍然扮演监狱角色,这意味着成员的角色为 0 我该如何解决这个问题
解决方案
错误之一是条件 !x.id == "booster role id"
这不是检查是否x.id
不等于增强角色 id,它检查 x.id 的反面是否等于增强角色 id,简化为:
false == "string"
这应该总是错误的,所以我不确定为什么它会删除所有角色,它应该删除 0
另一个问题是,||
使用&&
or 运算符时,每个角色都将被删除
但无论如何要修复:
const roles = <member>.roles;
roles.remove(roles.cache.filter(x => x.id !== "booster role id" && x.id !== "jail role id"));
if(!roles.cache.has("jail role id")) {
await roles.add("jail role id");
}
但是,使用您所说的 set 方法可能会更容易:
const roles = ["jail role id"];
if(<member>.roles.cache.has("booster role id")) {
roles[1] = "booster role id";
}
<member>.roles.set(roles);
推荐阅读
- html - 元素之间的空间 - 这是否使代码更清晰?
- django - django-rest-framework 中的嵌套注释
- node.js - 节点 JS/Mongoose - model.findbyID 不返回记录虽然存在
- java - 在应用程序代码(如@Transactional)中设置隔离级别与在数据库服务器上配置的隔离级别之间有什么关系?
- c# - 使用键中的符号反序列化 Json.NET
- java - 在spring注释中将值传递给占位符
- here-api - 这里地图 - 无法授权地图反馈 API
- .net - 针对 .NET 4 的 .NET 应用程序中的 PayPal API 连接错误
- json - 在 React 中映射数组 JSON
- reactjs - 如何在反应路由器中使用回调 uri 处理身份验证