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

Discord Bot无法记录Thread创建,无报错且其他日志功能正常

Discord线程创建日志未触发问题修复

问题原因

你的代码无法触发on_thread_create事件,核心原因是未启用线程相关的Intents权限——其他日志功能正常是因为它们依赖的Intents已经正确配置,而线程事件需要单独开启对应权限。

修复步骤

  • 在Intents配置中添加intents.threads = True:discord.Intents.default()默认不包含线程事件的权限,必须显式开启。
  • (可选但建议)添加日志频道存在性判断:避免因频道ID错误或Bot无访问权限导致静默失败,方便排查问题。

修改后的完整代码

import discord
from discord.ext import commands
import os

intents = discord.Intents.default()
intents.members = True
intents.messages = True
intents.threads = True  # 开启线程事件权限
my_secret = os.environ['TOKEN']
client = commands.Bot(command_prefix='~', intents=intents)

logs_chan_id = 1004891934709518376
color_green = 0x00ff1a

@client.event
async def on_thread_create(thread):
    embed = discord.Embed(title="线程已创建", description=thread.name, colour=color_green)
    logs = client.get_channel(logs_chan_id)
    if logs:
        await logs.send(embed=embed)
    else:
        print(f"无法找到ID为{logs_chan_id}的日志频道")

client.run(my_secret)

额外说明

  • 若使用discord.py v2.x及以上版本,必须显式声明intents.threads才能接收线程创建、删除等相关事件,这是新版本对Intents的拆分优化。
  • 确认Discord开发者门户中,Bot的常规Intents已启用线程相关权限(该权限不属于特权网关Intents,默认已开启,若异常可在Bot页面的"Gateway Intents"板块检查)。

内容的提问来源于stack exchange,提问作者Maria M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:27:19