Ban GUI
AutoMod
This update fixes several critical issues in the BanList GUI module that could cause server crashes.
Fixed: Critical crash when opening Ban Details GUI caused by invalid material name (HOURGLASS)
HOURGLASS does not exist in Minecraft/Bukkit APICLOCK (the correct material name)Fixed: Material validation errors
Material.valueOf() calls now include proper try-catch error handlingIllegalArgumentException crashes when configuration contains invalid materialsFixed: Pagination bounds checking
IndexOutOfBoundsException when navigating between pagesAdded: Safe material name validation with fallback handling for all GUI items
Added: Enhanced slot bounds checking throughout the BanList module
ArrayIndexOutOfBoundsException errorsImproved: Better error handling for invalid configuration values
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.
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.
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.
If you're using custom material names in modules/banlist.yml, please ensure they are valid Minecraft material names. Common mistakes:
HOURGLASS → ✅ CLOCKWOOL → ✅ 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.
⚠️ 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
/banlist)ArrayIndexOutOfBoundsException) when opening the Ban Details GUI caused by invalid slot handling / config path mismatch.zenith.banlist — Access /banlistzenith.banlist.unban — Unban from the GUIDeveloped by Zenith-Studios
A powerful, interactive GUI system for managing bans!
Zenith-Mod now includes a comprehensive ban list interface that makes it easier than ever to view, filter, and manage player bans directly from an in-game GUI.
The ban list GUI is fully configurable via modules/banlist.yml:
{player_name}, {reason}, {case_id}, etc.%smcaps% and hex colors (&#RRGGBB)zenith.banlist - Access to /banlist commandzenith.banlist.unban - Unban players from the GUISimply use the /banlist command to open the ban list GUI. From there, you can:
The ban list GUI supports extensive customization through the configuration file:
gui:
title: '�FFAA%smcaps%BAN LIST%smreset%'
ban_item:
name: '&#FF5555{player_name}'
lore:
- '&#AAAAAAReason: &#FFFFFF{reason}'
- '&#AAAAAAStaff: &#FFFFFF{staff_name}'
- '&#AAAAAACase ID: &#FFFFFF{case_id}'
All text supports:
&#RRGGBB)%smcaps%...%smreset%){player_name}, {reason}, etc.)The ban list GUI integrates seamlessly with:
None - This update is fully backward compatible. All existing commands and functionality work exactly as before.
modules/banlist.yml will be created automaticallyme.kzlyth.modules.banlist.BanListModuleme.kzlyth.modules.banlist.BanListConfigme.kzlyth.modules.banlist.gui.BanListGUIme.kzlyth.modules.banlist.gui.BanDetailGUIme.kzlyth.modules.banlist.gui.BanListGUIHandlerme.kzlyth.commands.admin.BanListCommandmodules/banlist.yml - Complete GUI configurationZenithMod - Added ban list module initializationplugin.yml - Added /banlist command and permissions🎉 Enjoy the new ban list GUI! This feature makes ban management more intuitive and efficient than ever before.
📢 Note: The ban list GUI requires players to have the zenith.banlist permission. Make sure to grant this permission to your staff members.
This update includes significant API additions that are currently in Beta. While we've thoroughly tested all features, please be aware that:
Use of the new API features is at your own risk. However, all core plugin functionality (commands, moderation, etc.) remains stable and fully supported.
⚠️ THIS UPDATE IS HIGHLY RECOMMENDED - CRITICAL DATABASE ISSUE FIXED
This version fixes a critical database problem that could cause data inconsistency issues. We strongly recommend updating immediately, especially if you're using MySQL or MariaDB databases.
Note: If you experience any issues after updating, please check your database logs and ensure all migrations completed successfully.
Zenith-Mod now includes a comprehensive Java API for developers to integrate with other plugins and extend functionality!
me.kzlyth.api.freeze)freeze(UUID, UUID, String) - Freeze a player with reasonunfreeze(UUID, UUID, String) - Unfreeze a playerisFrozen(UUID) - Check if player is frozengetFrozenPlayers() - Get list of all frozen playersme.kzlyth.api.chatfreeze)freezeChat(UUID, String) - Freeze the server chatunfreezeChat(UUID, String) - Unfreeze the server chatisChatFrozen() - Check if chat is currently frozenme.kzlyth.api.essentials)setGodMode(UUID, UUID, boolean), isGodMode(UUID)setFlyMode(UUID, UUID, boolean), isFlying(UUID)heal(UUID, UUID) - Restore player healthfeed(UUID, UUID) - Restore player hungerclearInventory(UUID, UUID) - Clear player inventoryteleport(UUID, UUID), teleportHere(UUID, UUID) - Teleport playersme.kzlyth.api.vanish)vanish(UUID) - Make player invisibleunvanish(UUID) - Make player visibletoggleVanish(UUID) - Toggle vanish statusisVanished(UUID) - Check if player is vanishedgetVanishedPlayers() - Get list of all vanished playersA powerful event bus system for listening to moderation actions in real-time!
PlayerBanEvent, PlayerUnbanEventPlayerMuteEvent, PlayerUnmuteEventPlayerWarnEventPlayerKickEventme.kzlyth.api.events.ban.* - Ban and unban eventsme.kzlyth.api.events.mute.* - Mute and unmute eventsme.kzlyth.api.events.warn.* - Warn eventsme.kzlyth.api.events.kick.* - Kick eventsAll new APIs are accessible through the main ZenithAPI class:
ZenithAPI api = ZenithAPI.getInstance();
if (api != null && api.isAvailable()) {
FreezeAPI freezeAPI = api.getFreezeAPI();
ChatFreezeAPI chatFreezeAPI = api.getChatFreezeAPI();
EssentialsAPI essentialsAPI = api.getEssentialsAPI();
VanishAPI vanishAPI = api.getVanishAPI();
ZenithEventBus eventBus = ZenithEventBus.getInstance();
eventBus.subscribe(PlayerBanEvent.class, event -> {
// Handle ban event
});
}
For detailed API documentation, method signatures, parameters, and usage examples, visit:
http://javadocs.zenith-studios.org/
The Javadoc includes:
CompletableFuture for non-blocking operationsAPIUnavailableExceptionplugin.yml:depend: [Zenith-Mod]
ZenithAPI api = ZenithAPI.getInstance();
if (api != null && api.isAvailable()) {
// Use API...
}
ZenithEventBus bus = ZenithEventBus.getInstance();
bus.subscribe(PlayerBanEvent.class, event -> {
// Handle event...
});
For complete setup instructions and examples, see the API Documentation.
None - This update is fully backward compatible. All existing commands and functionality work exactly as before.
me.kzlyth.api.freeze.FreezeAPIme.kzlyth.api.chatfreeze.ChatFreezeAPIme.kzlyth.api.essentials.EssentialsAPIme.kzlyth.api.vanish.VanishAPIme.kzlyth.api.events.ZenithEventme.kzlyth.api.events.ZenithEventBusme.kzlyth.api.events.* packagesZenithAPI - Added getters for new APIsBanAPI - Added notifications and auto-kickMuteAPI - Added notificationsWarnAPI - Added notificationsKickAPI - Added notifications🔗 Full API Documentation: http://javadocs.zenith-studios.org/
⚠️ Remember: The API system is in Beta. While core plugin functionality is stable, please test API integrations thoroughly in a development environment before using in production.
📢 Important: This update fixes a critical database issue. We highly recommend updating as soon as possible.
Developed by Zenith-Studios

Advanced moderation plugin with ban/mute systems, escalation templates, offline support, and Web-API integration for professional server management.