You need to enable JavaScript to run this app. discord.py开发角色创建日志机器人时出现AttributeError报错如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

discord.py开发角色创建日志机器人时出现AttributeError报错如何解决?

问题修复方案

错误原因

  • 首先是on_guild_role_create事件的入参结构使用错误:discord.py 中该事件仅接收1个参数,即新创建的Role对象,你定义了两个参数会把传入的Role赋值给第一个变量guild,才会触发Role对象没有audit_logs属性的报错。
  • 其次审计日志动作枚举值使用错误:角色创建对应的枚举是discord.AuditLogAction.role_create,不是discord.AuditLogChanges。

修复后代码

@client.event
async def on_guild_role_create(role):
    # 从角色对象获取所属服务器
    guild = role.guild
    # 修正审计日志动作枚举
    logs = await guild.audit_logs(limit=1, action=discord.AuditLogAction.role_create).flatten()
    channel = guild.get_channel(channel_ID) # 此处替换为你自己的频道ID变量
    # 提前判断日志和频道有效性,避免索引报错
    if logs and channel:
        log = logs[0]
        if log.target == role:
            await channel.send(f'{log.user.mention} 创建了新角色 {role.mention}')

额外注意项

  • 确保你的机器人账号已经被授予查看审计日志的服务器权限,否则会拉取日志失败。
  • 可根据需求调整消息格式,新增角色颜色、权限配置等字段的展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 04:36:07