iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0

前面有說過discord bot主要是事件(event)為中心在運作的,而今天就來講講discord bot的事件。

首先要先理解@bot.event這一個裝飾器,它是用於在 Discord bot 程式碼中註冊事件處理程序。當你在函數前面添加@bot.event裝飾器時,代表告訴 Discord bot 當特定事件發生時要調用該函數。

關於Discord bot連接事件和響應事件,來簡單介紹一下:

  1. 連接事件

這些事件在bot啟動並連接到Discord時被觸發:

  • on_ready: bot啟動完畢,登錄成功後被調用。這表示bot已經準備好工作了。

  • on_resumed: 當bot重連成功後被調用。

  • on_disconnect: 當bot失去連接時被調用。

  1. 響應事件

這些事件在接收到Discord事件時被調用,用於使bot響應用戶操作:

  • on_message: 當收到新消息時調用,這是最常用的事件。在這裡可以處理用戶命令。

  • on_reaction_add: 當消息接收新反應時。

  • on_reaction_remove:當消息反應被移除時。

  • on_message_edit: 當消息被編輯時。

  • on_member_join: 有新成員加入服務器時。

  • on_member_remove: 有成員離開服務器時。

  • on_typing: 用戶正在輸入時。

等等。

通過為這些事件編寫異步的處理函數,可以使bot檢測事件並做出反應,實現各種功能。

例如:

@bot.event
async def on_ready():
    print('Bot is ready!')

@bot.event  
async def on_message(message):
    if message.content == 'ping':
        await message.channel.send('pong') 

傳入的參數需要參照以下的discord.py文檔來傳入,才可以正確使用。

需要正確配置intents,否則對應事件不會被接收到。

總之,使用這些事件可以使得Discord bot檢測到服務器活動並做出反應,基本上所有bot功能都是基於事件的處理。

更多事件可至以下網址查看
https://discordpy.readthedocs.io/en/stable/api.html?highlight=on_disconnect#event-reference


上一篇
[DAY16]Discord bot創建
下一篇
[DAY18]Discord bot命令處理
系列文
selenium爬蟲應用至discord bot30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言