diff --git a/Source/ACE.Server/WorldObjects/Player_Commerce.cs b/Source/ACE.Server/WorldObjects/Player_Commerce.cs index 2c2646d5b3..9b96787e2d 100644 --- a/Source/ACE.Server/WorldObjects/Player_Commerce.cs +++ b/Source/ACE.Server/WorldObjects/Player_Commerce.cs @@ -23,12 +23,14 @@ public void HandleActionBuyItem(uint vendorGuid, List items) { if (IsBusy) { + Session.Network.EnqueueSend(new GameEventInventoryServerSaveFailed(Session, Guid.Full)); SendUseDoneEvent(WeenieError.YoureTooBusy); return; } if (IsTrading) { + Session.Network.EnqueueSend(new GameEventInventoryServerSaveFailed(Session, Guid.Full)); SendUseDoneEvent(WeenieError.CantDoThatTradeInProgress); return; } @@ -37,12 +39,14 @@ public void HandleActionBuyItem(uint vendorGuid, List items) if (vendor == null) { + Session.Network.EnqueueSend(new GameEventInventoryServerSaveFailed(Session, Guid.Full)); SendUseDoneEvent(WeenieError.NoObject); return; } // if this succeeds, it automatically calls player.FinalizeBuyTransaction() - vendor.BuyItems_ValidateTransaction(items, this); + if (!vendor.BuyItems_ValidateTransaction(items, this)) + Session.Network.EnqueueSend(new GameEventInventoryServerSaveFailed(Session, Guid.Full)); SendUseDoneEvent(); } @@ -123,6 +127,7 @@ public void HandleActionSellItem(uint vendorGuid, List itemProfiles { if (IsBusy) { + Session.Network.EnqueueSend(new GameEventInventoryServerSaveFailed(Session, Guid.Full)); SendUseDoneEvent(WeenieError.YoureTooBusy); return; } @@ -131,6 +136,7 @@ public void HandleActionSellItem(uint vendorGuid, List itemProfiles if (vendor == null) { + Session.Network.EnqueueSend(new GameEventInventoryServerSaveFailed(Session, Guid.Full)); SendUseDoneEvent(WeenieError.NoObject); return; }