🫀Challenges
💡 Interface d'Administration : Les challenges peuvent être configurés directement en jeu via l'interface d'administration accessible avec
/challenges admin
(permission requise :horizons.challenges.admin
)
📑 Table des Matières
🎯 Introduction
Le système de challenges d'Horizons permet de créer des défis personnalisés pour vos joueurs. Ces challenges peuvent être individuels, d'équipe ou globaux, avec de nombreuses possibilités de configuration.
Fichier de Configuration
Tous les challenges sont configurés dans le fichier challenges.yml
situé dans le dossier du plugin.
🏗️ Structure de Base
Chaque challenge suit cette structure de base :
challenges:
nom_du_challenge:
name: "&7Nom Affiché du Challenge"
description:
- "&7Première ligne de description"
- "&7Deuxième ligne de description"
type: "PLAYER" # PLAYER, TEAM, ou GLOBAL
trigger: "BLOCK_BREAK" # Type d'événement
trigger-data: # Configuration spécifique au trigger
material: "STONE"
target-amount: 100 # Objectif à atteindre
repeat-type: "DAILY" # Type de répétition
display: # Affichage dans l'interface
item: "STONE"
slot: 0
lore:
- "&7Progression: &e{progress}/{target}"
notification: # Configuration des notifications
type: "CHAT"
message: "&aChallenge terminé !"
rewards: # Récompenses
score:
type: "PLAYER_SCORE"
amount: 50
🎮 Types de Challenges
PLAYER
Description : Challenge individuel pour chaque joueur
Progression : Chaque joueur a sa propre progression
Utilisation : Défis personnels, objectifs individuels
TEAM
Description : Challenge d'équipe où tous les membres contribuent
Progression : Progression partagée entre les membres de l'équipe
Utilisation : Défis collaboratifs, objectifs d'équipe
GLOBAL
Description : Challenge pour tout le serveur
Progression : Un seul joueur ou une équipe peut le compléter
Utilisation : Événements serveur, premiers à accomplir quelque chose
⚡ Triggers Disponibles
🏗️ Construction et Destruction
BLOCK_BREAK
: Casser des blocsBLOCK_PLACE
: Placer des blocs
⚔️ Combat
ENTITY_KILL
: Tuer des entités (mobs)PLAYER_KILL
: Tuer d'autres joueursDAMAGE_DEAL
: Infliger des dégâtsDAMAGE_TAKE
: Subir des dégâtsDEATH
: Mourir
🎯 Activités
ITEM_CRAFT
: Crafter des objetsITEM_CONSUME
: Consommer des objetsFISH_CATCH
: PêcherENCHANT_ITEM
: Enchanter des objetsTRADE_VILLAGER
: Commercer avec des villageoisPOTION_BREW
: Brasser des potions
🐾 Animaux
TAME_ANIMAL
: Apprivoiser des animauxBREED_ANIMAL
: Faire reproduire des animaux
🚶 Déplacement et Exploration
DISTANCE_WALK
: Marcher une certaine distanceDISTANCE_FLY
: Voler une certaine distanceBIOME_ENTER
: Entrer dans des biomesDIMENSION_ENTER
: Entrer dans des dimensionsWORLD_CHANGE
: Changer de monde
📈 Progression
EXPERIENCE_GAIN
: Gagner de l'expérienceLEVEL_UP
: Monter de niveau
💬 Social
JOIN_SERVER
: Se connecter au serveurCHAT_MESSAGE
: Envoyer des messagesCOMMAND_USE
: Utiliser des commandes
⚙️ Configuration des Trigger-Data
Pour BLOCK_BREAK et BLOCK_PLACE
trigger-data:
material: "STONE" # Un seul matériau
# OU
materials: # Liste de matériaux
- "STONE"
- "COBBLESTONE"
- "GRANITE"
Pour ENTITY_KILL
trigger-data:
entity: "ZOMBIE" # Une seule entité
# OU
entities: # Liste d'entités
- "ZOMBIE"
- "SKELETON"
- "CREEPER"
Pour BIOME_ENTER
trigger-data:
biome: "DESERT" # Un biome spécifique
# OU
biomes: # Liste de biomes
- "DESERT"
- "FOREST"
- "JUNGLE"
# OU vide pour tous les biomes
# trigger-data: {}
Pour DIMENSION_ENTER
trigger-data:
to_dimension: "NETHER" # NORMAL, NETHER, THE_END
Pour WORLD_CHANGE
trigger-data:
to_world: "world_nether" # Monde de destination
from_world: "world" # Monde d'origine (optionnel)
🔄 Types de Répétition
UNIQUE
Description : Ne peut être complété qu'une seule fois
Utilisation : Achievements permanents, premières fois
UNLIMITED
Description : Peut être répété indéfiniment
Configuration : Optionnel
cooldown-seconds
pour limiter la fréquence
DAILY
Description : Se remet à zéro chaque jour
Reset : Minuit (heure du serveur)
WEEKLY
Description : Se remet à zéro chaque semaine
Reset : Lundi à minuit
COOLDOWN
Description : Cooldown personnalisé entre les complétions
Configuration : Requis
cooldown-seconds
LIMITED_COUNT
Description : Nombre limité de complétions
Configuration : Requis
max-completions
# Exemple avec cooldown
repeat-type: "COOLDOWN"
cooldown-seconds: 3600 # 1 heure
# Exemple avec limite
repeat-type: "LIMITED_COUNT"
max-completions: 5
🎁 Configuration des Récompenses
Types de Récompenses
PLAYER_SCORE
rewards:
score:
type: "PLAYER_SCORE"
amount: 100
TEAM_SCORE
rewards:
team_score:
type: "TEAM_SCORE"
amount: 150
ITEM
rewards:
item:
type: "ITEM"
material: "DIAMOND"
amount: 5
COMMAND
rewards:
command:
type: "COMMAND"
command: "give {player} golden_apple 1"
EXPERIENCE
rewards:
xp:
type: "EXPERIENCE"
amount: 100
MONEY (si Vault installé)
rewards:
money:
type: "MONEY"
amount: 500
Récompenses Multiples
rewards:
score:
type: "PLAYER_SCORE"
amount: 100
item:
type: "ITEM"
material: "DIAMOND"
amount: 1
command:
type: "COMMAND"
command: "effect give {player} speed 60 1"
📢 Système de Notifications
Types de Notifications
CHAT
notification:
type: "CHAT"
message: "&a✓ Challenge terminé !"
ACTIONBAR
notification:
type: "ACTIONBAR"
message: "&e🎯 Objectif atteint !"
TITLE
notification:
type: "TITLE"
message: "&b🏆 CHALLENGE TERMINÉ !"
SUBTITLE
notification:
type: "SUBTITLE"
message: "&7Félicitations !"
BOSSBAR
notification:
type: "BOSSBAR"
message: "&6🎉 Challenge accompli !"
Configuration Audio
notification:
type: "CHAT"
message: "&aChallenge terminé !"
sound: "ENTITY_PLAYER_LEVELUP" # Son Minecraft
volume: 1.0 # Volume (0.0 à 1.0)
pitch: 1.0 # Hauteur (0.5 à 2.0)
Variables Disponibles
{player}
: Nom du joueur{progress}
: Progression actuelle{target}
: Objectif à atteindre{completions}
: Nombre de complétions{status}
: Statut du challenge
🖼️ Configuration de l'Affichage
Interface Graphique
display:
item: "DIAMOND" # Matériau d'affichage
slot: 0 # Position dans l'interface (0-53)
lore: # Description supplémentaire
- "&7Progression: &e{progress}/{target}"
- ""
- "&7Statut: {status}"
- "&7Complétions: &e{completions}"
📝 Exemples Complets
Challenge de Minage Simple
mine_diamonds:
name: "&b💎 Mineur de Diamant"
description:
- "&7Minez 10 minerais de diamant"
- "&7pour devenir un mineur expert"
type: "PLAYER"
trigger: "BLOCK_BREAK"
trigger-data:
material: "DIAMOND_ORE"
target-amount: 10
repeat-type: "WEEKLY"
display:
item: "DIAMOND_ORE"
slot: 1
notification:
type: "TITLE"
message: "&b💎 Mineur de Diamant !"
sound: "ENTITY_PLAYER_LEVELUP"
rewards:
score:
type: "PLAYER_SCORE"
amount: 200
Challenge d'Équipe Complexe
team_builder:
name: "&6🏗️ Constructeurs d'Équipe"
description:
- "&7Votre équipe doit placer"
- "&7500 blocs de construction"
type: "TEAM"
trigger: "BLOCK_PLACE"
trigger-data:
materials:
- "STONE_BRICKS"
- "BRICKS"
- "COBBLESTONE"
- "WOOD_PLANKS"
target-amount: 500
repeat-type: "DAILY"
display:
item: "BRICKS"
slot: 11
notification:
type: "BOSSBAR"
message: "&6🏗️ Équipe de Constructeurs !"
rewards:
team_score:
type: "TEAM_SCORE"
amount: 300
command:
type: "COMMAND"
command: "effect give @a[team={team}] speed 300 1"
Challenge Global Unique
first_nether:
name: "&c🔥 Pionnier du Nether"
description:
- "&7Soyez le premier joueur"
- "&7à entrer dans le Nether !"
type: "GLOBAL"
trigger: "DIMENSION_ENTER"
trigger-data:
to_dimension: "NETHER"
target-amount: 1
repeat-type: "UNIQUE"
display:
item: "OBSIDIAN"
slot: 20
notification:
type: "CHAT"
message: "&c🔥 {player} est le premier à entrer dans le Nether !"
sound: "UI_TOAST_CHALLENGE_COMPLETE"
rewards:
score:
type: "PLAYER_SCORE"
amount: 500
item:
type: "ITEM"
material: "FIRE_RESISTANCE_POTION"
amount: 3
✅ Validation et Commandes
Commandes Disponibles
/challenges
: Ouvre l'interface des challenges/challenges admin
: Ouvre l'interface d'administration (permission requise)/challenges reload
: Recharge la configuration (permission requise)/challenges reset <player/team/global> [challenge]
: Remet à zéro la progression (permission requise)/challenges info <challenge>
: Informations sur un challenge/challenges progress <player> [challenge]
: Progression d'un joueur
🔐 Permissions
horizons.challenges.admin
horizons.challenges.admin
Description : Accès complet à l'administration des challenges
Fonctionnalités :
Interface d'administration (
/challenges admin
)Création, modification et suppression de challenges
Gestion des récompenses et paramètres avancés
Accès à toutes les fonctionnalités d'édition
horizons.challenges.reload
horizons.challenges.reload
Description : Rechargement de la configuration des challenges
Fonctionnalités :
Commande
/challenges reload
Rechargement à chaud des challenges depuis les fichiers
horizons.challenges.reset
horizons.challenges.reset
Description : Réinitialisation des progressions de challenges
Fonctionnalités :
/challenges reset player <nom>
- Reset d'un joueur spécifique/challenges reset team <nom>
- Reset d'une équipe complète/challenges reset global
- Reset de tous les challenges globaux
Commandes Sans Permission
Ces commandes sont accessibles à tous les joueurs :
/challenges
- Interface principale des challenges/challenges gui [type]
- Interface par type de challenge/challenges info <id>
- Informations détaillées sur un challenge/challenges progress <id>
- Consultation de sa progression personnelle/challenges help
- Aide et liste des commandes
💡 Conseils et Bonnes Pratiques
🎯 Conception des Challenges
Équilibrage : Ajustez les objectifs selon la difficulté
Progression : Créez des challenges de difficulté croissante
Variété : Utilisez différents triggers pour diversifier
Récompenses : Équilibrez les récompenses avec l'effort requis
🔧 Configuration Technique
Sauvegarde : Sauvegardez toujours avant modification
Reload : Utilisez
/challenges reload
pour appliquer les changementsLogs : Consultez les logs en cas d'erreur
📊 Performance
Slots : Évitez les doublons de slots dans l'interface
Triggers : Les triggers fréquents (CHAT_MESSAGE) peuvent impacter les performances
Cooldowns : Utilisez des cooldowns pour limiter le spam
🛠️ Support et Dépannage
Problèmes Courants
Challenge ne se déclenche pas :
Vérifiez le trigger et les trigger-data
Confirmez que le challenge est actif
Consultez les logs pour les erreurs
Erreurs de configuration :
Vérifiez la syntaxe YAML
Consultez les messages d'erreur détaillés
Récompenses non distribuées :
Vérifiez la configuration des rewards
Confirmez les permissions nécessaires
Testez avec des récompenses simples
Logs et Debug
Les logs du plugin fournissent des informations détaillées sur :
Chargement des challenges
Erreurs de configuration
Progression des joueurs
Distribution des récompenses
Cette documentation couvre toutes les fonctionnalités du système de challenges d'Horizons. Pour des questions spécifiques ou des problèmes, consultez les logs du serveur ou contactez le support.