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

Discord.js unban命令报错Unban is not defined问题咨询

错误原因分析

  • 被封禁的用户已经不属于服务器成员,不会存在于message.guild.members.cache中,你代码中获取的targed变量实际为undefined,调用不存在的unban方法自然抛出类型错误
  • Discord.js没有提供成员对象的unban方法,解封功能需要通过服务器的封禁管理接口实现
  • 现有代码存在多处逻辑错位:命令是解封功能,但描述、私信通知内容都是封禁相关的错误内容,且被封禁用户无法直接通过服务器成员对象发送私信

修复方案

以下是适配Discord.js v13+版本的完整修正代码:

const Discord = require('discord.js');

module.exports = {
  name: 'unban',
  aliases: ['uban'],
  category: 'misc',
  permissions: ['BAN_MEMBERS'],
  description: '使用该命令解封服务器内的被封禁用户',
  /**
   * @param {Discord.Message} message
   * @param {Array} args
   */
  async execute(message, args) {
    if (message.mentions.users.size === 0)
      return message.reply('请@要解封的用户 ❌');
    const targetUser = message.mentions.users.first();
    const targetid = targetUser.id;
    if (targetid === message.client.user.id)
      return message.reply("我?你没事吧?操作失败 🤡");
    // 先校验用户是否真的在封禁列表中
    const banList = await message.guild.bans.fetch();
    const isBanned = banList.has(targetid);
    if (!isBanned) return message.reply('该用户没有被封禁 ❌');

    let reason = args.length >= 2 ? args.slice(1).join(' ') : '未提供原因';
    let extra = '';

    setTimeout(async () => {
      try {
        // 调用正确的解封接口
        await message.guild.members.unban(targetid, reason);
        const embed = new Discord.MessageEmbed()
          .setTitle('用户已解封')
          .setDescription(
            `${targetUser.tag} 已成功从 **${message.guild.name}** 解封 ✅ \n解封原因:**${reason}\n${extra}**`
          )
          .setColor('#FA2657');
        message.channel.send(embed);
      } catch (error) {
        message.channel.send(
          `无法解封指定用户,请确认机器人权限高于封禁管理权限,且操作合法 ❌`
        );
      }
    }, 2000);
  },
};

关键修改说明

  1. 移除了错误的成员对象获取逻辑,直接通过用户ID调用服务器解封接口
  2. 增加了封禁状态校验,避免对未封禁用户执行操作
  3. 删除了无法执行的给被封禁用户发私信的逻辑,如果你需要通知用户,可以在解封后再尝试发送,或让用户通过申诉渠道主动入群
  4. 修正了命令描述、参数处理等逻辑错误
  5. 调整了错误捕获范围,确保异常可以被正确捕获提示

内容的提问来源于stack exchange,提问作者JoonyWoony

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 08:54:02