Zum Hauptinhalt springen
Die Events API ermöglicht das Reagieren auf Änderungen in deinem Netzwerk in Echtzeit. Zugriff über api.event().

Event-Kategorien

MethodeEvents
api.event().group()Gruppe erstellt, aktualisiert, gelöscht
api.event().server()Server gestartet, gestoppt, Status geändert
api.event().persistentServer()Persistente Server Events
api.event().blueprint()Blueprint erstellt, aktualisiert, gelöscht

Server Events

Server gestartet

Subscription sub = api.event().server().onStarted(event -> {
    System.out.println("Server gestartet: " + event.getServerId());
    System.out.println("Gruppe: " + event.getGroupName());
});

Server gestoppt

api.event().server().onStopped(event -> {
    System.out.println("Server gestoppt: " + event.getServerId());
});

Server-Status geändert

api.event().server().onStateChanged(event -> {
    System.out.println(event.getServerId() + ": " +
        event.getOldState() + " → " + event.getNewState());
});

Gruppen Events

// Erstellt
api.event().group().onCreated(event -> {
    System.out.println("Gruppe erstellt: " + event.getServerGroupId());
});

// Aktualisiert
api.event().group().onUpdated(event -> { ... });

// Gelöscht
api.event().group().onDeleted(event -> { ... });

Subscriptions verwalten

Subscriptions implementieren AutoCloseable. Immer aufräumen wenn fertig:

Manuelles Aufräumen

Subscription sub = api.event().server().onStarted(event -> { ... });

// Später, beim Herunterfahren
sub.close();

Plugin-Lebenszyklus

public class MeinPlugin 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 gestartet: " + event.getServerId());
    }

    private void handleServerStop(ServerStoppedEvent event) {
        getLogger().info("Server gestoppt: " + event.getServerId());
    }
}

Event-Referenz

Server Events

EventProperties
ServerStartedEventserverId, groupName
ServerStoppedEventserverId, groupName
ServerStateChangedEventserverId, oldState, newState
ServerUpdatedEventserverId
ServerDeletedEventserverId

Gruppen Events

EventProperties
GroupCreatedEventserverGroupId
GroupUpdatedEventserverGroupId
GroupDeletedEventserverGroupId