第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

只向discord.py中特定服務(wù)器的用戶發(fā)送歡迎DM

只向discord.py中特定服務(wù)器的用戶發(fā)送歡迎DM

陪伴而非守候 2023-08-22 17:11:51
我有一個(gè)駐留在多個(gè)服務(wù)器中的不和諧機(jī)器人,但是我想為每個(gè)服務(wù)器提供加入消息,或者確保我的機(jī)器人僅向加入其中一臺(tái)服務(wù)器的人發(fā)送歡迎消息。@client.event #Send new members of the server a messageasync 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----------')根據(jù)文檔, 的唯一參數(shù)on_member_join是member,所以這不可能嗎?我一直在嘗試根據(jù)服務(wù)器 ID 發(fā)送 DM。經(jīng)過(guò)一番研究,我看到了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'這是當(dāng)前形式的完整代碼。@client.eventasync 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----------')
查看完整描述

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為新用戶的提及。


查看完整回答
反對(duì) 回復(fù) 2023-08-22
  • 1 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)