You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord防滥用命令报错:无法读取null的permissions属性

问题解决方法

1. 先处理message.member为null的报错

报错的核心原因是message.member为null——这种情况通常发生在私信频道触发命令时,私信环境里不存在服务器成员(member)对象,只有用户(user)对象。所以要先判断命令是否在服务器频道内执行:

// 非服务器频道直接终止执行
if (!message.guild) return;

2. 修正权限判断的写法

你之前把PermissionFlagsBits.Administrator放在数组里传给permissions.has()是错误的,这个方法只接受单个权限枚举值或权限位,不支持数组。正确写法如下:

// 检测到管理员则跳过后续逻辑
if (message.member.permissions.has(PermissionFlagsBits.Administrator)) return;

完整修正后的代码片段

// 先验证是否在服务器频道内,同时跳过管理员
if (!message.guild || message.member.permissions.has(PermissionFlagsBits.Administrator)) return;

// 在这里编写你的防滥用命令逻辑
// ...

补充说明

  • 若你使用的是Discord.js v12及更早版本,需将PermissionFlagsBits.Administrator替换为Permissions.FLAGS.ADMINISTRATOR
  • 合并判断逻辑可以让代码更简洁,同时解决两个问题:非服务器环境的报错、管理员跳过逻辑

内容的提问来源于stack exchange,提问作者Nikhıł

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:25:19