Discord.js权限校验报BitFieldInvalid错误及GuildBans弃用问题
问题解决方法
1. 权限校验报错修复
报错RangeError [BitFieldInvalid]: Invalid bitfield flag or number: BAN_MEMBERS是因为Discord.js v14及以上版本不再支持直接传入字符串形式的权限标识,必须使用PermissionsBitField.Flags下的枚举值。
修改后的权限校验代码:
// 先确保导入PermissionsBitField const { PermissionsBitField } = require('discord.js'); if (!interaction.member.permissions.has(PermissionsBitField.Flags.BanMembers)) { return interaction.reply('你没有使用该命令所需的权限。'); }
注意:枚举值采用小驼峰命名(BanMembers),而非全大写的字符串。
2. GuildBans意图弃用问题
Discord.js v14中GatewayIntentBits.GuildBans已被废弃,封禁相关的事件与数据权限已整合到GatewayIntentBits.Guilds意图中。只需确保客户端初始化时包含Guilds意图即可:
const { Client, GatewayIntentBits } = require('discord.js'); const client = new Client({ intents: [ GatewayIntentBits.Guilds // 无需再添加GatewayIntentBits.GuildBans ] });
内容的提问来源于stack exchange,提问作者Kuma
相关产品推荐
相关产品推荐

