From 8e2f6f0f116cf18db70d2e776ce3d8bd8d6d7c53 Mon Sep 17 00:00:00 2001 From: roth-michael <72220390+roth-michael@users.noreply.github.com> Date: Tue, 4 Feb 2025 13:28:45 -0500 Subject: [PATCH] [#4802] Add "display chat card" button to inventory item context menu (#5021) --- lang/en.json | 1 + module/applications/components/inventory.mjs | 5 +++++ module/documents/chat-message.mjs | 13 ++++--------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/lang/en.json b/lang/en.json index c3a73e2d7f..db1b535321 100644 --- a/lang/en.json +++ b/lang/en.json @@ -1740,6 +1740,7 @@ "DND5E.Disadvantage": "Disadvantage", "DND5E.Discord": "Discord", "DND5E.Disclaimer": "Disclaimer", +"DND5E.DisplayCard": "Display in Chat", "DND5E.DistAny": "Any", "DND5E.DistFt": "Feet", "DND5E.DistFtAbbr": "ft", diff --git a/module/applications/components/inventory.mjs b/module/applications/components/inventory.mjs index f6e913d0ef..d9dfe0dcef 100644 --- a/module/applications/components/inventory.mjs +++ b/module/applications/components/inventory.mjs @@ -212,6 +212,11 @@ export default class InventoryElement extends HTMLElement { condition: () => item.canDelete && item.isOwner && !item.compendium?.locked, callback: li => this._onAction(li[0], "delete") }, + { + name: "DND5E.DisplayCard", + icon: '', + callback: () => item.displayCard() + }, { name: "DND5E.Scroll.CreateScroll", icon: '', diff --git a/module/documents/chat-message.mjs b/module/documents/chat-message.mjs index 8a69adb791..795d57ac2c 100644 --- a/module/documents/chat-message.mjs +++ b/module/documents/chat-message.mjs @@ -669,16 +669,11 @@ export default class ChatMessage5e extends ChatMessage { * @protected */ _enrichUsageEffects(html) { + if ( this.getFlag("dnd5e", "messageType") !== "usage" ) return; const item = this.getAssociatedItem(); - let effects; - if ( this.getFlag("dnd5e", "messageType") === "usage" ) { - effects = this.getFlag("dnd5e", "use.effects")?.map(id => item?.effects.get(id)); - } else { - if ( this.getFlag("dnd5e", "roll.type") ) return; - effects = item?.effects.filter(e => (e.type !== "enchantment") - && !item.getFlag("dnd5e", "riders.effect")?.includes(e.id)); - } - effects = effects?.filter(e => e && (game.user.isGM || (e.transfer && (this.author.id === game.user.id)))); + const effects = this.getFlag("dnd5e", "use.effects") + ?.map(id => item?.effects.get(id)) + .filter(e => e && (game.user.isGM || (e.transfer && (this.author.id === game.user.id)))); if ( !effects?.length ) return; const effectApplication = document.createElement("effect-application");