API Docs Help

SquidLibs

SquidLibs est l'ensemble d'utilitaire n'étant pas dépendant d'une platforme ou d'un contexte (ex. minecraft)

Connecteurs (HikariCP, Redis, RabbitMQ)

Ces connecteurs sont les seuls disponibles et vous devez impérativement les utiliser ( voir Rivrs - Dev Guideline)

HikariCP

HikariCP est disponible via le HikariStorageSource, cette classe permet facilement d'utiliser HikariCP
Pour se connecter à une base de données, rien de plus simple:

  • Créer un fichier database.properties avec le bon format

  • Créer une nouvelle instance de HikariStorageSource puis appelez la méthode connect avec le chemin d'accès du database.properties

  • Intercepter les erreurs et éteignez votre plugin

Exemple:

database.properties:

jdbcUrl=jdbc:sqlite:squidcore.db #driverClassName=org.mariadb.jdbc.Driver #dataSource.user=testuser #dataSource.password=test623 poolName=SquidCore

Votre plugin:

HikariStorageSource source = new HikariStorageSource(); File file = new File(getDataDirectory().toFile(), "database.properties"); try { source.connect(file.getAbsolutePath()); } catch(Throwable e) { this.getPlatformLogger().error("Failed to connect to database!", e); return; }

Redis

Redis est disponible via le LettuceStorageSource, elle englobe Lettuce qui est la lib utilisé au sein de rivrs

  • Récupérer vos informations de connexion

  • Créer une nouvelle instance de LettuceStorageSource et appelez la méthode connect avec les bons paramètres

  • Intercepter les erreurs et éteignez votre plugin

Exemple:

LettuceStorageSource source = new LettuceStorageSource(); try { source.connect("localhost", 3306, "user", "password", 0); } catch(Throwable e) { this.getPlatformLogger().error("Failed to connect to redis!", e); return; }

Codecs customs: (voir javadoc) Pour utiliser un codec custom, veuilliez le passer en dernier paramètre de la méthode connect
SquidLibs propose une class englobant certain codecs standard RedisCodecs Ex:

source.connect("localhost", 3306, "user", "password", 0, RedisCodecs.STRING_STRING);

RabbitMQ

RabbitMQ est disponible via le RabbitMQMessenger, elle englobe la lib standard RabbitMQ

  • Récupérer vos informations de connexion

  • Créer une nouvelle instance de LettuceStorageSource et appelez la méthode connect avec les bons paramètres

  • Intercepter les erreurs et éteignez votre plugin

Exemple:

RabbitMQMessenger messenger = new RabbitMQMessenger(); try { messenger.connect("localhost", 3306, "/", "user", "password"); } catch(Throwable e) { this.getPlatformLogger().error("Failed to connect to messenger!", e); return; }

Bundle

Le bundle est un objet backé par du json, il permet de facilement récupérer des field ou de les définir

Pair

La pair est un objet plutôt standard représentant deux valeur en une

Pair<String, String> pair = new Pair<>("a", "b"); pair.getLeft(); // "a" pair.setLeft("c"); pair.getLeft(); // "c" pair.getRight(); // "b" pair.setRight("d"); pair.getRight(); // "d"

Les informations corrélé aux serveurs de jeu

MinecraftPlayer

Cet objet représente un joueur avec

  • uuid

  • username

  • texture

  • proxy actuel

  • serveur actuel

MinecraftServer

Cet objet représente un serveur avec

  • nom

  • type

  • template

  • joueurs connectés

  • extraData

  • statut (offline, running, ...)

  • host

  • port

  • create time (quand est ce qu'il a été créer)

  • dernier heartbeat

  • start time

Il peut aussi être transformé en ServerInformation via asServerInformation()

ServerInformation

Cet objet représente le strict minimum d'un serveur Il contient:

  • nom

  • type

  • template

  • statut

  • host

  • port

  • createTime

  • startTime

Last modified: 17 septembre 2024