# 🚪🛡️ BellGate — Secure Access, VIP Management & Discord Link
### *Complete server access management — auth, whitelist, VIP subscriptions, and Discord linking.*


---
## 🛡️ What is BellGate?
> **Your server's front door — secure, automated, and connected.**
BellGate is a **comprehensive server access management** plugin that handles everything from player authentication to VIP subscriptions. Secure login with **bcrypt hashing**, flexible whitelist management, seamless **Discord account linking**, and a fully automated **timed VIP system** with ecosystem-wide event broadcasting.
Whether you run a small SMP or a large network — BellGate keeps your server safe and your VIPs happy.
---
## ✨ Features
### 🔐 Authentication System
- 🔑 **Secure login & register** — bcrypt password hashing, industry-standard security
- ⏱️ **Session management** — configurable session timeout, stay logged in across reconnects
- 🌐 **IP-based memory** — optionally skip login for recognized IPs
- 🔒 **Movement lock** — unauthenticated players can't move, chat, or interact
- 🔄 **Password changes** — players manage their own credentials safely
### 📋 Whitelist Management
- ✅ **Flexible whitelist** — add/remove players with simple commands
- 🖥️ **Admin GUI** — visual whitelist management, no commands needed
- 📊 **Whitelist info** — see who's on the list at a glance
### 🔗 Discord Integration
- 💬 **DiscordSRV integration** — link Minecraft accounts to Discord
- 🆔 **Account verification** — require Discord linking before play
- 📡 **Status sync** — linked status visible to admins
### 👑 Timed VIP System
- ⏰ **Time-limited VIP** — grant VIP for X days, automatic expiration
- 🔄 **Auto-revoke** — groups and permissions cleanly removed when VIP expires
- 📢 **Ecosystem hooks** — `onVipChanged`, `onVipGranted`, `onVipRevoked` broadcast to all listeners
- 🔗 **LuckPerms integration** — VIP group assignment handled automatically
- 📊 **VIP tracking** — check status, list active VIPs, review expiration dates
### 🌍 Quality of Life
- 🌐 **Multi-language** — English and Polish built-in
- ⚡ **Lightweight** — minimal performance footprint
- 🔌 **Modular** — every feature can be toggled independently
---
## 📦 Dependencies
| Plugin | Required? | Purpose |
|--------|-----------|---------|
| *None* | — | BellGate works standalone! |
| LuckPerms | ⚙️ Optional | VIP group assignment |
| DiscordSRV | ⚙️ Optional | Discord account linking |
| BellLP | ⚙️ Optional | Ecosystem-wide VIP event propagation |
---
## 💻 Commands
### 🔐 Player Commands
| Command | Description |
|---------|-------------|
| `/register <password> <confirm>` | Register a new account |
| `/login <password>` | Log in to your account |
| `/changepassword <old> <new>` | Change your password |
### 👑 VIP Management
| Command | Description |
|---------|-------------|
| `/bellgate vip add <player> <days>` | Grant VIP for specified days |
| `/bellgate vip remove <player>` | Revoke VIP immediately |
| `/bellgate vip list` | List all active VIPs with expiry dates |
| `/bellgate vip check <player>` | Check a player's VIP status |
### ⚙️ Administration
| Command | Description |
|---------|-------------|
| `/bellgate whitelist add <player>` | Add player to whitelist |
| `/bellgate whitelist remove <player>` | Remove player from whitelist |
| `/bellgate whitelist list` | Show all whitelisted players |
| `/bellgate discord link <player>` | Force-link a player's Discord |
| `/bellgate discord unlink <player>` | Unlink a player's Discord |
| `/bellgate discord status <player>` | Check Discord link status |
| `/bellgate reload` | Reload all configuration files |
---
## 🔑 Permissions
| Permission | Description | Default |
|------------|-------------|---------|
| `bellgate.admin` | Access all admin commands and GUI | OP |
| `bellgate.vip` | VIP management commands | OP |
| `bellgate.whitelist` | Whitelist management commands | OP |
| `bellgate.bypass` | Bypass authentication requirement | false |
---
## ⚙️ Configuration Highlights
```yaml
# config.yml — Authentication settings
auth:
enabled: true
session-timeout-minutes: 60
ip-remember: true
max-login-attempts: 5
lockout-duration-minutes: 15
require-registration: true
# Movement restriction before login
restrictions:
block-movement: true
block-chat: true
block-commands: true
allowed-commands:
- /login
- /register
```
```yaml
# vip.yml — VIP system configuration
vip:
enabled: true
luckperms-group: "vip"
notify-on-expire: true
expire-message: "&cYour VIP status has expired!"
grant-message: "&aYou have been granted VIP for {days} days!"
# Ecosystem hooks — broadcast VIP changes to other Bell plugins
ecosystem-hooks:
enabled: true
broadcast-grant: true
broadcast-revoke: true
```
```yaml
# discord.yml — DiscordSRV integration
discord:
enabled: false # Enable when DiscordSRV is installed
require-link: false
link-reward-group: "linked"
```
---
## 🔒 Security Details
BellGate takes security seriously:
- **bcrypt hashing** — passwords are never stored in plain text
- **Rate limiting** — brute-force protection with configurable lockout
- **Session tokens** — cryptographically random session identifiers
- **IP validation** — optional IP-based session persistence
- **Restricted state** — unauthenticated players are fully locked down
---
## 🔌 Ecosystem Integration
BellGate's VIP system is designed to work seamlessly with the Bell plugin ecosystem:
```
Player purchases VIP
│
▼
/bellgate vip add <player> <days>
│
▼
┌─────────────────────┐
│ BellGate sets VIP │──► LuckPerms group assigned
│ and broadcasts │──► BellLP syncs to ecosystem
│ VipEcosystemHooks │──► BellChat updates prefix
└─────────────────────┘──► BellLandsPro raises limits
│
▼
VIP expires after X days
│
▼
┌─────────────────────┐
│ Auto-revoke fires │──► All changes cleanly reversed
└─────────────────────┘
```
---
## 📥 Installation
1. Drop `BellGate.jar` into your `/plugins` folder
2. Start or restart your server
3. Edit the generated config files in `plugins/BellGate/`
4. *(Optional)* Install LuckPerms for VIP group integration
5. *(Optional)* Install DiscordSRV for Discord linking
6. Run `/bellgate reload` to apply changes
7. Your server is now secured! 🎉
---
## 🤝 Support & Links
- 💬 **Discord:** [https://discord.gg/6q7bnSYaR](#) — fastest way to get help
- 📖 **Wiki:** [Full documentation](#)
- 🐛 **Issues:** [Report bugs](#)
- ⭐ **Rate this plugin** if it helps your server — it means a lot!
---
<p align="center">
<b>BellGate</b> — Secure access. Seamless VIP. Connected ecosystem.<br>
Made with ❤️ for the Minecraft community.
</p>