Skip to main content
The Maintenance interface is the primary entry point for interacting with the Maintenance plugin. It provides methods to control maintenance mode, access settings, and manage debug mode.

Obtaining the API Instance

Get the API instance using the MaintenanceProvider:
import eu.kennytv.maintenance.api.Maintenance;
import eu.kennytv.maintenance.api.MaintenanceProvider;

Maintenance api = MaintenanceProvider.get();
if (api != null) {
    // Use the API
}

Methods

setMaintenance

Enables or disables maintenance mode. When enabled, all non-permitted players will be kicked.
maintenance
boolean
required
true to enable maintenance mode, false to disable it
return
void
This method does not return a value
// Enable maintenance mode
api.setMaintenance(true);

// Disable maintenance mode
api.setMaintenance(false);
If using the BungeeCord version with Redis enabled, the maintenance state will also be written to the database.

isMaintenance

Checks if maintenance mode is currently enabled.
return
boolean
true if maintenance is currently enabled, false otherwise
if (api.isMaintenance()) {
    // Maintenance mode is active
    System.out.println("Server is in maintenance mode");
} else {
    // Maintenance mode is inactive
    System.out.println("Server is operational");
}

isTaskRunning

Checks if a start or end timer task is currently running.
return
boolean
true if a timer task is currently running, false otherwise
if (api.isTaskRunning()) {
    System.out.println("A scheduled maintenance task is running");
}

getVersion

Returns the version of the Maintenance plugin.
return
String
The plugin version string
String version = api.getVersion();
System.out.println("Maintenance plugin version: " + version);

getSettings

Returns the Settings instance for accessing configuration and whitelist management.
return
Settings
The Settings instance
Settings settings = api.getSettings();
boolean pingMessages = settings.isEnablePingMessages();
See the Settings API documentation for more details.

getEventManager

Returns the EventManager instance for registering listeners to maintenance events.
return
EventManager
The EventManager instance
import eu.kennytv.maintenance.api.event.manager.EventManager;
import eu.kennytv.maintenance.api.event.MaintenanceChangedEvent;

EventManager eventManager = api.getEventManager();
eventManager.registerListener(MaintenanceChangedEvent.class, event -> {
    if (event.isMaintenance()) {
        System.out.println("Maintenance mode enabled");
    } else {
        System.out.println("Maintenance mode disabled");
    }
});

isDebug

Checks if debug mode is enabled.
return
boolean
true if debug mode is enabled, false otherwise
if (api.isDebug()) {
    System.out.println("Debug mode is active");
}
Debug mode is currently only implemented on the BungeeCord version.

setDebug

Enables or disables debug mode.
debug
boolean
required
true to enable debug mode, false to disable it
return
void
This method does not return a value
// Enable debug mode
api.setDebug(true);

// Disable debug mode
api.setDebug(false);

Complete Example

Here’s a complete example demonstrating common API usage:
import eu.kennytv.maintenance.api.Maintenance;
import eu.kennytv.maintenance.api.MaintenanceProvider;
import eu.kennytv.maintenance.api.Settings;
import java.util.UUID;

public class MaintenanceExample {
    
    public void toggleMaintenance() {
        Maintenance api = MaintenanceProvider.get();
        if (api == null) {
            System.err.println("Maintenance API not available");
            return;
        }
        
        // Toggle maintenance mode
        boolean current = api.isMaintenance();
        api.setMaintenance(!current);
        
        System.out.println("Maintenance mode: " + (api.isMaintenance() ? "ON" : "OFF"));
    }
    
    public void checkAndWhitelistPlayer(UUID playerUuid, String playerName) {
        Maintenance api = MaintenanceProvider.get();
        if (api == null) return;
        
        Settings settings = api.getSettings();
        
        // Check if already whitelisted
        if (!settings.isWhitelisted(playerUuid)) {
            // Add to maintenance whitelist
            if (settings.addWhitelistedPlayer(playerUuid, playerName)) {
                System.out.println(playerName + " added to maintenance whitelist");
            }
        }
    }
    
    public void displayInfo() {
        Maintenance api = MaintenanceProvider.get();
        if (api == null) return;
        
        System.out.println("=== Maintenance Info ===");
        System.out.println("Version: " + api.getVersion());
        System.out.println("Maintenance: " + (api.isMaintenance() ? "Enabled" : "Disabled"));
        System.out.println("Task Running: " + (api.isTaskRunning() ? "Yes" : "No"));
        System.out.println("Debug Mode: " + (api.isDebug() ? "Enabled" : "Disabled"));
        
        Settings settings = api.getSettings();
        System.out.println("Whitelisted Players: " + settings.getWhitelistedPlayers().size());
    }
}

Build docs developers (and LLMs) love