Skip to content

Commit

Permalink
[#4802] Add "display chat card" button to inventory item context menu (
Browse files Browse the repository at this point in the history
  • Loading branch information
roth-michael authored Feb 4, 2025
1 parent 46c8287 commit 8e2f6f0
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 9 deletions.
1 change: 1 addition & 0 deletions lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
5 changes: 5 additions & 0 deletions module/applications/components/inventory.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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: '<i class="fas fa-message"></i>',
callback: () => item.displayCard()
},
{
name: "DND5E.Scroll.CreateScroll",
icon: '<i class="fa-solid fa-scroll"></i>',
Expand Down
13 changes: 4 additions & 9 deletions module/documents/chat-message.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down

0 comments on commit 8e2f6f0

Please sign in to comment.