Documentation Index
Fetch the complete documentation index at: https://new-docs.simplecloud.app/llms.txt
Use this file to discover all available pages before exploring further.
The Events API lets you react to changes in your network in real-time. Access it via api.event().
Event Categories
| Method | Events |
|---|
api.event().group() | Group created, updated, deleted |
api.event().server() | Server started, stopped, state changed |
api.event().persistentServer() | Persistent server events |
api.event().blueprint() | Blueprint created, updated, deleted |
Server Events
Server events fire for both group-based servers and persistent servers. When a persistent server triggers the event, persistentServerId is populated and groupName is empty. When a group server triggers the event, groupName is populated and persistentServerId is empty.
Server Started
Subscription sub = api.event().server().onStarted(event -> {
System.out.println("Server started: " + event.getServerId());
// Check whether this is a group or persistent server
if (event.getPersistentServerId() != null && !event.getPersistentServerId().isEmpty()) {
System.out.println("Persistent server: " + event.getPersistentServerId());
} else {
System.out.println("Group: " + event.getGroupName());
}
});
Server Stopped
api.event().server().onStopped(event -> {
System.out.println("Server stopped: " + event.getServerId());
});
Server State Changed
api.event().server().onStateChanged(event -> {
System.out.println(event.getServerId() + ": " +
event.getOldState() + " → " + event.getNewState());
});
Server Updated
api.event().server().onUpdated(event -> {
System.out.println("Server updated: " + event.getServerId());
});
Server Deleted
api.event().server().onDeleted(event -> {
System.out.println("Server deleted: " + event.getServerId());
});
Group Events
Group Created
api.event().group().onCreated(event -> {
System.out.println("Group created: " + event.getServerGroupId());
});
Group Updated
api.event().group().onUpdated(event -> {
System.out.println("Group updated: " + event.getServerGroupId());
});
Group Deleted
api.event().group().onDeleted(event -> {
System.out.println("Group deleted: " + event.getServerGroupId());
});
Persistent Server Events
// Created
api.event().persistentServer().onCreated(event -> { ... });
// Started
api.event().persistentServer().onStarted(event -> { ... });
// Stopped
api.event().persistentServer().onStopped(event -> { ... });
// Updated
api.event().persistentServer().onUpdated(event -> { ... });
// Deleted
api.event().persistentServer().onDeleted(event -> { ... });
Blueprint Events
// Created
api.event().blueprint().onCreated(event -> { ... });
// Updated
api.event().blueprint().onUpdated(event -> { ... });
// Deleted
api.event().blueprint().onDeleted(event -> { ... });
Managing Subscriptions
Subscriptions implement AutoCloseable. Always clean them up when done:
Manual Cleanup
Subscription sub = api.event().server().onStarted(event -> { ... });
// Later, when shutting down
sub.close();
Try-with-Resources
try (Subscription sub = api.event().server().onStarted(event -> { ... })) {
// Subscription active within this block
Thread.sleep(60000);
} // Automatically closed
Plugin Lifecycle
public class MyPlugin extends JavaPlugin {
private final List<Subscription> subscriptions = new ArrayList<>();
private CloudApi api;
@Override
public void onEnable() {
api = CloudApi.create();
subscriptions.add(api.event().server().onStarted(this::handleServerStart));
subscriptions.add(api.event().server().onStopped(this::handleServerStop));
}
@Override
public void onDisable() {
subscriptions.forEach(Subscription::close);
}
private void handleServerStart(ServerStartedEvent event) {
getLogger().info("Server started: " + event.getServerId());
}
private void handleServerStop(ServerStoppedEvent event) {
getLogger().info("Server stopped: " + event.getServerId());
}
}
Event Reference
Server Events
| Event | Properties |
|---|
ServerStartedEvent | serverId, groupName, persistentServerId |
ServerStoppedEvent | serverId, groupName, persistentServerId |
ServerStateChangedEvent | serverId, oldState, newState |
ServerUpdatedEvent | serverId |
ServerDeletedEvent | serverId |
ServerStartedEvent and ServerStoppedEvent fire for both group servers and persistent servers. For persistent servers, persistentServerId is set and groupName is empty. For group servers, groupName is set and persistentServerId is empty.
Group Events
| Event | Properties |
|---|
GroupCreatedEvent | serverGroupId |
GroupUpdatedEvent | serverGroupId |
GroupDeletedEvent | serverGroupId |
Persistent Server Events
| Event | Properties |
|---|
PersistentServerCreatedEvent | serverId |
PersistentServerStartedEvent | serverId |
PersistentServerStoppedEvent | serverId |
PersistentServerUpdatedEvent | serverId |
PersistentServerDeletedEvent | serverId |
Blueprint Events
| Event | Properties |
|---|
BlueprintCreatedEvent | blueprintId |
BlueprintUpdatedEvent | blueprintId |
BlueprintDeletedEvent | blueprintId |