From 74ee70d73afb41ef45c100e44f9e96feac8bc1eb Mon Sep 17 00:00:00 2001 From: Vlyan Date: Fri, 25 Dec 2020 21:50:11 +0100 Subject: [PATCH] Fix for babele and props --- system/scripts/actors/base-sheet.js | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/system/scripts/actors/base-sheet.js b/system/scripts/actors/base-sheet.js index ffe60ae..f0bb4ba 100644 --- a/system/scripts/actors/base-sheet.js +++ b/system/scripts/actors/base-sheet.js @@ -38,7 +38,7 @@ export class BaseSheetL5r5e extends ActorSheet { /** * Handle dropped data on the Actor sheet */ - _onDrop(event) { + async _onDrop(event) { // Check item type and subtype const item = game.l5r5e.HelpersL5r5e.getDragnDropTargetObject(event); if ( @@ -70,8 +70,30 @@ export class BaseSheetL5r5e extends ActorSheet { // TODO dropped a item with same id as one owned, add qte instead - // Ok add item - return super._onDrop(event); + // Babele and properties specific + if (item.data.data.properties && typeof Babele !== "undefined") { + item.data.data.properties = await Promise.all( + item.data.data.properties.map(async (prop) => { + let gameProp = game.items.get(prop.id); + if (gameProp) { + // Live item + return { id: gameProp.id, name: gameProp.name }; + } else { + // Pack item + gameProp = await game.packs.get(CONFIG.l5r5e.packsIds.properties.core).getEntry(prop.id); + if (gameProp) { + return { id: gameProp._id, name: gameProp.name }; + } + } + return prop; + }) + ); + } + + // Ok add item - Foundry override cause props + const allowed = Hooks.call("dropActorSheetData", this.actor, this, item); + if (allowed === false) return; + return this._onDropItem(event, item); } /**