[Code] PlayerEventLogs Global to Singleton Cleanup (#4928)

* [Code] PlayerEventLogs Global to Singleton Cleanup

* Fix

---------

Co-authored-by: Chris Miles <akkadius1@gmail.com>
This commit is contained in:
Alex King 2025-06-25 16:05:33 -04:00 committed by GitHub
parent c0bb32ed12
commit 643ee56433
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
41 changed files with 95 additions and 106 deletions

View File

@ -38,8 +38,6 @@
#include "../../common/skill_caps.h"
#include "../../common/evolving_items.h"
PlayerEventLogs player_event_logs;
void ExportSpells(SharedDatabase *db);
void ExportSkillCaps(SharedDatabase *db);
void ExportBaseData(SharedDatabase *db);

View File

@ -32,8 +32,6 @@
#include "../../common/events/player_event_logs.h"
#include "../../common/evolving_items.h"
PlayerEventLogs player_event_logs;
void ImportSpells(SharedDatabase *db);
void ImportSkillCaps(SharedDatabase *db);
void ImportBaseData(SharedDatabase *db);

View File

@ -2244,7 +2244,7 @@ void Database::PurgeCharacterParcels()
pel.event_data = ss.str();
pel.created_at = std::time(nullptr);
player_event_logs.AddToQueue(pel);
PlayerEventLogs::Instance()->AddToQueue(pel);
ss.str("");
ss.clear();

View File

@ -68,7 +68,7 @@ void DiscordManager::ProcessMessageQueue()
void DiscordManager::QueuePlayerEventMessage(const PlayerEvent::PlayerEventContainer& e)
{
auto w = player_event_logs.GetDiscordWebhookUrlFromEventType(e.player_event_log.event_type_id);
auto w = PlayerEventLogs::Instance()->GetDiscordWebhookUrlFromEventType(e.player_event_log.event_type_id);
if (!w.empty()) {
Discord::SendPlayerEventMessage(e, w);
}

View File

@ -96,6 +96,12 @@ public:
std::vector<PlayerEventAaPurchaseRepository::PlayerEventAaPurchase> aa_purchase;
};
static PlayerEventLogs* Instance()
{
static PlayerEventLogs instance;
return &instance;
}
private:
struct EtlSettings {
bool enabled;
@ -129,6 +135,4 @@ public:
std::map<PlayerEvent::EventType, EtlSettings> &GetEtlSettings() { return m_etl_settings;}
};
extern PlayerEventLogs player_event_logs;
#endif //EQEMU_PLAYER_EVENT_LOGS_H

View File

@ -1756,10 +1756,10 @@ namespace PlayerEvent {
#endif //EQEMU_PLAYER_EVENTS_H
#define RecordPlayerEventLog(event_type, event_data) do {\
if (player_event_logs.IsEventEnabled(event_type)) {\
if (PlayerEventLogs::Instance()->IsEventEnabled(event_type)) {\
if (RuleB(Logging, PlayerEventsQSProcess)) {\
QServ->SendPacket(\
player_event_logs.RecordEvent(\
PlayerEventLogs::Instance()->RecordEvent(\
event_type,\
GetPlayerEvent(),\
event_data\
@ -1768,7 +1768,7 @@ namespace PlayerEvent {
} \
else { \
worldserver.SendPacket(\
player_event_logs.RecordEvent(\
PlayerEventLogs::Instance()->RecordEvent(\
event_type,\
GetPlayerEvent(),\
event_data\
@ -1779,10 +1779,10 @@ namespace PlayerEvent {
} while (0)
#define RecordPlayerEventLogWithClient(c, event_type, event_data) do {\
if (player_event_logs.IsEventEnabled(event_type)) {\
if (PlayerEventLogs::Instance()->IsEventEnabled(event_type)) {\
if (RuleB(Logging, PlayerEventsQSProcess)) {\
QServ->SendPacket(\
player_event_logs.RecordEvent(\
PlayerEventLogs::Instance()->RecordEvent(\
event_type,\
(c)->GetPlayerEvent(),\
event_data\
@ -1791,7 +1791,7 @@ namespace PlayerEvent {
}\
else {\
worldserver.SendPacket(\
player_event_logs.RecordEvent(\
PlayerEventLogs::Instance()->RecordEvent(\
event_type,\
(c)->GetPlayerEvent(),\
event_data\

View File

@ -24,7 +24,6 @@
LoginServer server;
bool run_server = true;
Database database;
PlayerEventLogs player_event_logs;
void CatchSignal(int sig_num)
{

View File

@ -28,7 +28,6 @@ Database database;
std::string WorldShortName;
const queryservconfig *Config;
WorldServer *worldserver = 0;
PlayerEventLogs player_event_logs;
ZSList zs_list;
uint32 numzones = 0;
@ -156,7 +155,7 @@ int main()
LFGuildManager::Instance()->LoadDatabase();
Timer player_event_process_timer(1000);
player_event_logs.SetDatabase(&qs_database)->Init();
PlayerEventLogs::Instance()->SetDatabase(&qs_database)->Init();
auto loop_fn = [&](EQ::Timer *t) {
Timer::SetCurrentTime();
@ -171,7 +170,7 @@ int main()
}
if (player_event_process_timer.Check()) {
player_event_logs.Process();
PlayerEventLogs::Instance()->Process();
}
};

View File

@ -79,7 +79,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
auto o = (ServerReload::Request*) p.Data();
if (o->type == ServerReload::Type::Logs) {
EQEmuLogSys::Instance()->LoadLogDatabaseSettings();
player_event_logs.ReloadSettings();
PlayerEventLogs::Instance()->ReloadSettings();
zs_list.SendPlayerEventLogSettings();
}

View File

@ -33,7 +33,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
cereal::BinaryInputArchive archive(ss);
archive(n);
player_event_logs.AddToQueue(n.player_event_log);
PlayerEventLogs::Instance()->AddToQueue(n.player_event_log);
DiscordManager::Instance()->QueuePlayerEventMessage(n);
break;
@ -49,8 +49,8 @@ void ZoneServer::SendPlayerEventLogSettings()
{
EQ::Net::DynamicPacket dyn_pack;
std::vector<PlayerEventLogSettingsRepository::PlayerEventLogSettings> settings(
player_event_logs.GetSettings(),
player_event_logs.GetSettings() + PlayerEvent::EventType::MAX
PlayerEventLogs::Instance()->GetSettings(),
PlayerEventLogs::Instance()->GetSettings() + PlayerEvent::EventType::MAX
);
dyn_pack.PutSerialize(0, settings);

View File

@ -35,8 +35,6 @@
#include "../common/events/player_event_logs.h"
#include "../common/evolving_items.h"
PlayerEventLogs player_event_logs;
#ifdef _WINDOWS
#include <direct.h>
#else

View File

@ -46,7 +46,6 @@ ChatChannelList *ChannelList;
Clientlist *g_Clientlist;
UCSDatabase database;
WorldServer *worldserver = nullptr;
PlayerEventLogs player_event_logs;
const ucsconfig *Config;
@ -141,7 +140,7 @@ int main() {
->LoadLogDatabaseSettings()
->StartFileLogs();
player_event_logs.SetDatabase(&database)->Init();
PlayerEventLogs::Instance()->SetDatabase(&database)->Init();
char tmp[64];

View File

@ -79,7 +79,7 @@ void WorldServer::ProcessMessage(uint16 opcode, EQ::Net::Packet &p)
auto o = (ServerReload::Request*) pack->pBuffer;
if (o->type == ServerReload::Type::Logs) {
EQEmuLogSys::Instance()->LoadLogDatabaseSettings();
player_event_logs.ReloadSettings();
PlayerEventLogs::Instance()->ReloadSettings();
}
break;

View File

@ -12,9 +12,9 @@ void WorldserverCLI::EtlGetSettings(int argc, char **argv, argh::parser &cmd, st
Json::Value etl_settings;
Json::Value player_events;
player_event_logs.SetDatabase(&database)->Init();
auto event_settings = player_event_logs.GetSettings();
auto etl_details = player_event_logs.GetEtlSettings();
PlayerEventLogs::Instance()->SetDatabase(&database)->Init();
auto event_settings = PlayerEventLogs::Instance()->GetSettings();
auto etl_details = PlayerEventLogs::Instance()->GetEtlSettings();
for (int i = PlayerEvent::GM_COMMAND; i < PlayerEvent::EventType::MAX; i++) {
player_events["event_id"] = event_settings[i].id;

View File

@ -2430,7 +2430,7 @@ bool Client::StoreCharacter(
void Client::RecordPossibleHack(const std::string& message)
{
if (player_event_logs.IsEventEnabled(PlayerEvent::POSSIBLE_HACK)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::POSSIBLE_HACK)) {
auto event = PlayerEvent::PossibleHackEvent{.message = message};
std::stringstream ss;
{

View File

@ -99,7 +99,6 @@ volatile bool RunLoops = true;
uint32 numclients = 0;
uint32 numzones = 0;
const WorldConfig *Config;
PlayerEventLogs player_event_logs;
void CatchSignal(int sig_num);
@ -368,8 +367,8 @@ int main(int argc, char **argv)
}
);
if (player_event_logs.LoadDatabaseConnection()) {
player_event_logs.Init();
if (PlayerEventLogs::Instance()->LoadDatabaseConnection()) {
PlayerEventLogs::Instance()->Init();
}
auto loop_fn = [&](EQ::Timer* t) {
@ -467,7 +466,7 @@ int main(int argc, char **argv)
if (!RuleB(Logging, PlayerEventsQSProcess)) {
if (player_event_log_process.Check()) {
player_event_logs.Process();
PlayerEventLogs::Instance()->Process();
}
}

View File

@ -981,7 +981,7 @@ void ZSList::SendServerReload(ServerReload::Type type, uchar *packet)
WorldContentService::Instance()->SetExpansionContext()->ReloadContentFlags();
} else if (type == ServerReload::Type::Logs) {
EQEmuLogSys::Instance()->LoadLogDatabaseSettings();
player_event_logs.ReloadSettings();
PlayerEventLogs::Instance()->ReloadSettings();
UCSConnection::Instance()->SendPacket(&pack);
QueryServConnection::Instance()->SendPacket(&pack);
} else if (type == ServerReload::Type::Tasks) {

View File

@ -368,14 +368,14 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
// if set, process events in queryserver
// if you want to offload event recording to a dedicated QS instance
if (!RuleB(Logging, PlayerEventsQSProcess)) {
player_event_logs.AddToQueue(n.player_event_log);
PlayerEventLogs::Instance()->AddToQueue(n.player_event_log);
}
else {
QueryServConnection::Instance()->SendPacket(pack);
}
// if discord enabled for event, ship to UCS to process
if (player_event_logs.IsEventDiscordEnabled(n.player_event_log.event_type_id)) {
if (PlayerEventLogs::Instance()->IsEventDiscordEnabled(n.player_event_log.event_type_id)) {
UCSConnection::Instance()->SendPacket(pack);
}

View File

@ -1180,7 +1180,7 @@ void Client::FinishAlternateAdvancementPurchase(AA::Rank *rank, bool ignore_cost
SendAlternateAdvancementStats();
}
if (player_event_logs.IsEventEnabled(PlayerEvent::AA_PURCHASE)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::AA_PURCHASE)) {
auto e = PlayerEvent::AAPurchasedEvent{
.aa_id = rank->id,
.aa_cost = cost,

View File

@ -2163,7 +2163,7 @@ bool Client::Death(Mob* killer_mob, int64 damage, uint16 spell, EQ::skills::Skil
GoToDeath();
}
if (player_event_logs.IsEventEnabled(PlayerEvent::DEATH)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::DEATH)) {
auto e = PlayerEvent::DeathEvent{
.killer_id = killer_mob ? static_cast<uint32>(killer_mob->GetID()) : static_cast<uint32>(0),
.killer_name = killer_mob ? killer_mob->GetCleanName() : "No Killer",

View File

@ -1318,7 +1318,7 @@ void Client::ChannelMessageReceived(uint8 chan_num, uint8 language, uint8 lang_s
}
}
if (player_event_logs.IsEventEnabled(PlayerEvent::EventType::SPEECH)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::EventType::SPEECH)) {
PlayerEvent::PlayerSpeech e{};
std::string msg = message;
if (!msg.empty() && msg.at(0) != '#' && msg.at(0) != '^') {
@ -1540,7 +1540,7 @@ void Client::ChannelMessageReceived(uint8 chan_num, uint8 language, uint8 lang_s
break;
}
case ChatChannel_Say: { /* Say */
if (player_event_logs.IsEventEnabled(PlayerEvent::SAY)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::SAY)) {
std::string msg = message;
if (!msg.empty() && msg.at(0) != '#' && msg.at(0) != '^') {
auto e = PlayerEvent::SayEvent{
@ -3108,7 +3108,7 @@ bool Client::CheckIncreaseSkill(EQ::skills::SkillType skillid, Mob *against_who,
{
SetSkill(skillid, GetRawSkill(skillid) + 1);
if (player_event_logs.IsEventEnabled(PlayerEvent::SKILL_UP)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::SKILL_UP)) {
auto e = PlayerEvent::SkillUpEvent{
.skill_id = static_cast<uint32>(skillid),
.value = static_cast<int>((skillval + 1)),
@ -4991,7 +4991,7 @@ void Client::DiscoverItem(uint32 item_id) {
auto d = DiscoveredItemsRepository::InsertOne(database, e);
if (player_event_logs.IsEventEnabled(PlayerEvent::DISCOVER_ITEM)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::DISCOVER_ITEM)) {
const auto* item = database.GetItem(item_id);
auto e = PlayerEvent::DiscoverItemEvent{

View File

@ -361,7 +361,7 @@ bool Client::DoEvolveCheckProgression(EQ::ItemInstance &inst)
p.item_id = item_id;
p.quantity = 1;
if (player_event_logs.IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
PlayerEvent::ParcelSend e{};
e.from_player_name = p.from_name;
e.to_player_name = GetCleanName();

View File

@ -2716,7 +2716,7 @@ void Client::Handle_OP_AltCurrencyPurchase(const EQApplicationPacket *app)
charges = item->MaxCharges;
}
if (player_event_logs.IsEventEnabled(PlayerEvent::MERCHANT_PURCHASE)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::MERCHANT_PURCHASE)) {
auto e = PlayerEvent::MerchantPurchaseEvent{
.npc_id = tar->GetNPCTypeID(),
.merchant_name = tar->GetCleanName(),
@ -2901,7 +2901,7 @@ void Client::Handle_OP_AltCurrencySell(const EQApplicationPacket *app)
FastQueuePacket(&outapp);
uint64 new_balance = AddAlternateCurrencyValue(alt_cur_id, cost);
if (player_event_logs.IsEventEnabled(PlayerEvent::MERCHANT_SELL)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::MERCHANT_SELL)) {
auto e = PlayerEvent::MerchantSellEvent{
.npc_id = tar->GetNPCTypeID(),
.merchant_name = tar->GetCleanName(),
@ -5707,7 +5707,7 @@ void Client::Handle_OP_DeleteItem(const EQApplicationPacket *app)
SetIntoxication(GetIntoxication()+IntoxicationIncrease);
if (player_event_logs.IsEventEnabled(PlayerEvent::ITEM_DESTROY) && inst->GetItem()) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::ITEM_DESTROY) && inst->GetItem()) {
auto e = PlayerEvent::DestroyItemEvent{
.item_id = inst->GetItem()->ID,
.item_name = inst->GetItem()->Name,
@ -7720,7 +7720,7 @@ void Client::Handle_OP_GuildBank(const EQApplicationPacket *app)
if (slot_id >= 0) {
auto inst = GuildBanks->GetItem(GuildID(), GuildBankMainArea, slot_id, 1);
if (inst) {
if (player_event_logs.IsEventEnabled(PlayerEvent::GUILD_BANK_MOVE_TO_BANK_AREA)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::GUILD_BANK_MOVE_TO_BANK_AREA)) {
PlayerEvent::GuildBankTransaction log{};
log.char_id = CharacterID();
log.guild_id = GuildID();
@ -7834,7 +7834,7 @@ void Client::Handle_OP_GuildBank(const EQApplicationPacket *app)
GuildBankDepositAck(false, sentAction);
DeleteItemInInventory(EQ::invslot::slotCursor, 0, false);
if (player_event_logs.IsEventEnabled(PlayerEvent::GUILD_BANK_DEPOSIT)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::GUILD_BANK_DEPOSIT)) {
PlayerEvent::GuildBankTransaction log{};
log.char_id = CharacterID();
log.guild_id = GuildID();
@ -7910,7 +7910,7 @@ void Client::Handle_OP_GuildBank(const EQApplicationPacket *app)
SendItemPacket(EQ::invslot::slotCursor, inst.get(), ItemPacketLimbo);
GuildBanks->DeleteItem(GuildID(), gbwis->Area, gbwis->SlotID, gbwis->Quantity, this);
if (player_event_logs.IsEventEnabled(PlayerEvent::GUILD_BANK_WITHDRAWAL)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::GUILD_BANK_WITHDRAWAL)) {
PlayerEvent::GuildBankTransaction log{};
log.char_id = CharacterID();
log.guild_id = GuildID();
@ -13605,7 +13605,7 @@ void Client::Handle_OP_RezzAnswer(const EQApplicationPacket *app)
OPRezzAnswer(r->action, r->spellid, r->zone_id, r->instance_id, r->x, r->y, r->z);
if (r->action == ResurrectionActions::Accept) {
if (player_event_logs.IsEventEnabled(PlayerEvent::REZ_ACCEPTED)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::REZ_ACCEPTED)) {
auto e = PlayerEvent::ResurrectAcceptEvent{
.resurrecter_name = r->rezzer_name,
.spell_name = spells[r->spellid].name,
@ -14235,7 +14235,7 @@ void Client::Handle_OP_ShopPlayerBuy(const EQApplicationPacket *app)
}
}
if (player_event_logs.IsEventEnabled(PlayerEvent::MERCHANT_PURCHASE)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::MERCHANT_PURCHASE)) {
auto e = PlayerEvent::MerchantPurchaseEvent{
.npc_id = tmp->GetNPCTypeID(),
.merchant_name = tmp->GetCleanName(),
@ -14420,7 +14420,7 @@ void Client::Handle_OP_ShopPlayerSell(const EQApplicationPacket *app)
parse->EventPlayer(EVENT_MERCHANT_SELL, this, export_string, 0);
}
if (player_event_logs.IsEventEnabled(PlayerEvent::MERCHANT_SELL)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::MERCHANT_SELL)) {
auto e = PlayerEvent::MerchantSellEvent{
.npc_id = vendor->GetNPCTypeID(),
.merchant_name = vendor->GetCleanName(),
@ -16680,7 +16680,7 @@ void Client::RecordKilledNPCEvent(NPC *n)
};
for (auto &c: checks) {
if (c.check && player_event_logs.IsEventEnabled(c.event)) {
if (c.check && PlayerEventLogs::Instance()->IsEventEnabled(c.event)) {
auto e = PlayerEvent::KilledNPCEvent{
.npc_id = n->GetNPCTypeID(),
.npc_name = n->GetCleanName(),
@ -17073,7 +17073,7 @@ void Client::Handle_OP_GuildTributeDonateItem(const EQApplicationPacket *app)
SendGuildTributeDonateItemReply(in, favor);
if(inst && player_event_logs.IsEventEnabled(PlayerEvent::GUILD_TRIBUTE_DONATE_ITEM)) {
if(inst && PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::GUILD_TRIBUTE_DONATE_ITEM)) {
auto e = PlayerEvent::GuildTributeDonateItem{ .item_id = inst->GetID(),
.augment_1_id = inst->GetAugmentItemID(0),
.augment_2_id = inst->GetAugmentItemID(1),
@ -17122,7 +17122,7 @@ void Client::Handle_OP_GuildTributeDonatePlat(const EQApplicationPacket *app)
TakePlatinum(quantity, false);
SendGuildTributeDonatePlatReply(in, favor);
if(player_event_logs.IsEventEnabled(PlayerEvent::GUILD_TRIBUTE_DONATE_PLAT)) {
if(PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::GUILD_TRIBUTE_DONATE_PLAT)) {
auto e = PlayerEvent::GuildTributeDonatePlat {
.plat = quantity,
.guild_favor = favor

View File

@ -521,7 +521,7 @@ int command_realdispatch(Client *c, std::string message, bool ignore_status)
}
}
if (player_event_logs.IsEventEnabled(PlayerEvent::GM_COMMAND) && log_command) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::GM_COMMAND) && log_command) {
auto e = PlayerEvent::GMCommandEvent{
.message = message,
.target = c->GetTarget() ? c->GetTarget()->GetName() : "NONE"

View File

@ -1569,7 +1569,7 @@ void Corpse::LootCorpseItem(Client *c, const EQApplicationPacket *app)
}
}
if (inst && player_event_logs.IsEventEnabled(PlayerEvent::LOOT_ITEM) && !IsPlayerCorpse()) {
if (inst && PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::LOOT_ITEM) && !IsPlayerCorpse()) {
auto e = PlayerEvent::LootItemEvent{
.item_id = inst->GetItem()->ID,
.item_name = inst->GetItem()->Name,

View File

@ -922,7 +922,7 @@ void Client::SetLevel(uint8 set_level, bool command)
parse->EventPlayer(EVENT_LEVEL_UP, this, std::to_string(levels_gained), 0);
}
if (player_event_logs.IsEventEnabled(PlayerEvent::LEVEL_GAIN)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::LEVEL_GAIN)) {
auto e = PlayerEvent::LevelGainedEvent{
.from_level = m_pp.level,
.to_level = set_level,
@ -938,7 +938,7 @@ void Client::SetLevel(uint8 set_level, bool command)
parse->EventPlayer(EVENT_LEVEL_DOWN, this, std::to_string(levels_lost), 0);
}
if (player_event_logs.IsEventEnabled(PlayerEvent::LEVEL_LOSS)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::LEVEL_LOSS)) {
auto e = PlayerEvent::LevelLostEvent{
.from_level = m_pp.level,
.to_level = set_level,

View File

@ -379,7 +379,7 @@ void Client::GoFish(bool guarantee, bool use_bait)
}
if (inst) {
if (player_event_logs.IsEventEnabled(PlayerEvent::FISH_SUCCESS)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::FISH_SUCCESS)) {
auto e = PlayerEvent::FishSuccessEvent{
.item_id = inst->GetItem()->ID,
.augment_1_id = inst->GetAugmentItemID(0),
@ -519,7 +519,7 @@ void Client::ForageItem(bool guarantee) {
}
if (inst) {
if (player_event_logs.IsEventEnabled(PlayerEvent::FORAGE_SUCCESS)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::FORAGE_SUCCESS)) {
auto e = PlayerEvent::ForageSuccessEvent{
.item_id = inst->GetItem()->ID,
.augment_1_id = inst->GetAugmentItemID(0),

View File

@ -211,7 +211,7 @@ void command_parcels(Client *c, const Seperator *sep)
send_to_client.at(0).character_name.c_str()
);
if (inst && player_event_logs.IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
if (inst && PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
PlayerEvent::ParcelSend e{};
e.from_player_name = parcel_out.from_name;
e.to_player_name = send_to_client.at(0).character_name;
@ -295,7 +295,7 @@ void command_parcels(Client *c, const Seperator *sep)
send_to_client.at(0).character_name.c_str()
);
if (inst && player_event_logs.IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
if (inst && PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
PlayerEvent::ParcelSend e{};
e.from_player_name = parcel_out.from_name;
e.to_player_name = send_to_client.at(0).character_name;

View File

@ -206,7 +206,7 @@ void Group::SplitMoney(uint32 copper, uint32 silver, uint32 gold, uint32 platinu
}
// If logging of player money transactions is enabled, record the transaction.
if (player_event_logs.IsEventEnabled(PlayerEvent::SPLIT_MONEY)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::SPLIT_MONEY)) {
auto e = PlayerEvent::SplitMoneyEvent{
.copper = receive_copper,
.silver = receive_silver,
@ -1280,7 +1280,7 @@ void Client::LeaveGroup() {
if (database.botdb.GetOwnerID(botID) == CharacterID()) {
MemberCount -= 1;
}
}
}
}
}

View File

@ -631,7 +631,7 @@ bool Client::SummonItem(uint32 item_id, int16 charges, uint32 aug1, uint32 aug2,
}
}
if (player_event_logs.IsEventEnabled(PlayerEvent::ITEM_CREATION)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::ITEM_CREATION)) {
auto e = PlayerEvent::ItemCreationEvent{};
e.item_id = item->ID;
e.item_name = item->Name;
@ -763,7 +763,7 @@ void Client::DropItem(int16 slot_id, bool recurse)
int i = 0;
if (inst && player_event_logs.IsEventEnabled(PlayerEvent::DROPPED_ITEM)) {
if (inst && PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::DROPPED_ITEM)) {
auto e = PlayerEvent::DroppedItemEvent{
.item_id = inst->GetID(),
.augment_1_id = inst->GetAugmentItemID(0),
@ -1655,7 +1655,7 @@ bool Client::SwapItem(MoveItem_Struct* move_in) {
DeleteItemInInventory(EQ::invslot::slotCursor, 0, true);
if (test_inst && player_event_logs.IsEventEnabled(PlayerEvent::ITEM_DESTROY)) {
if (test_inst && PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::ITEM_DESTROY)) {
auto e = PlayerEvent::DestroyItemEvent{
.item_id = test_inst->GetItem()->ID,
.item_name = test_inst->GetItem()->Name,
@ -1685,7 +1685,7 @@ bool Client::SwapItem(MoveItem_Struct* move_in) {
EQ::ItemInstance *inst = m_inv.GetItem(EQ::invslot::slotCursor);
if (inst) {
if (player_event_logs.IsEventEnabled(PlayerEvent::ITEM_DESTROY)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::ITEM_DESTROY)) {
auto e = PlayerEvent::DestroyItemEvent{
.item_id = inst->GetItem()->ID,
.item_name = inst->GetItem()->Name,

View File

@ -101,7 +101,6 @@ TitleManager title_manager;
QueryServ *QServ = 0;
NpcScaleManager *npc_scale_manager;
QuestParserCollection *parse = 0;
PlayerEventLogs player_event_logs;
const SPDat_Spell_Struct* spells;
int32 SPDAT_RECORDS = -1;
@ -304,7 +303,7 @@ int main(int argc, char **argv)
EQEmuLogSys::Instance()->SilenceConsoleLogging();
}
player_event_logs.SetDatabase(&database)->Init();
PlayerEventLogs::Instance()->SetDatabase(&database)->Init();
SkillCaps::Instance()->SetContentDatabase(&content_db)->LoadSkillCaps();

View File

@ -4892,7 +4892,7 @@ NPC::Handin NPC::ReturnHandinItems(Client *c)
);
const bool event_has_data_to_record = !handin_items.empty() || handed_in_money;
if (player_event_logs.IsEventEnabled(PlayerEvent::NPC_HANDIN) && event_has_data_to_record) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::NPC_HANDIN) && event_has_data_to_record) {
auto e = PlayerEvent::HandinEvent{
.npc_id = GetNPCTypeID(),
.npc_name = GetCleanName(),

View File

@ -625,7 +625,7 @@ bool Object::HandleClick(Client* sender, const ClickObject_Struct* click_object)
}
}
if (player_event_logs.IsEventEnabled(PlayerEvent::GROUNDSPAWN_PICKUP)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::GROUNDSPAWN_PICKUP)) {
auto e = PlayerEvent::GroundSpawnPickupEvent{
.item_id = item->ID,
.item_name = item->Name,

View File

@ -468,7 +468,7 @@ void Client::DoParcelSend(const Parcel_Struct *parcel_in)
send_to_client.at(0).character_name.c_str()
);
if (player_event_logs.IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
PlayerEvent::ParcelSend e{};
e.from_player_name = parcel_out.from_name;
e.to_player_name = send_to_client.at(0).character_name;
@ -572,7 +572,7 @@ void Client::DoParcelSend(const Parcel_Struct *parcel_in)
send_to_client.at(0).character_name.c_str()
);
if (player_event_logs.IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
PlayerEvent::ParcelSend e{};
e.from_player_name = parcel_out.from_name;
e.to_player_name = send_to_client.at(0).character_name;
@ -759,7 +759,7 @@ void Client::DoParcelRetrieve(const ParcelRetrieve_Struct &parcel_in)
);
}
if (player_event_logs.IsEventEnabled(PlayerEvent::PARCEL_RETRIEVE)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::PARCEL_RETRIEVE)) {
PlayerEvent::ParcelRetrieve e{};
e.from_player_name = p->second.from_name;
e.item_id = p->second.item_id;
@ -913,4 +913,4 @@ int32 Client::FindNextFreeParcelSlotUsingMemory()
}
return INVALID_INDEX;
}
}

View File

@ -107,7 +107,7 @@ void QueryServ::HandleMessage(uint16 opcode, const EQ::Net::Packet& p)
break;
}
player_event_logs.LoadPlayerEventSettingsFromQS(settings);
PlayerEventLogs::Instance()->LoadPlayerEventSettingsFromQS(settings);
LogInfo("Loaded {} PlayerEventLogSettings from queryserv", settings.size());
break;
}

View File

@ -955,7 +955,7 @@ void Raid::SplitMoney(uint32 gid, uint32 copper, uint32 silver, uint32 gold, uin
true
);
if (player_event_logs.IsEventEnabled(PlayerEvent::SPLIT_MONEY)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::SPLIT_MONEY)) {
auto e = PlayerEvent::SplitMoneyEvent{
.copper = copper_split,
.silver = silver_split,
@ -2625,7 +2625,7 @@ void Raid::RaidClearNPCMarks(Client* c)
Strings::EqualFold(main_marker_pcs[MAIN_MARKER_3_SLOT], c->GetCleanName())) {
for (int i = 0; i < MAX_MARKED_NPCS; i++) {
if (marked_npcs[i].entity_id > 0 && marked_npcs[i].zone_id == c->GetZoneID()
&& marked_npcs[i].instance_id == c->GetInstanceID())
&& marked_npcs[i].instance_id == c->GetInstanceID())
{
auto npc_name = entity_list.GetNPCByID(marked_npcs[i].entity_id)->GetCleanName();
RaidMessageString(nullptr, Chat::Cyan, RAID_NO_LONGER_MARKED, npc_name);
@ -2950,7 +2950,7 @@ void Raid::SendMarkTargets(Client* c)
}
for (int i = 0; i < MAX_MARKED_NPCS; i++) {
if (marked_npcs[i].entity_id > 0 && marked_npcs[i].zone_id == c->GetZoneID()
if (marked_npcs[i].entity_id > 0 && marked_npcs[i].zone_id == c->GetZoneID()
&& marked_npcs[i].instance_id == c->GetInstanceID()) {
auto marked_mob = entity_list.GetMob(marked_npcs[i].entity_id);
if (marked_mob) {
@ -2967,7 +2967,7 @@ void Raid::SendMarkTargets(Client* c)
UpdateXtargetMarkedNPC();
}
void Raid::EmptyRaidMembers()
void Raid::EmptyRaidMembers()
{
for (int i = 0; i < MAX_RAID_MEMBERS; i++) {
members[i].group_number = RAID_GROUPLESS;

View File

@ -916,7 +916,7 @@ int ClientTaskState::IncrementDoneCount(
int event_res = DispatchEventTaskComplete(client, *info, activity_id);
if (player_event_logs.IsEventEnabled(PlayerEvent::TASK_COMPLETE)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::TASK_COMPLETE)) {
auto e = PlayerEvent::TaskCompleteEvent{
.task_id = static_cast<uint32>(info->task_id),
.task_name = TaskManager::Instance()->GetTaskName(static_cast<uint32>(info->task_id)),
@ -955,7 +955,7 @@ int ClientTaskState::IncrementDoneCount(
task_index
);
if (player_event_logs.IsEventEnabled(PlayerEvent::TASK_UPDATE)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::TASK_UPDATE)) {
auto e = PlayerEvent::TaskUpdateEvent{
.task_id = static_cast<uint32>(info->task_id),
.task_name = TaskManager::Instance()->GetTaskName(static_cast<uint32>(info->task_id)),
@ -2192,7 +2192,7 @@ void ClientTaskState::AcceptNewTask(
NPC *npc = entity_list.GetNPCByID(npc_entity_id);
if (npc) {
if (player_event_logs.IsEventEnabled(PlayerEvent::TASK_ACCEPT)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::TASK_ACCEPT)) {
auto e = PlayerEvent::TaskAcceptEvent{
.npc_id = npc->GetNPCTypeID(),
.npc_name = npc->GetCleanName(),
@ -2206,7 +2206,7 @@ void ClientTaskState::AcceptNewTask(
parse->EventNPC(EVENT_TASK_ACCEPTED, npc, client, std::to_string(task_id), 0);
}
} else {
if (player_event_logs.IsEventEnabled(PlayerEvent::TASK_ACCEPT)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::TASK_ACCEPT)) {
auto e = PlayerEvent::TaskAcceptEvent{
.npc_id = 0,
.npc_name = "No NPC",

View File

@ -555,7 +555,7 @@ void Object::HandleCombine(Client* user, const NewCombine_Struct* in_combine, Ob
}
if (success) {
if (player_event_logs.IsEventEnabled(PlayerEvent::COMBINE_SUCCESS)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::COMBINE_SUCCESS)) {
auto e = PlayerEvent::CombineEvent{
.recipe_id = spec.recipe_id,
.recipe_name = spec.name,
@ -570,7 +570,7 @@ void Object::HandleCombine(Client* user, const NewCombine_Struct* in_combine, Ob
}
}
else {
if (player_event_logs.IsEventEnabled(PlayerEvent::COMBINE_FAILURE)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::COMBINE_FAILURE)) {
auto e = PlayerEvent::CombineEvent{
.recipe_id = spec.recipe_id,
.recipe_name = spec.name,

View File

@ -1465,7 +1465,7 @@ void Client::BuyTraderItem(TraderBuy_Struct *tbs, Client *Trader, const EQApplic
Trader->AddMoneyToPP(copper, silver, gold, platinum, true);
if (buy_item && player_event_logs.IsEventEnabled(PlayerEvent::TRADER_PURCHASE)) {
if (buy_item && PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::TRADER_PURCHASE)) {
auto e = PlayerEvent::TraderPurchaseEvent{
.item_id = buy_item->GetID(),
.augment_1_id = buy_item->GetAugmentItemID(0),
@ -1487,7 +1487,7 @@ void Client::BuyTraderItem(TraderBuy_Struct *tbs, Client *Trader, const EQApplic
RecordPlayerEventLog(PlayerEvent::TRADER_PURCHASE, e);
}
if (buy_item && player_event_logs.IsEventEnabled(PlayerEvent::TRADER_SELL)) {
if (buy_item && PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::TRADER_SELL)) {
auto e = PlayerEvent::TraderSellEvent{
.item_id = buy_item->GetID(),
.augment_1_id = buy_item->GetAugmentItemID(0),
@ -1998,7 +1998,7 @@ void Client::SellToBuyer(const EQApplicationPacket *app)
AddMoneyToPP(total_cost, false);
buyer->TakeMoneyFromPP(total_cost, false);
if (player_event_logs.IsEventEnabled(PlayerEvent::BARTER_TRANSACTION)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::BARTER_TRANSACTION)) {
PlayerEvent::BarterTransaction e{};
e.status = "Successful Barter Transaction";
e.item_id = sell_line.item_id;
@ -2991,7 +2991,7 @@ void Client::BuyTraderItemOutsideBazaar(TraderBuy_Struct *tbs, const EQApplicati
Message(Chat::Red, fmt::format("You paid {} for the parcel delivery.", DetermineMoneyString(fee)).c_str());
LogTrading("Customer <green>[{}] Paid: <green>[{}] in Copper", CharacterID(), total_cost);
if (buy_item && player_event_logs.IsEventEnabled(PlayerEvent::TRADER_PURCHASE)) {
if (buy_item && PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::TRADER_PURCHASE)) {
auto e = PlayerEvent::TraderPurchaseEvent{
.item_id = buy_item->GetID(),
.augment_1_id = buy_item->GetAugmentItemID(0),
@ -3046,7 +3046,7 @@ void Client::BuyTraderItemOutsideBazaar(TraderBuy_Struct *tbs, const EQApplicati
}
ReturnTraderReq(app, tbs->quantity, buy_item->GetID());
if (player_event_logs.IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::PARCEL_SEND)) {
PlayerEvent::ParcelSend e{};
e.from_player_name = parcel_out.from_name;
e.to_player_name = GetCleanName();

View File

@ -3805,7 +3805,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
auto item = trader_pc->FindTraderItemBySerialNumber(item_sn);
if (item && player_event_logs.IsEventEnabled(PlayerEvent::TRADER_SELL)) {
if (item && PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::TRADER_SELL)) {
auto e = PlayerEvent::TraderSellEvent{
.item_id = item ? item->GetID() : 0,
.augment_1_id = item->GetAugmentItemID(0),
@ -3901,7 +3901,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
Barter_Failure
);
if (player_event_logs.IsEventEnabled(PlayerEvent::BARTER_TRANSACTION)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::BARTER_TRANSACTION)) {
PlayerEvent::BarterTransaction e{};
e.status = "Failed Barter Transaction";
e.item_id = sell_line.item_id;
@ -3938,7 +3938,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
Barter_Failure
);
if (player_event_logs.IsEventEnabled(PlayerEvent::BARTER_TRANSACTION)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::BARTER_TRANSACTION)) {
PlayerEvent::BarterTransaction e{};
e.status = "Failed Barter Transaction";
e.item_id = sell_line.item_id;
@ -4065,7 +4065,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
Barter_Success
);
if (player_event_logs.IsEventEnabled(PlayerEvent::BARTER_TRANSACTION)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::BARTER_TRANSACTION)) {
PlayerEvent::BarterTransaction e{};
e.status = "Successful Barter Transaction";
e.item_id = sell_line.item_id;
@ -4123,7 +4123,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
Barter_Success
);
if (player_event_logs.IsEventEnabled(PlayerEvent::BARTER_TRANSACTION)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::BARTER_TRANSACTION)) {
PlayerEvent::BarterTransaction e{};
e.status = "Successful Barter Transaction";
e.item_id = sell_line.item_id;
@ -4590,11 +4590,7 @@ void WorldServer::ProcessReload(const ServerReload::Request& request)
case ServerReload::Type::Logs:
EQEmuLogSys::Instance()->LoadLogDatabaseSettings();
player_event_logs.ReloadSettings();
// if QS process is enabled, we get settings from QS
if (!RuleB(Logging, PlayerEventsQSProcess)) {
player_event_logs.ReloadSettings();
}
PlayerEventLogs::Instance()->ReloadSettings();
break;
case ServerReload::Type::Loot:

View File

@ -241,7 +241,7 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) {
}
}
if (player_event_logs.IsEventEnabled(PlayerEvent::ZONING)) {
if (PlayerEventLogs::Instance()->IsEventEnabled(PlayerEvent::ZONING)) {
auto e = PlayerEvent::ZoningEvent{};
e.from_zone_long_name = zone->GetLongName();
e.from_zone_short_name = zone->GetShortName();