iT邦幫忙

1

[挑戰]用底層套件做出一個Discord機器人 EP. 0 | 行前準備

警告:此系列不適合剛學程式的初學者

Discord
看到Discord上有很炫的機器人時,很想自己做一個,但不知道該如何下手嗎?
這系列的文章,將會帶領你從「基礎」一步一步地建立自己的機器人。(嚇退一堆人)
但在這之前,我想先介紹一下一個套件(我自己認為)的優缺點。


大部分人推薦的Discord機器人套件,大概非discord.js莫屬了。
原因大概是因為下面這些:

  • 官方的文檔寫得很清楚
  • 對Discord API的支援極為完整
  • 分片(sharding)功能做得很好
  • 網路上教學很多
  • 建立在Node.js之上,而JavaScript本身擴充性就高

但其實,缺點要說的話,倒也還蠻多的。

  • 對大型機器人來說資料的緩存(cache)佔了許多記憶體空間
    (這大概也是YEE式機器龍的開發者後來跳槽discordeno的原因)
  • 開源社群維護,有新功能時更新進度緩慢
  • major更新時介面變更超大 (這是廢話)
    像這次v14的更新就為人詬病,導致大家集體跳槽Eris
  • 沒有內建指令系統

我覺得列到這邊就很夠了,這篇文章不是寫來批評discord.js的。
其實Discord機器人用其他語言也可以做出來,
只是教學可能就沒那麼多 (而且文檔可能也沒discord.js這麼好)


正文開始

要用底層套件做Discord機器人這件事,說簡單不簡單,但說難不難。
不簡單在於所有的資料都要自己動手處理,
而不難在於實作難度不會到太高。
會想做這個,單純是因為之前等discord.js的新版本(v13.7)等了至少一個月,
(我印象很深刻,當時就1個patch卡住沒過,最後在沒merge的情況下直接釋出)
無聊就做了這個東西,沒想到還蠻好玩的,
過程也沒那麼複雜 (無限查docs而已)
也讓我更了解這些Discord機器人的套件基礎的原理。
這系列文章的目的在於讓大家更了解做機器人的原理,
才不會有人在聊天頻道洗@問問題。

行前準備

在走上這條不歸路之前,有些東西可能要先準備好:

  • Node.js(可以在官網下載)
  • TypeScript的基礎能力(個人覺得這系列文寫得還不錯)
  • 一台Discord機器人(按照這篇文操作就好)

準備好,我們就可以開始寫程式囉!


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言