diff --git a/module/systemRegistration/migrations.mjs b/module/systemRegistration/migrations.mjs index da0dcb5d..134c8714 100644 --- a/module/systemRegistration/migrations.mjs +++ b/module/systemRegistration/migrations.mjs @@ -3,8 +3,13 @@ export async function runMigrations() { if (!lastMigrationVersion) lastMigrationVersion = '1.0.6'; if (foundry.utils.isNewerVersion('1.1.0', lastMigrationVersion)) { + const lockedPacks = []; const compendiumActors = []; for (let pack of game.packs) { + if (pack.locked) { + lockedPacks.push(pack.collection); + await pack.configure({ locked: false }); + } const documents = await pack.getDocuments(); compendiumActors.push(...documents.filter(x => x.type === 'character')); } @@ -32,13 +37,23 @@ export async function runMigrations() { actor.updateEmbeddedDocuments('Item', items); }); + for (let packId of lockedPacks) { + const pack = game.packs.get(packId); + await pack.configure({ locked: true }); + } + lastMigrationVersion = '1.1.0'; } if (foundry.utils.isNewerVersion('1.1.1', lastMigrationVersion)) { + const lockedPacks = []; const compendiumClasses = []; const compendiumActors = []; for (let pack of game.packs) { + if (pack.locked) { + lockedPacks.push(pack.collection); + await pack.configure({ locked: false }); + } const documents = await pack.getDocuments(); compendiumClasses.push(...documents.filter(x => x.type === 'class')); compendiumActors.push(...documents.filter(x => x.type === 'character')); @@ -46,7 +61,8 @@ export async function runMigrations() { [...compendiumActors, ...game.actors.filter(x => x.type === 'character')].forEach(char => { const multiclass = char.items.find(x => x.type === 'class' && x.system.isMulticlass); - const multiclassSubclass = multiclass.system.subclasses.length > 0 ? multiclass.system.subclasses[0] : null; + const multiclassSubclass = + multiclass?.system?.subclasses?.length > 0 ? multiclass.system.subclasses[0] : null; char.items.forEach(item => { if (item.type === 'feature' && item.system.identifier === 'multiclass') { const base = item.system.originItemType === 'class' ? multiclass : multiclassSubclass; @@ -72,6 +88,11 @@ export async function runMigrations() { } } + for (let packId of lockedPacks) { + const pack = game.packs.get(packId); + await pack.configure({ locked: true }); + } + lastMigrationVersion = '1.1.1'; }