API-Abhängigkeit hinzufügen
Die Cloud API benötigt Java 21. Füge die SimpleCloud- und Buf-Repositories hinzu und binde die API mitcompileOnly in Gradle oder provided in Maven ein:
Lege die Abhängigkeit vor der Veröffentlichung deines Plugins auf die von dir getestete Version fest.
Plattform-Plugin voraussetzen
Deklarieresimplecloud-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.
- Paper
- Folia
- Spigot
- Velocity
- BungeeCord
Füge die Abhängigkeit in
src/main/resources/paper-plugin.yml hinzu:paper-plugin.yml
Einen Client erstellen
Erstelle beim Start deines Plugins eineCloudApi-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
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
Die API-Abhängigkeit kann nicht aufgelöst werden
Die API-Abhängigkeit kann nicht aufgelöst werden
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.Das Plugin schlägt mit NoClassDefFoundError fehl
Das Plugin schlägt mit NoClassDefFoundError fehl
Prüfe Folgendes:
- Das passende Plattform-Plugin
simplecloud-apiist installiert und aktiviert. - Dein Plugin deklariert es als erforderliche Abhängigkeit. Paper-Plugins benötigen außerdem
join-classpath: true. - Dein Build verwendet
compileOnlyoderprovidedund bindet die API nicht per Shading ein.
CloudApi.create() schlägt fehl
CloudApi.create() schlägt fehl
Prüfe, ob SimpleCloud den Server gestartet hat und das passende Plattform-Plugin
simplecloud-api aktiviert ist.