Bot Discord chơi game nối từ tiếng Việt với từ gồm 2 chữ. Hỗ trợ chơi cả trong kênh server và tin nhắn riêng (DM).
- Từ điển tiếng Việt: Sử dụng bộ từ điển phong phú với gần 60,000 từ ghép
- 2 chế độ chơi:
- Bot vs User: Bot tự động tìm từ tiếp theo
- PvP (User vs User): Người chơi thi đấu với nhau
- DM Support: Có thể chơi riêng với bot qua tin nhắn trực tiếp
- Thống kê cá nhân: Theo dõi chuỗi thắng, kỷ lục, số trận thắng
- Thêm/Xóa kênh: Admin có thể thêm kênh để bot hoạt động
- Chế độ linh hoạt: Chuyển đổi giữa bot mode và PvP mode
- Reset game: Bắt đầu lại từ đầu bất cứ lúc nào
- Tra cứu từ điển: Tích hợp API từ điển tiếng Việt
- Hỗ trợ nhiều định dạng: Xử lý dấu tiếng Việt chuẩn
- Quản lý kênh: Thêm/xóa kênh, đổi chế độ chơi
- Logs chi tiết: Theo dõi hoạt động bot
- Node.js >= 16.0.0
- npm hoặc yarn
- Tài khoản Discord Bot Token
-
Clone repository
git clone https://github.com/minhqnd/noi-tu-discord-bot.git cd noi-tu-discord-bot -
Cài đặt dependencies
npm install
-
Tạo file .env
DISCORD_BOT_TOKEN=your_bot_token_here
-
Khởi chạy bot
npm start
- Truy cập Discord Developer Portal
- Tạo ứng dụng mới hoặc chọn ứng dụng hiện có
- Chuyển đến tab "Bot"
- Sao chép Bot Token và paste vào file
.env
Bot cần các quyền sau trong server:
- ✅ Manage Messages
- ✅ Send Messages
- ✅ Use Slash Commands
- ✅ Read Message History
- ✅ Add Reactions (cho PvP mode)
Ảnh hướng dẫn cấu hình quyền cho bot
- Thêm kênh: Sử dụng
/noitu_addđể thêm kênh chơi game - Bắt đầu: Bot sẽ tự động bắt đầu với từ đầu tiên
- Nối từ: Nhập từ gồm 2 chữ bắt đầu bằng chữ cuối của từ trước
- Thắng: Khi đối phương/bot không tìm được từ tiếp theo
Bot: thế chân
User: chân trời
Bot: trời xanh
User: xanh lục
...
- Bot chỉ kiểm tra và thả reaction:
- ✅ Từ đúng
- ❌ Từ không nối được
- 🔴 Từ đã lặp
⚠️ Sai format
- Gửi tin nhắn trực tiếp cho bot
- Bot sẽ phản hồi và chơi riêng với bạn
| Command | Mô tả |
|---|---|
/noitu_add |
Thêm kênh để bot hoạt động |
/noitu_remove |
Xóa kênh khỏi game |
/newgame |
Bắt đầu game mới |
/stats |
Xem thống kê cá nhân |
/help |
Hiển thị hướng dẫn |
| Command | Mô tả |
|---|---|
/tratu [từ] |
Tra cứu từ điển |
/noitu_mode [mode] |
Đổi chế độ chơi |
src/
├── discordBot.js # Bot chính, xử lý Discord events
├── gameEngine.js # Logic game core
├── gameLogic.js # Interface giữa bot và game engine
├── db.js # Database layer (JSON file)
├── wordProcessing.js # Xử lý từ tiếng Việt
├── utils.js # Constants và utilities
└── assets/
└── wordPairs.json # Bộ từ điển (~60,000 từ)
data.json:
{
"channels": {
"channel_id": {
"word": "từ hiện tại",
"history": ["từ đã dùng"],
"players": {
"user_id": {
"currentStreak": 5,
"bestStreak": 12,
"wins": 3
}
},
"mode": "bot"
}
},
"users": {
"user_id": {
"word": "từ hiện tại",
"history": ["từ đã dùng"],
"currentStreak": 8,
"bestStreak": 15,
"wins": 5
}
},
"channelAllowlist": ["channel_id_1", "channel_id_2"]
}Từ điển được lưu trong src/assets/wordPairs.json. Để thêm từ mới:
Thêm vào file JSON theo format:
{
"từ_đầu": ["từ_cuối_1", "từ_cuối_2"]
}# Chạy bot ở chế độ development
npm run dev
# Kiểm tra logs
tail -f bot.logBot ghi log chi tiết vào file bot.log:
- Game events (thắng/thua)
- User interactions
- Errors và warnings
- Chuỗi hiện tại: Số từ nối liên tiếp trong game hiện tại
- Kỷ lục: Chuỗi dài nhất từng đạt được
- Số trận thắng: Tổng số lần thắng
Chúng tôi hoan nghênh mọi đóng góp!
- Fork project
- Tạo feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Tạo Pull Request
- Tạo GitHub Issue
Dự án này được phân phối dưới giấy phép MIT. Xem file LICENSE để biết thêm chi tiết.
Made by minhqnd ❤️

