Discord.JS封禁GuildMember代码语法异常问题求助
解决Discord.js封禁成员的代码异常问题
你遇到的核心问题是调用ban()方法时缺少了对应的对象引用,我来帮你快速修复这个问题:
问题根源
你代码里的.ban({...})前面没有指定要执行封禁操作的对象——在Discord.js中,封禁成员必须调用GuildMember对象的ban()方法,也就是你已经获取到的member变量。保留句点时,JS会因为找不到前置对象直接报错,导致机器人启动失败;删掉句点后,ban()变成了不存在的全局函数,自然无法完成封禁。
修正后的完整代码
client.on('message', message => { if (!message.guild) return; if (message.content.startsWith('-ban')) { const user = message.mentions.users.first(); if (user) { const member = message.guild.member(user); if (member) { member.ban({ reason: 'They were bad!', }) .then(() => { message.reply(`Sikeresen kitiltva a szerverről!`); }) .catch(err => { message.reply('Nem tudtam kitiltani a felhasználót'); console.error(err); }); } else { message.reply("Ez a felhasználó nem tartózkodik a szerveren!!"); } } else { message.reply("Meg kell nevezned egy személyt!!"); } } });
关键修改说明
- 在
ban({...})前补充了member.,明确指定对目标成员对象执行封禁操作 - 调整了代码缩进,让结构更清晰,方便后续排查问题
额外提醒:要确保你的机器人账号拥有Ban Members权限,并且机器人的角色层级高于被封禁成员的角色,否则即使代码正确,也可能出现封禁失败的情况。
内容的提问来源于stack exchange,提问作者Marcell2810
相关产品推荐
相关产品推荐

