🖼️Système de Resource Pack

Ce document présente comment configurer et utiliser le système de resource pack intégré dans le plugin Horizons.

📦 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

Dernière mise à jour