Boutique de mobilier FreeMinecraftModels
FreeMinecraftModels est livré avec une boutique optionnelle adossée à Vault qui permet aux joueurs d'acheter des props craftables avec la monnaie du jeu. La boutique est désactivée par défaut — elle ne s'enregistre que lorsqu'elle est explicitement activée et qu'un fournisseur d'économie Vault est disponible.
Configuration rapide
- Installez Vault et un fournisseur d'économie compatible Vault (EssentialsX, CMI, etc.).
- Démarrez le serveur une fois pour que
plugins/FreeMinecraftModels/shop_config.ymlsoit généré. - Définissez
enabled: truedansshop_config.yml. - Redémarrez le serveur (la boutique s'enregistre au démarrage).
- Exécutez
/fmm shopen jeu pour confirmer que le menu s'ouvre.
Si l'une de ces préconditions manque, la commande /fmm shop reste non enregistrée et les joueurs voient une erreur « no such command » plutôt que le message désactivé configurable.
Comment ça fonctionne
- La boutique lit les recettes depuis
plugins/FreeMinecraftModels/recipes/. - Chaque recette avec
isEnabled: trueetshopEnabled: trueest listée dans la boutique. - Chaque entrée affiche l'objet de sortie de la recette (l'objet de placement en papier du prop) avec deux lignes de lore ajoutées : une ligne
Price:et une inviteClick to purchase. - Cliquer sur une entrée appelle
PurchaseHandler, qui vérifie le solde du joueur via Vault, retire le prix et donne au joueur l'objet de placement. Les objets qui ne tiennent pas dans l'inventaire sont droppés aux pieds du joueur.
Permissions
| Permission | Défaut | Description |
|---|---|---|
freeminecraftmodels.shop | true | Requise pour ouvrir la boutique. Par défaut à true afin que chaque joueur puisse parcourir |
La permission seule n'active pas la boutique — enabled: true dans shop_config.yml et un fournisseur d'économie fonctionnel sont toujours requis.
shop_config.yml
Voir la page Configuration pour la référence complète des clés. Les clés principales sont :
enabled— interrupteur principal (défautfalse)defaultPrice— écrit dans les fichiers de recette qui ne définissent pas leur propreshopPricemenuTitle,priceLoreFormat,clickToBuyLoreFormat— style visuelmessages.*— cinq messages de feedback personnalisables
Toutes les chaînes de message supportent les codes de couleur & et les placeholders listés dans la référence de configuration.
Champs par recette
Chaque recette dans plugins/FreeMinecraftModels/recipes/<model_id>.yml porte deux champs spécifiques à la boutique :
isEnabled: true
model_id: "wooden_chair"
shape:
- "L L"
- "LLL"
- "L L"
ingredients:
L: OAK_LOG
shopEnabled: true
shopPrice: 250.0
| Champ | Défaut | Comportement |
|---|---|---|
shopEnabled | true | Lorsque false, la recette est toujours craftable mais n'apparaît jamais dans /fmm shop |
shopPrice | defaultPrice depuis shop_config.yml | Coût en monnaie Vault lorsque le joueur clique sur l'objet |
L'éditeur /fmm craftify écrit ces deux champs à l'enregistrement, donc ajuster le prix se fait par une simple édition de texte sur le fichier de recette suivi de /fmm reload.
Résultats d'achat
Le PurchaseHandler reconnaît cinq résultats. Chacun se mappe à un message configurable dans shop_config.yml :
| Résultat | Déclenché lorsque | Clé de message |
|---|---|---|
SUCCESS | Le retrait a réussi et l'objet a tenu dans l'inventaire | messages.purchaseSuccess |
SUCCESS_WITH_OVERFLOW | Le retrait a réussi mais l'objet a dû être droppé aux pieds du joueur | messages.purchaseSuccess + messages.inventoryFull |
INSUFFICIENT_FUNDS | Solde du joueur sous le prix, ou le fournisseur d'économie sous-jacent a rejeté le retrait | messages.insufficientFunds |
NOT_FOR_SALE | La recette est désactivée ou shopEnabled: false | messages.itemNotForSale |
SHOP_DISABLED | Désactivée de force au runtime (par ex. fournisseur d'économie disparu) | messages.shopDisabled |
Dépannage
/fmm shop n'existe pas.
La boutique n'est pas enregistrée. Vérifiez les trois :
- Vault est installé
- Un fournisseur d'économie est enregistré (exécutez
/balanceou/ecopour confirmer qu'un répond) enabled: truedansshop_config.yml
Puis redémarrez le serveur. La commande ne s'enregistre qu'au démarrage.
Les objets que je m'attends à voir sont absents du menu.
Ouvrez le fichier de recette dans plugins/FreeMinecraftModels/recipes/. Vérifiez que isEnabled et shopEnabled sont tous deux à true. Exécutez /fmm reload après modification.
Les joueurs sont débités mais n'obtiennent pas d'objet.
Vérifiez la console du serveur pour les erreurs Vault. Le handler ne consomme la monnaie qu'après une vérification de solde réussie, mais un fournisseur d'économie en aval peut toujours faire échouer le retrait réel — le handler capture cela et retourne INSUFFICIENT_FUNDS. Si le retrait a réussi et que l'objet n'est pas apparu, signalez un bug avec le log complet de console autour du clic.