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 Maintenance plugin provides a simple event system that allows you to listen to various events such as maintenance mode changes and configuration reloads.
Event Manager
The EventManager is the core interface for working with events. You can access it through the main Maintenance API instance:
Maintenance api = MaintenanceProvider.get();
EventManager eventManager = api.getEventManager();
EventManager Methods
registerListener
Registers an event listener for a specific event type.
void registerListener(EventListener listener, Class<? extends MaintenanceEvent> eventClass)
Parameters:
listener - The listener instance to register
eventClass - The event class to listen for
callEvent
Fires a maintenance event (typically used internally by the plugin).
void callEvent(MaintenanceEvent event)
Parameters:
event - The event to fire
EventListener Interface
All event listeners must extend the EventListener<T> abstract class, where T is the event type you want to listen to.
public abstract class EventListener<T extends MaintenanceEvent> {
public abstract void onEvent(final T event);
}
Registering Event Listeners
To listen to an event, create a class that extends EventListener and register it with the EventManager.
Example: Listening to Maintenance Changes
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();
// Create and register the listener
EventListener<MaintenanceChangedEvent> listener = new EventListener<>() {
@Override
public void onEvent(MaintenanceChangedEvent event) {
if (event.isMaintenance()) {
getLogger().info("Maintenance mode has been enabled!");
} else {
getLogger().info("Maintenance mode has been disabled!");
}
}
};
eventManager.registerListener(listener, MaintenanceChangedEvent.class);
}
}
Example: Listening to Multiple Events
import eu.kennytv.maintenance.api.event.MaintenanceChangedEvent;
import eu.kennytv.maintenance.api.event.MaintenanceReloadedEvent;
public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
Maintenance api = MaintenanceProvider.get();
EventManager eventManager = api.getEventManager();
// Register listener for maintenance changes
eventManager.registerListener(new EventListener<MaintenanceChangedEvent>() {
@Override
public void onEvent(MaintenanceChangedEvent event) {
handleMaintenanceChange(event.isMaintenance());
}
}, MaintenanceChangedEvent.class);
// Register listener for configuration reloads
eventManager.registerListener(new EventListener<MaintenanceReloadedEvent>() {
@Override
public void onEvent(MaintenanceReloadedEvent event) {
getLogger().info("Maintenance configuration reloaded!");
reloadMyPluginConfig();
}
}, MaintenanceReloadedEvent.class);
}
private void handleMaintenanceChange(boolean isMaintenance) {
// Your logic here
}
private void reloadMyPluginConfig() {
// Your logic here
}
}
Available Events
The Maintenance plugin provides the following events:
MaintenanceEvent Interface
All events implement the MaintenanceEvent interface, which serves as a marker interface for all maintenance-related events:
public interface MaintenanceEvent {
}