1 回答
![?](http://img1.sycdn.imooc.com/545845b40001de9902200220-100-100.jpg)
TA贡献1841条经验 获得超3个赞
您可以使用事件提供的成员对象来获取加入的服务器的 id,并将其与存储的公会 id 进行比较。
对于单个服务器:
# stored_guild_id must be defined before this code appears
@client.event
async def on_member_join(member: discord.Member):
if member.guild.id == stored_guild_id:
await member.send(f"Welcome to the server!")
如果您有很多服务器,您可以使用服务器列表:
# stored_guild_ids must be defined above this code. For example:
# stored_guild_ids = [id1, id2]
# where id1 and id2 are guild ids
@client.event
async def on_member_join(member: discord.Member):
if member.guild.id in stored_guild_ids:
await member.send(f"Welcome to the server!")
您还可以将其存储为字典,并为每个服务器设置单独的问候语。
# welcome_messages must be defined. For example:
# welcome_messages = {
# guild_id: "Welcome there!",
# guild_id2: 'Hello there!'
# }
# Again guild_id and guild_id2 are actual guild ids
@client.event
async def on_member_join(member: discord.Member):
if member.guild.id in welcome_messages.keys():
await member.send(welcome_messages[member.guild.id])
根据用例,这也可以扩展为将欢迎消息存储在文件中,并具有使用命令编辑来自不和谐的欢迎消息的命令。您还可以将消息设置为包含一个字段,例如: welcome_messages = {my_guild_id: "Hello {0}! Welcome to server") 并使用 await member.send(welcome_messages[guild_id].format(member.mention)) 它将替换0为新用户的提及。
添加回答
举报