Zum Hauptinhalt springen

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.

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 Events werden sowohl für gruppenbasierte Server als auch für persistente Server ausgelöst. Bei einem persistenten Server ist persistentServerId gesetzt und groupName leer. Bei einem Gruppen-Server ist groupName gesetzt und persistentServerId leer.

Server gestartet

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

    // Prüfen ob es ein Gruppen- oder persistenter Server ist
    if (event.getPersistentServerId() != null && !event.getPersistentServerId().isEmpty()) {
        System.out.println("Persistenter Server: " + event.getPersistentServerId());
    } else {
        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, persistentServerId
ServerStoppedEventserverId, groupName, persistentServerId
ServerStateChangedEventserverId, oldState, newState
ServerUpdatedEventserverId
ServerDeletedEventserverId
ServerStartedEvent und ServerStoppedEvent werden sowohl für Gruppen-Server als auch für persistente Server ausgelöst. Bei persistenten Servern ist persistentServerId gesetzt und groupName leer. Bei Gruppen-Servern ist groupName gesetzt und persistentServerId leer.

Gruppen Events

EventProperties
GroupCreatedEventserverGroupId
GroupUpdatedEventserverGroupId
GroupDeletedEventserverGroupId