【教學】EP 1 - 用 Python 架自己的 Discord Bot 吧
在閱讀此篇文章前,作者建議:您已有程式的基礎底子,並且此篇著重於程式碼的部分,其餘皆為概略步驟。
請注意文章日期的時效性
為何自架?
- 因為興趣(?
- 市面上太多太多需要付費使用的 Discord Bot
- 自架的可調性高
- 可以順便當作自己的小作品
從何開始?
這邊建議尋找 YouTube 影片學著做或其他文章。
安裝 Python
- 你得先安裝好 Python 的環境,安裝時,記得 PyPI 也要勾選到,它可以提供許多 Python 實用的套件。
- 安裝完後,請先新建一份資料夾,這個就是你的專案,我命名:
DiscordBot
。
安裝 Visual Studio Code
這是一個文字編輯器,用來編輯檔案。也可以使用其他文字編輯器,但我推薦使用 VS Code。
- 安裝後,請在 Marketplace(延伸模組)中,再搜尋:Python 和其他你想裝的延伸模組。
建立自己的機器人
- 請到 Discord Developer Portal 建立機器人,也就是按下【New Application】。
- 接著你可以開始先對它做基本的修飾:Name(剛才命名過了)、Description、App Icon(就是頭像)
- 在左側導覽列進入【Bot】,找尋細項:【TOKEN】,並把它複製起來(記著它)。
請勿把機器人的 TOKEN 洩漏在其他地方,例如:你可能會想部署到你的 GitHub Repo,或者其他地方。
因為當你洩漏了,其他人就有可能操控它。
當然,你也可以試看看會發生什麼事(其實就只是 DC 會通知你 TOKEN 外洩,請重新生成一個 TOKEN)
- 接著在左側導覽列進入【OAuth2】,找尋:【OAuth2 URL Generator】,勾選【SCOPES】中的 bot 和【BOT PERMISSIONS】中的 Administrator。
- 接著進入下方所生成的連結,邀請到你的伺服器就可以看到你的機器人已加入你的伺服器啦!
開始寫自己的機器人吧
-
先在終端機安裝 Python 的 Discord.py 套件,輸入:
pip install discord.py
-
在你的資料夾中創建一個
bot.py
,內容如下,也歡迎去參考官方文檔1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23import discord # 導入discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents = intents)
# 調用 event 函式庫 -> 也就是事件
# on_ready 表示啟動成功時
async def on_ready():
print(f"目前登入身份 --> {client.user}")
# 當頻道有新訊息
async def on_message(message):
# 排除機器人本身的訊息,避免無限循環
if message.author == client.user:
return
# 新訊息包含 Hello,回覆 Hello, world!
if message.content == "Hello":
await message.channel.send("Hello, world!")
client.run("機器人的TOKEN") # 請把字串改成機器人的 TOKEN -
存好檔後,就可以執行它啦。可以測試在頻道打出 Hello,它就會回應你 Hello, world!
這部分是透過事件偵測,來觸發機器人的回應。如果要讓機器人使用前綴指令,可以參考下方程式碼。
1 | # 導入 Discord.py 模組 |
接著試著打 $Hello
,它就會回應 Hello, world!
但如果你想讓這兩段程式碼合併,你會發現它無法正常執行,這是因為 on_message 與 command 相互牴觸,所以之後將再額外講解 Cog 寫法,它可以有效的解決前綴指令與事件觸發的牴觸問題,並且在維護上將會變得更容易維護。
參考網站
- discord.py 官方文檔
- Python Discord Bot 基礎教學
- YouTube 頻道 Proladon