From 1e57242b2bc295475662b1c83bfe182f11cc49fc Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Tue, 31 Mar 2026 13:38:19 +0200 Subject: [PATCH] feat: import automatique des anomalies au premier lancement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Réglage monde 'anomaliesImported' (caché) pour import unique - _setupAnomaliesFolder() : crée dossier 'Anomalies' (Items) + importAll - Appelé dans le hook ready, GM uniquement, une seule fois Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- fvtt-celestopol.mjs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/fvtt-celestopol.mjs b/fvtt-celestopol.mjs index 7d4f68d..c4f76a6 100644 --- a/fvtt-celestopol.mjs +++ b/fvtt-celestopol.mjs @@ -145,6 +145,7 @@ Hooks.once("ready", () => { if (game.user.isGM) { _migrateObsoleteItems() _migrateIntegerTracks() + _setupAnomaliesFolder() } }) @@ -294,6 +295,13 @@ function _registerSettings() { type: Boolean, default: false, }) + // Suivi de l'import des anomalies (caché) + game.settings.register(SYSTEM_ID, "anomaliesImported", { + scope: "world", + config: false, + type: Boolean, + default: false, + }) } /* ─── Template preload ───────────────────────────────────────────────────── */ @@ -334,6 +342,38 @@ function _onSocketMessage(data) { } } +/* ─── Import initial des anomalies du compendium dans le monde ─────────── */ + +/** + * Au premier lancement (GM uniquement), crée le dossier « Anomalies » dans + * les Items du monde et y importe tous les items du compendium anomalies. + */ +async function _setupAnomaliesFolder() { + if (game.settings.get(SYSTEM_ID, "anomaliesImported")) return + + const pack = game.packs.get(`${SYSTEM_ID}.anomalies`) + if (!pack) { + console.warn(`${SYSTEM_ID} | Compendium anomalies introuvable`) + return + } + + console.log(`${SYSTEM_ID} | Premier lancement : import des anomalies dans le monde`) + + // Créer le dossier « Anomalies » dans les Items + const folder = await Folder.create({ + name: "Anomalies", + type: "Item", + color: "#1b3828", + }) + + // Importer tous les items du compendium dans ce dossier + await pack.importAll({ folderId: folder.id, keepId: true }) + + await game.settings.set(SYSTEM_ID, "anomaliesImported", true) + console.log(`${SYSTEM_ID} | Anomalies importées avec succès dans le dossier "${folder.name}"`) + ui.notifications.info("Célestopol 1922 | Anomalies importées dans le dossier Items.") +} + /* ─── Nom par défaut des items à la création ─────────────────────────────── */ Hooks.on("preCreateItem", (item, data) => {