#!/bin/bash # {{ ansible_managed }} # Script de commandes utiles pour Minecraft MCRCON="{{ minecraft_tools_dir }}/mcrcon" RCON_HOST="localhost" RCON_PORT="{{ rcon_port }}" RCON_PASS="{{ rcon_password }}" # Fonction d'exécution RCON rcon() { $MCRCON -H $RCON_HOST -P $RCON_PORT -p "$RCON_PASS" "$@" } # Commandes disponibles case "$1" in say) shift rcon "say $@" ;; list) rcon "list" ;; save) echo "Sauvegarde du monde..." rcon "save-all flush" echo "Sauvegarde terminée" ;; whitelist-add) if [ -z "$2" ]; then echo "Usage: $0 whitelist-add " exit 1 fi rcon "whitelist add $2" ;; whitelist-remove) if [ -z "$2" ]; then echo "Usage: $0 whitelist-remove " exit 1 fi rcon "whitelist remove $2" ;; whitelist-list) rcon "whitelist list" ;; ban) if [ -z "$2" ]; then echo "Usage: $0 ban [raison]" exit 1 fi shift rcon "ban $@" ;; unban) if [ -z "$2" ]; then echo "Usage: $0 unban " exit 1 fi rcon "pardon $2" ;; kick) if [ -z "$2" ]; then echo "Usage: $0 kick [raison]" exit 1 fi shift rcon "kick $@" ;; op) if [ -z "$2" ]; then echo "Usage: $0 op " exit 1 fi rcon "op $2" ;; deop) if [ -z "$2" ]; then echo "Usage: $0 deop " exit 1 fi rcon "deop $2" ;; tp) if [ -z "$3" ]; then echo "Usage: $0 tp " exit 1 fi rcon "tp $2 $3" ;; gamemode) if [ -z "$3" ]; then echo "Usage: $0 gamemode " echo "Modes: survival, creative, adventure, spectator" exit 1 fi rcon "gamemode $2 $3" ;; time) if [ -z "$2" ]; then echo "Usage: $0 time " exit 1 fi shift rcon "time $@" ;; weather) if [ -z "$2" ]; then echo "Usage: $0 weather [durée]" exit 1 fi shift rcon "weather $@" ;; difficulty) if [ -z "$2" ]; then echo "Usage: $0 difficulty " exit 1 fi rcon "difficulty $2" ;; give) if [ -z "$3" ]; then echo "Usage: $0 give [quantité]" exit 1 fi shift rcon "give $@" ;; reload) echo "Rechargement de la configuration..." rcon "reload" echo "Configuration rechargée" ;; stop) echo "Arrêt du serveur..." rcon "stop" ;; console) # Mode console interactif echo "Mode console RCON (tapez 'exit' pour quitter)" while true; do read -p "minecraft> " cmd if [ "$cmd" = "exit" ]; then break fi rcon "$cmd" done ;; *) echo "Commandes Minecraft disponibles:" echo "" echo " $0 say - Envoyer un message à tous" echo " $0 list - Liste des joueurs connectés" echo " $0 save - Sauvegarder le monde" echo " $0 whitelist-add - Ajouter à la whitelist" echo " $0 whitelist-remove - Retirer de la whitelist" echo " $0 whitelist-list - Afficher la whitelist" echo " $0 ban [raison] - Bannir un joueur" echo " $0 unban - Débannir un joueur" echo " $0 kick [raison] - Expulser un joueur" echo " $0 op - Donner les droits OP" echo " $0 deop - Retirer les droits OP" echo " $0 tp - Téléporter un joueur" echo " $0 gamemode - Changer le mode de jeu" echo " $0 time - Gérer le temps" echo " $0 weather [durée] - Changer la météo" echo " $0 difficulty - Changer la difficulté" echo " $0 give [qty] - Donner des objets" echo " $0 reload - Recharger la configuration" echo " $0 stop - Arrêter le serveur" echo " $0 console - Mode console interactif" exit 1 ;; esac