From 8011c4eca274fe1c74a38984d79691581007b93f Mon Sep 17 00:00:00 2001 From: Nekohime <37454858+NekohimeMusou@users.noreply.github.com> Date: Tue, 16 Jul 2024 17:46:14 -0400 Subject: [PATCH 1/2] Move template.json languages field to common template --- template.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/template.json b/template.json index 0a4b2706..e73cf73a 100644 --- a/template.json +++ b/template.json @@ -52,6 +52,9 @@ "initiative": { "value": 0, "mod": 0 + }, + "languages": { + "value": [] } }, "spellcaster": { @@ -131,9 +134,6 @@ }, "encumbrance": { "max": 1600 - }, - "languages": { - "value": [] } }, "monster": { From 9eb43109f29340e320408a012288d3a4fc135af8 Mon Sep 17 00:00:00 2001 From: Nekohime <37454858+NekohimeMusou@users.noreply.github.com> Date: Tue, 16 Jul 2024 17:46:58 -0400 Subject: [PATCH 2/2] Migrate existing monsters --- src/module/actor/data-model-monster.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/module/actor/data-model-monster.js b/src/module/actor/data-model-monster.js index 44aa741a..3ebec04d 100644 --- a/src/module/actor/data-model-monster.js +++ b/src/module/actor/data-model-monster.js @@ -22,6 +22,30 @@ export default class OseDataModelMonster extends foundry.abstract.TypeDataModel ); } + /** + * @inheritdoc + */ + static migrateData(source) { + this.#migrateMonsterLanguages(source); + + return super.migrateData(source); + } + + /** + * Use an empty array for system.languages.value + * in order to suppress Polyglot errors. + * + * @param {OseDataModelMonster} source - Source data to migrate + */ + static #migrateMonsterLanguages(source) { + const languages = source.languages ?? {}; + + // If languages.value isn't an iterable, use an empty array + if (typeof languages?.value?.[Symbol.iterator] !== "function") { + languages.value = []; + } + } + // @todo define schema options; stuff like min/max values and so on. static defineSchema() { const { StringField, NumberField, BooleanField, ObjectField, SchemaField } =