/** * Macro d'import des factions depuis factions.json * Crée un dossier "Factions" et y importe toutes les factions */ async function importFactions() { // Charger le fichier JSON const response = await fetch('systems/fvtt-hamalron/assets/data/factions.json'); const factionsData = await response.json(); ui.notifications.info("Début de l'import des factions..."); // Créer ou récupérer le dossier pour les factions let factionsFolder = game.folders.find(f => f.name === "Factions" && f.type === "Item"); if (!factionsFolder) { factionsFolder = await Folder.create({ name: "Factions", type: "Item", color: "#8b0000", sorting: "a" }); console.log("Dossier 'Factions' créé"); } else { console.log("Dossier 'Factions' existant trouvé"); } // Compteurs pour le résumé let importCount = 0; let updateCount = 0; let errorCount = 0; ui.notifications.info(`Début de l'import de ${factionsData.length} factions...`); // Parcourir toutes les factions for (const factionJson of factionsData) { try { // Préparer les données de la faction selon le modèle const itemData = { name: factionJson.nom, type: 'faction', system: { description: factionJson.description } }; // Vérifier si la faction existe déjà const existing = game.items.find(i => i.name === factionJson.nom && i.type === 'faction'); if (existing) { // Mettre à jour la faction existante await existing.update(itemData); updateCount++; console.log(`Faction mise à jour: ${factionJson.nom}`); } else { // Créer une nouvelle faction dans le dossier await Item.create({ ...itemData, folder: factionsFolder.id }); importCount++; console.log(`✓ Créé: ${factionJson.nom}`); } } catch (error) { errorCount++; console.error(`Erreur lors de l'import de ${factionJson.nom}:`, error); } } // Afficher le résumé const message = `

Import des factions terminé

Factions créées: ${importCount}

Factions mises à jour: ${updateCount}

Erreurs: ${errorCount}

`; ChatMessage.create({ user: game.user.id, content: message }); ui.notifications.info(`Import terminé: ${importCount} créées, ${updateCount} mises à jour, ${errorCount} erreurs.`); console.log('=== Résumé de l\'import ==='); console.log(`Factions créées: ${importCount}`); console.log(`Factions mises à jour: ${updateCount}`); console.log(`Erreurs: ${errorCount}`); } // Exécuter l'import importFactions();