
Zenith-Mod
Advanced moderation plugin with ban/mute systems, escalation templates, offline support, and Web-API integration for professional server management.
Список изменений
Zenith-Mod v1.2.6 Update
🐛 Bug Fixes
BanList GUI Critical Fixes
This update fixes several critical issues in the BanList GUI module that could cause server crashes.
Fixed Issues
-
Fixed: Critical crash when opening Ban Details GUI caused by invalid material name (
HOURGLASS)- The material
HOURGLASSdoes not exist in Minecraft/Bukkit API - Changed to
CLOCK(the correct material name) - Added fallback handling for invalid material names throughout the module
- The material
-
Fixed: Material validation errors
- All
Material.valueOf()calls now include proper try-catch error handling - Invalid material names from configuration now fallback to safe defaults (PAPER, RED_CONCRETE)
- Prevents
IllegalArgumentExceptioncrashes when configuration contains invalid materials
- All
-
Fixed: Pagination bounds checking
- Improved index validation when clicking on ban items
- Prevents
IndexOutOfBoundsExceptionwhen navigating between pages - Better handling of edge cases in pagination logic
Technical Improvements
-
Added: Safe material name validation with fallback handling for all GUI items
- Filter buttons, navigation buttons, action buttons, and info items all have fallback materials
- Configuration errors no longer cause server crashes
- Server continues to function even with invalid material names in config
-
Added: Enhanced slot bounds checking throughout the BanList module
- All slot assignments now validate bounds before setting items
- Prevents
ArrayIndexOutOfBoundsExceptionerrors - Better error logging for configuration issues
-
Improved: Better error handling for invalid configuration values
- Invalid slot numbers are safely ignored
- Invalid material names use fallback materials
- Configuration errors are logged but don't crash the server
🚀 Velocity Plugin Available
Zenith-Mod Velocity v1.2.5 is now also available! The Velocity version includes all the same features and bug fixes as the Bukkit version.
📋 Compatibility
- Fully backward compatible - No breaking changes
- No configuration changes needed - Existing configs work as-is
- No database migrations needed - Automatic database handling
- Works with all database types - H2, SQLite, MySQL, MariaDB
🔧 Technical Details
Material Name Validation
All GUI item creation now includes safe material validation:
Material material;
try {
material = Material.valueOf(materialName);
} catch (IllegalArgumentException e) {
// Fallback to safe default
material = Material.PAPER; // or appropriate fallback
}
This ensures that even if the configuration contains invalid material names (like HOURGLASS), the server will not crash and will use a safe fallback material instead.
Slot Bounds Checking
All slot assignments now validate bounds:
if (slot >= 0 && slot < gui.getSize()) {
gui.setItem(slot, item);
}
This prevents ArrayIndexOutOfBoundsException errors when configuration contains invalid slot numbers.
📝 Configuration Notes
If you're using custom material names in modules/banlist.yml, please ensure they are valid Minecraft material names. Common mistakes:
- ❌
HOURGLASS→ ✅CLOCK - ❌
WOOL→ ✅WHITE_WOOL(or specific color) - ❌
STAINED_GLASS→ ✅WHITE_STAINED_GLASS(or specific color)
For a complete list of valid material names, refer to the Bukkit Material API documentation.
⚠️ Important Notes
- This update is highly recommended - Fixes critical crashes in the BanList GUI
- No data loss - All existing bans and history entries remain intact
- Automatic fallback - Invalid configurations are automatically handled with safe defaults
- Error logging - Configuration errors are logged to help identify issues
🔗 Links
- Bukkit Version: Download on Modrinth
- Documentation: Plugin Documentation
- API Documentation: Java API Docs
⚠️ Recommendation: If you're using the BanList GUI feature, we strongly recommend updating to this version to prevent potential server crashes.
Developed by Zenith-Studios
