https://github.com/510208/cfbot
A Discord Bot for "whiter.lnstw.xyz", a Minecraft Server's bot. Developed By SamHacker
https://github.com/510208/cfbot
discord discord-bot discord-py management minecraft minecraft-server samhacker standwithukraine
Last synced: 6 months ago
JSON representation
A Discord Bot for "whiter.lnstw.xyz", a Minecraft Server's bot. Developed By SamHacker
- Host: GitHub
- URL: https://github.com/510208/cfbot
- Owner: 510208
- License: gpl-3.0
- Created: 2024-06-28T13:28:09.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-02T11:30:12.000Z (7 months ago)
- Last Synced: 2025-04-14T07:08:44.738Z (6 months ago)
- Topics: discord, discord-bot, discord-py, management, minecraft, minecraft-server, samhacker, standwithukraine
- Language: Python
- Homepage: https://samhacker.xyz/cfbot/
- Size: 465 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
CfBot> 原 `雲羽機器人`、`CloudFeather Announcement Bot` 等名稱,因為名稱太亂,就整理一下了
[](https://stand-with-ukraine.pp.ua)
> [!IMPORTANT]
> 本機器人為 [510208](https://github.com/510208) 為雲羽生存服開發的機器人,專案所有權仍為 510208 所有,因此即使雲羽生存服關閉,你也仍然可以使用它!這是一個提供給 [🪶Minecraft 雲羽伺服器](https://discord.gg/CfGvx3NQWZ) 的 Discord Bot,由服主 SamHacker 編寫。為了幫助更多人而不限於我們伺服器內部,我將此專案開源出來給大家使用
## 💻 如何部署?
你可以使用虛擬環境或直接搭建,以下分析兩種方式的優缺點:
| | [**📦 虛擬環境**](#-虛擬環境) | [**⏰ 直接搭建**](#-直接搭建) |
|:---|:---|:---|
| **原理** | 在電腦上建立一個虛擬的、與本機隔離的獨立 Python 環境,
並在那之中運行機器人,就像沙箱一樣! | 使用原本就安裝在電腦上的 Python 原生環境直接運行機器人,
這種方法你可以打少少的指令完成一個部署,期待嗎?
| **優點** |
| **缺點** |
### 📦 虛擬環境
搭建在 Python 虛擬環境中是個不錯的主意!如此一來,你可以比較不需要擔心插件衝突的問題,並且它提供了你未來擴充機器人的彈性。想像一下,未來你的機器人可以幫你管整個 Minecraft 伺服器,聽起來是不是很心動?
心動不如馬上行動,我們開始吧!
1. 先前往 [Python官網](https://www.python.org/) 下載並安裝 Python
> 喔對了!我使用的是 Python 3.10.6,我可以保證這個版本下的程式可以正常運作!
>
> 請記得,安裝時必須要勾選 `Add Python 3.x to PATH`,否則待會的操作會很麻煩喔...
2. 安裝完成後,你可以在網頁最上面有綠色`<> Code`按紐,按下它之後點選"Download ZIP"(在最下方),下載後解壓縮
(Zip格式可以用Windows 10以上的系統解壓),或是使用以下兩個按鈕下載發行版與開發中版本
3. 按住Shift鍵並在資料夾中右鍵,選擇"使用PowerShell開啟"
4. 會跳出一個看起來很複雜的視窗,不用怕,直接貼上下面這段就好,記得一行一行貼:
```shell
$ python -m venv
$ cd .venv/Scripts
$ activate
$ pip install -r requirements.txt
```
> 請記得,前面的錢號不用打進去,那代表你要自己輸入的意思
5. 現在你搭建好了!恭喜你!!
### ⏰ 直接搭建
> [!IMPORTANT]
> 建議採用虛擬環境安裝方式,請跳過本章,前往 [建立機器人](#-建立機器人)
很簡單,首先先照上方虛擬方式的方法執行,但你只需要打這些指令即可:
```shell
$ pip install -r requirements.txt
```
(是的沒錯就這麼少)
### 🔒 建立機器人
如果你看到了這裡,恭喜你已經完成了一半!再來你需要去建立一個 Discord 機器人,請照以下教學處理:
1. 前往 [https://discord.com/developers/applications](https://discord.com/developers/applications) 網站並登入自己的 Discord 帳號
2. 單按右上紫色的 "New Applaction",它會幫你建立一個新的機器人。然後會跳出一個如圖的訊息,輸入你希望機器人的名字,然後打勾勾按 Create 建立機器人:

3. 切換到左列的 Bot,將底下三個 "Privileged Gateway Intents" 的勾都勾上:

4. 滑到上方,單按 Token 下大大的 "Reset Token"。點下去,如果你有雙步驟驗證請打一下驗證碼:

5. 看到一組亂碼,存下來千萬別告訴別人。打開軟體的資料夾找到 `token.txt` ,將剛剛的亂碼貼進這個文件中
> 這組亂碼跟你的密碼是一樣的,因此千萬要小心不要分享給人。只要別人擁有這組亂碼,他就可以在你的 Discord 群組中為所欲為!
### ▶ 機器人,啟動!!
恭喜你進度條到了99%,剩下最後一件事就是雙按 `main.py` 啟動機器人。
如果看到類似以下的訊息,代表你已經可以去找機器人...了嗎?
```log
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)
```
### 🤝 邀請機器人
對,現在機器人啟動了。但你有沒有發現一件事情:
> 我的伺服器裡還是沒這隻機器人啊!!!!
因此讓我們邀請機器人吧!
1. 切換到 [https://discord.com/developers/applications](https://discord.com/developers/applications),點擊你剛剛建立好的機器人之後切換到左列 OAuth 中:

2. 拉到下方 `OAuth2 URL Generator`,勾選bot,然後勾選"Adminstrator"給機器人管理權限
3. `GENERATED URL`即為邀機器人進服的方法!
## ⛏ 編輯配置
> [!CAUTION]
> 編輯完配置後記得要使用Reload指令以加載新版本
請參考 [`cfg.yml`](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](https://discord.com/developers/applications),進入機器人選項後在Bots底下的"Privileged Gateway Intents"全部勾選後Save並且重啟即可排除
#### Token錯誤
```
discord.errors.LoginFailure: Improper token has been passed.
```
類似以上訊息,可能是你的 Token 錯誤。請照上方教學重新前往開發者面板並取得新的 Token 後 再次嘗試,仍然錯誤再前來詢問
> [!CAUTION]
> 如果 Token 被你誤發到 Github 等平台,Discord 也會自動重置該組 Token 以防止意外發生
### ❓ 遇到問題
如果你遇到以下情況,請照這個章節的說明操作:
- 遇到Traceback錯誤以致無法執行或啟動
- 執行或啟動過程中遇到Traceback錯誤,但仍能繼續走流程
- 或其他問題適合提Issue
請在 [Issues](https://github.com/510208/yunyubot-dc-annou/issues) 中提出問題,並提供以下必須資訊(如果不提供或找不到,我們有權利不做受理):
- Python版本與機器人版本(可以透過Git檢視Commit的編號)
- 錯誤內容
- 如何啟動這個錯誤
- 發現時間
- 是否已經確定不是自己問題
有部分錯誤已知解決方法並列在常見錯誤區段中,請自行先做檢查後再提 Issue,否則我們有權不受理
### ❤ 協助開發
非常謝謝你願意協助這個機器人的完善,未來我會考慮更換一下這個機器人的名稱。順帶一提,本機器人應該不會是 [Nether Bot](https://github.com/510208/nether) 的繼承人(至少現在不會)
如果你要協助開發,請參考[CONTRIBUTING.md](CONTRIBUTING.md)的描述,謝謝您
### 💗 贊助專案
> [!IMPORTANT]
> 我們目前不接受任何格式的贊助,非常遺憾
## 🙏 備註與謝誌
非常感謝 @510208 的開發,與以下用戶的協助:
| **用戶或團體** | **內容** |
|:---|:---|
| [雲羽生存服](https://discord.gg/CfGvx3NQWZ) | 提供Discord群組做為測試之用 |
| [Asteroid Bot Hosting](https://discord.gg/DuJEFKqckm) | 提供機器人24小時託管 |
| LunarKdeo3147 | 協助測試專案與提供建議 |
| !夜間部( @woodypegasus382 ) | 提供 [ticket.py](https://github.com/510208/cfbot/blob/main/Cogs/tickets/ticket.py) 開發協助 |
與你的使用!