1 回答

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用事件提供的成員對(duì)象來(lái)獲取加入的服務(wù)器的 id,并將其與存儲(chǔ)的公會(huì) id 進(jìn)行比較。
對(duì)于單個(gè)服務(wù)器:
# 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!")
如果您有很多服務(wù)器,您可以使用服務(wù)器列表:
# 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!")
您還可以將其存儲(chǔ)為字典,并為每個(gè)服務(wù)器設(shè)置單獨(dú)的問(wèn)候語(yǔ)。
# 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])
根據(jù)用例,這也可以擴(kuò)展為將歡迎消息存儲(chǔ)在文件中,并具有使用命令編輯來(lái)自不和諧的歡迎消息的命令。您還可以將消息設(shè)置為包含一個(gè)字段,例如: welcome_messages = {my_guild_id: "Hello {0}! Welcome to server") 并使用 await member.send(welcome_messages[guild_id].format(member.mention)) 它將替換0為新用戶的提及。
添加回答
舉報(bào)