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

如何使用discord.py事件删除不符合特定条件的新建线程?

用discord.py自动删除不符合要求的新建线程

完全可以实现这个需求,discord.py提供了对应的事件监听机制,以下是具体实现方案:

方式一:通用频道创建事件(兼容新旧版本)

你给出的示例代码是针对普通频道的,稍作修改就能适配线程——先判断创建的对象是否为线程,再检查名称是否符合要求:

@bot.event
async def on_guild_channel_create(channel):
    # 先确认是线程对象
    if isinstance(channel, discord.Thread):
        # 这里替换为你的判断规则,比如名称必须等于指定值
        if channel.name != "approved-thread-name":
            await channel.delete(reason="线程名称不符合要求")

方式二:专用线程创建事件(discord.py v2.0+)

如果使用的是discord.py 2.0及以上版本,可以用更精准的on_thread_create事件,无需额外判断类型:

@bot.event
async def on_thread_create(thread):
    # 自定义判断逻辑,比如名称需包含特定前缀
    if not thread.name.startswith("valid-"):
        await thread.delete(reason="线程名称不符合规则")

注意事项

  • 机器人必须拥有Manage Threads权限,否则无法执行删除操作
  • 可以根据需求灵活调整判断逻辑,比如用正则匹配、关键词包含检查等,不局限于完全匹配名称
  • 旧版discord.py(v1.x)不支持on_thread_create事件,只能使用第一种方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:31:15