From cffa1fe1722cf2f76ed43806ca8384a04afd117c Mon Sep 17 00:00:00 2001 From: hondacrx Date: Fri, 21 Apr 2023 18:28:14 -0400 Subject: [PATCH] Core/Loot: Fixed iterator invalidation crash in WorldSession::HandleLootMoneyOpcode Port From (https://github.com/TrinityCore/TrinityCore/commit/81cf682cfe0ba30931f9588f83e1e072325defce) --- Source/Game/Handlers/LootHandler.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/Game/Handlers/LootHandler.cs b/Source/Game/Handlers/LootHandler.cs index 876016522..c1f907bed 100644 --- a/Source/Game/Handlers/LootHandler.cs +++ b/Source/Game/Handlers/LootHandler.cs @@ -86,6 +86,7 @@ namespace Game void HandleLootMoney(LootMoney lootMoney) { Player player = GetPlayer(); + List forceLootRelease = new(); foreach (var lootView in player.GetAELootView()) { @@ -150,8 +151,11 @@ namespace Game // Delete container if empty if (loot.IsLooted() && guid.IsItem()) - player.GetSession().DoLootRelease(loot); + forceLootRelease.Add(loot); } + + foreach (Loot loot in forceLootRelease) + player.GetSession().DoLootRelease(loot); } class AELootCreatureCheck : ICheck