我正在尝试向加入我的不和谐服务器的用户发送欢迎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!")
答案 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!")