Discord.py 如果该函数看似与它没有任何联系,我如何获取相关的用户信息?

问题描述 投票:0回答:1

尝试向机器人添加一个部件,其中某些用户由于容易滥用而无法创建新角色。在删除新创建的角色时,使用 on_guild_role_create(role) 效果很好,但它不体贴,并且如果机器人具有所需的权限级别,则无论是谁创建的,都会删除角色。 从我在 API 参考中看到的内容来看,与创建者根本没有任何联系。有没有办法获取创建者用户 ID 或与其相关的任何内容?

discord discord.py
1个回答
0
投票

到目前为止我想到的一个解决方案似乎工作得很好,就是获取审核日志,检查最新的角色创建条目,并将制造商 ID 与我想要阻止的制造商 ID 进行匹配。 这应该与您想要从任何其他事件中检测到的任何其他可能没有链接的操作一起使用。

spammer = 111111111111#userid here

@bot.event
async def on_guild_role_create(role):
    async for entry in role.guild.audit_logs(action=discord.AuditLogAction.role_create, limit=1):
        if entry.target.id == role.id:
            if entry.user.id == spammer:
                await role.delete()

PS:感谢一位非常乐于助人的人,他的回答是“不……”,很有洞察力

© www.soinside.com 2019 - 2024. All rights reserved.