# ๐๐ BellLP — The Central Hub of Your Plugin Ecosystem
### *Define your groups once. Watch them sync everywhere.*



---
## ๐ What is BellLP?
> **Define your groups once. Watch them sync everywhere.**
BellLP is the **central group management and synchronization hub** for the entire Bell plugin ecosystem. It bridges your **LuckPerms** groups with gameplay mechanics across every connected plugin — from land limits and chat prefixes to market listings and warp quotas.
No more editing five configs when you add a new rank. No more permission mismatches. **One source of truth for all your groups.**
---
## โจ Features
### ๐๏ธ Core Group Management
- ๐ **Central group registry** — define name, prefix, color, weight, and limits in one place
- ๐ **Automatic LuckPerms sync** — permissions, weight, and inheritance pushed to LP instantly
- ๐ **Per-group properties** — max-lands, max-warps, market-limit, custom prefix, and more
- โ๏ธ **Weight-based hierarchy** — groups automatically inherit from lower-weight groups
### ๐ Ecosystem Integration
- ๐๏ธ **BellLandsPro** — land claim limits synced per group automatically
- ๐ฌ **BellChat** — prefixes and colors updated in real time across chat and tablist
- ๐ **BellTrade & BellMarket** — marketplace listing limits enforced per rank
- ๐ช **BellGate** — VIP lifecycle events (grant/revoke) propagated across all plugins
### ๐ VIP System
- ๐ซ **VIP lifecycle hooks** — `onVipGranted` / `onVipRevoked` broadcast to all ecosystem handlers
- โฐ **Instant propagation** — every connected plugin reacts immediately to VIP status changes
- ๐ **GroupSyncHandler API** — third-party plugins can subscribe to group change events
### ๐ฅ๏ธ Admin Interface
- ๐จ **Full admin GUI** — intuitive click-through: group list → group editor → group members → player view
- โก **Real-time updates** — GUI always reflects current state, no restart required
- ๐ค **Player lookup** — instantly see which groups any player belongs to
### ๐ Quality of Life
- ๐ **Multi-language** — English and Polish built-in, hot-swappable at runtime
- ๐ **Managed permissions** — `bell.*` plus configurable extras like `vipdeathchest.use`
- ๐ **Clean YAML config** — well-commented, human-readable, reload-friendly
---
## ๐ฆ Dependencies
| Plugin | Required? | Purpose |
|--------|-----------|---------|
| **LuckPerms** | โ
Required | Permission and group backend |
| BellGate | โ๏ธ Optional | VIP lifecycle integration |
| BellChat | โ๏ธ Optional | Prefix/color sync to chat & tablist |
| BellLands | โ๏ธ Optional | Basic land limit awareness |
| BellLandsPro | โ๏ธ Optional | Full land limit sync |
| BellTrade | โ๏ธ Optional | Trade listing limits |
| BellMarket | โ๏ธ Optional | Market listing limits |
---
## ๐ป Commands
| Command | Description |
|---------|-------------|
| `/belllp admin` | Open the admin GUI |
| `/belllp player <name>` | View a player's groups |
| `/belllp sync` | Force a full ecosystem sync |
| `/belllp create <group>` | Create a new group |
| `/belllp delete <group>` | Delete an existing group |
| `/belllp add <player> <group>` | Add a player to a group |
| `/belllp remove <player> <group>` | Remove a player from a group |
| `/belllp members <group>` | List all members of a group |
| `/belllp reload` | Reload configuration files |
| `/belllp lang` | Toggle between EN/PL |
---
## ๐ Permissions
| Permission | Description | Default |
|------------|-------------|---------|
| `belllp.admin` | Access admin GUI and all management commands | OP |
| `belllp.command` | Base command access (`/belllp`) | All |
---
## โ๏ธ Configuration Highlights
```yaml
# groups.yml — Define all your groups in one place
groups:
vip:
prefix: "&6[VIP] "
color: "gold"
weight: 100
max-lands: 5
max-warps: 10
market-limit: 20
permissions:
- bell.vip
- vipdeathchest.use
mvp:
prefix: "&b[MVP] "
color: "aqua"
weight: 200
max-lands: 10
max-warps: 25
market-limit: 50
inherits: vip
```
```yaml
# config.yml — Core settings
sync:
auto-sync-on-join: true
sync-interval-minutes: 30
push-to-luckperms: true
push-to-ecosystem: true
language: EN # EN or PL, change at runtime with /belllp lang
```
---
## ๐ฎ Roadmap & Pro Stubs
Future **BellLPPro** features currently in development:
- ๐ **Track management** — promotion/demotion tracks with conditions
- ๐ฏ **Context overrides** — per-world or per-server group properties
- ๐ **BellCenter dashboard** — web panel for ecosystem overview
- ๐งฉ **Extended API** — more hooks for third-party integration
---
## ๐ Developer API
BellLP exposes a `GroupSyncHandler` interface that any plugin can implement to react to group changes:
```java
public interface GroupSyncHandler {
void onGroupChanged(Player player, String group, ChangeType type);
void onVipGranted(Player player, String group);
void onVipRevoked(Player player, String group);
}
```
Register your handler and BellLP will keep your plugin in the loop whenever groups change across the ecosystem.
---
## ๐ฅ Installation
1. Drop `BellLP.jar` into your `/plugins` folder
2. Ensure **LuckPerms** is installed and running
3. Start or restart your server
4. Edit `plugins/BellLP/groups.yml` to define your groups
5. Run `/belllp sync` to push everything to LuckPerms and connected plugins
6. Done! Groups are now managed centrally ๐
---
## ๐ค Support & Links
- ๐ฌ **Discord:** [Join our community](#) — 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>BellLP</b> — One config to rule them all.<br>
Made with โค๏ธ for the Minecraft community.
</p>