quickfix: crashlog - item::CheckSoulboundTradeExpired

quickfix: crashlog - item::CheckSoulboundTradeExpired
This commit is contained in:
bashermens
2025-12-24 23:48:23 +01:00
committed by GitHub

View File

@@ -1277,10 +1277,15 @@ void Item::ClearSoulboundTradeable(Player* currentOwner)
bool Item::CheckSoulboundTradeExpire() bool Item::CheckSoulboundTradeExpire()
{ {
// called from owner's update - GetOwner() MUST be valid // we have to check the owner for mod_playerbots since bots programically call methods like DestroyItem,
if (GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME) + 2 * HOUR < GetOwner()->GetTotalPlayedTime()) // MoveItemToMail, DestroyItemCount which do not handle soulboundTradeable clearing.
Player* owner = GetOwner();
if (!owner)
return true; // remove from tradeable list
if (GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME) + 2 * HOUR < owner->GetTotalPlayedTime())
{ {
ClearSoulboundTradeable(GetOwner()); ClearSoulboundTradeable(owner);
return true; // remove from tradeable list return true; // remove from tradeable list
} }