Skip to content
This repository was archived by the owner on May 18, 2025. It is now read-only.

SkySlayer-Development/skyslayer-core

Repository files navigation

SkySlayer Core

Die SkySlayer Core unterstützt uns bei der Entwicklung von Funktionen und Features für den Server. Darüber hinaus ermöglicht sie die Anbindung an SQL- und Redisson-Datenbanken.

Die SkySlayer Core bietet eine Sammlung modularer Bibliotheken zur Unterstützung bei der Entwicklung von Server-Funktionen und -Features. Sie umfasst:

  • api-velocity: Ermöglicht die Integration und Entwicklung von Funktionen für das Velocity-Proxysystem.
  • api-spigot: Bietet Werkzeuge zur Umsetzung von Features für Spigot-Server.
  • api-common: (Java Application): Stellt allgemeine, plattformübergreifende Funktionen für Java-Anwendungen zur Verfügung.

Diese Module erleichtern die Implementierung und Wartung von Server-Funktionen, unterstützen die Anbindung an SQL- und Redisson-Datenbanken und bieten eine flexible Grundlage für die Entwicklung auf verschiedenen Plattformen.

Voraussetzungen

  • Java 21
  • Gradle
  • MySQL (für die Verbindung mit dem SQL Server)
  • Redisson (für die Verbindung mit Redisson)

Entity / Profile API

Um einen Entity/Profile Service zu erstellen, mit dem Daten in einer SQL-Datenbank gespeichert werden können, stehen dir die Optionen GlobalEntityService, LocalEntityService und TemporaryEntityService zur Verfügung. Die drei Implementierungen unterscheiden sich wie folgt:

GlobalEntityService:

Die Daten, die aus der SQL-Datenbank geladen werden, werden im GlobalEntityService in einem Redisson Cache abgelegt. Dieser Cache dient hauptsächlich dem Austausch von Daten zwischen Velocity, Discord und Spigot. Die Nutzung konzentriert sich vor allem auf Profile, die mindestens auf Velocity und Spigot verwendet werden.

LocalEntityService :

Daten, die aus der SQL-Datenbank im LocalEntityService geladen werden, werden in eine HashMap der direkten Java-Instanz abgelegt. Dies wird für Profile genutzt, die ausschließlich auf dieser Instanz laufen und nicht auf anderen benötigt werden.

TemporaryEntityService :

Daten, die aus der SQL-Datenbank im TemporaryEntityService geladen werden, gelangen in einen Guava Cache (Google). Dabei kann individuell festgelegt werden, wie lange die Daten im Cache verbleiben sollen. Dieser Service wird hauptsächlich dort verwendet, wo die Daten nicht regelmäßig von Spielern benötigt werden.

Example:

/** Laden von einem Entity/Profile **/
/** Synchrone (Return Wert: EntityClass)**/
plugin.getExampleService().

loadEntity(uniqueId);

/** Asynchrone (Return Wert: CompletableFuture<EntityClass>)**/
plugin.

getExampleService().

loadEntityAsync(uniqueId);

/** Speichern von einem Entity/Profile (Der 2. Parameter muss der Key sein, muss aber keine UUID sein.)**/
/** Die Datenspeicherung wird immer automatisch Asynchrone ausgeführt **/
plugin.

getExampleService().

saveEntity(exampleEntity, exampleEntity.getUniqueId());

/** Erhalte ein Entity/Profile (Der 2. Parameter ist Optional für den Retriever [siehe unten])**/
/** Synchrone (Return Wert: EntityClass)**/
        plugin.

getExampleService().

getEntity(uniqueId, null);

/** Asynchrone (Return Wert: CompletableFuture<EntityClass>)**/
plugin.

getExampleService().

getEntityAsync(uniqueId, null);

About

Das SkySlayer-Core Plugin ist eine API für Spigot und Velocity zur erleichterten Plugin-Entwicklung auf dem SkySlayer Server.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages