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.
true to enable maintenance mode, false to disable it
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.
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.
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.
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.
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.
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.
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.
true to enable debug mode, false to disable it
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());
}
}