Files
foundryvtt-wh4-lang-fr-fr/modules/inn/inn-init.js

94 lines
3.7 KiB
JavaScript

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.");
}
});
});
}