import InnRoller from './InnRoller.js'; /** * Initialisation du module Inn (Auberge) */ export function initInn() { console.log("Inn: Initialisation du module d'auberge"); // Hook pour initialiser au démarrage Hooks.once('ready', async () => { console.log("Inn: Module d'auberge prêt"); // Exposer la classe globalement game.wfrp4e = game.wfrp4e || {}; game.wfrp4e.inn = InnRoller; console.log("Inn: Classe accessible via game.wfrp4e.inn"); // Enregistrer la commande dans le système WFRP4e si disponible if (game.wfrp4e?.commands) { console.log("Inn: Enregistrement de la commande /auberge"); game.wfrp4e.commands.add({ auberge: { description: "Jets sur les tables d'auberge (FR)", args: ["table"], defaultArg: "table", callback: (table) => { // Vérifier que l'utilisateur est GM if (!game.user.isGM) { ui.notifications.warn("La commande /auberge est réservée au MJ."); return; } console.log(`Inn: Commande /auberge exécutée avec table="${table}"`); // Convertir null en undefined table = table || undefined; // Si pas de table spécifiée, afficher l'aide if (!table) { InnRoller.displayHelp(); } else if (table === 'help' || table === 'aide') { InnRoller.displayHelp(); } else if (table === 'list' || table === 'liste') { InnRoller.listTables(); } else if (table === 'menu') { InnRoller.displayMenuChoice(); } else { InnRoller.rollInnTable(table); } } } }); console.log("Inn: Commande /auberge enregistrée avec succès"); } else { console.warn("Inn: game.wfrp4e.commands non disponible"); } }); // Hook pour gérer les clics sur les liens de tables d'auberge Hooks.on('renderChatMessage', (message, html, data) => { // Ajouter un listener pour les clics sur les liens d'auberge html.find('a[data-action="clickAuberge"]').click((event) => { event.preventDefault(); const tableKey = $(event.currentTarget).data('table'); console.log(`Inn: Clic sur la table ${tableKey}`); if (game.user.isGM) { InnRoller.rollInnTable(tableKey); } else { ui.notifications.warn("Seul le MJ peut utiliser les tables d'auberge."); } }); // Ajouter un listener pour les clics sur les boutons de menu html.find('a[data-action="clickAubergeMenu"]').click((event) => { event.preventDefault(); const quality = $(event.currentTarget).data('quality'); console.log(`Inn: Clic sur menu de qualité "${quality}"`); if (game.user.isGM) { // Si quality === "menu", afficher le choix, sinon générer directement if (quality === 'menu') { InnRoller.displayMenuChoice(); } else { InnRoller.generateMenu(quality); } } else { ui.notifications.warn("Seul le MJ peut utiliser les tables d'auberge."); } }); }); }