Zum Hauptinhalt springen
Die Persistent Servers API verwaltet lang lebende Server-Konfigurationen über api.persistentServer(). Persistente Server behalten ihre Identität über Neustarts hinweg und können einem bestimmten Serverhost zugewiesen werden.

Persistente Server abrufen

// Alle persistenten Server
api.persistentServer().getAllPersistentServers()
    .thenAccept(servers -> servers.forEach(server ->
        System.out.println(server.getName())));

// Persistente Server mit Filtern
PersistentServerQuery query = PersistentServerQuery.create()
    .filterByActive(true)
    .filterByTags("survival")
    .limit(20);

api.persistentServer().getAllPersistentServers(query)
    .thenAccept(servers -> System.out.println("Treffer: " + servers.size()));

// Nach ID oder Name abrufen
api.persistentServer().getPersistentServerById("persistent-server-uuid")
    .thenAccept(server -> System.out.println(server.getName()));

api.persistentServer().getPersistentServerByName("survival")
    .thenAccept(server -> System.out.println(server.getPersistentServerId()));

Persistenten Server erstellen

CreatePersistentServerRequest request = CreatePersistentServerRequest.builder()
    .name("survival")
    .type(GroupServerType.SERVER)
    .minMemory(1024)
    .maxMemory(4096)
    .maxPlayers(80)
    .active(true)
    .priority(100)
    .serverhostId("serverhost-1")
    .tags(List.of("survival", "public"))
    .properties(Map.of("world", "main"))
    .build();

api.persistentServer().createPersistentServer(request)
    .thenAccept(server -> System.out.println("Erstellt: " + server.getPersistentServerId()));

Persistenten Server aktualisieren

UpdatePersistentServerRequest update = UpdatePersistentServerRequest.builder()
    .maxPlayers(100)
    .active(true)
    .priority(200)
    .build();

api.persistentServer().updatePersistentServer("persistent-server-uuid", update)
    .thenAccept(server -> System.out.println("Aktualisiert: " + server.getName()));

Persistenten Server löschen

api.persistentServer().deletePersistentServer("persistent-server-uuid")
    .thenRun(() -> System.out.println("Persistenter Server gelöscht"));

Persistent-Server-Properties

api.persistentServer()
    .updatePersistentServerProperties("persistent-server-uuid", Map.of(
        "world", "main",
        "difficulty", "hard"
    ))
    .thenAccept(properties -> System.out.println("Properties: " + properties));

api.persistentServer()
    .deletePersistentServerProperties("persistent-server-uuid", List.of("difficulty"));

PersistentServerQuery

FilterMethodeBeschreibung
TagsfilterByTags(String... tags)Matcht persistente Server mit einem der angegebenen Tags
Aktiv-StatusfilterByActive(boolean active)Matcht aktive oder inaktive persistente Server
ServerhostfilterByServerhostId(String serverhostId)Matcht persistente Server auf einem bestimmten Serverhost
Limitlimit(int limit)Begrenzt die Anzahl der Ergebnisse

PersistentServer Model

PersistentServer erweitert ServerBase und enthält deshalb die gemeinsamen Konfigurationsfelder von Gruppen und persistenten Servern.
persistentServerId
string
erforderlich
Eindeutige Persistent-Server-ID.
name
string
erforderlich
Lesbarer Servername.
type
GroupServerType
erforderlich
Persistent-Server-Typ. Nutze SERVER für Spielserver oder PROXY für Proxy-Server.
minMemory
integer | null
Minimaler Speicher in MB.
maxMemory
integer | null
Maximaler Speicher in MB.
maxPlayers
integer | null
Spielerlimit.
active
boolean | null
Ob SimpleCloud den persistenten Server aktiv halten soll.
priority
integer | null
Priorität für Scheduling und Sortierung.
serverhostId
string | null
Zugewiesene Serverhost-ID.
playerCount
integer
erforderlich
Spielerzahl der laufenden Instanz oder 0, wenn keine Instanz existiert.
source
SourceConfig | null
Blueprint- oder Image-Source-Konfiguration.
workflows
WorkflowsConfig | null
Lifecycle-Workflows.
properties
object | null
Eigene Metadaten.
tags
List<String> | null
Tags für Filterung und Organisation.
createdAt
string
erforderlich
Erstellungszeitpunkt im ISO-8601-Format.
updatedAt
string
erforderlich
Letzter Aktualisierungszeitpunkt im ISO-8601-Format.
Laufende Instanzen, die von persistenten Servern erstellt wurden, erscheinen weiterhin in api.server() und stellen server.getPersistentServerId() sowie server.getPersistentServer() bereit.