feat: use new ActiveEffect transferral system

Closes #68
This commit is contained in:
Johannes Loher 2023-06-25 23:55:08 +02:00
parent 032b006dd5
commit 62065a8d31
No known key found for this signature in database
GPG key ID: 7CB0A9FB553DA045
1793 changed files with 64779 additions and 67933 deletions

40
src/migration/009.js Normal file
View file

@ -0,0 +1,40 @@
// SPDX-FileCopyrightText: 2023 Johannes Loher
//
// SPDX-License-Identifier: MIT
import {
getSceneMigrator,
migrateCollection,
migrateCompendiums,
getCompendiumMigrator,
getActorMigrator,
} from "./migrationHelpers.js";
/** @type {import("./migration.js").Migration["migrate"]} */
async function migrate() {
await migrateCollection(game.actors, migrateActor);
await migrateCollection(game.scenes, migrateScene);
await migrateCompendiums(migrateCompendium);
}
const itemIdRegex = /Item\.([a-zA-Z0-9]+)/;
/** @type {import('./migrationHelpers.js').Migrator<ActiveEffect>} */
async function migrateActiveEffect(activeEffect) {
if (activeEffect.parent instanceof Actor) {
const itemId = activeEffect.origin?.match(itemIdRegex)?.[1];
if (activeEffect.parent.items.has(itemId)) {
await activeEffect.delete();
}
}
}
const migrateActor = getActorMigrator(undefined, migrateActiveEffect);
const migrateScene = getSceneMigrator(migrateActor);
const migrateCompendium = getCompendiumMigrator({ migrateActor, migrateScene });
/** @type {import("./migration.js").Migration} */
export const migration = {
migrate,
migrateCompendium,
};

View file

@ -13,6 +13,7 @@ import { migration as migration005 } from "./005.js";
import { migration as migration006 } from "./006.js";
import { migration as migration007 } from "./007.js";
import { migration as migration008 } from "./008.js";
import { migration as migration009 } from "./009.js";
/**
* Perform migrations.
@ -176,6 +177,7 @@ const migrations = [
migration006,
migration007,
migration008,
migration009,
];
/**