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 } = 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": {