Discord.js v13调整Clear Command出现Permissions未定义报错如何解决?
Discord.js v13 Clear命令适配报错解决方案
报错原因
你遇到的ReferenceError: Permissions is not defined报错,是因为代码中没有单独引入Permissions类,也没有通过已导入的Discord对象调用该类。
解决方法
两种方案任选其一即可:
方案1:无需修改导入语句,直接通过Discord对象调用
将权限判断行的Permissions.FLAGS替换为Discord.Permissions.FLAGS,修改后代码如下:
if(!message.member.permissions.has(Discord.Permissions.FLAGS.MANAGE_ROLES)) return message.channel.send("You can't do that").then(m => setTimeout(() => m.delete(), 5000))
方案2:导入时解构出Permissions类
在文件顶部引入discord.js的位置,添加Permissions的解构:
// 若你原来的引入为全局引入 const Discord = require('discord.js'); // 修改为如下解构导入即可 const { Client, Intents, Permissions } = require('discord.js');
修改导入后原有Permissions.FLAGS相关代码无需调整即可正常运行。
其他适配注意事项
- Discord.js v13已经移除了
Message.delete()方法的timeout参数,你代码中所有m.delete({ timeout: 数值 })的写法都需要替换为setTimeout(() => m.delete(), 数值),否则会触发额外报错。 - 你的Intents值513对应的是
GUILDS和GUILD_MESSAGES,符合消息类命令的运行要求,无需修改。 - 建议在
bulkDelete调用时添加第二个参数true,自动过滤14天以上无法批量删除的消息,避免报错:
message.channel.bulkDelete(parts[1], true)
内容的提问来源于stack exchange,提问作者I need Help
相关产品推荐
相关产品推荐

