Discord.py 如何从审核日志中获取特定信息

Discord.py 如何从审核日志中获取特定信息,discord.py,Discord.py,我需要审计日志来给我提供有关名称更改的信息,而不是所有日志。这是我正在使用的当前代码。您可以将其修改为仅读取特定日志 async def save_audit_logs(guild): with open(f'audit_logs_{guild.name}', 'w+') as f: async for entry in guild.audit_logs(limit=100): f.write('{0.user} did {0.action} to {0.ta

我需要审计日志来给我提供有关名称更改的信息,而不是所有日志。这是我正在使用的当前代码。您可以将其修改为仅读取特定日志

async def save_audit_logs(guild):
 with open(f'audit_logs_{guild.name}', 'w+') as f:
      async for entry in guild.audit_logs(limit=100):
           f.write('{0.user} did {0.action} to {0.target}'.format(entry))

@client.event
    async def on_message(message):
    if message.content.startswith('audit'):
        await save_audit_logs(message.channel.guild)
您可以使用来执行此操作:

@client.event
成员更新时的异步定义(自身、之前、之后):
channel=get(before.guild.text\u channels,name='log channel name')
如果在之前。显示_名称!=在.display\u名称之后:
wait channel.send(f'{before.notice}已更改名称')
如果您想知道是谁更改了用户名:

entry=list(wait after.guild.audit_日志(limit=1.flatte())[0]
user=entry.user
如果要访问旧名称和新名称:

prev_name = before.display_name
cur_name = after.display_name

这是一个很好的方法,但它只在有人更改机器人的用户名时记录我想记录所有名称的更改将记录每个名称的更改,而不仅仅是机器人的名称:)如果不是这样,你没有我的机器人可以记录自己的名称更改,但如果有人更改其他人的名称,它不会记录