Ajout dialog employé

This commit is contained in:
2026-06-03 19:20:09 +02:00
parent 48660c9430
commit 6f3996d216
32 changed files with 1758 additions and 53 deletions
+53
View File
@@ -18,6 +18,7 @@ import { DonjonEtCieItem } from "./donjon-et-cie-item.mjs";
import * as models from "./models/index.mjs";
import * as sheets from "./applications/sheets/_module.mjs";
import { DonjonEtCieRollDialog } from "./applications/donjon-et-cie-roll-dialog.mjs";
import { DonjonEtCieEmployesDialog } from "./applications/donjon-et-cie-employes-dialog.mjs";
import { DonjonEtCieRolls } from "./donjon-et-cie-rolls.mjs";
import { DonjonEtCieMacros } from "./donjon-et-cie-macros.mjs";
@@ -233,10 +234,62 @@ Hooks.once("init", async () => {
}
});
// Gestion de la commande /employes
// Enregistrement officiel via ChatLogV2.CHAT_COMMANDS (comme mgt2-compendium-amiral-denisov)
function registerEmployesCommand() {
const ChatLogV2 = foundry.applications.sidebar.tabs.ChatLog;
if (ChatLogV2?.CHAT_COMMANDS) {
ChatLogV2.CHAT_COMMANDS.employes = {
rgx: /^\/employes(?:\s+(.*))?$/i,
fn: () => {
DonjonEtCieEmployesDialog.open();
return false;
},
};
console.log("DNC | Commande /employes enregistrée via ChatLog.CHAT_COMMANDS");
} else {
console.warn("DNC | ChatLog.CHAT_COMMANDS indisponible, utilisation des hooks de fallback");
}
}
Hooks.once("init", () => {
registerEmployesCommand();
});
Hooks.once("ready", () => {
DonjonEtCieMacros.registerSocketListeners();
document.addEventListener("click", onChatActionClick);
void maybeCreateWelcomeMessage();
// Hooks de fallback pour compatibilité
Hooks.on("preCreateChatMessage", (message, data, options, userId) => {
const content = data.content?.trim()?.toLowerCase();
if (content === "/employes" || content?.startsWith("/employes ")) {
DonjonEtCieEmployesDialog.open();
return false;
}
return true;
});
Hooks.on("chatMessage", (...args) => {
// Gestion compatibilité v13/v14
let message;
if (args[0]?.content !== undefined) {
message = args[0].content; // v14
} else if (typeof args[1] === "string") {
message = args[1]; // v13
} else {
return true;
}
const trimmed = message?.trim()?.toLowerCase();
if (trimmed === "/employes" || trimmed?.startsWith("/employes ")) {
DonjonEtCieEmployesDialog.open();
return false;
}
return true;
});
});
Hooks.on("renderActorDirectory", (app, element) => {