Boutique
/boutique ouvre une boutique en menus entièrement décrite dans boutique.yml. Les paiements sont débités dans les monnaies du plugin principal du serveur Cobaltia : gemmes (gems), coins (coins) et points de farm (farm_points). Sans ce plugin, la commande répond « Boutique indisponible ».
Parcours d’achat
Section intitulée « Parcours d’achat »- Accueil — les catégories, placées aux cases de votre choix, et un bouton « Ton solde » qui affiche les trois monnaies du joueur.
- Catégorie — jusqu’à 45 articles par page, avec pagination, retour et fermeture. Chaque article affiche son prix ; un article déjà possédé brille et indique « Déjà possédé ».
- Confirmation — l’article, son prix et un bouton « Confirmer ». Si l’article a deux prix, deux boutons permettent de choisir la monnaie (« Payer en gemmes » / « Payer en coins »).
- Paiement — la somme est débitée, puis les commandes de l’article sont exécutées par la console. Le joueur reçoit « Achat effectué » avec un son.
Structure de boutique.yml
Section intitulée « Structure de boutique.yml »boutiques: gemmes: titre: Boutique # titre du menu d'accueil monnaie-principale: gems # monnaie affichée en premier : gems, coins ou farm_points categories: animations: nom: <#C77DFF>Animations de pseudo # MiniMessage icone: NAME_TAG # matériau ou nexo:<id> slot: 22 # case dans le menu d'accueil (0-53) description: - <gray>Effets animés sur ton pseudo. articles: animation_eclat: categorie: animations nom: Éclat Cobalt icone: LAPIS_LAZULI prix: gems: 500 # valeur d'exemple commandes: - effets give {joueur} eclat lore: - <gray>Une lame de lumière traverse ton pseudo. possede: cobaltia.effet.eclat # déjà possédé si le joueur a cette permissionChamps d’un article
Section intitulée « Champs d’un article »| Champ | Description |
|---|---|
categorie |
Identifiant d’une catégorie existante (obligatoire) |
nom, icone, lore |
Affichage dans le menu (MiniMessage pour le lore ; icone accepte nexo:<id>) |
prix |
Une ou deux monnaies parmi gems, coins, farm_points, avec un montant strictement positif |
commandes |
Commandes console exécutées après paiement. {joueur} = pseudo de l’acheteur |
possede |
Permission qui marque l’article comme « Déjà possédé » et empêche de le racheter |
par-saison |
true : achetable une seule fois par saison |
booster-aleatoire |
Sous-section facteur et minutes : active un booster d’un type tiré au sort |
lien |
Commande exécutée par le joueur au clic, à la place d’un achat (ouvrir un autre menu) |
Un article doit avoir soit un lien, soit un prix et un contenu (commandes ou booster-aleatoire). Sinon boutique.yml est refusé au démarrage et l’erreur est indiquée dans la console.
Fonctions avancées
Section intitulée « Fonctions avancées »Dans une commande, {hasard:a|b|c} est remplacé par l’une des valeurs au hasard, tirée au moment de l’achat :
commandes:- compagnon give {joueur} aleatoire:{hasard:rare|epique}booster_aleatoire_60: categorie: boosters nom: Booster individuel aléatoire 1 h prix: gems: 200 booster-aleatoire: facteur: 2 # multiplicateur minutes: 60 # duréeLe type est tiré au sort parmi les boosters que le joueur n’a pas déjà actifs. S’ils sont tous actifs, l’achat est refusé sans débit (« Boosters déjà actifs »).
Avec par-saison: true, l’achat est mémorisé pour la saison en cours (lue dans le placeholder de saison du plugin « Cobaltia »). Une nouvelle saison rouvre l’achat. L’historique est stocké dans les données du joueur, sans fichier supplémentaire.
tous_les_boosters: categorie: boosters nom: Tous les boosters icone: nexo:iconic_jobs_boost_coins lien: boosters # le joueur exécute /boostersSécurité des achats
Section intitulée « Sécurité des achats »- Un achat à la fois par joueur : les clics répétés pendant un paiement sont ignorés.
- La possession (
possede) et la limite par saison sont revérifiées au moment de payer. - Si le paiement échoue (solde insuffisant, erreur), rien n’est exécuté et le joueur est prévenu (« Solde insuffisant » / « Achat impossible »).
- Si le joueur se déconnecte entre le débit et la livraison, il est remboursé automatiquement.
- Chaque achat est consigné dans la console :
[boutique] <joueur> a acheté <article> pour <montant> <monnaie>.