diff --git a/module/actor/base-actor.js b/module/actor/base-actor.js index fde04a4f..1a19bede 100644 --- a/module/actor/base-actor.js +++ b/module/actor/base-actor.js @@ -244,12 +244,16 @@ export class RdDBaseActor extends Actor { }); return; } - console.log('achatVente', achat); const cout = Number(achat.prixTotal ?? 0); const vendeur = achat.vendeurId ? game.actors.get(achat.vendeurId) : undefined; const acheteur = achat.acheteurId ? game.actors.get(achat.acheteurId) : undefined; const quantite = (achat.choix.nombreLots ?? 1) * (achat.vente.tailleLot); - const itemVendu = vendeur?.getItem(achat.vente.item._id); + const itemVendu = vendeur?.getItem(achat.vente.item._id) ?? game.items.get(achat.vente.item._id) ?? achat.vente.item; + if (!itemVendu) { + ui.notifications.warn("Erreur sur achat: rien à acheter
Si possible, transmettez les logs de la console aux développeurs"); + console.log('Erreur sur achat: rien à acheter', achat); + return; + } if (!this.verifierQuantite(vendeur, itemVendu, quantite)) { ChatUtility.notifyUser(achat.userId, 'warn', `Le vendeur n'a pas assez de ${itemVendu.name} !`); return diff --git a/module/dialog-item-achat.js b/module/dialog-item-achat.js index e43ea5d8..25e591c0 100644 --- a/module/dialog-item-achat.js +++ b/module/dialog-item-achat.js @@ -18,7 +18,7 @@ export class DialogItemAchat extends Dialog { } return { - item: (json ? JSON.parse(json) : undefined), + item: JSON.parse(json), vendeur, acheteur, nbLots: parseInt(chatButton.attributes['data-quantiteNbLots']?.value), @@ -34,7 +34,6 @@ export class DialogItemAchat extends Dialog { const venteData = { item, actingUserId: game.user.id, - vendeurId: vendeur?.id, vendeur, acheteur, tailleLot,