diff --git a/world/adventure.cpp b/world/adventure.cpp index 87db2c0d3..5249f1c47 100644 --- a/world/adventure.cpp +++ b/world/adventure.cpp @@ -15,7 +15,6 @@ #include "../common/zone_store.h" #include "../common/repositories/character_corpses_repository.h" -extern ClientList client_list; extern EQ::Random emu_random; Adventure::Adventure(AdventureTemplate *t) @@ -228,7 +227,7 @@ void Adventure::SendAdventureMessage(uint32 type, const char *msg) auto iter = players.begin(); while(iter != players.end()) { - ClientListEntry *current = client_list.FindCharacter((*iter).c_str()); + ClientListEntry *current = ClientList::Instance()->FindCharacter((*iter).c_str()); if(current) { strcpy(sms->to, (*iter).c_str()); @@ -281,7 +280,7 @@ void Adventure::Finished(AdventureWinStatus ws) { auto iter = players.begin(); while (iter != players.end()) { - ClientListEntry *current = client_list.FindCharacter((*iter).c_str()); + ClientListEntry *current = ClientList::Instance()->FindCharacter((*iter).c_str()); auto character_id = database.GetCharacterID(*iter); if (character_id == 0) { diff --git a/world/adventure_manager.cpp b/world/adventure_manager.cpp index e20f1d83c..3ba718b53 100644 --- a/world/adventure_manager.cpp +++ b/world/adventure_manager.cpp @@ -14,8 +14,6 @@ #include #include -extern ClientList client_list; - AdventureManager::AdventureManager() { process_timer = new Timer(500); @@ -1854,7 +1852,7 @@ void AdventureManager::DoLeaderboardRequestWinsRuj(const char* player) void AdventureManager::DoLeaderboardRequestPercentageRuj(const char* player) { - ClientListEntry *pc = client_list.FindCharacter(player); + ClientListEntry *pc = ClientList::Instance()->FindCharacter(player); if(pc) { auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct)); @@ -1920,7 +1918,7 @@ void AdventureManager::DoLeaderboardRequestPercentageRuj(const char* player) void AdventureManager::DoLeaderboardRequestWinsTak(const char* player) { - ClientListEntry *pc = client_list.FindCharacter(player); + ClientListEntry *pc = ClientList::Instance()->FindCharacter(player); if(pc) { auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct)); @@ -1986,7 +1984,7 @@ void AdventureManager::DoLeaderboardRequestWinsTak(const char* player) void AdventureManager::DoLeaderboardRequestPercentageTak(const char* player) { - ClientListEntry *pc = client_list.FindCharacter(player); + ClientListEntry *pc = ClientList::Instance()->FindCharacter(player); if(pc) { auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct)); @@ -2072,7 +2070,7 @@ bool AdventureManager::PopFinishedEvent(const char *name, AdventureFinishEvent & void AdventureManager::SendAdventureFinish(AdventureFinishEvent fe) { - ClientListEntry *pc = client_list.FindCharacter(fe.name.c_str()); + ClientListEntry *pc = ClientList::Instance()->FindCharacter(fe.name.c_str()); if(pc) { auto pack = new ServerPacket(ServerOP_AdventureFinish, sizeof(ServerAdventureFinish_Struct)); diff --git a/world/client.cpp b/world/client.cpp index 5df1035fa..a6ffd7571 100644 --- a/world/client.cpp +++ b/world/client.cpp @@ -89,7 +89,6 @@ std::vector character_create_allocations; std::vector character_create_race_class_combos; -extern ClientList client_list; extern uint32 numclients; extern volatile bool RunLoops; extern volatile bool UCSServerAvailable_; @@ -476,7 +475,7 @@ bool Client::HandleSendLoginInfoPacket(const EQApplicationPacket *app) LogClientLogin("Checking authentication id [{}]", id); - if ((cle = client_list.CheckAuth(id, password))) { + if ((cle = ClientList::Instance()->CheckAuth(id, password))) { LoadDataBucketsCache(); LogClientLogin("Checking authentication id [{}] passed", id); @@ -799,7 +798,7 @@ bool Client::HandleEnterWorldPacket(const EQApplicationPacket *app) { RuleB(World, EnableIPExemptions) || RuleI(World, MaxClientsPerIP) > 0 ) { - client_list.GetCLEIP(GetIP()); //Check current CLE Entry IPs against incoming connection + ClientList::Instance()->GetCLEIP(GetIP()); //Check current CLE Entry IPs against incoming connection } auto ew = (EnterWorld_Struct *) app->pBuffer; diff --git a/world/cliententry.cpp b/world/cliententry.cpp index ff30a2ec0..d6feb68dd 100644 --- a/world/cliententry.cpp +++ b/world/cliententry.cpp @@ -9,7 +9,6 @@ #include "world_config.h" extern uint32 numplayers; -extern ClientList client_list; extern volatile bool RunLoops; ClientListEntry::ClientListEntry( diff --git a/world/console.cpp b/world/console.cpp index 03efcfe5e..41906239b 100644 --- a/world/console.cpp +++ b/world/console.cpp @@ -33,8 +33,6 @@ #include "../common/zone_store.h" #include -extern ClientList client_list; - /** * @param username * @param password @@ -191,7 +189,7 @@ void ConsoleWho( } WorldConsoleTCPConnection console_connection(connection); - client_list.ConsoleSendWhoAll(0, connection->Admin(), &whom, &console_connection); + ClientList::Instance()->ConsoleSendWhoAll(0, connection->Admin(), &whom, &console_connection); } /** @@ -876,7 +874,7 @@ void ConsoleIpLookup( { if (!args.empty()) { WorldConsoleTCPConnection console_connection(connection); - client_list.SendCLEList(connection->Admin(), nullptr, &console_connection, args[0].c_str()); + ClientList::Instance()->SendCLEList(connection->Admin(), nullptr, &console_connection, args[0].c_str()); } } diff --git a/world/dynamic_zone.cpp b/world/dynamic_zone.cpp index 1707ae6be..fd9406f5c 100644 --- a/world/dynamic_zone.cpp +++ b/world/dynamic_zone.cpp @@ -8,8 +8,6 @@ #include "../common/eqemu_logsys.h" #include "../common/repositories/instance_list_repository.h" -extern ClientList client_list; - Database& DynamicZone::GetDatabase() { return database; diff --git a/world/dynamic_zone_manager.cpp b/world/dynamic_zone_manager.cpp index 3bc01c8d4..8cf87affe 100644 --- a/world/dynamic_zone_manager.cpp +++ b/world/dynamic_zone_manager.cpp @@ -9,8 +9,6 @@ #include "../common/repositories/dynamic_zone_lockouts_repository.h" #include -extern ClientList client_list; - DynamicZoneManager dynamic_zone_manager; DynamicZoneManager::DynamicZoneManager() : diff --git a/world/eqemu_api_world_data_service.cpp b/world/eqemu_api_world_data_service.cpp index 58f0bdf19..eff7b7d94 100644 --- a/world/eqemu_api_world_data_service.cpp +++ b/world/eqemu_api_world_data_service.cpp @@ -13,7 +13,6 @@ #include "ucs.h" #include "queryserv.h" -extern ClientList client_list; extern WorldGuildManager guild_mgr; void callGetZoneList(Json::Value &response) diff --git a/world/eqw.cpp b/world/eqw.cpp index 3529145f2..8b0e17b43 100644 --- a/world/eqw.cpp +++ b/world/eqw.cpp @@ -45,7 +45,6 @@ #include -extern ClientList client_list; extern uint32 numzones; extern LauncherList launcher_list; extern volatile bool RunLoops; @@ -156,7 +155,7 @@ std::map EQW::GetZoneDetails(Const_char *zone_ref) { } int EQW::CountPlayers() { - return(client_list.GetClientCount()); + return(ClientList::Instance()->GetClientCount()); } //returns an array of character names in the zone (empty=all zones) @@ -164,7 +163,7 @@ std::vector EQW::ListPlayers(Const_char *zone_name) { std::vector res; std::vector list; - client_list.GetClients(zone_name, list); + ClientList::Instance()->GetClients(zone_name, list); std::vector::iterator cur, end; cur = list.begin(); @@ -178,7 +177,7 @@ std::vector EQW::ListPlayers(Const_char *zone_name) { std::map EQW::GetPlayerDetails(Const_char *char_name) { std::map res; - ClientListEntry *cle = client_list.FindCharacter(char_name); + ClientListEntry *cle = ClientList::Instance()->FindCharacter(char_name); if(cle == nullptr) { res["error"] = "1"; return(res); @@ -263,7 +262,7 @@ void EQW::CreateLauncher(Const_char *launcher_name, int dynamic_count) { uint32 EQW::CreateGuild(const char* name, uint32 leader_char_id) { uint32 id = guild_mgr.CreateGuild(name, leader_char_id); if(id != GUILD_NONE) - client_list.UpdateClientGuild(leader_char_id, id); + ClientList::Instance()->UpdateClientGuild(leader_char_id, id); return(id); } @@ -284,7 +283,7 @@ bool EQW::SetGuildLeader(uint32 guild_id, uint32 leader_char_id) { } bool EQW::SetGuild(uint32 charid, uint32 guild_id, uint8 rank) { - client_list.UpdateClientGuild(charid, guild_id); + ClientList::Instance()->UpdateClientGuild(charid, guild_id); return(guild_mgr.SetGuild(charid, guild_id, rank)); } diff --git a/world/lfplist.cpp b/world/lfplist.cpp index 7b50d9398..fcdc9daf3 100644 --- a/world/lfplist.cpp +++ b/world/lfplist.cpp @@ -25,8 +25,6 @@ #include "../common/misc_functions.h" #include "../common/classes.h" -extern ClientList client_list; - GroupLFP::GroupLFP(uint32 inLeaderID) { LeaderID = inLeaderID; @@ -68,7 +66,7 @@ void GroupLFP::SetDetails(ServerLFPUpdate_Struct *Update) { } // Otherwise try and find the information ourselves. else { - CLE = client_list.FindCharacter(Members[i].Name); + CLE = ClientList::Instance()->FindCharacter(Members[i].Name); if(CLE) { Members[i].Class = CLE->class_(); Members[i].Level = CLE->level(); @@ -124,7 +122,7 @@ void GroupLFPList::Process() { if(GroupMembers[i].Name[0] == '\0') continue; - ClientListEntry *CLE = client_list.FindCharacter(GroupMembers[i].Name); + ClientListEntry *CLE = ClientList::Instance()->FindCharacter(GroupMembers[i].Name); if(!CLE) { // The first member entry is always the person who posted the LFP group, either // a single ungrouped player, or the leader of the group. If (s)he is gone, remove @@ -263,7 +261,7 @@ void GroupLFPList::SendLFPMatches(ServerLFPMatchesRequest_Struct* smrs) { } } - ClientListEntry* CLE = client_list.FindCharacter(smrs->FromName); + ClientListEntry* CLE = ClientList::Instance()->FindCharacter(smrs->FromName); if (CLE != nullptr) { if (CLE->Server() != nullptr) CLE->Server()->SendPacket(Pack); diff --git a/world/login_server.cpp b/world/login_server.cpp index fa0f1143e..9bdc0c470 100644 --- a/world/login_server.cpp +++ b/world/login_server.cpp @@ -20,7 +20,6 @@ #include "cliententry.h" #include "world_config.h" -extern ClientList client_list; extern uint32 numzones; extern uint32 numplayers; extern volatile bool RunLoops; diff --git a/world/login_server_list.cpp b/world/login_server_list.cpp index 02ded6256..5a2c8f375 100644 --- a/world/login_server_list.cpp +++ b/world/login_server_list.cpp @@ -36,7 +36,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "clientlist.h" #include "world_config.h" -extern ClientList client_list; extern uint32 numzones; extern uint32 numplayers; extern volatile bool RunLoops; diff --git a/world/main.cpp b/world/main.cpp index 89d895f80..9ea0f26cb 100644 --- a/world/main.cpp +++ b/world/main.cpp @@ -91,7 +91,6 @@ #include "../common/repositories/character_parcels_repository.h" #include "../common/ip_util.h" -ClientList client_list; GroupLFPList LFPGroupList; LauncherList launcher_list; volatile bool RunLoops = true; @@ -394,7 +393,7 @@ int main(int argc, char **argv) LogInfo("Connection [{}] PASSED banned IPs check. Processing connection", inet_ntoa(in)); auto client = new Client(eqsi); // @merth: client->zoneattempt=0; - client_list.Add(client); + ClientList::Instance()->Add(client); } else { LogInfo("Connection from [{}] failed banned IPs check. Closing connection", inet_ntoa(in)); @@ -409,13 +408,13 @@ int main(int argc, char **argv) ); auto client = new Client(eqsi); // @merth: client->zoneattempt=0; - client_list.Add(client); + ClientList::Instance()->Add(client); } } WorldEventScheduler::Instance()->Process(ZSList::Instance()); - client_list.Process(); + ClientList::Instance()->Process(); guild_mgr.Process(); if (parcel_prune_timer.Check()) { @@ -477,7 +476,7 @@ int main(int argc, char **argv) std::string window_title = fmt::format( "World [{}] Clients [{}]", Config->LongName, - client_list.GetClientCount() + ClientList::Instance()->GetClientCount() ); UpdateWindowTitle(window_title); } diff --git a/world/queryserv.cpp b/world/queryserv.cpp index f93c0cc9e..69185607c 100644 --- a/world/queryserv.cpp +++ b/world/queryserv.cpp @@ -9,8 +9,6 @@ #include "../common/md5.h" #include "../common/packet_dump.h" -extern ClientList client_list; - QueryServConnection::QueryServConnection() { } diff --git a/world/shared_task_manager.cpp b/world/shared_task_manager.cpp index 7caa4c7b9..914f40958 100644 --- a/world/shared_task_manager.cpp +++ b/world/shared_task_manager.cpp @@ -17,8 +17,6 @@ #include "../common/repositories/shared_task_dynamic_zones_repository.h" #include -extern ClientList client_list; - SharedTaskManager::SharedTaskManager() : m_process_timer{ static_cast(RuleI(TaskSystem, SharedTasksWorldProcessRate)) } { @@ -1273,7 +1271,7 @@ void SharedTaskManager::SendMembersMessageID( memcpy(buf->args, serialized_args.buffer(), serialized_args.size()); for (const auto &member : shared_task->GetMembers()) { - auto character = client_list.FindCLEByCharacterID(member.character_id); + auto character = ClientList::Instance()->FindCLEByCharacterID(member.character_id); if (character && character->Server()) { strn0cpy(buf->client_name, character->name(), sizeof(buf->client_name)); character->Server()->SendPacket(pack.get()); @@ -1319,13 +1317,13 @@ bool SharedTaskManager::CanRequestSharedTask(uint32_t task_id, const SharedTaskR // messages for every character already in a shared task for (const auto& it : shared_task_members) { if (it.character_id == request.leader_id) { - client_list.SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::REQUEST_HAVE); + ClientList::Instance()->SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::REQUEST_HAVE); } else if (request.group_type == SharedTaskRequestGroupType::Group) { - client_list.SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::REQUEST_GROUP_HAS, {it.character_name}); + ClientList::Instance()->SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::REQUEST_GROUP_HAS, {it.character_name}); } else { - client_list.SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::REQUEST_RAID_HAS, {it.character_name}); + ClientList::Instance()->SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::REQUEST_RAID_HAS, {it.character_name}); } } @@ -1334,40 +1332,40 @@ bool SharedTaskManager::CanRequestSharedTask(uint32_t task_id, const SharedTaskR // check if any party member's minimum level is too low (pre-2014 this was average level) if (task.min_level > 0 && request.lowest_level < task.min_level) { - client_list.SendCharacterMessage(request.leader_id, Chat::Red, TaskStr::Get(TaskStr::LVL_TOO_LOW)); + ClientList::Instance()->SendCharacterMessage(request.leader_id, Chat::Red, TaskStr::Get(TaskStr::LVL_TOO_LOW)); return false; } // check if any party member's maximum level is too high (pre-2014 this was average level) if (task.max_level > 0 && request.highest_level > task.max_level) { - client_list.SendCharacterMessage(request.leader_id, Chat::Red, TaskStr::Get(TaskStr::LVL_TOO_HIGH)); + ClientList::Instance()->SendCharacterMessage(request.leader_id, Chat::Red, TaskStr::Get(TaskStr::LVL_TOO_HIGH)); return false; } // allow gm/dev bypass for minimum player count requirements - auto requester = client_list.FindCLEByCharacterID(request.leader_id); + auto requester = ClientList::Instance()->FindCLEByCharacterID(request.leader_id); bool is_gm = (requester && requester->GetGM()); // check if party member count is below the minimum if (!is_gm && task.min_players > 0 && request.members.size() < task.min_players) { - client_list.SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::MIN_PLAYERS); + ClientList::Instance()->SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::MIN_PLAYERS); return false; } if (is_gm) { - client_list.SendCharacterMessage(requester->CharID(), Chat::White, "Your GM flag allows you to bypass shared task minimum player requirements."); + ClientList::Instance()->SendCharacterMessage(requester->CharID(), Chat::White, "Your GM flag allows you to bypass shared task minimum player requirements."); } // check if party member count is above the maximum // todo: live creates the shared task but truncates members if it exceeds max (sorted by leader and raid group numbers) if (task.max_players > 0 && request.members.size() > task.max_players) { - client_list.SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::MAX_PLAYERS); + ClientList::Instance()->SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::MAX_PLAYERS); return false; } // check if party level spread exceeds task's maximum if (task.level_spread > 0 && (request.highest_level - request.lowest_level) > task.level_spread) { - client_list.SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::LVL_SPREAD_HIGH); + ClientList::Instance()->SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::LVL_SPREAD_HIGH); return false; } @@ -1383,10 +1381,10 @@ bool SharedTaskManager::CanRequestSharedTask(uint32_t task_id, const SharedTaskR if (character_task_timers.front().character_id == request.leader_id) { if (timer_type == TaskTimerType::Replay) { - client_list.SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::YOU_REPLAY_TIMER, {days, hours, mins}); + ClientList::Instance()->SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::YOU_REPLAY_TIMER, {days, hours, mins}); } else if (timer_type == TaskTimerType::Request) { - client_list.SendCharacterMessage(request.leader_id, Chat::Red, fmt::format( + ClientList::Instance()->SendCharacterMessage(request.leader_id, Chat::Red, fmt::format( TaskStr::Get(TaskStr::YOU_REQUEST_TIMER), days, hours, mins)); } } @@ -1397,11 +1395,11 @@ bool SharedTaskManager::CanRequestSharedTask(uint32_t task_id, const SharedTaskR }); if (it != request.members.end() && timer_type == TaskTimerType::Replay) { - client_list.SendCharacterMessageID(request.leader_id, Chat::Red, + ClientList::Instance()->SendCharacterMessageID(request.leader_id, Chat::Red, TaskStr::PLAYER_REPLAY_TIMER, {it->character_name, days, hours, mins}); } else if (it != request.members.end() && timer_type == TaskTimerType::Request) { - client_list.SendCharacterMessage(request.leader_id, Chat::Red, fmt::format( + ClientList::Instance()->SendCharacterMessage(request.leader_id, Chat::Red, fmt::format( TaskStr::Get(TaskStr::PLAYER_REQUEST_TIMER), it->character_name, days, hours, mins)); } } @@ -1425,7 +1423,7 @@ bool SharedTaskManager::CanAddPlayer(SharedTask *s, uint32_t character_id, std:: } // check if player is online and in cle (other checks require online) - auto cle = client_list.FindCLEByCharacterID(character_id); + auto cle = ClientList::Instance()->FindCLEByCharacterID(character_id); if (!cle || !cle->Server()) { SendLeaderMessageID(s, Chat::Red, TaskStr::PLAYER_NOT_ONLINE, {player_name}); SendLeaderMessageID(s, Chat::Red, TaskStr::COULD_NOT_BE_INVITED, {player_name}); @@ -1613,7 +1611,7 @@ void SharedTaskManager::AddReplayTimers(SharedTask *s) task_timers.emplace_back(timer); - client_list.SendCharacterMessage( + ClientList::Instance()->SendCharacterMessage( member_id, Chat::Yellow, fmt::format( diff --git a/world/shared_task_world_messaging.cpp b/world/shared_task_world_messaging.cpp index 20e7338e9..39f4af804 100644 --- a/world/shared_task_world_messaging.cpp +++ b/world/shared_task_world_messaging.cpp @@ -14,8 +14,6 @@ #include "../common/repositories/task_activities_repository.h" #include "dynamic_zone.h" -extern ClientList client_list; - void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack) { switch (pack->opcode) { diff --git a/world/web_interface_eqw.cpp b/world/web_interface_eqw.cpp index 94975f434..2601eccc8 100644 --- a/world/web_interface_eqw.cpp +++ b/world/web_interface_eqw.cpp @@ -6,7 +6,6 @@ #include "zonelist.h" #include "launcher_list.h" -extern ClientList client_list; extern LauncherList launcher_list; void EQW__GetConfig(WebInterface *i, const std::string& method, const std::string& id, const Json::Value& params) { @@ -52,7 +51,7 @@ void EQW__Unlock(WebInterface *i, const std::string& method, const std::string& } void EQW__GetPlayerCount(WebInterface *i, const std::string& method, const std::string& id, const Json::Value& params) { - Json::Value ret = client_list.GetClientCount(); + Json::Value ret = ClientList::Instance()->GetClientCount(); i->SendResponse(id, ret); } diff --git a/world/wguild_mgr.cpp b/world/wguild_mgr.cpp index a77471244..ace4d9e0f 100644 --- a/world/wguild_mgr.cpp +++ b/world/wguild_mgr.cpp @@ -34,8 +34,6 @@ #include "../common/repositories/tributes_repository.h" #include "../common/repositories/tribute_levels_repository.h" - -extern ClientList client_list; std::map tribute_list; WorldGuildManager guild_mgr; @@ -102,7 +100,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) { RefreshGuild(s->guild_id); //preform the local update - client_list.UpdateClientGuild(s->char_id, s->guild_id); + ClientList::Instance()->UpdateClientGuild(s->char_id, s->guild_id); //broadcast this update to any zone with a member in this guild. //because im sick of this not working, sending it to all zones, just spends a bit more bandwidth. @@ -306,7 +304,7 @@ void WorldGuildManager::Process() uint32 WorldGuildManager::GetGuildTributeCost(uint32 guild_id) { - auto guild_members = client_list.GetGuildClientsWithTributeOptIn(guild_id); + auto guild_members = ClientList::Instance()->GetGuildClientsWithTributeOptIn(guild_id); auto total = guild_members.size(); auto total_cost = 0; diff --git a/world/zonelist.cpp b/world/zonelist.cpp index a5b1aad83..f108031dc 100644 --- a/world/zonelist.cpp +++ b/world/zonelist.cpp @@ -42,7 +42,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "../common/repositories/buyer_repository.h" extern uint32 numzones; -extern ClientList client_list; volatile bool UCSServerAvailable_ = false; void CatchSignal(int sig_num); diff --git a/world/zoneserver.cpp b/world/zoneserver.cpp index 408d0faec..30e90cb09 100644 --- a/world/zoneserver.cpp +++ b/world/zoneserver.cpp @@ -52,7 +52,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "../common/repositories/trader_repository.h" #include "../common/repositories/buyer_repository.h" -extern ClientList client_list; extern GroupLFPList LFPGroupList; extern volatile bool RunLoops; extern volatile bool UCSServerAvailable_; @@ -91,7 +90,7 @@ ZoneServer::ZoneServer(std::shared_ptr in_c ZoneServer::~ZoneServer() { if (RunLoops) { - client_list.CLERemoveZSRef(this); + ClientList::Instance()->CLERemoveZSRef(this); } } @@ -126,7 +125,7 @@ bool ZoneServer::SetZone(uint32 in_zone_id, uint32 in_instance_id, bool in_is_st } if (!zone_server_zone_id) { - client_list.CLERemoveZSRef(this); + ClientList::Instance()->CLERemoveZSRef(this); zone_player_count = 0; LSSleepUpdate(GetPrevZoneID()); } @@ -136,7 +135,7 @@ bool ZoneServer::SetZone(uint32 in_zone_id, uint32 in_instance_id, bool in_is_st strn0cpy(zone_name, zone_short_name.c_str(), sizeof(zone_name)); strn0cpy(long_name, zone_long_name.c_str(), sizeof(long_name)); - client_list.ZoneBootup(this); + ClientList::Instance()->ZoneBootup(this); zone_boot_timer.Start(); return true; @@ -202,7 +201,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } auto gis = (GroupInvite_Struct*) pack->pBuffer; - client_list.SendPacket(gis->invitee_name, pack); + ClientList::Instance()->SendPacket(gis->invitee_name, pack); break; } case ServerOP_GroupFollow: { @@ -211,7 +210,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } auto sgfs = (ServerGroupFollow_Struct*) pack->pBuffer; - client_list.SendPacket(sgfs->gf.name1, pack); + ClientList::Instance()->SendPacket(sgfs->gf.name1, pack); break; } case ServerOP_GroupFollowAck: { @@ -220,7 +219,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } auto sgfas = (ServerGroupFollowAck_Struct*) pack->pBuffer; - client_list.SendPacket(sgfas->Name, pack); + ClientList::Instance()->SendPacket(sgfas->Name, pack); break; } case ServerOP_GroupCancelInvite: { @@ -229,7 +228,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } auto gcs = (GroupCancel_Struct*) pack->pBuffer; - client_list.SendPacket(gcs->name1, pack); + ClientList::Instance()->SendPacket(gcs->name1, pack); break; } case ServerOP_GroupIDReq: { @@ -448,7 +447,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { auto scm2 = (ServerChannelMessage_Struct*) pack->pBuffer; strcpy(scm2->deliverto, scm2->from); scm2->noreply = true; - client_list.SendPacket(scm->from, pack); + ClientList::Instance()->SendPacket(scm->from, pack); safe_delete(pack); } ) @@ -470,7 +469,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { break; } - auto cle = client_list.FindCharacter(scm->deliverto); + auto cle = ClientList::Instance()->FindCharacter(scm->deliverto); if ( !cle || cle->Online() < CLE_Status::Zoning || @@ -483,7 +482,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { ) ) { if (!scm->noreply) { - auto sender = client_list.FindCharacter(scm->from); + auto sender = ClientList::Instance()->FindCharacter(scm->from); if (!sender || !sender->Server()) { break; } @@ -497,7 +496,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } else if (cle->Online() == CLE_Status::Zoning) { if (!scm->noreply) { - auto sender = client_list.FindCharacter(scm->from); + auto sender = ClientList::Instance()->FindCharacter(scm->from); if (cle->TellQueueFull()) { if (!sender || !sender->Server()) { break; @@ -560,7 +559,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { auto scm2 = (ServerChannelMessage_Struct*) pack->pBuffer; strcpy(scm2->deliverto, scm2->from); scm2->noreply = true; - client_list.SendPacket(scm->from, pack); + ClientList::Instance()->SendPacket(scm->from, pack); safe_delete(pack); } ); @@ -591,7 +590,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { case ServerOP_VoiceMacro: { auto svm = (ServerVoiceMacro_Struct*) pack->pBuffer; if (svm->Type == VoiceMacroTell) { - auto cle = client_list.FindCharacter(svm->To); + auto cle = ClientList::Instance()->FindCharacter(svm->To); if ( !cle || cle->Online() < CLE_Status::Zoning || @@ -628,12 +627,12 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } case ServerOP_RezzPlayerReject: { auto recipient = (char*) pack->pBuffer; - client_list.SendPacket(recipient, pack); + ClientList::Instance()->SendPacket(recipient, pack); break; } case ServerOP_MultiLineMsg: { auto mlm = (ServerMultiLineMsg_Struct*) pack->pBuffer; - client_list.SendPacket(mlm->to, pack); + ClientList::Instance()->SendPacket(mlm->to, pack); break; } case ServerOP_SetZone: { @@ -775,7 +774,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } auto wtz = (WorldToZone_Struct*) pack->pBuffer; - auto client = client_list.FindByAccountID(wtz->account_id); + auto client = ClientList::Instance()->FindByAccountID(wtz->account_id); if (client) { client->Clearance(wtz->response); } @@ -798,7 +797,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { auto ztz = (ZoneToZone_Struct*) pack->pBuffer; ClientListEntry* client = nullptr; if (WorldConfig::get()->UpdateStats) { - client = client_list.FindCharacter(ztz->name); + client = ClientList::Instance()->FindCharacter(ztz->name); } LogZoning( @@ -919,7 +918,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } auto scl = (ServerClientList_Struct*) pack->pBuffer; - client_list.ClientUpdate(this, scl); + ClientList::Instance()->ClientUpdate(this, scl); break; } case ServerOP_ClientListKA: { @@ -929,7 +928,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { break; } - client_list.CLEKeepAlive(sclka->numupdates, sclka->wid); + ClientList::Instance()->CLEKeepAlive(sclka->numupdates, sclka->wid); break; } case ServerOP_Who: { @@ -942,28 +941,28 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { whom->wclass = whoall->wclass; whom->wrace = whoall->wrace; strn0cpy(whom->whom, whoall->whom, sizeof(whom->whom)); - client_list.SendWhoAll(whoall->fromid, whoall->from, whoall->admin, whom, this); + ClientList::Instance()->SendWhoAll(whoall->fromid, whoall->from, whoall->admin, whom, this); safe_delete(whom); break; } case ServerOP_RequestOnlineGuildMembers: { auto srogms = (ServerRequestOnlineGuildMembers_Struct*) pack->pBuffer; - client_list.SendOnlineGuildMembers(srogms->FromID, srogms->GuildID); + ClientList::Instance()->SendOnlineGuildMembers(srogms->FromID, srogms->GuildID); break; } case ServerOP_ClientVersionSummary: { auto srcvss = (ServerRequestClientVersionSummary_Struct*) pack->pBuffer; - client_list.SendClientVersionSummary(srcvss->Name); + ClientList::Instance()->SendClientVersionSummary(srcvss->Name); break; } case ServerOP_FriendsWho: { auto sfw = (ServerFriendsWho_Struct*) pack->pBuffer; - client_list.SendFriendsWho(sfw, this); + ClientList::Instance()->SendFriendsWho(sfw, this); break; } case ServerOP_LFGMatches: { auto smrs = (ServerLFGMatchesRequest_Struct*) pack->pBuffer; - client_list.SendLFGMatches(smrs); + ClientList::Instance()->SendLFGMatches(smrs); break; } case ServerOP_LFPMatches: { @@ -1000,7 +999,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { break; } case ServerOP_FlagUpdate: { - auto cle = client_list.FindCLEByAccountID(*((uint32*) pack->pBuffer)); + auto cle = ClientList::Instance()->FindCLEByAccountID(*((uint32*) pack->pBuffer)); if (cle) { cle->SetAdmin(*((int16*)&pack->pBuffer[4])); } @@ -1015,7 +1014,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } auto gmg = (ServerGMGoto_Struct*) pack->pBuffer; - auto cle = client_list.FindCharacter(gmg->gotoname); + auto cle = ClientList::Instance()->FindCharacter(gmg->gotoname); if (cle) { if (!cle->Server()) { SendEmoteMessage( @@ -1158,9 +1157,9 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { auto sgwq = (ServerGenericWorldQuery_Struct*) pack->pBuffer; if (pack->size == sizeof(ServerGenericWorldQuery_Struct)) { - client_list.SendCLEList(sgwq->admin, sgwq->from, this); + ClientList::Instance()->SendCLEList(sgwq->admin, sgwq->from, this); } else { - client_list.SendCLEList(sgwq->admin, sgwq->from, this, sgwq->query); + ClientList::Instance()->SendCLEList(sgwq->admin, sgwq->from, this, sgwq->query); } break; @@ -1215,7 +1214,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } case ServerOP_Revoke: { auto rev = (RevokeStruct*) pack->pBuffer; - auto cle = client_list.FindCharacter(rev->name); + auto cle = ClientList::Instance()->FindCharacter(rev->name); if (cle && cle->Server()) { cle->Server()->SendPacket(pack); } @@ -1247,7 +1246,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } if (s->consent_type == EQ::consent::Normal) { - auto cle = client_list.FindCharacter(s->grantname); + auto cle = ClientList::Instance()->FindCharacter(s->grantname); if (cle) { auto granted_zs = ( cle->instance() ? @@ -1411,7 +1410,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } auto o = (ServerIsOwnerOnline_Struct*) pack->pBuffer; - auto cle = client_list.FindCLEByAccountID(o->account_id); + auto cle = ClientList::Instance()->FindCLEByAccountID(o->account_id); o->online = cle ? 1 : 0; @@ -1443,7 +1442,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } case ServerOP_RequestTellQueue: { auto rtq = (ServerRequestTellQueue_Struct*) pack->pBuffer; - auto cle = client_list.FindCharacter(rtq->name); + auto cle = ClientList::Instance()->FindCharacter(rtq->name); if (!cle || cle->TellQueueEmpty()) { break; } @@ -1453,7 +1452,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } case ServerOP_CZClientMessageString: { auto buf = reinterpret_cast(pack->pBuffer); - client_list.SendPacket(buf->client_name, pack); + ClientList::Instance()->SendPacket(buf->client_name, pack); break; } case ServerOP_SharedTaskRequest: @@ -1564,12 +1563,12 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { { auto in = (GuildTributeMemberToggle *)pack->pBuffer; auto guild = guild_mgr.GetGuildByGuildID(in->guild_id); - auto c = client_list.FindCharacter(in->player_name); + auto c = ClientList::Instance()->FindCharacter(in->player_name); if (c) { c->SetGuildTributeOptIn(in->tribute_toggle ? true : false); } - auto cle = client_list.FindCLEByCharacterID(in->char_id); + auto cle = ClientList::Instance()->FindCLEByCharacterID(in->char_id); if (cle) { cle->SetGuildTributeOptIn(in->tribute_toggle ? true : false); } @@ -1685,7 +1684,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { return; } - auto trader = client_list.FindCLEByCharacterID(in->trader_buy_struct.trader_id); + auto trader = ClientList::Instance()->FindCLEByCharacterID(in->trader_buy_struct.trader_id); if (trader) { ZSList::Instance()->SendPacket(trader->zone(), trader->instance(), pack); } @@ -1709,7 +1708,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { break; } case Barter_SellItem: { - auto buyer = client_list.FindCharacter(in->buyer_name); + auto buyer = ClientList::Instance()->FindCharacter(in->buyer_name); if (buyer) { ZSList::Instance()->SendPacket(buyer->zone(), buyer->instance(), pack); } @@ -1718,7 +1717,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { } case Barter_FailedTransaction: case Barter_BuyerTransactionComplete: { - auto seller = client_list.FindCharacter(in->seller_name); + auto seller = ClientList::Instance()->FindCharacter(in->seller_name); if (seller) { ZSList::Instance()->SendPacket(seller->zone(), seller->instance(), pack); }