Unofficial site, not affiliated with modrinth.com.What is this?
Плагины/Zenith-Mod
Zenith-Mod

Zenith-Mod

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

354
2

Zenith-Mod 1.2.7

release15 марта 2026 г.

Changelog

Ban GUI

  • Completely remade the Ban GUI, fixing several bugs from the previous version
  • Added a Case-ID search feature — simply click the magnifying glass and type the ID in chat
  • Active bans now show in red, expired/unbanned players in green
  • Added a filter button to toggle between all bans, active only, or inactive only

AutoMod

  • Added an AutoMod system that automatically detects and removes messages containing blacklisted words
  • Leetspeak detection included — things like 1d10t or i.d.i.o.t are caught automatically, you only need to add the base word to the list
  • Added an AntiSpam system that detects duplicate messages and message flooding
  • Staff alerts are sent in-game and to Discord when a message is blocked
  • Staff can toggle their own alerts with /automod alerts

Zenith-Mod 1.2.6

release31 января 2026 г.

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 HOURGLASS does not exist in Minecraft/Bukkit API
    • Changed to CLOCK (the correct material name)
    • Added fallback handling for invalid material names throughout the module
  • 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 IllegalArgumentException crashes when configuration contains invalid materials
  • Fixed: Pagination bounds checking

    • Improved index validation when clicking on ban items
    • Prevents IndexOutOfBoundsException when 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 ArrayIndexOutOfBoundsException errors
    • 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


⚠️ 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

Zenith-Mod 1.2.5

release24 января 2026 г.

Zenith-Mod v1.2.5 Update

🎨 New: Ban List GUI (/banlist)

  • GUI-based ban overview with player heads
  • Click a ban to open a detail view
  • Unban directly from the GUI (permission-based)
  • Pagination + filters (Active/Expired, Player/IP, All)

🛠️ Fixed

  • Fixed: A crash (ArrayIndexOutOfBoundsException) when opening the Ban Details GUI caused by invalid slot handling / config path mismatch.

🌐 Velocity Plugin Available

  • The Zenith-Mod Velocity plugin is now available for proxy/network setups. Download on our Discord

🔐 Permissions

  • zenith.banlist — Access /banlist
  • zenith.banlist.unban — Unban from the GUI

Developed by Zenith-Studios

Zenith-Mod 1.2.4

release22 января 2026 г.

Zenith-Mod v1.2.4 Update

🎨 New Feature: Ban List GUI

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.

✨ Key Features

Interactive Ban List GUI

  • Visual Ban Overview: Browse all bans in a beautiful, organized GUI
  • Player Heads: See player avatars for each banned player
  • Detailed Information: View ban reason, staff member, case ID, date, duration, and status at a glance
  • Click to View Details: Click on any ban to see full information

Advanced Filtering System

  • Active Bans: Filter to show only currently active bans
  • Expired Bans: View bans that have expired or been lifted
  • Player Bans: Filter to show only player-specific bans
  • IP Bans: Filter to show only IP-based bans
  • All Bans: View complete ban history

Pagination Support

  • Navigate through large ban lists with ease
  • Page indicators show your current position
  • Smooth navigation between pages

Quick Actions

  • Unban Directly from GUI: Unban players with a single click (requires permission)
  • Detailed View: Click any ban to see complete information including:
    • Player UUID and IP address
    • Full ban reason
    • Staff member details
    • Case ID
    • Ban date and duration
    • Current status (Active/Expired/Unbanned)

🎯 Configuration

The ban list GUI is fully configurable via modules/banlist.yml:

  • Customizable GUI Titles: Use hex colors and small caps formatting
  • Configurable Item Lore: Customize what information is displayed
  • Filter Button Positions: Arrange filter buttons as you prefer
  • Material Customization: Choose different materials for active/expired/IP bans
  • Variable Support: Use placeholders like {player_name}, {reason}, {case_id}, etc.
  • Color Utils Support: Full support for %smcaps% and hex colors (&#RRGGBB)

🔐 Permissions

  • zenith.banlist - Access to /banlist command
  • zenith.banlist.unban - Unban players from the GUI

📋 Usage

Simply use the /banlist command to open the ban list GUI. From there, you can:

  1. Browse all bans with pagination
  2. Apply filters to narrow down results
  3. Click on any ban to view detailed information
  4. Unban players directly from the detail view (if you have permission)

🎨 Customization Examples

The ban list GUI supports extensive customization through the configuration file:

gui:
  title: '&#00FFAA%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:

  • Hex colors (&#RRGGBB)
  • Small caps formatting (%smcaps%...%smreset%)
  • Variable placeholders ({player_name}, {reason}, etc.)
  • Standard Minecraft color codes

🔧 Technical Details

  • Asynchronous Loading: Ban data is loaded asynchronously to prevent server lag
  • Session Management: Player sessions track current filter and page state
  • Efficient Filtering: Smart filtering system handles large ban lists efficiently
  • Thread-Safe: All GUI operations are properly synchronized

📊 Integration

The ban list GUI integrates seamlessly with:

  • Existing ban system
  • History tracking
  • Case ID system
  • Unban functionality
  • Staff notification system

⚠️ Breaking Changes

None - This update is fully backward compatible. All existing commands and functionality work exactly as before.

🔄 Migration Notes

  • No configuration changes required
  • The ban list module is enabled by default
  • New configuration file modules/banlist.yml will be created automatically
  • All existing bans are immediately visible in the GUI

📝 Files Changed

New Classes

  • me.kzlyth.modules.banlist.BanListModule
  • me.kzlyth.modules.banlist.BanListConfig
  • me.kzlyth.modules.banlist.gui.BanListGUI
  • me.kzlyth.modules.banlist.gui.BanDetailGUI
  • me.kzlyth.modules.banlist.gui.BanListGUIHandler
  • me.kzlyth.commands.admin.BanListCommand

New Configuration

  • modules/banlist.yml - Complete GUI configuration

Enhanced

  • ZenithMod - Added ban list module initialization
  • plugin.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.

Zenith-Mod 1.2.3

release31 октября 2025 г.

Zenith-Mod v1.2.3 Update

⚠️ Beta Notice

This update includes significant API additions that are currently in Beta. While we've thoroughly tested all features, please be aware that:

  • In very rare cases, API methods may behave unexpectedly
  • In very rare cases, events may not fire or fire incorrectly
  • API structure may undergo changes in future versions
  • We do not provide any warranty or guarantee regarding the API's functionality

Use of the new API features is at your own risk. However, all core plugin functionality (commands, moderation, etc.) remains stable and fully supported.

🚨 CRITICAL: Database Fix

⚠️ 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.

What Was Fixed?

  • Fixed: Critical database transaction issue that could cause history entries to be incomplete
  • Fixed: Potential race condition in database operations that could lead to missing case IDs
  • Improved: Database connection handling and error recovery
  • Result: More reliable database operations and complete history tracking

Note: If you experience any issues after updating, please check your database logs and ensure all migrations completed successfully.

🎯 New API System (Beta)

Zenith-Mod now includes a comprehensive Java API for developers to integrate with other plugins and extend functionality!

📦 New API Modules

FreezeAPI (me.kzlyth.api.freeze)

  • freeze(UUID, UUID, String) - Freeze a player with reason
  • unfreeze(UUID, UUID, String) - Unfreeze a player
  • isFrozen(UUID) - Check if player is frozen
  • getFrozenPlayers() - Get list of all frozen players
  • Automatic history logging with case IDs
  • Staff notifications for all freeze actions

ChatFreezeAPI (me.kzlyth.api.chatfreeze)

  • freezeChat(UUID, String) - Freeze the server chat
  • unfreezeChat(UUID, String) - Unfreeze the server chat
  • isChatFrozen() - Check if chat is currently frozen
  • Server-wide chat control with history tracking
  • Automatic staff notifications

EssentialsAPI (me.kzlyth.api.essentials)

  • God Mode: setGodMode(UUID, UUID, boolean), isGodMode(UUID)
  • Fly Mode: setFlyMode(UUID, UUID, boolean), isFlying(UUID)
  • Heal: heal(UUID, UUID) - Restore player health
  • Feed: feed(UUID, UUID) - Restore player hunger
  • Clear Inventory: clearInventory(UUID, UUID) - Clear player inventory
  • Teleport: teleport(UUID, UUID), teleportHere(UUID, UUID) - Teleport players
  • All methods include staff notifications

VanishAPI (me.kzlyth.api.vanish)

  • vanish(UUID) - Make player invisible
  • unvanish(UUID) - Make player visible
  • toggleVanish(UUID) - Toggle vanish status
  • isVanished(UUID) - Check if player is vanished
  • getVanishedPlayers() - Get list of all vanished players
  • Automatic staff notifications

🎪 Event System (Beta)

A powerful event bus system for listening to moderation actions in real-time!

Available Events

  • Ban Events: PlayerBanEvent, PlayerUnbanEvent
  • Mute Events: PlayerMuteEvent, PlayerUnmuteEvent
  • Warn Events: PlayerWarnEvent
  • Kick Events: PlayerKickEvent

Event Packages

  • me.kzlyth.api.events.ban.* - Ban and unban events
  • me.kzlyth.api.events.mute.* - Mute and unmute events
  • me.kzlyth.api.events.warn.* - Warn events
  • me.kzlyth.api.events.kick.* - Kick events

Features

  • Events fired after actions complete (for integrations and logging)
  • Complete event data (player info, staff info, reason, case ID, duration, etc.)
  • Automatic main-thread handling for safe Bukkit API access
  • Simple subscription/unsubscription system
  • Perfect for Discord webhooks, external databases, analytics, and plugin integrations

📚 API Integration

All 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
    });
}

📖 Complete API Documentation

For detailed API documentation, method signatures, parameters, and usage examples, visit:

http://javadocs.zenith-studios.org/

The Javadoc includes:

  • Complete class and method documentation
  • Parameter descriptions and return types
  • Usage examples and best practices
  • Exception handling guides
  • Event system documentation

✅ Enhanced Existing APIs

BanAPI Improvements

  • Fixed: Players are now automatically kicked when banned via API
  • Added: Staff notifications for all ban API calls
  • Improved: Better error handling and validation

MuteAPI Improvements

  • Added: Staff notifications for all mute API calls
  • Improved: Better offline player handling

WarnAPI Improvements

  • Added: Staff notifications for all warn API calls
  • Fixed: Auto-escalation now works correctly with API calls

KickAPI Improvements

  • Added: Staff notifications for all kick API calls
  • Improved: Better integration with history system

📊 Analytics Integration

bStats Integration

  • Added: Integrated bStats metrics system for plugin analytics
  • Anonymous usage statistics to help us improve the plugin
  • Respects server privacy settings
  • Can be disabled via bStats configuration

🔧 Technical Details

API Architecture

  • Asynchronous Operations: All API methods use CompletableFuture for non-blocking operations
  • Thread Safety: Event bus automatically handles thread synchronization
  • Error Handling: Comprehensive exception handling with APIUnavailableException
  • History Integration: All API actions automatically create history entries with case IDs
  • Notification System: Automatic staff notifications for all moderation actions

Database Improvements

  • Fixed critical transaction issues
  • Improved connection handling
  • Better error recovery mechanisms
  • Enhanced history entry consistency

Performance

  • Asynchronous API calls prevent server lag
  • Event system optimized for high-throughput scenarios
  • Efficient database operations

📋 Setup Instructions

For Plugin Developers

  1. Add Zenith-Mod as a dependency in your plugin.yml:
depend: [Zenith-Mod]
  1. Get the API instance:
ZenithAPI api = ZenithAPI.getInstance();
if (api != null && api.isAvailable()) {
    // Use API...
}
  1. Subscribe to events:
ZenithEventBus bus = ZenithEventBus.getInstance();
bus.subscribe(PlayerBanEvent.class, event -> {
    // Handle event...
});

For complete setup instructions and examples, see the API Documentation.

⚠️ Breaking Changes

None - This update is fully backward compatible. All existing commands and functionality work exactly as before.

🔄 Migration Notes

  • No configuration changes required
  • No database migrations needed (automatic)
  • All existing bans, mutes, warns, and history entries remain intact
  • API is opt-in - existing plugins continue to work without changes

📝 Files Changed

New API Classes

  • me.kzlyth.api.freeze.FreezeAPI
  • me.kzlyth.api.chatfreeze.ChatFreezeAPI
  • me.kzlyth.api.essentials.EssentialsAPI
  • me.kzlyth.api.vanish.VanishAPI
  • me.kzlyth.api.events.ZenithEvent
  • me.kzlyth.api.events.ZenithEventBus
  • Event classes in me.kzlyth.api.events.* packages

Enhanced Existing Classes

  • ZenithAPI - Added getters for new APIs
  • BanAPI - Added notifications and auto-kick
  • MuteAPI - Added notifications
  • WarnAPI - Added notifications
  • KickAPI - Added notifications

Database Fixes

  • Enhanced transaction handling in all repository classes
  • Improved connection pool management
  • Better error recovery mechanisms

🔗 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

Совместимость

Minecraft: Java Edition

26.1.x1.21.x1.20.x1.19.x

Поддерживаемые окружения

Сервер

Детали

Лицензия:Apache-2.0
Опубликован:6 месяцев назад
Обновлён:2 месяца назад
Главная