From 650043f06afe9a55c150c2d81e45bfe4b80193b0 Mon Sep 17 00:00:00 2001 From: WBHarry Date: Thu, 15 Jan 2026 23:23:56 +0100 Subject: [PATCH] Fixed action deletion unregistration --- module/data/item/base.mjs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/module/data/item/base.mjs b/module/data/item/base.mjs index 65617830..0c9fdabe 100644 --- a/module/data/item/base.mjs +++ b/module/data/item/base.mjs @@ -227,6 +227,28 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel { const armorData = getScrollTextData(this.parent.parent.system.resources, changed.system.marks, 'armor'); options.scrollingTextData = [armorData]; } + + if (changed.system?.actions) { + const triggersToRemove = Object.keys(changed.system.actions).reduce((acc, key) => { + if (!changed.system.actions[key]) { + const strippedKey = key.replace('-=', ''); + acc.push(...this.actions.get(strippedKey).triggers.map(x => x.trigger)); + } + + return acc; + }, []); + + game.system.registeredTriggers.unregisterTriggers(triggersToRemove, this.parent.uuid); + + if (!(this.parent.parent.token instanceof game.system.api.documents.DhToken)) { + for (const token of this.parent.parent.getActiveTokens()) { + game.system.registeredTriggers.unregisterTriggers( + triggersToRemove, + `${token.document.uuid}.${this.parent.uuid}` + ); + } + } + } } _onUpdate(changed, options, userId) {