Python 检查多个帮会ID';s-Discord.py
我试图向加入我的discord服务器的用户发送一个welcome DM,但我在多个服务器中设置了bot。我正在尝试检查公会,然后根据它所在的公会发送消息,但它不起作用。我已经看过了,stackoverflow上的常见问题是使用命令和ctx,这不能在\u member\u join()上的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
中使用
,当您调用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!")