原
雲羽機器人
、CloudFeather Announcement Bot
等名稱,因為名稱太亂,就整理一下了
Important
本機器人為 510208 為雲羽生存服開發的機器人,專案所有權仍為 510208 所有,因此即使雲羽生存服關閉,你也仍然可以使用它!
這是一個提供給 🪶Minecraft 雲羽伺服器 的 Discord Bot,由服主 SamHacker 編寫。為了幫助更多人而不限於我們伺服器內部,我將此專案開源出來給大家使用
你可以使用虛擬環境或直接搭建,以下分析兩種方式的優缺點:
📦 虛擬環境 | ⏰ 直接搭建 | |
---|---|---|
原理 | 在電腦上建立一個虛擬的、與本機隔離的獨立 Python 環境, 並在那之中運行機器人,就像沙箱一樣! |
使用原本就安裝在電腦上的 Python 原生環境直接運行機器人, 這種方法你可以打少少的指令完成一個部署,期待嗎? |
優點 | ||
缺點 |
搭建在 Python 虛擬環境中是個不錯的主意!如此一來,你可以比較不需要擔心插件衝突的問題,並且它提供了你未來擴充機器人的彈性。想像一下,未來你的機器人可以幫你管整個 Minecraft 伺服器,聽起來是不是很心動?
心動不如馬上行動,我們開始吧!
- 先前往 Python官網 下載並安裝 Python
喔對了!我使用的是 Python 3.10.6,我可以保證這個版本下的程式可以正常運作!
請記得,安裝時必須要勾選
Add Python 3.x to PATH
,否則待會的操作會很麻煩喔...
- 安裝完成後,你可以在網頁最上面有綠色
<> Code
按紐,按下它之後點選"Download ZIP"(在最下方),下載後解壓縮 (Zip格式可以用Windows 10以上的系統解壓),或是使用以下兩個按鈕下載發行版與開發中版本
- 按住Shift鍵並在資料夾中右鍵,選擇"使用PowerShell開啟"
- 會跳出一個看起來很複雜的視窗,不用怕,直接貼上下面這段就好,記得一行一行貼:
$ python -m venv
$ cd .venv/Scripts
$ activate
$ pip install -r requirements.txt
請記得,前面的錢號不用打進去,那代表你要自己輸入的意思
- 現在你搭建好了!恭喜你!!
Important
建議採用虛擬環境安裝方式,請跳過本章,前往 建立機器人
很簡單,首先先照上方虛擬方式的方法執行,但你只需要打這些指令即可:
$ pip install -r requirements.txt
(是的沒錯就這麼少)
如果你看到了這裡,恭喜你已經完成了一半!再來你需要去建立一個 Discord 機器人,請照以下教學處理:
- 前往 https://discord.com/developers/applications 網站並登入自己的 Discord 帳號
- 單按右上紫色的 "New Applaction",它會幫你建立一個新的機器人。然後會跳出一個如圖的訊息,輸入你希望機器人的名字,然後打勾勾按 Create 建立機器人:
- 切換到左列的 Bot,將底下三個 "Privileged Gateway Intents" 的勾都勾上:
- 滑到上方,單按 Token 下大大的 "Reset Token"。點下去,如果你有雙步驟驗證請打一下驗證碼:
- 看到一組亂碼,存下來千萬別告訴別人。打開軟體的資料夾找到
token.txt
,將剛剛的亂碼貼進這個文件中
這組亂碼跟你的密碼是一樣的,因此千萬要小心不要分享給人。只要別人擁有這組亂碼,他就可以在你的 Discord 群組中為所欲為!
恭喜你進度條到了99%,剩下最後一件事就是雙按 main.py
啟動機器人。
如果看到類似以下的訊息,代表你已經可以去找機器人...了嗎?
228: [2024-06-29 21:16:46,384][INFO] - [main] 載入annou_stat.py中...
30: [2024-06-29 21:16:46,412][INFO] - [annou_stat] AnnouStat cog 已經載入
230: [2024-06-29 21:16:46,415][INFO] - [main] 載入annou_stat.py成功
237: [2024-06-29 21:16:46,416][INFO] - [main] 跳過nlfile.py, 原因:採用nl方式跳過載入
239: [2024-06-29 21:16:46,416][INFO] - [main] 跳過__pycache__
603: [2024-06-29 21:16:46,417][INFO] - [client] logging in using static token
561: [2024-06-29 21:16:48,248][INFO] - [gateway] Shard ID None has connected to Gateway (Session ID: 6989b35e31230ee56a079ae50220d5a3).
28: [2024-06-29 21:16:50,347][INFO] - [main] Logged in as (機器人名稱)#(機器人編號) (ID: 機器人ID)
對,現在機器人啟動了。但你有沒有發現一件事情:
我的伺服器裡還是沒這隻機器人啊!!!!
因此讓我們邀請機器人吧!
- 切換到 https://discord.com/developers/applications,點擊你剛剛建立好的機器人之後切換到左列 OAuth 中:
- 拉到下方
OAuth2 URL Generator
,勾選bot,然後勾選"Adminstrator"給機器人管理權限 GENERATED URL
即為邀機器人進服的方法!
Caution
編輯完配置後記得要使用Reload指令以加載新版本
請參考 cfg.yml
中的設定資訊來做執行
首先,我個人也不是什麼太厲害的人,對於這邊的貢獻流程如果有建議歡迎提Issue補充!總之非常感謝你願意看到這一步,如果你也想為這個專案做貢獻,請照以下說明操作:
discord.errors.PrivilegedIntentsRequired: Shard ID None is requesting privileged intents that have not been explicitly enabled in the developer portal. It is recommended to go to https://discord.com/developers/applications/ and explicitly enable the privileged intents within your application's page. If this is not possible, then consider disabling the privileged intents instead.
以上是特權網關意圖錯誤,如果你的錯誤碼類似這樣,請前往 Discord Developer Portal,進入機器人選項後在Bots底下的"Privileged Gateway Intents"全部勾選後Save並且重啟即可排除
discord.errors.LoginFailure: Improper token has been passed.
類似以上訊息,可能是你的 Token 錯誤。請照上方教學重新前往開發者面板並取得新的 Token 後 再次嘗試,仍然錯誤再前來詢問
Caution
如果 Token 被你誤發到 Github 等平台,Discord 也會自動重置該組 Token 以防止意外發生
如果你遇到以下情況,請照這個章節的說明操作:
- 遇到Traceback錯誤以致無法執行或啟動
- 執行或啟動過程中遇到Traceback錯誤,但仍能繼續走流程
- 或其他問題適合提Issue
請在 Issues 中提出問題,並提供以下必須資訊(如果不提供或找不到,我們有權利不做受理):
- Python版本與機器人版本(可以透過Git檢視Commit的編號)
- 錯誤內容
- 如何啟動這個錯誤
- 發現時間
- 是否已經確定不是自己問題
有部分錯誤已知解決方法並列在常見錯誤區段中,請自行先做檢查後再提 Issue,否則我們有權不受理
非常謝謝你願意協助這個機器人的完善,未來我會考慮更換一下這個機器人的名稱。順帶一提,本機器人應該不會是 Nether Bot 的繼承人(至少現在不會)
如果你要協助開發,請參考CONTRIBUTING.md的描述,謝謝您
Important
我們目前不接受任何格式的贊助,非常遺憾
非常感謝 @510208 的開發,與以下用戶的協助:
用戶或團體 | 內容 |
---|---|
雲羽生存服 | 提供Discord群組做為測試之用 |
Asteroid Bot Hosting | 提供機器人24小時託管 |
LunarKdeo3147 | 協助測試專案與提供建議 |
!夜間部( @woodypegasus382 ) | 提供 ticket.py 開發協助 |
與你的使用!