我有一个驻留在多个服务器中的不和谐机器人,但是我想为每个服务器提供加入消息,或者确保我的机器人仅向加入其中一台服务器的人发送欢迎消息。
@client.event #Send new members of the server a message
async def on_member_join(member): #Run when a member joins
await member.create_dm() #Create a DM chat with the new user
await member.dm_channel.send(f"Heya, {member.name}! [ETC OF WELCOME MESSAGE]")
print(f'User DM sent:\n----------\nUser: {member.name}\n----------')
根据文档, 的唯一参数on_member_join是member,所以这不可能吗?我一直在尝试根据服务器 ID 发送 DM。经过一番研究,我看到了ctx.author.send,但这不起作用:
File "REDACTED", line 312, in _run_event
await coro(*args, **kwargs)
File "REDACTED", line 34, in on_member_join
await ctx.author.send(f"Heya, {member.name}! REDACTED")
AttributeError: 'Member' object has no attribute 'author'
这是当前形式的完整代码。
@client.event
async def on_member_join(ctx):
current_server = ctx.guild.id
if current_server == server_id:
await ctx.author.send(f"Heya, {member.name}! REDACTED")
print(f'User DM sent:\n----------\nUser: {member.name}\n----------')
偶然的你
相关分类