【发布时间】:2021-06-05 01:48:27
【问题描述】:
我正在尝试在我的 Discord 机器人上创建权限系统,用于检查设置的权限值。
在每个命令中包含以下内容:
permission: ['dev','mod','guildMod']
我尝试使用x.permission.includes(),但它只能检测到其中一个值,我想检查数组并查看它是否匹配该权限或该人必须执行命令的其他权限。
已编辑:
在我的 message.js 事件中:
let guildPerm = guildperms(message.member, 'guildMod');
if (cmd.permission.includes() && !guildPerm) {
return client.responses('notAguildMod', message);
}
在我的 guildperms 文件中:
module.exports = (user, pledge) => {
switch (pledge) {
case 'guildAdmin': {
return user.hasPermission('ADMINISTRATOR');
}
case 'guildMod': {
return user.hasPermission(['MANAGE_CHANNELS', 'KICK_MEMBERS', 'MANAGE_ROLES', 'BAN_MEMBERS', 'MUTE_MEMBERS']);
}
}
};
整个概念是允许开发人员、机器人版主/工作人员执行该命令,无论他们是否拥有guildMod 权限。
【问题讨论】:
-
我不清楚你想要什么行为。你能详细说明吗?理想情况下,您给出的示例的实际查询和结果如何。
-
@ChristianFritz 我已经更新了我的问题,如果你想刷新一下这个主题:)
-
我看到你确实添加了一些代码,但你想做什么/现有代码的错误是什么?您是否希望
hasPermission函数检查用户是否拥有所有列出的权限? -
权限是“字符串”,与基于 discord.js 的权限无关,每个命令都是用包含
permission: ['dev','mod']的集合结构构建的,可以通过cmd.permission访问我希望能够检测用户拥有的权限,这就是guildperms对guildModperm 的作用。
标签: javascript node.js arrays discord.js