From 13a7532ef82163fd60d009c517db9a7360f2beee Mon Sep 17 00:00:00 2001 From: Chris Miles Date: Fri, 24 May 2024 20:54:22 -0500 Subject: [PATCH] [Crash] Fix player event crash in ITEM_DESTROY (#4326) --- zone/client_packet.cpp | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 44b971745..36de9536c 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -5787,21 +5787,19 @@ void Client::Handle_OP_DeleteItem(const EQApplicationPacket *app) SetIntoxication(GetIntoxication()+IntoxicationIncrease); + if (player_event_logs.IsEventEnabled(PlayerEvent::ITEM_DESTROY) && inst->GetItem()) { + auto e = PlayerEvent::DestroyItemEvent{ + .item_id = inst->GetItem()->ID, + .item_name = inst->GetItem()->Name, + .charges = inst->GetCharges(), + .reason = "Client deleted", + }; + + RecordPlayerEventLog(PlayerEvent::ITEM_DESTROY, e); + } } + DeleteItemInInventory(alc->from_slot, 1); - - if (player_event_logs.IsEventEnabled(PlayerEvent::ITEM_DESTROY)) { - auto e = PlayerEvent::DestroyItemEvent{ - .item_id = inst->GetItem()->ID, - .item_name = inst->GetItem()->Name, - .charges = inst->GetCharges(), - .reason = "Client deleted", - }; - - RecordPlayerEventLog(PlayerEvent::ITEM_DESTROY, e); - } - - return; } void Client::Handle_OP_DeleteSpawn(const EQApplicationPacket *app)