discord.py中有關於接收和發送Discord消息的一些主要內容如下:
接收消息
在discord.py中,可以通過監聽on_message事件來接收消息:
@bot.event
async def on_message(message):
if message.content.startswith('hello'):
await message.channel.send('Hi!')
await bot.process_commands(message)
on_message會在每個消息到來時被調用。可以通過message.content獲取消息內容。
如果想使用指令訊息,可以這樣寫:
@bot.command()
async def hello(ctx):
await ctx.send('Hi!')
ctx在之前有說過,這個參數是包含著內容上下文的一個傳入參數,包含著當前頻道資訊、傳送訊息的使用者這些等等,因此它是必須的,且也因為此原因可直接使用 .send
去做訊息的傳送。詳細可見官方文檔
這樣只會對命令消息做出響應。
發送消息
要發送消息,指令訊息的話可調用 ctx.send()
方法,另外也可以調用message.channel.send()
方法:
await ctx.send('Hello')
await message.channel.send('Hello')
此外,可以發送不同類型的消息:
await channel.send(embed=embed)
: 發送嵌入消息await channel.send(file=file)
: 發送文件await channel.send(view=view)
: 發送元件消息(可用來創建交互式消息,例如按鈕和下拉菜單。)回覆消息
要回覆特定消息,可以使用Message.reply()
方法:
await message.reply('Hello')
這樣會正確回覆該消息。
編輯消息
要編輯已發送的消息,可以使用Message.edit()
來編輯消息內容:
msg = await message.channel.send('Hello')
await msg.edit(content='Hi')
刪除消息
要刪除消息:
await message.delete()
總結一下,在discord.py中,接收消息通過on_message事件,發送消息通過channel.send(),可以發送多種類型的消息。可以使用reply()回覆消息,使用edit()編輯消息,使用delete()刪除消息。