一個功能強大的 Discord 機器人,用於管理和自動化動態語音頻道的創建、配置和管理。
✨ 核心功能
- 🎙️ 自動創建動態語音頻道
- 🔧 靈活的頻道配置(名稱、人數限制、比特率等)
- 🚫 黑名單系統,管理用戶訪問權限
- 📊 實時頻道監控和管理
- 🎛️ 支援自定義頻道位置和分類
進階功能
- 💾 自動保存配置到 JSON 文件
- 🔄 數據遷移和自動升級機制
- ⚡ 速率限制控制,防止濫用
- 📈 系統監控(CPU、內存、延遲)
- Python 3.8+
- pip(Python 包管理器)
-
複製此倉庫
git clone https://github.com/Kevin28576/dynamic-voice-bot.git cd dynamic-voice-bot -
創建虛擬環境(推薦)
python -m venv venv # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate
-
安裝依賴
pip install -r requirements.txt
-
配置機器人
複製
.env.example並創建.env文件:cp .env.example .env
編輯
.env文件,填入你的 Discord Bot Token:DISCORD_TOKEN=your_actual_bot_token_here💡 提示:
- 在 Discord Developer Portal 創建應用並獲取 Bot Token
-
運行機器人
python main.py
設置動態語音頻道的默認行為:
/default name <頻道> <名稱>- 設置默認頻道名稱/default limit <頻道> <人數>- 設置默認人數限制/default bitrate <頻道> <比特率>- 設置默認比特率/default position <頻道> [top/bottom]- 設置頻道位置/default category <頻道> <分類>- 設置默認分類
/bot info- 顯示機器人運行信息/bot invite- 獲取邀請鏈接/bot permcheck- 檢查權限
管理用戶和角色的訪問權限。
顯示所有可用命令。
.
├── main.py # 入口點,啟動機器人
├── requirements.txt # Python 依賴
├── .env.example # 環境變數範本(複製此文件為 .env)
├── .env # 環境變數配置(不會提交到 Git)
├── .gitignore # Git 忽略配置
├── README.md # 本說明文件
├── data/ # 配置數據(自動生成)
│ ├── configs.json # 頻道配置
│ ├── channels.json # 活躍頻道列表
│ └── blacklists.json # 黑名單數據
└── bot/
├── client.py # 主機器人類
├── utils/
│ └── data.py # JSON 文件管理工具
└── ext/ # 功能擴展
├── bot.py # 機器人信息命令
├── default.py # 默認配置命令
├── blacklist.py # 黑名單管理
├── dvc.py # 動態語音頻道核心功能
└── help.py # 幫助命令
機器人需要以下 Discord 權限:
- ✅ 管理頻道 - 創建/刪除/移動語音頻道
- ✅ 移動成員 - 將成員移動到動態頻道
- ✅ 連接 - 連接語音頻道
- ✅ 管理角色 - 設置頻道權限
存儲每個動態語音頻道的配置:
{
"頻道ID": {
"name": "@user的頻道",
"limit": 99,
"bitrate": 128000,
"position": "bottom",
"category": 12345678901
}
}記錄當前活躍的動態語音頻道。
儲存黑名單用戶和角色。
Q: 機器人無法創建頻道?
A: 檢查機器人是否有"管理頻道"和"移動成員"權限。使用 /bot permcheck 驗證。
Q: 頻道沒有自動刪除? A: 機器人會在所有成員離開後自動刪除空頻道。確保機器人保持連線。
Q: 如何更改頻道默認名稱?
A: 使用 /default name <語音頻道> <新名稱> 命令。支持 @user 標籤自動填充用戶名。
- 在
bot/ext/創建新的.py文件 - 編寫 Cog 類並實現命令
- 在類末尾添加
setup()函數 - 機器人會自動加載它
使用提供的 data.py 工具類:
from bot.utils import data
my_list = data.List("path/to/file.json")
my_dict = data.Dict("path/to/file.json")
# 修改數據
my_dict["key"] = "value"
# 保存到文件
await my_dict.save()歡迎提交 Pull Request 或報告 Issue!
注意: 此機器人已停止開發。如遇到任何問題,請報告 Issue。