WeGuardian
WeGuardian is a modern punishment plugin for single servers and server networks, offering reliable ban, mute, and kick management with a clear and customizable punishment system.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
WeGuardian
🛡️ WeGuardian
<b>Professional Punishment Management System for Minecraft Servers</b>
<i>by WeThink</i>
---
✨ Features
🔨 Punishment System
- Kick - Permanently or temporarily ban players - Kick - Ban players by IP address with automatic IP resolution - Kick - Silence players permanently or temporarily - Kick - IP-based muting system - Kick - Instantly remove players from the server
🎮 Interactive GUI
- History Viewer - Beautiful and intuitive punishment selection interface - History Viewer - Easy-to-use duration selection with presets - History Viewer - Browse punishment history with pagination
📊 Database Support
- Caffeine Caching - Zero-configuration local storage (default) - Caffeine Caching - Scale to larger servers with MySQL support - Caffeine Caching - High-performance connection pooling - Caffeine Caching - Lightning-fast data retrieval
🌐 Web Dashboard
- Built-in web panel for remote management - REST API for custom integrations - Configurable branding and appearance
🔗 Discord Integration
- Webhook logging for all punishments - Batched messages to avoid rate limits - Beautiful embed formatting
⚡ Performance
- Lazy GUI Initialization - Full compatibility with Folia servers - Lazy GUI Initialization - Non-blocking database operations - Lazy GUI Initialization - Optimized GUI performance
---
📥 Installation
1. Download the latest `WeGuardian.jar` 2. Place it in your server's `plugins` folder 3. Restart your server 4. Configure `plugins/WeGuardian/config.yml`
---
📝 Commands
| Command | Description | Permission | |---------|-------------|------------| | `/ban <player> [reason]` | Permanently ban a player | `weguardian.ban` | | `/tempban <player> <duration> [reason]` | Temporarily ban a player | `weguardian.tempban` | | `/unban <player>` | Unban a player | `weguardian.unban` | | `/banip <player> [reason]` | IP ban a player | `weguardian.banip` | | `/tempbanip <player> <duration> [reason]` | Temp IP ban a player | `weguardian.tempbanip` | | `/unbanip <player>` | Unban a player's IP | `weguardian.unbanip` | | `/mute <player> [reason]` | Permanently mute a player | `weguardian.mute` | | `/tempmute <player> <duration> [reason]` | Temporarily mute a player | `weguardian.tempmute` | | `/unmute <player>` | Unmute a player | `weguardian.unmute` | | `/muteip <player> [reason]` | IP mute a player | `weguardian.muteip` | | `/tempmuteip <player> <duration> [reason]` | Temp IP mute a player | `weguardian.tempmuteip` | | `/unmuteip <player>` | Unmute a player's IP | `weguardian.unmuteip` | | `/kick <player> [reason]` | Kick a player | `weguardian.kick` | | `/punish <player>` | Open punishment GUI | `weguardian.punish` | | `/history <player>` | View punishment history | `weguardian.history` | | `/weguardian reload` | Reload configuration | `weguardian.admin` |
---
🔑 Permissions
| Permission | Description | Default | |------------|-------------|---------| | `weguardian.staff` | All staff permissions | OP | | `weguardian.admin` | Admin commands (reload) | OP | | `weguardian.bypass` | Bypass all punishments | false |
---
⏱️ Duration Format
Durations support the following formats:
| Unit | Example | Description | |------|---------|-------------| | `s` | `30s` | Seconds | | `m` | `30m` | Minutes | | `h` | `6h` | Hours | | `d` | `7d` | Days | | `w` | `2w` | Weeks | | `M` | `1M` | Months | | `y` | `1y` | Years |
Examples: `1h`, `6h`, `1d`, `7d`, `30d`, `90d`
---
⚙️ Configuration
Database (SQLite - Default)
```yaml database: type: "sqlite" sqlite: file: "punishments.db" ```
Database (MySQL)
```yaml database: type: "mysql" mysql: host: "localhost" port: 3306 database: "weguardian" username: "root" password: "password" ```
Discord Webhook
```yaml discord: enabled: true webhook-url: "YOUR_WEBHOOK_URL" batch-interval-seconds: 5 ```
Web Dashboard
```yaml web-dashboard: enabled: true host: "0.0.0.0" port: 8080 admin-api-key: "YOUR_SECURE_KEY" ```
---
🛠️ Requirements
- Java: Paper 1.21+ or Folia - Java: 21 or higher
---
📚 Dependencies
- Paper API - Server API - FoliaLib - Folia compatibility - Caffeine - Caching - HikariCP - Connection pooling - ACF - Command framework - FastInv - GUI framework - bStats - Plugin metrics - Javalin - Web framework
---
📞 Support
For support and questions, join our Discord or open an issue on GitHub.
---
📄 License
This project is licensed under the MIT License. See LICENSE.md for details.
---
Made with ❤️ by <b>WeThink</b>