fix: migration auto des items de types obsolètes au démarrage
- Hook 'ready' (GM uniquement) supprime les items dont le type n'est plus enregistré (ex: 'attribute' de l'ancienne version) - Évite l'erreur 'type X is not a valid type for Item Document class' Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -126,8 +126,35 @@ Hooks.once("ready", () => {
|
|||||||
if (game.socket) {
|
if (game.socket) {
|
||||||
game.socket.on(`system.${SYSTEM_ID}`, _onSocketMessage)
|
game.socket.on(`system.${SYSTEM_ID}`, _onSocketMessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Migration : supprime les items de types obsolètes (ex: "attribute")
|
||||||
|
if (game.user.isGM) {
|
||||||
|
_migrateObsoleteItems()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
/** Supprime les items dont le type n'est plus reconnu par le système. */
|
||||||
|
async function _migrateObsoleteItems() {
|
||||||
|
const validTypes = new Set(["anomaly", "aspect", "equipment", "weapon", "armure"])
|
||||||
|
for (const actor of game.actors) {
|
||||||
|
const toDelete = actor.items
|
||||||
|
.filter(i => !validTypes.has(i.type))
|
||||||
|
.map(i => i.id)
|
||||||
|
if (toDelete.length) {
|
||||||
|
console.warn(`${SYSTEM_ID} | Migration: suppression de ${toDelete.length} item(s) obsolète(s) sur ${actor.name}`, toDelete)
|
||||||
|
await actor.deleteEmbeddedDocuments("Item", toDelete)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Items globaux (hors acteur)
|
||||||
|
const globalToDelete = game.items
|
||||||
|
.filter(i => !validTypes.has(i.type))
|
||||||
|
.map(i => i.id)
|
||||||
|
if (globalToDelete.length) {
|
||||||
|
console.warn(`${SYSTEM_ID} | Migration: suppression de ${globalToDelete.length} item(s) global(aux) obsolète(s)`, globalToDelete)
|
||||||
|
await Item.deleteDocuments(globalToDelete)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ─── Handlebars helpers ─────────────────────────────────────────────────── */
|
/* ─── Handlebars helpers ─────────────────────────────────────────────────── */
|
||||||
|
|
||||||
function _registerHandlebarsHelpers() {
|
function _registerHandlebarsHelpers() {
|
||||||
|
|||||||
Reference in New Issue
Block a user