我需要审核日志来为我提供名称更改的信息,而不是所有日志。这是我正在使用的当前代码。您可以修改它以仅读取某些日志
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)
答案 0 :(得分:0)
您可以使用on_member_update()
进行此操作:
@client.event
async def on_member_update(self, before, after):
channel = get(before.guild.text_channels, name='log channel name')
if before.display_name != after.display_name:
await channel.send(f'{before.mention} changed named')
如果您想知道谁更改了用户名:
entry = list(await after.guild.audit_logs(limit=1).flatten())[0]
user = entry.user
如果要访问旧名称和新名称:
prev_name = before.display_name
cur_name = after.display_name