Outils pour utilisateurs

Outils du site


admin:services:minetest:mineclone2

Ceci est une ancienne révision du document !


Mineclone2

Mineclone2 est clone de Minecraft.

C'est un jeu sous licence GPLv3, développé à partir du le moteur de jeu Minetest, sous licence LGPL 2.1.

Avant d'installer cette instance, il est nécessaire d'installer minetest.

Configuration du service

  • port TCP dédié : 30009 (on rejoint le serveur sur minetest.chapril.org:30009)
  • configuration systemd dans /etc/minetest/30009-mineclone2.conf (on utilise le service minetest-server@30009-mineclone.service)
  • instance située dans /srv/minetest.chapril.org/instances/30009-mineclone2
  • 2 bases de données postgresql : minetest-users-mineclone2 et minetest-world-mineclone2

Jeu

Le jeu est disponible sur contentDB. On l'installe via git dans le répertoire /srv/minetest.chapril.org/home/.minetest/games/.

cd /srv/minetest.chapril.org/home/.minetest/games/
git clone https://git.minetest.land/MineClone2/MineClone2.git
mv MineClone2 mineclone2 && cd mineclone2
git checkout -b chapril-ludo

La création de la branche chapril-ludo servira pour la mise à jour du jeu, voir la section dédiée plus bas.

Mods

Un travail de recherche et de comparaison a été fait et est consultable sur https://wiki.april.org/w/Chapril:services:minetest:revue_mods

Pour la gestion du serveur

eXtended Ban 2

Ce mod étend les possibilités d'exclusions du serveur, facilite les actions de modération et enregistre les actions pour une meilleure communication entre les membres de la modération. Plus d'informations sur la page contentDB.

cd /srv/minetest.chapril.org/home/.minetest/mods
git clone https://github.com/minetest-mods/xban2.git

Filter

Ce mod permet plusieurs actions automatiques en réponse à une tenue de propos injurieux sur le chat. Plus d'informations sur la page contentDB.

cd /srv/minetest.chapril.org/home/.minetest/mods
git clone https://github.com/minetest-mods/filter.git

On définit une liste des mots soumis à action automatique :

Ce mod filtera automatique chaque message contenant ces mots. La politique est :

  1. 3 avertissements
  2. mute temporaire de 5 minutes (le joueur ou la joueuse ne peut plus poster de messages dans le chat)
  3. 3 avertissements
  4. mute temporaire de 1h

L'équipe de modération ayant accès à l'historique des actions pourra prendre des mesures d'exclusion temporaire ou définitive du joueur ou de la joueuse si

Protector

Ce mod permet à quiconque de créer des blocs de protection afin d'empêcher d'autres personnes de détruire leurs créations. Plus d'informations sur la page contentDB.

cd /srv/minetest.chapril.org/home/.minetest/mods
git clone https://notabug.org/TenPlus1/protector.git

Pour le gameplay du serveur

Pour le moment, on se contente du jeu originel, on pourra ajouter des mods en fonction des demandes.

Configuration du monde

Il s'agit du fichier world.mt placé dans le répertoire de l'instance :

gameid = mineclone2       
 
backend = postgresql      
pgsql_connection = host=127.0.0.1 port=5432 user=minetest password=common-outrank-cruelly dbname=minetest-world-mineclone2
 
auth_backend = postgresql               
pgsql_auth_connection = host=127.0.0.1 port=5432 user=minetest password=common-outrank-cruelly dbname=minetest-auth
 
player_backend = postgresql 
pgsql_player_connection = host=127.0.0.1 port=5432 user=minetest password=common-outrank-cruelly dbname=minetest-users-mineclone2
 
load_mod_xxx = true
load_mod_xxx = true
load_mod_xxx = true
load_mod_whitelist = false

On crée les bases de données postgres :

su - postgres
psql
CREATE DATABASE "minetest-users-mineclone2" WITH OWNER minetest;
CREATE DATABASE "minetest-world-mineclone2" WITH OWNER minetest;

Vérification par principe

chown -R Debian-minetest:minetest /srv/minetest.chapril.org/home/.minetest
chown -R Debian-minetest:games /srv/minetest.chapril.org/instance/30009-mineclone2

Démarrage du service

systemctl start minetest-server@30009-mineclone2.service

Mise à jour du jeu

Il peut arriver qu'une version plus récente de Mineclone2 exige également une mise à jour de Minetest. Puisque on utilise les paquets Debian, ce n'est pas toujours une chose possible, donc il faut prévoir la possibilité de revenir en arrière si besoin. Pour permettre cela, nous utilisons la branche git locale nommée chapril-ludo et on créé localement un tag sur la révision git actuelle avant chaque tentative de mise à jour.

Le projet étant toujours en développement sur la branche master, on suit les releases via les tags. Quand une nouvelle release sort, on va sur le dépôt gitea pour récupérer le commit de la release. On s'en servira pour la mise à jour de notre instance.

cd /srv/minetest.chapril.org/home/.minetest/games/mineclone2/
git tag chapril-ok-$(date +%F) # pour un éventuel retour en arrière
git fetch --all
git merge <sha1 commit du dernier tag>
systemctl restart minetest-server@30009-mineclone2.service

Il faut maintenant tester un minimum. Si jamais un bug bloquant survient, on peut revenir à la version précédente grâce au tag qu'on avait créé.

La procédure décrite çi-après est “sale”, mais elle fonctionne. Si quelqu'un connait une façon plus propre de procéder, ça m'intéresse :)
cd /srv/minetest.chapril.org/home/.minetest/games/mineclone2/ # si jamais vous étiez parti ailleurs :)
git tag | grep chapril # pour retrouver votre tag, par exemple "chapril-ok-2023-01-15" ici
git checkout chapril-ok-2023-01-15 # on se retrouve alors dans un état temporaire "HEAD detached at chapril-ok-2023-01-15"
git branch -m chapril-ludo chapril-ludo-broken # on met de côté l'ancienne branche
git switch -c chapril-ludo # on recréé la branche
git branch -D chapril-ludo-broken # on jette l'ancienne
systemctl restart minetest-server@30009-mineclone2.service

Mise à jour des mods

admin/services/minetest/mineclone2.1688369926.txt.gz · Dernière modification : 2023/07/03 07:38 de obitanz