Prevent attribute items from being embedded if there is already an attribute with the same key
This commit is contained in:
parent
f1499d1c3d
commit
6ccc10f897
3 changed files with 30 additions and 3 deletions
|
|
@ -59,9 +59,9 @@ export class PlayerData extends foundry.abstract.TypeDataModel {
|
|||
};
|
||||
// #endregion Lifecycle
|
||||
|
||||
// #region Getters
|
||||
// #region Methods
|
||||
get hasAttributes() {
|
||||
return Object.keys(this.attr).length > 0;
|
||||
};
|
||||
// #endregion Getters
|
||||
// #endregion Methods
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
export class AttributeItemData extends foundry.abstract.TypeDataModel {
|
||||
// #region Schema
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
|
@ -32,8 +33,33 @@ export class AttributeItemData extends foundry.abstract.TypeDataModel {
|
|||
}),
|
||||
};
|
||||
};
|
||||
// #endregion Schema
|
||||
|
||||
// #region Lifecycle
|
||||
async _preCreate(data, options, user) {
|
||||
|
||||
// Prevent duplicate Attribute keys from existing on a single Actor
|
||||
if (this.parent.isEmbedded) {
|
||||
const attr = this.parent.parent?.getAttribute(this.key);
|
||||
if (attr) {
|
||||
ui.notifications.error(
|
||||
`taf.notifs.error.duplicate-attribute-key`,
|
||||
{
|
||||
localize: true,
|
||||
format: { key: this.key },
|
||||
},
|
||||
);
|
||||
return false;
|
||||
};
|
||||
};
|
||||
|
||||
return super._preCreate(data, options, user);
|
||||
};
|
||||
// #endregion Lifecycle
|
||||
|
||||
// #region Methods
|
||||
get isRange() {
|
||||
return this.max !== null;
|
||||
};
|
||||
// #endregion Methods
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue