94 lines
3.7 KiB
JavaScript
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.");
|
|
}
|
|
});
|
|
});
|
|
}
|