💻Multi Server
📝 Introduction
Le système multi-serveur d'Horizons permet de synchroniser les équipes, les challenges et le chat entre plusieurs serveurs Minecraft en utilisant Redis comme système de communication. Cette fonctionnalité est idéale pour les réseaux de serveurs qui souhaitent maintenir une cohérence des données entre leurs différents serveurs.
Prérequis
Redis Server : Un serveur Redis accessible depuis tous vos serveurs Minecraft
Plugin Horizons installé sur tous les serveurs du réseau
Connexion réseau entre tous les serveurs et le serveur Redis
🔧 Configuration de Base
Le fichier de configuration se trouve dans plugins/Horizons/multiserver-config.yml
.
Configuration Redis
redis:
enabled: true # Active/désactive le système multi-serveur
host: "localhost" # Adresse IP du serveur Redis
port: 6379 # Port du serveur Redis (par défaut 6379)
password: "" # Mot de passe Redis (laissez vide si aucun)
database: 0 # Base de données Redis à utiliser
prefix: "horizons:" # Préfixe pour toutes les clés Redis
Configuration des Serveurs
server-name: "server1" # Nom unique de ce serveur
parent-server: "server1" # Nom du serveur parent (pour les challenges)
Important : Chaque serveur doit avoir un
server-name
unique. Leparent-server
doit correspondre au nom d'un serveur existant dans votre réseau.
🔄 Synchronisation des Données
Activation des Synchronisations
sync:
challenges: true # Synchronise les challenges entre serveurs
teams: true # Synchronise les équipes entre serveurs
player-data: true # Synchronise les données des joueurs
chat: false # Synchronise le chat entre serveurs
Fonctionnalités Synchronisées
🏆 Équipes (teams: true
)
teams: true
)Création/suppression d'équipes : Les équipes créées sur un serveur apparaissent sur tous les autres
Statut staff : Le statut staff des équipes est synchronisé
Membres : L'ajout/suppression de membres est partagé entre serveurs
Scores : Les scores des équipes sont mis à jour en temps réel
🎯 Challenges (challenges: true
)
challenges: true
)Progression : La progression des challenges est synchronisée en temps réel
Complétion : Les challenges complétés sont marqués sur tous les serveurs
Configuration : Seul le serveur parent peut créer/modifier/supprimer des challenges
💬 Chat (chat: true
)
chat: true
)Messages cross-serveur : Les messages de chat sont partagés entre serveurs
Préfixes de serveur : Affichage du serveur d'origine des messages
Permissions : Respect des permissions de chat sur chaque serveur
📡 Configuration des Canaux Redis
channels:
challenges: "horizons:challenges" # Canal pour les challenges
teams: "horizons:teams" # Canal pour les équipes
player-data: "horizons:player-data" # Canal pour les données joueurs
chat: "horizons:chat" # Canal pour le chat
broadcast: "horizons:broadcast" # Canal pour les annonces
Note : Vous pouvez personnaliser les noms des canaux, mais ils doivent être identiques sur tous les serveurs.
💬 Configuration du Chat
Affichage des Messages Cross-Serveur
chat:
show-server-prefix: true # Affiche le préfixe du serveur d'origine
server-prefix-format: "[{server}] " # Format du préfixe serveur
Exemple d'affichage :
[Lobby] <Joueur123> Salut tout le monde !
[Survie] <Admin> Bienvenue sur le réseau !
Système de Broadcast
broadcast:
cross-server-enabled: true # Active les annonces cross-serveur
prefix-format: "[{server}] " # Format du préfixe pour les annonces
🔍 Découverte de Serveurs
server-discovery:
enabled: true # Active la découverte automatique des serveurs
heartbeat-interval: 30 # Intervalle de battement de cœur (secondes)
server-timeout: 90 # Délai avant qu'un serveur soit considéré hors ligne
discovery-channel: "horizons:server-discovery" # Canal de découverte
Cette fonctionnalité permet :
Détection automatique des serveurs en ligne
Monitoring de l'état des serveurs du réseau
Gestion des déconnexions automatique
⚙️ Paramètres Avancés
advanced:
connection-timeout: 5000 # Délai de connexion Redis (ms)
max-connections: 20 # Nombre maximum de connexions Redis
min-idle-connections: 5 # Nombre minimum de connexions inactives
debug-logging: false # Active les logs de débogage détaillés
retry-attempts: 3 # Nombre de tentatives de reconnexion
retry-delay: 1000 # Délai entre les tentatives (ms)
💡 Exemples d'Usage
Réseau Lobby + Serveurs de Jeu
Configuration Lobby (Parent) :
server-name: "lobby"
parent-server: "lobby"
sync:
challenges: true
teams: true
chat: true
Configuration Serveurs de Jeu :
server-name: "survie" # ou "creatif", "pvp", etc.
parent-server: "lobby"
sync:
challenges: true
teams: true
chat: false # Chat local uniquement
Serveurs Thématiques
Serveur Challenges :
server-name: "challenges"
parent-server: "challenges"
sync:
challenges: true
teams: true
Serveurs de Jeu :
sync:
challenges: true # Reçoit les challenges
teams: true
🆘 Support
En cas de problème :
Activez le debug :
debug-logging: true
Consultez les logs du serveur et de Redis
Vérifiez la connectivité réseau entre serveurs
Testez avec une configuration minimale avant d'ajouter des fonctionnalités
Cette documentation couvre l'ensemble des fonctionnalités multi-serveur d'Horizons. Pour des configurations spécifiques ou des problèmes avancés, consultez les logs détaillés avec le mode debug activé.
Mis à jour