Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/kennytv/Maintenance/llms.txt

Use this file to discover all available pages before exploring further.

The MaintenanceChangedEvent is fired whenever the maintenance mode status changes, either from enabled to disabled or vice versa.

Event Details

Package: eu.kennytv.maintenance.api.event Type: Notification event (read-only) Fired when:
  • Maintenance mode is enabled via command, API, or scheduled timer
  • Maintenance mode is disabled via command, API, or scheduled timer

Class Definition

public record MaintenanceChangedEvent(boolean isMaintenance) implements MaintenanceEvent {
}
This event is implemented as a Java record, providing an immutable data structure with automatic getter methods.

Methods

isMaintenance()

Returns whether maintenance mode has been enabled or disabled.
boolean isMaintenance()
Returns: true if maintenance mode has been enabled, false if it has been disabled

Usage Example

Basic Example

import eu.kennytv.maintenance.api.Maintenance;
import eu.kennytv.maintenance.api.MaintenanceProvider;
import eu.kennytv.maintenance.api.event.MaintenanceChangedEvent;
import eu.kennytv.maintenance.api.event.manager.EventListener;
import eu.kennytv.maintenance.api.event.manager.EventManager;

public class MyPlugin extends JavaPlugin {
    
    @Override
    public void onEnable() {
        Maintenance api = MaintenanceProvider.get();
        EventManager eventManager = api.getEventManager();
        
        eventManager.registerListener(new EventListener<MaintenanceChangedEvent>() {
            @Override
            public void onEvent(MaintenanceChangedEvent event) {
                if (event.isMaintenance()) {
                    getLogger().info("Maintenance mode enabled!");
                } else {
                    getLogger().info("Maintenance mode disabled!");
                }
            }
        }, MaintenanceChangedEvent.class);
    }
}

Advanced Example: Integration with Discord

import eu.kennytv.maintenance.api.event.MaintenanceChangedEvent;
import eu.kennytv.maintenance.api.event.manager.EventListener;

public class DiscordIntegration {
    
    private final DiscordBot bot;
    
    public DiscordIntegration(DiscordBot bot) {
        this.bot = bot;
    }
    
    public void registerListeners(EventManager eventManager) {
        eventManager.registerListener(new EventListener<MaintenanceChangedEvent>() {
            @Override
            public void onEvent(MaintenanceChangedEvent event) {
                if (event.isMaintenance()) {
                    bot.sendMessage("🔧 Server is now in maintenance mode!");
                    bot.updateStatus("Under Maintenance");
                } else {
                    bot.sendMessage("✅ Server maintenance complete! Server is now online.");
                    bot.updateStatus("Online");
                }
            }
        }, MaintenanceChangedEvent.class);
    }
}

Example: Kicking Custom Players

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import eu.kennytv.maintenance.api.event.MaintenanceChangedEvent;
import eu.kennytv.maintenance.api.event.manager.EventListener;

public class CustomKickHandler {
    
    public void register(EventManager eventManager) {
        eventManager.registerListener(new EventListener<MaintenanceChangedEvent>() {
            @Override
            public void onEvent(MaintenanceChangedEvent event) {
                if (event.isMaintenance()) {
                    // Kick players without maintenance permission
                    for (Player player : Bukkit.getOnlinePlayers()) {
                        if (!player.hasPermission("maintenance.bypass")) {
                            player.kickPlayer("Server is entering maintenance mode!");
                        }
                    }
                }
            }
        }, MaintenanceChangedEvent.class);
    }
}

See Also

Build docs developers (and LLMs) love