ENFR

Module Artisanat Personnalisé

Tables d'artisanat en interface graphique avec emplacements d'entrée/sortie configurables et recettes persistantes conçues en jeu.

← Retour à la doc
En une phrase : les tables d'artisanat personnalisées sont des établis en interface graphique où les joueurs placent des objets dans des emplacements d'entrée et cliquent sur l'emplacement de sortie pour fabriquer — les recettes sont créées en jeu par les admins et sauvegardées de manière persistante dans SQLite ou MongoDB.

Sommaire

1. Fonctionnement 2. Configuration 3. Commandes 4. Créer une table en jeu 5. Correspondance des recettes 6. Créer une recette en jeu 7. Toutes les clés de config 8. Recettes pour l'établi vanilla 9. Conseils & pièges

1. Fonctionnement

2. Configuration

Emplacement du fichier : plugins/CustomiZer/custom_crafting_tables.yml

custom_crafting_tables:
  enabled: true
  storage:
    type: sqlite
    sqlite:
      file: custom_crafting_recipes.db
  tables:
    basic_workbench:
      enabled: true
      display_name: "&aEtabli Basique"
      assigned_block: "mypack:workbench_block"      # bloc de pack qui ouvre cette table au clic droit
      assigned_furniture: "mypack:workbench_item"  # OU un meuble placé qui ouvre cette table au clic droit
      permission:
        required: false
        node: "customizer.craftingtable.basic_workbench"
      gui:
        title: "&8⚒ Etabli Basique"
        rows: 5
        input_slots: [10, 11, 12, 19, 20, 21, 28, 29, 30]   # grille 3×3
        output_slots: [24]
      behavior:
        return_items_on_close: true
        consume_inputs: true
        allow_partial_outputs: false

3. Commandes

Gestion des tables

CommandePermissionDescription
/zcraft newtablecxp.craft.adminOuvrir l'assistant de création de table en jeu — configurer la mise en page, les déclencheurs et sauvegarder sans toucher aucun fichier.
/zcraft deletetable <tableId>cxp.craft.adminSupprimer une définition de table de custom_crafting_tables.yml et recharger à chaud. Les recettes sauvegardées pour cette table sont conservées dans la base de données.
/zcraft tablescxp.craft.adminLister toutes les définitions de tables chargées avec leur nombre de rangées, d'emplacements et le bloc assigné.
/zcraft reloadcxp.craft.adminRecharger les définitions de tables et les recettes depuis le disque/la base de données sans redémarrer.

Gestion des recettes

CommandePermissionDescription
/zcraft open [tableId]cxp.craftOuvrir directement l'interface d'une table d'artisanat par nom (sans bloc physique). Ouvre la table par défaut si non précisé.
/zcraft create <tableId> <nom>cxp.craft.adminOuvrir le concepteur de recettes pour une recette nouvelle ou existante sur la table donnée.
/zcraft edit <tableId> <nom>cxp.craft.adminAlias de /zcraft create.
/zcraft delete <tableId> <nom>cxp.craft.adminSupprimer une recette sauvegardée par identifiant de table et nom de recette.
/zcraft list [tableId]cxp.craftLister toutes les recettes sauvegardées, optionnellement filtrées par table.
/zcraft browse [tableId]cxp.craft.adminOuvrir le navigateur de recettes en interface graphique, optionnellement filtré sur une table.
/zcraft debug <tableId> <nom>cxp.craft.adminAfficher les détails d'une recette dans le chat (grille, sorties, mode, permission).

4. Créer une table en jeu

Vous n'avez jamais besoin de modifier custom_crafting_tables.yml à la main — l'assistant gère tout.

  1. 1Lancez /zcraft newtable pour ouvrir l'interface de configuration.
  2. 2ID de la table — cliquez sur la Bibliothèque, tapez un ID unique dans le chat (ex. forge_table). Lettres, chiffres et tirets bas uniquement.
  3. 3Titre de l'interface — cliquez sur le Cartouche, tapez le titre que les joueurs verront (supporte les codes couleur &6).
  4. 4Rangées — cliquez sur l'une des vitres 1–6 pour définir la hauteur de l'interface.
  5. 5Déclencheur — cliquez optionnellement sur le Bloc de notes pour définir un assigned_block (pack:id) et/ou sur le Cadre d'affichage pour définir un assigned_furniture (pack:id). Les joueurs font un clic droit sur ce bloc/meuble dans le monde pour ouvrir la table.
  6. 6Cliquez sur Concevoir la mise en page → (Tableau). Dans le peintre d'emplacements, cliquez sur chaque case pour cycler : ■ ENTRÉE■ SORTIE → vide. Cliquez sur ✓ Terminer quand c'est fini.
  7. 7De retour dans le menu de configuration, cliquez sur ✓ Sauvegarder (Émeraude) — la table est écrite dans custom_crafting_tables.yml et chargée immédiatement. Aucun redémarrage nécessaire.
  8. 8Ajoutez des recettes avec /zcraft create <tableId> <nomRecette>.
Tapez cancel dans le chat à n'importe quelle invite pour revenir au menu de configuration sans rien changer.
Étape 1 — /zcraft newtable ouvre ce menu de configuration
📚ID table
🏷️Titre
🎵Bloc
🖼️Meuble
1rangée
2rangées
3rangées
4rangées ✓
5rangées
6rangées
🎨Mise en page →
💎Sauvegarder ✓
Sélectionné / prêt Non sélectionné
Étape 6 — cliquer sur 🎨 Mise en page ouvre le peintre d'emplacements (exemple : 3×3 entrées + 1 sortie)
ENTRÉE
ENTRÉE
ENTRÉE
SORTIE
ENTRÉE
ENTRÉE
ENTRÉE
ENTRÉE
ENTRÉE
ENTRÉE
Retour
Terminer
Vide (1 clic) ENTRÉE — bleu (2 clics) SORTIE — rouge (3 clics)
Pour supprimer une table : /zcraft deletetable <tableId>. Cela supprime la définition mais conserve les recettes dans la base de données — utile si vous souhaitez recréer la table plus tard avec le même ID.

5. Correspondance des recettes

Recettes avec forme

Les objets doivent correspondre à la disposition enregistrée. La disposition peut être placée n'importe où dans la grille d'entrée — le plugin fait glisser le motif sur les emplacements disponibles (correspondance par décalage), donc une recette 2×2 fonctionne dans n'importe quel coin d'une grille 3×3.

Recettes sans forme

L'ordre n'a pas d'importance — seul l'ensemble d'objets compte. Utile pour combiner des ingrédients sans arrangement fixe.

Ordre de résolution de l'identité des objets

  1. Clé PDC du pack personnalisé (customizer:item_key) — le plus spécifique
  2. Valeur entière CustomModelData
  3. Nom d'affichage (correspondance exacte)
  4. Matériau Bukkit vanilla — le moins spécifique
Cet ordre de résolution signifie que deux objets personnalisés avec le même matériau vanilla mais des identifiants de pack différents sont toujours traités comme distincts dans les recettes.

6. Créer une recette en jeu

  1. 1Lancez /zcraft create <tableId> <nomRecette> pour ouvrir le concepteur de recettes pour cette table.
  2. 2Placez les ingrédients dans les emplacements d'entrée bleus dans l'arrangement souhaité.
  3. 3Placez l'objet résultat dans l'emplacement de sortie rouge.
  4. 4Optionnellement, basculez le mode Avec forme / Sans forme et définissez un nœud de permission via les boutons de contrôle dans la dernière rangée.
  5. 5Fermez l'interface — la recette est sauvegardée automatiquement et active immédiatement.
Concepteur de recettes — /zcraft create basic_workbench ma_recette (table 5 rangées)
🌾entrée
🌾entrée
entrée
🌾entrée
🌾entrée
entrée
⚔️sortie
entrée
entrée
entrée
🔀Avec forme
🔑Perm
💾Sauver
Emplacement d'entrée — placez vos ingrédients Emplacement de sortie — placez le résultat Verrouillé — hors de la mise en page de cette table

7. Toutes les clés de configuration

CléRequisDéfautDescription
enabledNontrueActiver ou désactiver l'ensemble du module ou une table spécifique.
storage.typeNonsqlitesqlite ou mongodb.
storage.sqlite.fileNoncustom_crafting_recipes.dbFichier de base de données SQLite (relatif au dossier du plugin).
assigned_blockNon*Clé de bloc de pack (pack:id) qui ouvre cette table au clic droit. Au moins un des deux (assigned_block ou assigned_furniture) doit être défini.
assigned_furnitureNon*Clé de meuble de pack (pack:id) qui ouvre cette table au clic droit sur un meuble placé. Peut être utilisé à la place ou en complément de assigned_block.
display_nameOuiNom de cette table d'artisanat (codes de couleur legacy supportés).
permission.requiredNonfalseSi le nœud de permission est requis pour utiliser cette table.
permission.nodeNonChaîne de nœud de permission vérifiée quand required: true.
gui.titleOuiTitre de l'inventaire (codes de couleur legacy).
gui.rowsOuiNombre de rangées dans l'interface (1–6).
gui.input_slotsOuiListe des indices d'emplacements servant d'entrées.
gui.output_slotsOuiListe des indices d'emplacements servant de sorties (généralement un seul).
behavior.return_items_on_closeNontrueRetourner les objets d'entrée dans l'inventaire du joueur quand il ferme l'interface sans fabriquer.
behavior.consume_inputsNontrueSi les objets d'entrée sont retirés des emplacements lors d'une fabrication réussie.
behavior.allow_partial_outputsNonfalseSi false, la fabrication est bloquée si l'inventaire du joueur est complètement plein.

8. Ajouter des recettes à l'établi vanilla

La table vanilla est une table réservée spéciale qui s'accroche au vrai établi Minecraft — celui que les joueurs ouvrent en faisant un clic droit sur n'importe quel établi normal dans le monde.

Les recettes sauvegardées dans la table vanilla fonctionnent dans tous les établis vanilla du serveur. Aucun bloc personnalisé, aucun meuble, aucune configuration nécessaire pour les joueurs.
  1. 1Lancez /zcraft create vanilla <nomRecette> — ex. /zcraft create vanilla epee_magique.
  2. 2Le concepteur s'ouvre avec une grille 3×3, correspondant exactement à l'établi vanilla. Placez vos ingrédients et la sortie normalement.
  3. 3Fermez l'interface — la recette est sauvegardée immédiatement et fonctionne dans tous les établis vanilla du serveur.
Concepteur vanilla — /zcraft create vanilla epee_magique (grille 3×3 de l'établi normal)
💎entrée
💎entrée
💎entrée
⚔️sortie
🪵entrée
entrée
entrée
entrée
entrée
entrée
💾Sauver
Emplacement d'entrée — placez les ingrédients Emplacement de sortie — placez le résultat La recette fonctionne dans tous les établis vanilla du serveur
Toutes les recettes vanilla Minecraft existantes (bâtons, outils, etc.) ne sont pas touchées. CustomiZer n'intercepte l'emplacement que quand l'une de vos recettes personnalisées correspond — sinon Bukkit gère l'artisanat normalement.

9. Conseils & pièges