Tags
Creators
Details
2.0
Compatibility
Changes
🛡️ WeGuardian
Professional Punishment Management System for Minecraft Servers
by WeThink
✨ Features
🔨 Punishment System
- Ban & TempBan - Permanently or temporarily ban players
- IP Ban & TempIP Ban - Ban players by IP address with automatic IP resolution
- Mute & TempMute - Silence players permanently or temporarily
- IP Mute & TempIP Mute - IP-based muting system
- Kick - Instantly remove players from the server
🎮 Interactive GUI
- Punishment GUI - Beautiful and intuitive punishment selection interface
- Duration Selector - Easy-to-use duration selection with presets
- History Viewer - Browse punishment history with pagination
📊 Database Support
- SQLite - Zero-configuration local storage (default)
- MySQL - Scale to larger servers with MySQL support
- HikariCP - 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
- Folia Support - Full compatibility with Folia servers
- Async Operations - Non-blocking database operations
- Lazy GUI Initialization - Optimized GUI performance
📥 Installation
- Download the latest
WeGuardian.jar - Place it in your server's
pluginsfolder - Restart your server
- 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)
database:
type: "sqlite"
sqlite:
file: "punishments.db"
Database (MySQL)
database:
type: "mysql"
mysql:
host: "localhost"
port: 3306
database: "weguardian"
username: "root"
password: "password"
Discord Webhook
discord:
enabled: true
webhook-url: "YOUR_WEBHOOK_URL"
batch-interval-seconds: 5
Web Dashboard
web-dashboard:
enabled: true
host: "0.0.0.0"
port: 8080
admin-api-key: "YOUR_SECURE_KEY"
🛠️ Requirements
- Minecraft Server: 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 WeThink
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:QsS6k1xF:kuv1chcT"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:QsS6k1xF:kuv1chcT"
}

