SSM-API
Routes HTTP
L'API possède quelques routes HTTP. Elles pourront servir dans le futur à enregistrer plus rapidement de nouveaux types d'instance, via un panel par exemple. L'entièreté des routes est disponible sur le Swagger (/api/swagger-ui.html).
Vous pouvez réinitialiser les données de l'API (celles stockées dans le Redis) avec la route /api/reset. Vous pouvez récupérer le nombre de joueurs connectés sur tout le réseau Sarki avec la route /api/online (utilisé notamment dans PLib).
Core
La majeure partie du code "logique" de l'API se situe dans la classe Routines, dont les méthodes sont appelées à la réception des commandes Redis. On compte entre autres : joueur souhaitant rejoindre une partie, quittant une partie, mise à jour des données de parties comme le nombre de places restantes, si la partie est démarrée ou terminée, si le serveur à la demande est prêt...
La force de SSM réside dans cette API contenant bon nombres d'algorithmes et de vérifications permettant de gérer la durée de vie des serveurs, leur création, leur suppression, l'assignation des joueurs et des parties à un serveur en particulier en respectant les contraintes imposées en configuration (nombre de parties simultanées au maximum, uptime maximum...).
Configuration
La configuration est séparée en deux fichiers. Le premier concerne notamment les identifiants de connexion à la base de donnée MySQL et au Redis (.env). Le deuxième, situé directement dans le serveur (application.properties), permet de configurer notamment les données relatives à Pterodactyl.
Patcher
Uploader 65 Mo à chaque modification de l'API, cela peut être très long, surtout avec une mauvaise connexion internet. Voici donc un kit de patch, également disponible dans le dépôt de l'API. Avec ce kit, vous serez capable de générer un patch d'API entre deux versions de l'API et ainsi n'avoir qu'à uploader celui-ci. En effet, l'API a la capacité de s'auto-patcher à son démarrage.
Je recommande d'extraire cette archive dans le dossier build/libs du projet.
Exemple d'utilisation :
Vous avez le fichier
SarkiServerManager-API-1.0.0.jar.olddans le dossier. Il s'agit de la version en cours d'exécution sur le panel Pterodactyl. (Soit parce que c'est vous qui aviez réalisé la dernière mise à jour de l'API, soit parce que vous venez de télécharger le .jar et l'avez renommé avec l'extension .old).Vous compilez la version avec les nouvelles modifications de l'API. Vous avez donc un nouveau fichier nommé
SarkiServerManager-API-1.0.0.jar.Vous exécutez le script
c_patch.Vous uploadez le fichier de patch généré
api_patch.patchsur le panel Pterodactyl, à la racine.Vous redémarrez l'API. Elle appliquera automatiquement le patch puis redémarrera d'elle-même.
Voilà, vous avez mis à jour l'API, en quelques secondes, sans avoir à uploader l'entièreté du .jar.
Last updated