Skip to content

Developer API

Cyrusbye720 edited this page Jul 25, 2026 · 2 revisions

RedstoneReboot Developer API

RedstoneReboot Logo

Integration guide for Bukkit-side plugins that need to interact with RedstoneReboot state or trigger restart actions.


Scope

The documented integration path accesses the RedstoneRebootPlugin instance exposed at runtime on Bukkit, Paper, and Folia servers.


Basic Hook

Add RedstoneReboot as a soft dependency in your plugin.yml:

softdepend: [RedstoneReboot]

Fetch the plugin instance at runtime:

import dev.demonz.redstonereboot.bukkit.RedstoneRebootPlugin;
import org.bukkit.plugin.java.JavaPlugin;

public final class MyPlugin extends JavaPlugin {

    @Override
    public void onEnable() {
        if (!getServer().getPluginManager().isPluginEnabled("RedstoneReboot")) {
            return;
        }

        RedstoneRebootPlugin reboot = (RedstoneRebootPlugin) getServer()
            .getPluginManager()
            .getPlugin("RedstoneReboot");

        if (reboot != null) {
            getLogger().info("Hooked into RedstoneReboot " + reboot.getDescription().getVersion());
        }
    }
}

Restart Manager

RedstoneRebootPlugin#getRestartManager() provides access to the shared restart controller.

Schedule a Restart

import dev.demonz.redstonereboot.common.manager.RestartReason;

RedstoneRebootPlugin reboot = getRebootPlugin();

boolean scheduled = reboot.getRestartManager().scheduleRestart(
    300,
    RestartReason.API,
    "MyPlugin"
);

Cancel a Restart

boolean cancelled = reboot.getRestartManager().cancelRestart();

Read Restart Status

boolean inProgress = reboot.getRestartManager().isRestartInProgress();
int secondsLeft = reboot.getRestartManager().getSecondsUntilRestart();
var nextRestart = reboot.getRestartManager().getNextScheduledRestart();
var info = reboot.getRestartManager().getRestartInfo();

Restart Reasons

Available reasons include:

  • SCHEDULED
  • SCHEDULED_API
  • MANUAL
  • EMERGENCY_TPS
  • EMERGENCY_MEMORY
  • API
  • UNKNOWN

Server Health Monitor

RedstoneRebootPlugin#getServerLoadMonitor() exposes the health monitor when monitoring is enabled.

var monitor = reboot.getServerLoadMonitor();

if (monitor != null) {
    double tps = monitor.getLastTPS();
    double memory = monitor.getLastMemoryUsage();
    boolean healthy = monitor.isHealthy();
}

Alert Manager

RedstoneRebootPlugin#getAlertManager() can be used to send player-facing notifications.

import dev.demonz.redstonereboot.common.manager.RestartReason;

var alerts = reboot.getAlertManager();

alerts.sendRestartAlert(60, RestartReason.API);
alerts.sendFinalRestartAlert(RestartReason.API);
alerts.sendRestartCancelledAlert();
alerts.sendEmergencyAlert("Custom emergency condition");
alerts.sendAlert(
    "§cCustom warning message",
    "§cRestart Alert",
    "§eCustom subtitle"
);

Permission Manager

RedstoneRebootPlugin#getPermissionManager() exposes permission check helpers.

var permissions = reboot.getPermissionManager();

boolean canRestartNow = permissions.canRestartNow(player);
boolean canSchedule = permissions.canScheduleRestart(player);
boolean canCancel = permissions.canCancelRestart(player);
boolean canReload = permissions.canReloadConfig(player);
boolean canViewStatus = permissions.canViewStatus(player);
boolean isAdmin = permissions.hasAdminPermission(player);
boolean receivesNotifications = permissions.shouldReceiveNotifications(player);
boolean hasLuckPerms = permissions.isLuckPermsAvailable();

Config Access

RedstoneRebootPlugin#getConfigManager() exposes the plugin configuration wrapper.

var config = reboot.getConfigManager();

String timezone = config.getTimezone();
boolean monitoringEnabled = config.isMonitoringEnabled();
boolean emergencyEnabled = config.isEmergencyRestartEnabled();
int warningTime = config.getScheduledWarningTime();

Implementation Notes

  • The API is available on Bukkit, Paper, and Folia server runtimes.
  • Fabric, Forge, and NeoForge builds operate as standalone server mod modules.
  • Always null-check the plugin instance before accessing managers if RedstoneReboot is an optional soft dependency.

RedstoneReboot · Multi-Platform Minecraft Server Restart Engine
Maintained by DemonZ Development

Clone this wiki locally