diff options
-rw-r--r-- | src/server/game/Handlers/LootHandler.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp index 3f32460f93b..0e975838e32 100644 --- a/src/server/game/Handlers/LootHandler.cpp +++ b/src/server/game/Handlers/LootHandler.cpp @@ -142,6 +142,7 @@ void WorldSession::HandleAutostoreLootItemOpcode(WorldPackets::Loot::LootItem& p void WorldSession::HandleLootMoneyOpcode(WorldPackets::Loot::LootMoney& /*packet*/) { Player* player = GetPlayer(); + std::vector<Loot*> forceLootRelease; for (std::pair<ObjectGuid const, Loot*> const& lootView : player->GetAELootView()) { Loot* loot = lootView.second; @@ -205,8 +206,11 @@ void WorldSession::HandleLootMoneyOpcode(WorldPackets::Loot::LootMoney& /*packet // Delete container if empty if (loot->isLooted() && guid.IsItem()) - player->GetSession()->DoLootRelease(loot); + forceLootRelease.push_back(loot); } + + for (Loot* loot : forceLootRelease) + player->GetSession()->DoLootRelease(loot); } void WorldSession::HandleLootOpcode(WorldPackets::Loot::LootUnit& packet) |