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

基于"gotcha"封禁原因批量解封Discord成员的Discord.py需求

修改Discord.py批量解封命令,仅处理封禁原因为"gotcha"的成员

以下是修改后的massunban命令代码,会自动筛选封禁原因匹配"gotcha"的成员,解封后将这些成员的昵称/ID发送到执行命令的频道:

import discord
from discord.ext import commands

@commands.command(name="massunban")
@commands.has_permissions(administrator=True)
async def massunban(ctx):
    guild = ctx.guild
    unbanned_members = []
    
    # 获取服务器所有封禁记录
    async for ban_entry in guild.bans():
        # 筛选封禁原因为"gotcha"的成员,若需忽略大小写可改为ban_entry.reason and ban_entry.reason.lower() == "gotcha"
        if ban_entry.reason == "gotcha":
            await guild.unban(ban_entry.user)
            # 优先记录昵称,无昵称则用用户ID
            member_info = ban_entry.user.display_name if ban_entry.user.display_name else str(ban_entry.user.id)
            unbanned_members.append(member_info)
    
    # 发送解封结果到命令执行频道
    if unbanned_members:
        await ctx.send(f"已成功解封以下成员(封禁原因:gotcha):\n{', '.join(unbanned_members)}")
    else:
        await ctx.send("没有找到封禁原因为'gotcha'的成员。")

关键修改说明:

  • 新增封禁原因筛选逻辑:通过ban_entry.reason == "gotcha"精准匹配目标封禁记录,若要兼容大小写差异,可调整为ban_entry.reason and ban_entry.reason.lower() == "gotcha",避免reason为None时触发报错
  • 增加解封反馈:收集每个解封成员的昵称或ID,批量汇总后发送到命令执行频道,方便管理员确认操作结果
  • 保留权限验证:仅允许服务器管理员执行该命令,避免误操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:15:34