Bonsoir !
Bien sûr, je suis d'accord avec toi. C'est pour ça que depuis, le script a été créé
Ce sont des commandes simples qui te permettront de gérer tout ça.
Tu lances ton serveur :
Le & a la fin va signifier de lancer ton serveur dans un process séparé. Tu peux aussi utiliser un logiciel comme "screen" qui gérera ca pour toi. La commande te retournera un truc du genre "[1234] process started successfully" je crois. C'est le [1234] qui nous intéresse, c'est le numéro du processus qui fait tourner ton serveur. Si le process s'arrête ou se fait tuer, ton serveur s'arrête. Lancer ton serveur ca va c'est facile. Le plus compliqué dans l'histoire, c'est de trouver comment l'arrêter et à quel moment. 2 options :
- Soit tu as un plugin qui fait un /stop de ton serveur à la fin de la partie (et il s'arrête proprement, même pas besoin de tuer le processus).
- Soit en mode bourrin tu kill le processus 1234 avec la commande "kill -9 1234".
Enfin, tu remet ta map à zéro en mettant ta map neuve a la place. :
Bash:
rm -R /chemin/du/serveur/<map_fk>
cp -R /chemin/vers/map/neuve /chemin/du/serveur
Puis tu relances le serveur comme vu au début du message via la commande
Si tu as un seul serveur FK, la technique du process va très bien fonctionner. Tu n'auras qu'à stocker l'id du process quelque part (en base de données ou en variable même si c'est moins propre) pour le gérer. Quoi qu'il en soit, le best du best reste de tout gérer par plugin. Alors je sais, tu me diras "frérot c'est pour ça que je suis là, kilékon lui" sauf que je ne suis pas sur qu'un plugin aussi complet existe sur le marché publique. Pourquoi dont ? D'une part parce qu'une partie du plugin touche aux fichiers du la machine et ça les gens sont moyens chauds pour des raisons de sécurité, et d'autre part parce que ces systèmes sont utilisés par les plus grands serveurs. Ils codent eux même leurs plugins et ne les mettent en général pas en ligne pour des raisons évidentes de sécurité mais aussi pour des raisons commerciales (puis y'a un peu plus qu'un plugin et un script de 4 lignes sur leurs systèmes
)
Bien sur tout cela n'est que mon point de vue. Je serais le premier à reconnaitre mon erreur le cas contraire.
On résume :
Soit tu utilises l'id du processus utilisé par le serveur pour l'éteindre et changer ta map, soit via plugin ou commande block tu éteint ton serveur proprement.
Dans les deux cas, il te faudra un plugin ou un programme pour le lien entre ton serveur et ta machine et lancer les commandes pour copier ta map neuve. Eh oui, le jeu se déroule dans l'environnement Spigot et tous les évènements se passent dans ton serveur, ca ta machine elle est en sait rien. Idem pour le /stop, c'est à Spigot que tu envoies la commande, pas à la machine. Et après, la copie de la map neuve se passe sur ta machine. Tu as donc 2 environnements à gérer. Si tu as des compétences en Java, surement que tu dois pouvoir coder ça rapidement. Sinon un dev pourrait le faire. Je t'admet être une brelle en Java. Je sais coder la dessus mais mon code il pique les yeux xD Je met ça au hasard, mais peut être que
@ShE3py ou
@Detobel36 pourrait te donner 2-3 pistes à suivre pour coder cette partie là (et peut être même qu'ils auront le plugin qu'il te faut, mais je ne peux rien promettre). J'en profite aussi pour leur demander leur avis sur la question et sur les manières de faire. Est-ce correct selon vous ? Y'a-t-il meilleure manière de faire ou plus proprement (pour un serveur MC bien sur) ?
Voilà !
AlexFatta