創作內容

6 GP

Discord Bot 開發筆記,使用 DSharpPlus

作者:GG│2020-03-21 20:10:27│贊助:12│人氣:866
花了大約一週的時間開發一個專屬的 Discord 聊天機器人,名為「鴨講」。
趁著記憶猶新記錄一下重點。

開發之前,先規畫了想實現的功能,主要有這些:
1) 針對特定關鍵字觸發回應,例如看到「早安」就會回覆「某某人早安」,就像機器人在跟你聊天一樣。
2) 執行特定的指令。

先看成果,首先是聊天:

然後執行指令:

--

接著是開發工具與套件。
網路上搜尋到的教學大多使用 node.js/discord.js 框架,以 javaScript 開發。
但是我不熟 javaScript,所以找了使用 C# 的工具,也就是這次使用的 DSharpPlus。
它是跑在 .NET Core 上面的,所以目前只能做出終端機介面,沒有漂亮的圖形視窗。
註:還有另一套也是使用 C# 的工具:Discord.Net。不過我這次用的是 DSharpPlus 就是了。

開發流程大致上分為:
1) 註冊Bot帳號 (極簡單)
2) 取得Bot專屬Token (極簡單)
3) 實做Bot基本框架,讓Bot活起來 (難度普通)
4) 邀請Bot到Discord群組 (極簡單)
5) 實做Bot的功能 (就是寫程式)

關於「註冊帳號」與「取得Token」,網路上的分享非常多就不重覆了。重點只有一個就是 Token 那串字千萬要保密不可外洩。
而實做的部份我都是看這位的教學,講得很完整:

基本上有在用 C# 開發的人應該都看得懂。

--

最後就是自己的一些心得筆記。

Discord 裡面常常查到一個名為 Guild(公會) 的東西,這個 Guild 指的就是 Discord 群組。取這名字真有遊戲感。

Discord 裡各種項目皆有一個專屬id,長度是 ulong。無論是使用者(user)、頻道(channel)、身份組(role)……通通都是這樣的觀念。想要查詢某個東西的 id 最簡單的方式就是在 Discord 的該項目上面(例如使用者)按右鍵,選「複製ID」即可。

想要處理收到的訊息,只要向 Client 註冊 MessageCreated 即可,這是一個 delegate。收到訊息後會傳入 MessageCreateEventArgs 型態的參數,裡面會有這一筆訊息的完整資訊,包括訊息內文、從哪個頻道傳來的、發話者是誰、提及了哪些人等等應有盡有。

如果上傳了自訂的表符emoji,都會生成由二個冒號包住的語法,例如 :hello:
Bot發送訊息到群組時,這種emoji語法不會被自動轉成圖案,所以發送前記得如果有emoji要先透過 DiscordEmoji.FromName() 轉成正確的語法。

想模擬機器人正在打字,也就是顯示「xxx正在輸入…」的訊息。只要對指定的 Channel 呼叫 TriggerTypingAsync() 即可。

需要使用 C# 的 async 語法,也就是非同步的寫法。不熟悉的話建議先作點功課。

以上,開發自己的 Discord Bot 沒那麼難。

--

本篇相關連結。

DSharpPlus

以 DSharpPlus 實作 Discord Bot 影片教學

Discord.Net

async 等待與不等待的觀念釐清

--
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4724360
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:Discord|Bot|機器人|鴨講

留言共 6 篇留言

is樂小呈

03-21 20:20

GG
沒有啦,不過謝謝你XD03-21 21:09
Antonysze
你的機器人都亂講話!

03-21 20:56

GG
對,像是喊了一整天安東尼萬人迷之類03-21 21:10

太難了

04-04 00:42


慢慢研究中

04-04 00:42

GG
慢慢研究不用急04-04 06:18
rixinsc
太神惹~

04-20 01:59

GG
謝謝,其實看著教學做滿簡單的04-20 11:49
五丘松
抓到!!! 鴨講!!

05-27 11:14

GG
鴨講被發現了05-27 14:52
我要留言提醒:您尚未登入,請先登入再留言

6喜歡★ggkid 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:巴哈23週年站聚紀錄(自... 後一篇:Unity 載入帶有An...

追蹤私訊

作品資料夾

nlpss05050大家
請求gp支援看更多我要大聲說54分前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】