From ccb0073cefb7fb6efaac81f42a4b31b955723e1b Mon Sep 17 00:00:00 2001 From: Carlos Fernandez Date: Fri, 24 Apr 2026 14:49:42 -0400 Subject: [PATCH] Prevent class sheet and character errors when features/domains no longer exist (#1833) --- module/data/actor/character.mjs | 3 ++- module/data/actor/party.mjs | 2 +- module/data/fields/foreignDocumentUUIDArrayField.mjs | 1 + module/data/scene/scene.mjs | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index 32f44df6..6f60356e 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -391,8 +391,9 @@ export default class DhCharacter extends DhCreature { return this.domains.map(key => { const domain = allDomainData[key]; return { + id: key, ...domain, - label: game.i18n.localize(domain.label) + label: game.i18n.localize(domain?.label) ?? key }; }); } diff --git a/module/data/actor/party.mjs b/module/data/actor/party.mjs index 93596cda..5b9cccab 100644 --- a/module/data/actor/party.mjs +++ b/module/data/actor/party.mjs @@ -18,7 +18,7 @@ export default class DhParty extends BaseDataActor { const fields = foundry.data.fields; return { ...super.defineSchema(), - partyMembers: new ForeignDocumentUUIDArrayField({ type: 'Actor' }, { prune: true }), + partyMembers: new ForeignDocumentUUIDArrayField({ type: 'Actor' }), notes: new fields.HTMLField(), gold: new GoldField(), tagTeam: new fields.EmbeddedDataField(TagTeamData), diff --git a/module/data/fields/foreignDocumentUUIDArrayField.mjs b/module/data/fields/foreignDocumentUUIDArrayField.mjs index 456c0593..f8969d33 100644 --- a/module/data/fields/foreignDocumentUUIDArrayField.mjs +++ b/module/data/fields/foreignDocumentUUIDArrayField.mjs @@ -10,6 +10,7 @@ export default class ForeignDocumentUUIDArrayField extends foundry.data.fields.A */ constructor(fieldOption = {}, options = {}, context = {}) { super(new ForeignDocumentUUIDField(fieldOption), options, context); + this.options.prune ??= true; } /** @inheritdoc */ diff --git a/module/data/scene/scene.mjs b/module/data/scene/scene.mjs index f2a24308..50416573 100644 --- a/module/data/scene/scene.mjs +++ b/module/data/scene/scene.mjs @@ -19,7 +19,7 @@ export default class DHScene extends foundry.abstract.DataModel { close: new fields.NumberField({ integer: true, label: 'DAGGERHEART.CONFIG.Range.close.name' }), far: new fields.NumberField({ integer: true, label: 'DAGGERHEART.CONFIG.Range.far.name' }) }), - sceneEnvironments: new ForeignDocumentUUIDArrayField({ type: 'Actor', prune: true }) + sceneEnvironments: new ForeignDocumentUUIDArrayField({ type: 'Actor' }) }; } }