Skip to main content

API-Abhängigkeit hinzufügen

Die Cloud API benötigt Java 21. Füge die SimpleCloud- und Buf-Repositories hinzu und binde die API mit compileOnly in Gradle oder provided in Maven ein:
Binde die Cloud API nicht per Shading in dein Plugin ein. Das Plattform-Plugin simplecloud-api stellt sie zur Laufzeit bereit. Eine zusätzlich gebündelte Kopie kann zu Konflikten beim Laden von Klassen führen.
Lege die Abhängigkeit vor der Veröffentlichung deines Plugins auf die von dir getestete Version fest.

Plattform-Plugin voraussetzen

Deklariere simplecloud-api als erforderliche Abhängigkeit, damit es vor deinem Plugin geladen wird. Die Standard-Templates von SimpleCloud enthalten bereits das passende Plattform-Plugin. Wenn du eigene Templates verwendest, muss es im Verzeichnis plugins liegen.
Füge die Abhängigkeit in src/main/resources/paper-plugin.yml hinzu:
paper-plugin.yml

Einen Client erstellen

Erstelle beim Start deines Plugins eine CloudApi-Instanz, verwende sie für alle Anfragen wieder und schließe sie, wenn dein Plugin beendet wird. SimpleCloud stellt die Verbindungseinstellungen automatisch bereit.
MyPlugin.java
Die meisten API-Aufrufe geben ein CompletableFuture zurück. Verknüpfe sie, statt zu blockieren, und wechsle über den Scheduler deiner Plattform zurück in deren Ausführungskontext, bevor du aus einem Callback heraus Plattformzustand änderst.

Velocity-Lebenszyklus

Erstelle und schließe auf Velocity denselben Client über die Lebenszyklus-Events des Proxys:
MyPlugin.java
CloudApi.create() verwendet die von SimpleCloud bereitgestellten Verbindungseinstellungen. Wenn dein Plugin andere Zeitlimits für Anfragen oder ein anderes Cache-Verhalten benötigt, übergib eine eigene CloudApiOptions-Instanz.

Fehlerbehebung

Prüfe, ob dein Build beide oben gezeigten Repositories enthält. Aktualisiere anschließend die Abhängigkeiten mit ./gradlew --refresh-dependencies oder mvn -U package.
Prüfe Folgendes:
  • Das passende Plattform-Plugin simplecloud-api ist installiert und aktiviert.
  • Dein Plugin deklariert es als erforderliche Abhängigkeit. Paper-Plugins benötigen außerdem join-classpath: true.
  • Dein Build verwendet compileOnly oder provided und bindet die API nicht per Shading ein.
Prüfe, ob SimpleCloud den Server gestartet hat und das passende Plattform-Plugin simplecloud-api aktiviert ist.