Documentation

# 🖼️ Système de Resource Pack

# 📦 PrĂ©sentation

Le système de resource pack de Horizons permet de :

  • HĂ©berger automatiquement vos resource packs via un serveur HTTP intĂ©grĂ©
  • Forcer ou suggĂ©rer l'utilisation du resource pack aux joueurs
  • GĂ©rer plusieurs resource packs et changer entre eux facilement
  • Utiliser une URL externe si vous prĂ©fĂ©rez hĂ©berger votre pack ailleurs

# 🗂️ Structure des Fichiers

Les resource packs doivent être placés dans le dossier plugins/Horizons/resourcepacks/ au format .zip.

# ⚙️ Configuration

# 🔧 Configuration de Base

resourcepack:
  # Activer ou désactiver la fonctionnalité
  enabled: true

  # Message affiché lors de la demande de téléchargement
  prompt-message: "&aLe serveur utilise un resource pack pour une meilleure expérience !"

  # Port pour le serveur HTTP intégré
  port: 8080

  # Forcer l'utilisation du resource pack
  force: false

  # Délai avant d'envoyer le pack après la connexion (en ticks)
  join-delay: 40

  # Nom du pack actif par défaut (vide = premier pack trouvé)
  active-pack: ""

# 🔍 Configuration AvancĂ©e

resourcepack:
  # Activer ou désactiver la fonctionnalité
  enabled: true
  # Options de débogage
  debug: false

  advanced:
    # URL externe (si vous voulez héberger le pack vous-même)
    external-url: ""

    # Hash SHA-1 du pack externe
    external-hash: ""

    # Appliquer les mises à jour aux joueurs déjà connectés
    apply-updates-to-online-players: true

    # Intervalle de vérification des changements (en minutes)
    # Définir à 0 ou une valeur négative pour désactiver les vérifications automatiques
    check-interval: 5

    # Nom personnalisé pour le serveur HTTP dans les logs
    server-name: "Horizons ResourcePack Server"

# 🛠️ Commandes

# /resourcepack (Alias: /rpack, /respack)

Commande Description Permission
/resourcepack list Liste tous les resource packs disponibles horizons.resourcepack
/resourcepack set <nom> Définit le resource pack actif horizons.resourcepack
/resourcepack reload Recharge les resource packs horizons.resourcepack
/resourcepack info Affiche les informations sur le pack actif horizons.resourcepack

# 🔄 Fonctionnement

# 🖥️ Serveur HTTP IntĂ©grĂ©

Le plugin intègre un serveur HTTP qui héberge automatiquement vos resource packs. Les avantages sont :

  • Pas besoin d'un hĂ©bergement externe
  • DĂ©tection automatique de l'IP publique du serveur
  • Mise en cache pour optimiser les performances
  • Équilibrage de charge pour les grands serveurs

# 🌐 DĂ©tection d'IP et ConsidĂ©rations de RĂ©seau

# Comment Fonctionne la Détection d'IP

Pour que les joueurs puissent télécharger votre resource pack, le système doit connaître l'adresse IP publique du serveur. Horizons utilise une approche en plusieurs étapes :

  1. Vérification si l'IP du serveur est utilisable (non locale/privée)
  2. Si l'IP est locale/privée (comme 127.0.0.1, 192.168.x.x, etc.), le système tente de détecter l'IP publique via des services externes
  3. Les services suivants sont consultés dans l'ordre (pour la redondance) :
    • api.ipify.org
    • checkip.amazonaws.com
    • icanhazip.com

# Serveurs en Réseau Local (Important)

Si vous hébergez votre serveur sur un réseau local:

⚠️ Vous devez ouvrir le port configurĂ© dans votre routeur/pare-feu ⚠️

  1. Configurez la redirection de port dans votre routeur (port forwarding)
  2. Dirigez le port externe vers l'IP locale de votre serveur Minecraft
  3. Assurez-vous que les pare-feu (Windows, etc.) autorisent également ce port
Exemple de redirection de port :
Port externe: 8080 → IP interne: 192.168.1.x → Port interne: 8080

# Considérations de Confidentialité

La détection d'IP publique nécessite de contacter des services externes. Si vous avez des préoccupations de confidentialité :

  • Utilisez plutĂ´t l'option external-url pour hĂ©berger votre pack sur un service externe
  • Configurez manuellement l'IP dans les paramètres de votre serveur Minecraft

# 🔐 SĂ©curitĂ© et Authentification

Le système calcule automatiquement le hash SHA-1 de chaque resource pack pour garantir l'intégrité du téléchargement. Minecraft utilise ce hash pour vérifier que le resource pack n'a pas été modifié.

# 🔄 Mise Ă  Jour Automatique

Si apply-updates-to-online-players est activé, tous les joueurs connectés recevront automatiquement le nouveau resource pack lorsque vous :

  1. Changez de pack avec la commande /resourcepack set
  2. Rechargez les packs avec /resourcepack reload

# 📊 Optimisation

# Performances du Serveur

  • Les resource packs sont servis par lots pour Ă©viter de surcharger le serveur
  • Headers de cache configurĂ©s pour rĂ©duire la charge rĂ©seau
  • Analyse pĂ©riodique des nouveaux packs sans impact sur les performances

# Compatibilité

Le système fonctionne sur tous les types d'hébergement, y compris les serveurs à IP privée, grâce à la détection automatique d'IP publique.

# 📝 Exemples d'Utilisation

# Exemple 1: Configuration Simple

resourcepack:
  enabled: true
  prompt-message: "&aPour une meilleure expérience, acceptez le resource pack!"
  port: 8080
  force: false
  join-delay: 60

# Exemple 2: Utilisation d'un Pack Externe

resourcepack:
  enabled: true
  force: true
  prompt-message: "&cLe resource pack est obligatoire sur ce serveur!"
  advanced:
    external-url: "https://monsite.com/monpack.zip"
    external-hash: "0123456789abcdef0123456789abcdef01234567"

# Exemple 3: Configuration Complète

resourcepack:
  enabled: true
  debug: true
  port: 8080
  force: true
  prompt-message: "&6&lResource Pack &7» &ePour une meilleure expérience de jeu!"
  join-delay: 40
  active-pack: "MonPack.zip"
  advanced:
    external-url: ""
    external-hash: ""
    apply-updates-to-online-players: true
    check-interval: 10
    server-name: "MaCité ResourcePack"

# 🔧 DĂ©pannage

Problème Solution
Les joueurs ne reçoivent pas le pack Vérifiez que le port est ouvert dans votre pare-feu
L'URL du pack est incorrecte Activez le mode debug et vérifiez les logs
Le pack change mais n'est pas mis à jour Vérifiez que apply-updates-to-online-players est activé
Le hash est invalide Pour les URL externes, générez le hash SHA-1 et mettez-le à jour