Events 如何检查成员是否有默认的化身?

Events 如何检查成员是否有默认的化身?,events,discord,discord.py,Events,Discord,Discord.py,我已经看过好几篇关于这个话题的帖子,但它们并没有真正帮助我。 如果用户的化身是默认值,我想在on_member_join事件中进行检查。如果出现默认值,则应禁止该用户,如果不是,则不应 我已经制定了一个代码,但它禁止成员,即使配置文件图片不是默认的: @client.event 成员加入时的异步定义(成员): 已从另一篇文章中看到\u avatar=client.check(lambda ctx:ctx.avatar\u url!=ctx.author.default\u avatar\u ur

我已经看过好几篇关于这个话题的帖子,但它们并没有真正帮助我。 如果用户的化身是
默认值
,我想在
on_member_join
事件中进行检查。如果出现
默认值
,则应禁止该用户,如果不是,则不应

我已经制定了一个代码,但它禁止成员,即使配置文件图片不是默认的:

@client.event
成员加入时的异步定义(成员):
已从另一篇文章中看到\u avatar=client.check(lambda ctx:ctx.avatar\u url!=ctx.author.default\u avatar\u url)
如果你有头像:
wait member.ban(reason=“Default avatar”)
其他:
channel1=客户端获取通道(ChannelID)
等待通道1.发送(“无默认化身”)
我还尝试将
成员.avatar
默认的
化身进行比较,但没有成功。

我做错了什么?

我到处找你。我检查了成员和用户类文档。我在个人资料图片上找不到任何东西。我不确定这是否可行。

通过普通的discord.py库这是不可能的,但我建议另一种选择。 使用PIL来比较用户的化身(使用discord.py,您实际上可以下载化身)

我是什么意思? 比如说,您有一个文件夹“Default Avatars”,其中包含所有默认的化身。您将用户的化身与文件夹中的每个文件进行比较,如果它与任何图片匹配,则该化身为默认化身,否则为自定义化身

我从未与PIL合作过,但我发现:
也许,也许它能帮你解决问题。我建议更多地研究PIL,因为它看起来像一个有趣的库。

可以检查用户是否有化身。为此,您只需要
member.avatar

您可以基于此构建代码:

@client.event
成员加入时的异步定义(成员):
channel1=客户端。获取\u频道(YourChannelID)
如果没有成员。头像:#如果没有头像
等待成员。禁止(原因=“没有化身!”)
其他:
等待通道1。发送(“阿凡达!”)

有关更多信息,请查看。

我正在研究的解决方案就是这样。然而,这是一个命令,而不是一个事件。这就是为什么我认为这是可能的。真的不可能吗?我发现了另一个有点过时的命令,但把它作为一个命令的解决方案,它似乎起了作用。然而,我只想把它作为一个
事件
好吧,阅读你发现的问题实际上是非常有意义的。对不起,我的坏朋友,很高兴你发现了这一点,为自己节省了大量的工作。我认为这在某些事件中也是可能的。您正在传递一个成员,阅读我找到的文档:discord.WidgetMember.default\u avatar。也许你也想试试?可能正在检查member.avatar\u url与member.default\u avatar\u url。谢谢您的帮助。除了已经被接受的答案之外,我还会尝试一下DOh,我还没有看到公认的答案,我的错。我想这可以归结为偏好,两者似乎都能起作用,现在,也许其中一个可以更快,但我还没有测试过,所以我想你应该使用你喜欢的任何东西。谢谢,这很有帮助!