68 lines
2.7 KiB
JavaScript
68 lines
2.7 KiB
JavaScript
import TravelDistanceV2 from './TravelDistanceV2.js';
|
|
|
|
/**
|
|
* Initialisation du module TravelV2
|
|
*/
|
|
export function initTravelV2() {
|
|
console.log("TravelV2: Initialisation du module de voyage");
|
|
|
|
// Hook pour charger les données au démarrage
|
|
Hooks.once('ready', async () => {
|
|
console.log("TravelV2: Chargement des données de voyage");
|
|
|
|
// Exposer la classe globalement pour accès depuis la console
|
|
game.wfrp4e = game.wfrp4e || {};
|
|
game.wfrp4e.travelv2 = TravelDistanceV2;
|
|
|
|
await TravelDistanceV2.loadTravelData();
|
|
|
|
console.log("TravelV2: Classe accessible via game.wfrp4e.travelv2");
|
|
|
|
// Enregistrer la commande dans le système WFRP4e si disponible
|
|
if (game.wfrp4e?.commands) {
|
|
console.log("TravelV2: Enregistrement de la commande /voyage");
|
|
game.wfrp4e.commands.add({
|
|
voyage: {
|
|
description: "Outil de calcul de distances de voyage (FR)",
|
|
args: ["from", "to"],
|
|
defaultArg: "from",
|
|
callback: (from, to) => {
|
|
// Vérifier que l'utilisateur est GM
|
|
if (!game.user.isGM) {
|
|
ui.notifications.warn("La commande /voyage est réservée au MJ.");
|
|
return;
|
|
}
|
|
|
|
console.log(`TravelV2: Commande /voyage exécutée`);
|
|
console.log(`TravelV2: from =`, from, `(type: ${typeof from})`);
|
|
console.log(`TravelV2: to =`, to, `(type: ${typeof to})`);
|
|
console.log(`TravelV2: from === null ?`, from === null);
|
|
console.log(`TravelV2: to === null ?`, to === null);
|
|
|
|
// Convertir null en undefined pour que la logique fonctionne
|
|
from = from || undefined;
|
|
to = to || undefined;
|
|
|
|
TravelDistanceV2.displayTravelDistance(from, to);
|
|
}
|
|
}
|
|
});
|
|
console.log("TravelV2: Commande /voyage enregistrée avec succès");
|
|
} else {
|
|
console.warn("TravelV2: game.wfrp4e.commands non disponible");
|
|
}
|
|
});
|
|
|
|
// Hook pour ajouter un gestionnaire de clics sur les liens de voyage
|
|
Hooks.on('renderChatMessage', (message, html, data) => {
|
|
// Ajouter un listener pour les clics sur les liens de voyage
|
|
html.find('a[data-action="clickVoyage"]').click((event) => {
|
|
event.preventDefault();
|
|
const target = event.currentTarget;
|
|
TravelDistanceV2.handleTravelClick(event, target);
|
|
});
|
|
});
|
|
|
|
console.log("TravelV2: Module de voyage initialisé");
|
|
}
|