Useful Saves, Les sauvegardes c'est son affaire !
-
Useful Saves
Planifiez vos sauvegardes pour ne plus jamais rien perdre !
Useful Saves, est un simple mod, exclusivement en commandes, qui vous permettra de faire une sauvegarde de votre monde, et ou avec des fichiers supplémentaires.
Basé sur les crontab, il est facile à prendre en main.
L’idée d’un tel mod, qui existe déjà par ailleurs, mais j’aime bien les “challenges”.
M’est venue en jouant avec un pote, et où un beau matin grâce à un hébergeur lambda, qui ne propose pas les backups gratuitement, nous avons perdus nos inventaires, et une partie du monde avait rollback.Useful Saves venait de naître.
Ajouts
- Sauvegardes planifées
- Sauvegarde instantanée
- Suppression de sauvegardes
- Commande d’aide crontab
Config
[common] #Print Useful Saves messages in chat ? printMessage = true #Define a TimeZone if server clock mismatch players clock #Automaticly generated by default timeZone = "Europe/Paris" #Define a json formatted cron task to save/load #If "enableTaskOnServerStart" is enabled task will be loaded. cronTaskObject = "{}" #Define maximum created backups #"-1" = unlimited saves #Range: > -1 maximumSavedBackups = -1 #Enable the previous saved scheduled task on server start ? #Ensure "cronTask" is not empty or null enableTaskOnServerStart = true #Define a backup folder backupsFolder = "./backups" #Process save task if no player connected ? saveIfServerEmpty = true #Define a list of files or folder to save on saving process #Use absolute path ! savedFileWhitelist = ["./logs", "./config"] #Defined to delete oldest backups if maximum saves are reach #Used if "maximumSavedBackups" are defined deleteOldOnMaximumReach = false
Commandes
Le préfixe des commandes est toujours
/useful-saves
Commandes de suppressions
/useful-saves clear-backups-folder
Vide le dossier des backups./useful-saves delete
Supprime une backup spécifique./useful-saves confirm [yes/no]
Confirme la précédente opération.
Commandes de planification
/useful-saves schedule stop/pause/resume
Pour stopper, mettre en pause or reprendre la tâche en cours d’exécution./useful-saves schedule cron [<expression>]
Pour planifier une tâche basée sur les expressions crontab.Paramètres optionnels
/useful-saves schedule cron [<expression>] [<TimeZone>]
Pour planifier une tâche basée sur les expressions crontab, mais en définissant une time zone si le fuseau horaire du serveur n’est pas le même que les joueurs./useful-saves schedule cron [<expression>] [flush]
flush une sauvegarde (forcer l’écriture des données).
Commandes utilitaires
/useful-saves schedule restart
Pour redémarrer le Scheduler, si il a crash ou si il est éteint./useful-saves save-now
Pour créer instantanément une sauvegarde./useful-saves info
Information sur l’état du “planificateur”.
Commandes de configurations
/useful-saves config backupFolder
Définir le nom du dossier des sauvegardes./useful-saves config deleteOldOnMaximumReach
Suppression des sauvegardes les plus vieilles, si la limite de sauvegardes est atteinte./useful-saves config enableTaskOnServerStart
Démarrer la tâche de sauvegarde, au lancement du serveur./useful-saves config maximum-backups
Définir le nombre de sauvegardes maximum que peut effectuer la tâche/useful-saves config printChatMessage
Afficher les messages d’informations aux joueurs/useful-saves config saveIfServerEmpty
Sauvegarder même si le serveur est vide ? Si aucuns joueurs ne sont connectés ?/useful-saves config timeZone
Définir un fuseau horaire, si celui du serveur est différent des joueurs.Commande d’aide “Cron”
Useful Saves est livré avec une commande, permettant de traduire les expressions crontab pour les humains.
Merci à cronexpressiondescriptor.azurewebsites.net/cron [<expression>]
Récupère la traduction humaine de l’expression cron/cron [<expression>] [<locale>]
Récupère la traduction humaine de l’expression cron mais en définissant une langueExample:
/cron "*** * * ? * ***" fr-FR
Sortie:Toutes les secondes
Créateur de Resources packs ou de Modpacks ?
Le mod n’étant pas obligatoire pour les clients, il est préférable d’ajouter les fichiers de traductions (assets/lang) à vos resources packs ou quelque part dans un modpack.
Permettant ainsi aux joueurs d’avoir les messages d’informations de Useful Saves côté client, même si le mod n’est pas installé !
Liens utiles
Si vous n’êtes pas familier avec les expression cron allez check: Cron Expression Generator for Quartz !
Technologies utilisées
Infos/Téléchargements
-
Encore un mod utile du grand Ama !
Et toutes mes condoléances pour le rollback de map, j’ai connu ça également .
Bravo ! -
Lien de téléchargement ajouté !
Enjoie ! -
Je vais regarder si y a pas moyen que je le transforme en plugin, car c’est intéressant, que ce soit en vanilla ou en moddé.
EDIT : Je mettrais bien sur le tout sur github si j’arrive à en faire quelque chose.
-
Je vais le coder en 1.12 et 1.14, donc tu pourra faire mumuse avec les sources 1.12 je présume.
Donc vas-y fais toi plaiz’ !A la base je l’ai fait en mod, car c’est pour les mods packs, et à l’heure actuelle sponge est pas en 1.15, donc pas possible d’en faire un plugin
Mais si tu en fais un plugin fonctionnel je le mettrais sur les topics de présentation !
-
Oh cool ! A ton avis, le mieux serait de le faire avec sponge et/ou spigot (j’ai déjà touché à sponge et pas mal à spigot) ? J’ai regardé le code source déjà disponible, je pense que c’est réalisable avec les 2, sans doute la partie avec les languages qui sera un peu plus dur, et les commandes légèrement différentes, sinon ça devrait le faire pour l’objectif de base de save. Le fichier de configuration sera conservé mais géré autrement et sera en yaml.
-
@Flow-Arg
Le mieux serait de le faire sur un max de plateformes, je connais pas les différences Sponge/Spigot.
Après ouais tu reprends la partie du code qui est gérée avec quartz pour le scheduler et tout et je pense que ça sera facilement adaptable en plugin dans tous les cas.La seule couche forge du système c’est les commandes, et les events serveur, le reste est universel
J’ai essayé de commenter un maximum le code, et les méthodes sont “self-explanatory” donc ça devrait être facile à adapter en plugin
-
Super c’est noté !!
-
Mod disponible en 1.14 également !