Skip to content

Commit 9ee095b

Browse files
authored
[Fix] Add crash checks for certain PlayerEventLogs (#4761)
1 parent 7ab32af commit 9ee095b

File tree

6 files changed

+10
-10
lines changed

6 files changed

+10
-10
lines changed

zone/client_packet.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -16974,7 +16974,7 @@ void Client::Handle_OP_GuildTributeDonateItem(const EQApplicationPacket *app)
1697416974

1697516975
SendGuildTributeDonateItemReply(in, favor);
1697616976

16977-
if(player_event_logs.IsEventEnabled(PlayerEvent::GUILD_TRIBUTE_DONATE_ITEM)) {
16977+
if(inst && player_event_logs.IsEventEnabled(PlayerEvent::GUILD_TRIBUTE_DONATE_ITEM)) {
1697816978
auto e = PlayerEvent::GuildTributeDonateItem{ .item_id = inst->GetID(),
1697916979
.augment_1_id = inst->GetAugmentItemID(0),
1698016980
.augment_2_id = inst->GetAugmentItemID(1),

zone/corpse.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1569,7 +1569,7 @@ void Corpse::LootCorpseItem(Client *c, const EQApplicationPacket *app)
15691569
}
15701570
}
15711571

1572-
if (player_event_logs.IsEventEnabled(PlayerEvent::LOOT_ITEM) && !IsPlayerCorpse()) {
1572+
if (inst && player_event_logs.IsEventEnabled(PlayerEvent::LOOT_ITEM) && !IsPlayerCorpse()) {
15731573
auto e = PlayerEvent::LootItemEvent{
15741574
.item_id = inst->GetItem()->ID,
15751575
.item_name = inst->GetItem()->Name,

zone/gm_commands/parcels.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ void command_parcels(Client *c, const Seperator *sep)
197197
send_to_client.at(0).character_name.c_str()
198198
);
199199

200-
if (player_event_logs.IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
200+
if (inst && player_event_logs.IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
201201
PlayerEvent::ParcelSend e{};
202202
e.from_player_name = parcel_out.from_name;
203203
e.to_player_name = send_to_client.at(0).character_name;
@@ -281,7 +281,7 @@ void command_parcels(Client *c, const Seperator *sep)
281281
send_to_client.at(0).character_name.c_str()
282282
);
283283

284-
if (player_event_logs.IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
284+
if (inst && player_event_logs.IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
285285
PlayerEvent::ParcelSend e{};
286286
e.from_player_name = parcel_out.from_name;
287287
e.to_player_name = send_to_client.at(0).character_name;

zone/inventory.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@ void Client::DropItem(int16 slot_id, bool recurse)
763763

764764
int i = 0;
765765

766-
if (player_event_logs.IsEventEnabled(PlayerEvent::DROPPED_ITEM)) {
766+
if (inst && player_event_logs.IsEventEnabled(PlayerEvent::DROPPED_ITEM)) {
767767
auto e = PlayerEvent::DroppedItemEvent{
768768
.item_id = inst->GetID(),
769769
.augment_1_id = inst->GetAugmentItemID(0),
@@ -1655,7 +1655,7 @@ bool Client::SwapItem(MoveItem_Struct* move_in) {
16551655

16561656
DeleteItemInInventory(EQ::invslot::slotCursor, 0, true);
16571657

1658-
if (player_event_logs.IsEventEnabled(PlayerEvent::ITEM_DESTROY)) {
1658+
if (test_inst && player_event_logs.IsEventEnabled(PlayerEvent::ITEM_DESTROY)) {
16591659
auto e = PlayerEvent::DestroyItemEvent{
16601660
.item_id = test_inst->GetItem()->ID,
16611661
.item_name = test_inst->GetItem()->Name,

zone/trading.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -1465,7 +1465,7 @@ void Client::BuyTraderItem(TraderBuy_Struct *tbs, Client *Trader, const EQApplic
14651465

14661466
Trader->AddMoneyToPP(copper, silver, gold, platinum, true);
14671467

1468-
if (player_event_logs.IsEventEnabled(PlayerEvent::TRADER_PURCHASE)) {
1468+
if (buy_item && player_event_logs.IsEventEnabled(PlayerEvent::TRADER_PURCHASE)) {
14691469
auto e = PlayerEvent::TraderPurchaseEvent{
14701470
.item_id = buy_item->GetID(),
14711471
.augment_1_id = buy_item->GetAugmentItemID(0),
@@ -1487,7 +1487,7 @@ void Client::BuyTraderItem(TraderBuy_Struct *tbs, Client *Trader, const EQApplic
14871487
RecordPlayerEventLog(PlayerEvent::TRADER_PURCHASE, e);
14881488
}
14891489

1490-
if (player_event_logs.IsEventEnabled(PlayerEvent::TRADER_SELL)) {
1490+
if (buy_item && player_event_logs.IsEventEnabled(PlayerEvent::TRADER_SELL)) {
14911491
auto e = PlayerEvent::TraderSellEvent{
14921492
.item_id = buy_item->GetID(),
14931493
.augment_1_id = buy_item->GetAugmentItemID(0),
@@ -2975,7 +2975,7 @@ void Client::BuyTraderItemOutsideBazaar(TraderBuy_Struct *tbs, const EQApplicati
29752975
Message(Chat::Red, fmt::format("You paid {} for the parcel delivery.", DetermineMoneyString(fee)).c_str());
29762976
LogTrading("Customer <green>[{}] Paid: <green>[{}] in Copper", CharacterID(), total_cost);
29772977

2978-
if (player_event_logs.IsEventEnabled(PlayerEvent::TRADER_PURCHASE)) {
2978+
if (buy_item && player_event_logs.IsEventEnabled(PlayerEvent::TRADER_PURCHASE)) {
29792979
auto e = PlayerEvent::TraderPurchaseEvent{
29802980
.item_id = buy_item->GetID(),
29812981
.augment_1_id = buy_item->GetAugmentItemID(0),

zone/worldserver.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -3799,7 +3799,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
37993799

38003800
auto item = trader_pc->FindTraderItemBySerialNumber(item_sn);
38013801

3802-
if (player_event_logs.IsEventEnabled(PlayerEvent::TRADER_SELL)) {
3802+
if (item && player_event_logs.IsEventEnabled(PlayerEvent::TRADER_SELL)) {
38033803
auto e = PlayerEvent::TraderSellEvent{
38043804
.item_id = item ? item->GetID() : 0,
38053805
.augment_1_id = item->GetAugmentItemID(0),

0 commit comments

Comments
 (0)