检查多个公会ID-Discord.py

时间:2020-10-19 18:09:00

标签: python python-3.x discord discord.py

我正在尝试向加入我的不和谐服务器的用户发送欢迎DM,但是我在多个服务器中设置了漫游器。我正在尝试检查公会,然后根据其所在的公会发送一条消息,但是它不起作用。我已经看过了,在stackoverflow上这样的流行问题使用了命令和ctx,它们无法在on_member_join()中使用。

@client.event
async def on_member_join(member):
    guild = client.get_guild(762921541204705321)
    if guild == 762921541204705321:
        await member.create_dm()
        await member.dm_channel.send("Welcome!")

1 个答案:

答案 0 :(得分:1)

According to the documentation,当您调用get_guild()时不返回公会ID,而是返回一个Guild对象。 From the source code,似乎该行会类的比较运算符确实已重载,因此它无法处理Guild对象和整数ID之间的比较。

您的问题的解决方案是仅将数字ID与Guild.id属性进行比较:

@client.event
async def on_member_join(member):
    # client.get_guild returns a Guild object!
    guild = client.get_guild(762921541204705321)

    # Get the ID from the 'id' attribute on the guild object and compare.
    if guild.id == 762921541204705321:
        await member.create_dm()
        await member.dm_channel.send("Welcome!")