Releases: WeThink25/WeGuardian
🛡️ WeGuardian Changelog
🛡️ WeGuardian Changelog
Version 2.4 – Full Messages & GUI Configuration Update
Release Type: Major Configuration & Customization Update
Focus: Flexibility, Localization, and Server Branding
✨ New Features
📁 Fully Configurable messages.yml
-
Added a dedicated
messages.ymlfile to centralize all player-facing text -
Every message is now configurable, including:
- Chat messages
- Error messages
- Success messages
- Notifications
- Titles & subtitles
- Action bar messages
🧩 GUI Customization (100% Configurable)
-
All GUI elements are now configurable from
messages.yml, including:- GUI titles
- Item display names
- Item lores
- Buttons & descriptions
-
Affected GUIs:
- Punishment GUI
- Duration GUI
- History GUI
🛠️ New Messages Management System
-
Introduced a MessagesManager system to:
- Load and cache messages efficiently
- Support placeholders across all messages
- Ensure consistent formatting everywhere
-
Uses MiniMessage-compatible formatting for modern text styling
🔄 Improvements
-
Removed hardcoded strings from:
- GUI classes
- Input handlers (Reason input, Custom duration input)
- Command feedback messages
-
Improved maintainability and readability of the codebase
-
Easier localization for non-English servers
-
Server owners can now fully brand WeGuardian without touching source code
🧹 Developer & Admin Benefits
- No recompiling required for message changes
- Clean separation between logic and presentation
- Future updates will automatically support new messages via
messages.yml
⚠️ Notes for Updating
- On first startup,
messages.ymlwill be generated automatically - Servers upgrading from older versions should review and customize the new file
- Old message values previously in
config.ymlare now handled viamessages.yml
✅ Recommended
Update to WeGuardian v2.4 to unlock full control over messages, GUIs, and server presentation.
🛡️ WeGuardian v2.3 – Changelog
🛡️ WeGuardian v2.3 – Changelog
🐛 Bug Fixes
- Fixed
/unbanipunbanning the incorrect IP when a banned player’s account was previously used by another person - Fixed
/unmuteipresolving and removing the wrong IP address - Fixed
{player}and{staff}placeholders not working in ban, kick, and mute screens - Fixed MiniMessage formatting not being parsed correctly when combined with legacy (
&) and color codes
✨ New Features
-
Added
{player}placeholder support to all punishment screen messages
(ban, kick, mute) -
Added
{staff}placeholder support to all punishment screen messages
(ban, kick, mute) -
Added full MiniMessage support alongside legacy color codes
- Supports tags like
<red>,<bold>,<gradient:red:blue>
- Supports tags like
-
Added hex color support in MiniMessage format
- Example:
<#FF5555>
- Example:
📢 Broadcast System
-
Added broadcast messages for all punishment types, fully configurable via
config.yml -
Supported broadcasts:
- Ban / Unban
- Mute / Unmute
- Kick
- IP Ban / IP Unban
- IP Mute / IP Unmute
-
All broadcast messages support placeholders:
{player},{staff},{reason},{duration},{expires},{ip}
⚡ Improvements
- Chat mute listener priority changed to
HIGHESTwithignoreCancelled = false
→ Ensures mutes are enforced over all other plugins - Plugin now loads on STARTUP for earlier and safer initialization
- IP punishments now store and resolve the original punished IP from the punishment record instead of the player’s current IP
📁 Config Updates
- Updated
messages.ban.screento include{player}and{staff}placeholders - Updated
messages.kick.screento include{staff}placeholder - Updated
messages.mute.blockedto include{staff}placeholder - Updated
messages.mute.appliedto include{staff}placeholder - Added broadcast sections for all punishment and IP punishment types
WeGuardian v2.2
🔐 WeGuardian v2.2 – Database & Security Fixes
Release Date: December 20, 2025
🐛 Fixes & Improvements
-
Fixed MySQL index creation issues (now fully compatible with MySQL & SQLite).
-
Punishment broadcast messages now correctly use
messages.prefixfromconfig.yml. -
Resolved a critical IP-ban bypass issue allowing alt accounts to join.
- Improved IP normalization (IPv4 & IPv6-mapped IPv4)
- Fixed IP ban cache logic so new bans apply instantly
ℹ️ Notes
- No database migration required
- No config or permission changes
- Safe drop-in update
WeGuardian v2.1
Each punishment type now requires its specific permission (weguardian.ban, weguardian.tempban, weguardian.mute, weguardian.tempmute, weguardian.kick) to be used through the GUI, matching the behavior of the command-based system.
WeGuardian 2.0
🛡️ 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: 5Web 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
WeGuardian 1.9
📜 Changelog
🔧 Fixes & Improvements
- Fixed full tab completion for smoother command usage.
- Reworked parts of the MySQL Database Manager to improve performance and stability.
🆕 New Features
- Added Alt Detection to better track and manage alternate accounts.
❌ Removed
- The /stats command has been removed.
WeGuardian v1.8 - Customizable Web Dashboard Header
📢 Changelog
Added new option in config.yml under web-dashboard:
web-dashboard:
enabled: false
web-header-title: "WeGuardian"
You can now change the web header title from WeGuardian to your own name. This will be applied across all web pages.
Player Management & Punishment System Update
Improved Web UI with various fixes
Added support for tempipban, unbanip, and ipban commands
Expanded Player Management section in the web panel
Implemented automatic player IP fetching for punishments
Added proper validation checks for temporary vs permanent punishments
Critical & High Severity
Critical & High Severity
Request/Response Mix-up – prevented user data from being sent to wrong users.
Potential Remote Code Execution (RCE) – fixed vulnerability with partial PUT requests.
DoS in multipart upload – mitigated Denial of Service attacks.
TOCTOU Race Conditions – fixed Time-of-Check to Time-of-Use timing issues.
Resource Shutdown Issues – corrected improper resource management.
Regular Expression Denial of Service (ReDoS) – in TimeUtils.java, unsafe regex patterns fixed.
Moderate & Low Severity
Security constraint bypasses – ensured constraints cannot be bypassed.
HTTP priority header DoS – mitigated potential Denial of Service via HTTP headers.
CGI and rewrite rule bypasses – fixed vulnerabilities allowing rule circumvention.
Unbounded Input Handling – limited maximum input length in time parsing.
Unsafe Time Parsing – ensured integers are only parsed after regex validation.
WeGuardian v1.5.0 - Web Update
Added
Website dashboard for centralized control & statistics.
Fixed
Resolved all errors related to mute and tempmute functions.
Fixed incompatibilities with various chat-hover plugins.
Addressed all known bugs reported so far (crashes, UI quirks, permission errors).
Improved / Enhanced
Strengthened compatibility across server setups (Paper, Folia, etc.).
Polished UI / GUI flows (menus, tooltips, hover effects).
Optimized backend performance (async operations, caching).