如何让机器人校验服务器所有者与管理员权限?
问题解决:修复Discord机器人管理员权限校验逻辑
原代码的逻辑判断存在错误,使用||(逻辑或)会导致只要用户不是服务器所有者,或者没有管理员权限,就会被拒绝执行命令,这和你「允许服务器所有者或管理员操作」的需求完全相悖。
修改后的代码:
if (interaction.user.id !== interaction.guild.ownerId && !interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) { console.log(`[SYSTEM] Command failed cause non-admin ran the command - Command : set-verify File: setverify.js`); return interaction.reply(`You do not have permission to use this command, are you an admin?`); }
逻辑说明:
- 将原代码的
||替换为&&,同时在管理员权限判断前添加!(逻辑非) - 当前逻辑为:当用户既不是服务器所有者,也没有管理员权限时,才触发权限拒绝提示,完全匹配你的需求
内容的提问来源于stack exchange,提问作者Exator911
相关产品推荐
相关产品推荐

