first commit
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
# Discord Whitelist Bot
|
||||
|
||||
### A **Discord.js** bot that handles **Minecraft whitelist requests** with admin review, RCON integration, and optional uptime pings.
|
||||
### Make sure to have NPM installed. If not install on https://nodejs.org/en/download for your os
|
||||
### If you need help: Join my discord Server and send me a dm https://discord.gg/nRgXUFSFfe
|
||||
### Also feel free to create issues in the issues tab https://github.com/WinniePatGG/MinecraftWhitelistBot/issues
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## Features
|
||||
|
||||
- Whitelist requests from discord
|
||||
- Admin review system
|
||||
- RCON integration
|
||||
- Optional uptime ping system
|
||||
- Docker support
|
||||
- Fully customizable via `.env`
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## Environment Variables
|
||||
|
||||
|
||||
| Variable | Description |
|
||||
|---------------------------|-----------------------------------------------|
|
||||
| `DISCORD_TOKEN` | Discord Bot Token |
|
||||
| `GUILD_ID` | Discord Server ID |
|
||||
| `PUBLIC_CHANNEL_ID` | Channel where users submit whitelist requests |
|
||||
| `ADMIN_REVIEW_CHANNEL_ID` | Channel where admins review requests |
|
||||
| `TEAM_ROLE_ID` | Role that gets pinged for new requests |
|
||||
| `RCON_HOST` | IP address of the Minecraft server |
|
||||
| `RCON_PORT` | RCON port (from server.properties) |
|
||||
| `RCON_PASSWORD` | Password for RCON |
|
||||
| `PING_ENABLED` | Enable/disable API pings |
|
||||
| `PING_DOMAIN` | URL to ping (e.g. Uptime Kuma) |
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## File Overview
|
||||
|
||||
### `bot.js`
|
||||
|
||||
Handles:
|
||||
- Slash commands
|
||||
- Request storage
|
||||
- Embeds and UI
|
||||
- Workflow logic
|
||||
|
||||
### `minecraft_bridge.js`
|
||||
|
||||
Manages communication with the Minecraft server via **RCON**.
|
||||
|
||||
### `pingTask.js`
|
||||
|
||||
Runs scheduled pings if enabled.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Local Setup
|
||||
|
||||
git clone https://github.com/WinniePatGG/MinecraftWhitelistBot.git
|
||||
cd MinecraftWhitelistBot
|
||||
npm install
|
||||
npm run start:all
|
||||
|
||||
Then run `/whitelist` in your configured Discord channel.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## Docker Deployment
|
||||
|
||||
mkdir MinecraftWhitelistBot
|
||||
mkdir MinecraftWhitelistBot/app
|
||||
|
||||
Copy:
|
||||
- `docker-compose.yml` → root folder
|
||||
- `.env` → root folder
|
||||
- All app files → `/app`
|
||||
|
||||
Start:
|
||||
|
||||
docker compose up -d
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## Common Issues
|
||||
|
||||
### - Error: SQLITE_ERROR: no such table: whitelist_requests
|
||||
|
||||
Restart everything:
|
||||
|
||||
npm run start:all
|
||||
|
||||
### - Error [TokenInvalid]: An invalid token was provided.
|
||||
|
||||
Set a valid Discord Bot Token in you .env file in the field `DISCORD_TOKEN` and restart
|
||||
|
||||
npm run start:all
|
||||
|
||||
------------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user