Gruppe erstellen
Eine Gruppe verwendet für jeden erstellten Server dieselbe Software, dieselben Ressourcen und dasselbe Skalierungsverhalten. Die Beispiele verwenden den unter Installation erstellten gemeinsamenCloudApi-Client und gehören in die Methoden deines Plugins.
Dieses Beispiel erstellt eine Paper-Lobby-Gruppe und ihren Blueprint. SimpleCloud hält eine Lobby in Betrieb und kann die Gruppe auf bis zu drei Server skalieren. Dabei werden 20 verfügbare Spielerplätze vorgehalten.
createBlueprint(...) durch:
createBlueprint und einen vorhandenen Blueprint oder eine Image-Quelle fest.
Felder von CreateGroupRequest
Felder von CreateGroupRequest
string
erforderlich
Verwende bis zu 100 ASCII-Buchstaben, Ziffern, Unterstriche oder Bindestriche (
[A-Za-z0-9_-]). Gruppennamen sind innerhalb des Netzwerks eindeutig.Beim Abgleich wird die Groß- und Kleinschreibung nicht berücksichtigt, sodass Lobby und lobby dieselbe Gruppe bezeichnen. Beim Erstellen oder Umbenennen auf eine reine Variante der Groß- und Kleinschreibung gibt die API 409 Conflict zurück.Eine Gruppe und ein persistenter Server dürfen denselben Namen haben.GroupServerType
SERVER für Gameserver oder PROXY für Proxys. Der Standardwert ist SERVER.integer | null
Minimaler Arbeitsspeicher in MB.
integer | null
Maximaler Arbeitsspeicher in MB.
integer
Spielerlimit pro Server. Der Standardwert ist
50.boolean
Legt fest, ob die Gruppe Server erstellen darf. Der Standardwert ist
true.integer | null
Priorität der Gruppe.
DeploymentConfig | null
Einstellungen zur Auswahl des Hosts.
ScalingConfig | null
Minimale und maximale Serveranzahl sowie Skalierungsverhalten.
SourceConfig | null
Vorhandener Blueprint oder vorhandenes Container-Image, den beziehungsweise das die Gruppe verwendet.
CreateBlueprintRequest | null
Blueprint, der gemeinsam mit der Gruppe erstellt wird.
WorkflowsConfig | null
Lebenszyklus- und manuelle Workflows.
Map<String, Object> | null
Benutzerdefinierte Gruppeneigenschaften.
List<String> | null
Tags zum Organisieren und Filtern von Gruppen.
Gruppen suchen
Suche eine Gruppe anhand ihres Namens oder ihrer ID:GroupQuery, um die Gruppenliste nach Typ, Tag oder Ergebnislimit zu filtern:
getAllGroups() ohne Abfrage auf, um alle Gruppen zurückzugeben.
Gruppe aktualisieren
UpdateGroupRequest ändert nur die von dir festgelegten Felder:
name, type, minMemory, maxMemory, maxPlayers, active, priority, deployment, scaling, source, workflows, properties und tags aktualisieren.
Gib beim Aktualisieren eines verschachtelten Objekts wie ScalingConfig alle Werte an, die es enthalten soll. Verwende die folgenden Methoden für Eigenschaften, wenn du nur einzelne Eigenschaften zusammenführen möchtest.
Gruppeneigenschaften verwalten
Gruppeneigenschaften speichern benutzerdefinierte Daten für deine Plugins. Aktualisierungen werden mit der vorhandenen Map zusammengeführt.deleteGroupProperties, um mehrere Schlüssel gleichzeitig zu entfernen. Jede Eigenschaftsmethode gibt die daraus resultierende Map zurück.
Weiteren Server starten
Fordere einen zusätzlichen Server an, wenn eine bestimmte Aktion deiner Anwendung eine weitere Instanz benötigt:Startwarteschlange prüfen
Die Warteschlange zeigt ausstehende und fehlgeschlagene manuelle Startanforderungen:findByServerGroupId und findByServerGroupName geben null zurück, wenn die Warteschlange keinen Eintrag für die Gruppe enthält.
Entferne ausstehende Startanforderungen für eine Gruppe mit:
Felder der Startwarteschlange
Felder der Startwarteschlange
GroupStartQueue enthält Gesamtwerte über alle Gruppen und eine Liste von GroupStartQueueEntry-Objekten.integer
erforderlich
Anzahl der Gruppeneinträge.
integer
erforderlich
Anzahl der ausstehenden Starts.
integer
erforderlich
Anzahl der fehlgeschlagenen Starts.
integer
erforderlich
Gesamtanzahl der Startanforderungen.
List<GroupStartQueueEntry>
erforderlich
Nach Servergruppe gruppierte Warteschlangeneinträge.
GroupStartQueueEntry stellt die ID und den Namen der Gruppe, die Anzahl ihrer Starts sowie eine Liste starts bereit. Ein GroupStartQueueItem enthält seine ID, den Erstellungszeitpunkt, den Status und den Grund eines Fehlschlags. Der Status ist PENDING, FAILED oder UNKNOWN.Gruppe löschen
Referenz zum Gruppenmodell
Die folgenden Felder sind über die Getter vonGroup verfügbar.
string
erforderlich
Eindeutige Gruppen-ID.
string
erforderlich
Gruppenname.
GroupServerType
erforderlich
SERVER, PROXY oder UNKNOWN_SERVER.integer | null
Minimaler Arbeitsspeicher in MB.
integer | null
Maximaler Arbeitsspeicher in MB.
integer | null
Spielerlimit pro Server.
boolean | null
Legt fest, ob die Gruppe Server erstellen darf.
integer | null
Priorität der Gruppe.
DeploymentConfig | null
Konfiguration zur Auswahl des Hosts.
ScalingConfig | null
Skalierungskonfiguration.
SourceConfig | null
Blueprint- oder Container-Image-Quelle.
WorkflowsConfig | null
Lebenszyklus- und manuelle Workflows.
Map<String, Object> | null
Benutzerdefinierte Gruppeneigenschaften.
List<String> | null
Tags der Gruppe.
string
erforderlich
Erstellungszeitpunkt im ISO-8601-Format.
string
erforderlich
Zeitpunkt der letzten Aktualisierung im ISO-8601-Format.
Felder von ScalingConfig
Felder von ScalingConfig
integer
erforderlich
Mindestanzahl der vorzuhaltenden Server.
integer
erforderlich
Maximale Anzahl der Server, die die Gruppe erstellen darf.
ScalingMode | null
SLOTS entspricht dem Dashboard-Modus Slots und hält freie Kapazität vor. PLAYERS entspricht dem Dashboard-Modus Servers und startet Server anhand der Spielerauslastung.integer
erforderlich
Anzahl der im Modus
SLOTS vorzuhaltenden freien Spielerplätze.number
erforderlich
Schwellenwert der Spielerauslastung zwischen
0 und 1.ScaleDownConfig | null
Einstellungen zum Herunterskalieren.
SLOTS kann Server starten und stoppen. PLAYERS startet Server nur; zusätzliche Instanzen werden nicht automatisch gestoppt.