diff --git a/daggerheart.mjs b/daggerheart.mjs index 3a68bf78..6aeb4b47 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -193,11 +193,12 @@ Hooks.on('ready', async () => { Hooks.once('dicesoniceready', () => {}); -Hooks.on('renderChatMessageHTML', (_, element, message) => { +Hooks.on('renderChatMessageHTML', (app, element, _) => { enricherRenderSetup(element); - // Despite documentation, message may be empty. For example, a module's chat message. - if (!message) return; - const cssClass = message.message.flags?.daggerheart?.cssClass; + // Despite documentation, the third parameter may be empty as per + // https://github.com/foundryvtt/foundryvtt/issues/11984 + const message = app._source; + const cssClass = message.flags?.daggerheart?.cssClass; if (cssClass) cssClass.split(' ').forEach(cls => element.classList.add(cls)); }); diff --git a/module/applications/ui/chatLog.mjs b/module/applications/ui/chatLog.mjs index 449cf1d1..0143257f 100644 --- a/module/applications/ui/chatLog.mjs +++ b/module/applications/ui/chatLog.mjs @@ -55,32 +55,33 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo ]; } - addChatListeners = async (app, html, data) => { - html.querySelectorAll('.group-roll-header-expand-section').forEach(element => - element.addEventListener('click', this.groupRollExpandSection) - ); - // Despite documentation, data may be empty. For example, a module's chat message. - if (!data?.message) return; + addChatListeners = async (app, html, _) => { + // Despite documentation, the third parameter may be empty as per + // https://github.com/foundryvtt/foundryvtt/issues/11984 + const message = app._source; html.querySelectorAll('.simple-roll-button').forEach(element => - element.addEventListener('click', event => this.onRollSimple(event, data.message)) + element.addEventListener('click', event => this.onRollSimple(event, message)) ); html.querySelectorAll('.ability-use-button').forEach(element => - element.addEventListener('click', event => this.abilityUseButton(event, data.message)) + element.addEventListener('click', event => this.abilityUseButton(event, message)) ); html.querySelectorAll('.action-use-button').forEach(element => - element.addEventListener('click', event => this.actionUseButton(event, data.message)) + element.addEventListener('click', event => this.actionUseButton(event, message)) ); html.querySelectorAll('.reroll-button').forEach(element => - element.addEventListener('click', event => this.rerollEvent(event, data.message)) + element.addEventListener('click', event => this.rerollEvent(event, message)) ); html.querySelectorAll('.group-roll-button').forEach(element => - element.addEventListener('click', event => this.groupRollButton(event, data.message)) + element.addEventListener('click', event => this.groupRollButton(event, message)) ); html.querySelectorAll('.group-roll-reroll').forEach(element => - element.addEventListener('click', event => this.groupRollReroll(event, data.message)) + element.addEventListener('click', event => this.groupRollReroll(event, message)) ); html.querySelectorAll('.group-roll-success').forEach(element => - element.addEventListener('click', event => this.groupRollSuccessEvent(event, data.message)) + element.addEventListener('click', event => this.groupRollSuccessEvent(event, message)) + ); + html.querySelectorAll('.group-roll-header-expand-section').forEach(element => + element.addEventListener('click', this.groupRollExpandSection) ); };