Python 检查多个帮会ID';s-Discord.py

Python 检查多个帮会ID';s-Discord.py,python,python-3.x,discord,discord.py,Python,Python 3.x,Discord,Discord.py,我试图向加入我的discord服务器的用户发送一个welcome DM,但我在多个服务器中设置了bot。我正在尝试检查公会,然后根据它所在的公会发送消息,但它不起作用。我已经看过了,stackoverflow上的常见问题是使用命令和ctx,这不能在\u member\u join()上的中使用 ,当您调用get_guild()时,它不会返回公会ID,而是返回一个guild对象,看起来这个帮会类确实重载了它的比较运算符,所以它无法处理帮会对象和整数ID之间的比较 解决问题的方法是将数字ID与Gui

我试图向加入我的discord服务器的用户发送一个welcome DM,但我在多个服务器中设置了bot。我正在尝试检查公会,然后根据它所在的公会发送消息,但它不起作用。我已经看过了,stackoverflow上的常见问题是使用命令和ctx,这不能在\u member\u join()上的
中使用

,当您调用
get_guild()
时,它不会返回公会ID,而是返回一个
guild
对象,看起来这个帮会类确实重载了它的比较运算符,所以它无法处理
帮会
对象和整数ID之间的比较

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

@client.event
成员加入时的异步定义(成员):
#client.get\u guild返回一个guild对象!
帮会=客户。获取帮会(76292154120104705321)
#从帮会对象的“ID”属性中获取ID并进行比较。
如果guild.id==76292154120705321:
等待成员。创建_dm()
等待会员。dm_频道。发送(“欢迎!”)

这是可行的,但我添加了第二个公会(guild2),它总是发送第一个DM,不管发生什么(永远不会发送到第二个elif)。以下是我的资料:
@client.event async def on_member_join(member):guild1=client.get_guild(7629215411204705321)guild2=client.get_guild(593941391110045697)if guild1.id==7629215411204705321:wait member.create_dm()wait member.dm_channel.send(“欢迎!”)elif guild2.id==593941391110045697:wait member.create_dm()wait member.dm_channel.send(f“Welcome!”)
@MrMetacom如果您有其他问题,请创建其他帖子。代码格式在注释中不起作用。好的。我刚才无意中发布了一个类似的问题,所以我不得不等一个半小时。
@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!")