🖼️ 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 :
- Vérification si l'IP du serveur est utilisable (non locale/privée)
- 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
- 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 ⚠️
- Configurez la redirection de port dans votre routeur (port forwarding)
- Dirigez le port externe vers l'IP locale de votre serveur Minecraft
- 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: 8080Considé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-urlpour 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 :
- Changez de pack avec la commande
/resourcepack set - 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: 60Exemple 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 |