1 回答

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為新用戶的提及。
添加回答
舉報