1.15.2 1.14.4 backup saves server useful Useful Saves, Les sauvegardes c'est son affaire !



  • useful-saves-logo-256.png

    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 langue

    Example: /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


  • Moddeurs confirmés

    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 ! 🙂


  • Moddeurs confirmés

    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 ! 🙂


  • Moddeurs confirmés

    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 🙂


  • Moddeurs confirmés

    Super c'est noté !!



  • Mod disponible en 1.14 également ! 🙂