[Code] ClientList Global to Singleton Cleanup (#4942)

This commit is contained in:
Alex King 2025-06-25 14:49:42 -04:00 committed by GitHub
parent 4f7ff2d6f2
commit 2128b45313
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 65 additions and 59 deletions

View File

@ -67,7 +67,7 @@ void AdventureManager::Process()
void AdventureManager::CalculateAdventureRequestReply(const char *data) void AdventureManager::CalculateAdventureRequestReply(const char *data)
{ {
ServerAdventureRequest_Struct *sar = (ServerAdventureRequest_Struct*)data; ServerAdventureRequest_Struct *sar = (ServerAdventureRequest_Struct*)data;
ClientListEntry *leader = client_list.FindCharacter(sar->leader); ClientListEntry *leader = ClientList::Instance()->FindCharacter(sar->leader);
if(!leader) if(!leader)
{ {
return; return;
@ -184,7 +184,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
for(int i = 0; i < sar->member_count; ++i) for(int i = 0; i < sar->member_count; ++i)
{ {
ClientListEntry *current = client_list.FindCharacter((data + sizeof(ServerAdventureRequest_Struct) + (64 * i))); ClientListEntry *current = ClientList::Instance()->FindCharacter((data + sizeof(ServerAdventureRequest_Struct) + (64 * i)));
if(current) if(current)
{ {
int lvl = current->level(); int lvl = current->level();
@ -356,7 +356,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
void AdventureManager::TryAdventureCreate(const char *data) void AdventureManager::TryAdventureCreate(const char *data)
{ {
ServerAdventureRequestCreate_Struct *src = (ServerAdventureRequestCreate_Struct*)data; ServerAdventureRequestCreate_Struct *src = (ServerAdventureRequestCreate_Struct*)data;
ClientListEntry *leader = client_list.FindCharacter(src->leader); ClientListEntry *leader = ClientList::Instance()->FindCharacter(src->leader);
if(!leader) if(!leader)
{ {
return; return;
@ -403,7 +403,7 @@ void AdventureManager::TryAdventureCreate(const char *data)
for(int i = 0; i < src->member_count; ++i) for(int i = 0; i < src->member_count; ++i)
{ {
ClientListEntry *player = client_list.FindCharacter((data + sizeof(ServerAdventureRequestCreate_Struct) + (64 * i))); ClientListEntry *player = ClientList::Instance()->FindCharacter((data + sizeof(ServerAdventureRequestCreate_Struct) + (64 * i)));
if(player) if(player)
{ {
int f_count = 0; int f_count = 0;
@ -457,7 +457,7 @@ void AdventureManager::GetAdventureData(Adventure *adv)
void AdventureManager::GetAdventureData(const char *name) void AdventureManager::GetAdventureData(const char *name)
{ {
ClientListEntry *player = client_list.FindCharacter(name); ClientListEntry *player = ClientList::Instance()->FindCharacter(name);
if(player) if(player)
{ {
int f_count = 0; int f_count = 0;
@ -763,7 +763,7 @@ void AdventureManager::PlayerClickedDoor(const char *player, int zone_id, int do
{ {
if((*iter)->PlayerExists(player)) if((*iter)->PlayerExists(player))
{ {
ClientListEntry *pc = client_list.FindCharacter(player); ClientListEntry *pc = ClientList::Instance()->FindCharacter(player);
if(pc) if(pc)
{ {
auto pack = auto pack =
@ -791,7 +791,7 @@ void AdventureManager::PlayerClickedDoor(const char *player, int zone_id, int do
++iter; ++iter;
} }
ClientListEntry *pc = client_list.FindCharacter(player); ClientListEntry *pc = ClientList::Instance()->FindCharacter(player);
if(pc) if(pc)
{ {
auto pack = new ServerPacket(ServerOP_AdventureClickDoorError, 64); auto pack = new ServerPacket(ServerOP_AdventureClickDoorError, 64);
@ -803,7 +803,7 @@ void AdventureManager::PlayerClickedDoor(const char *player, int zone_id, int do
void AdventureManager::LeaveAdventure(const char *name) void AdventureManager::LeaveAdventure(const char *name)
{ {
ClientListEntry *pc = client_list.FindCharacter(name); ClientListEntry *pc = ClientList::Instance()->FindCharacter(name);
if(pc) if(pc)
{ {
Adventure *current = GetActiveAdventure(name); Adventure *current = GetActiveAdventure(name);
@ -866,7 +866,7 @@ void AdventureManager::IncrementCount(uint16 instance_id)
while(siter != slist.end()) while(siter != slist.end())
{ {
ClientListEntry *pc = client_list.FindCharacter((*siter).c_str()); ClientListEntry *pc = ClientList::Instance()->FindCharacter((*siter).c_str());
if(pc) if(pc)
{ {
memset(ac->player, 0, 64); memset(ac->player, 0, 64);
@ -1261,7 +1261,7 @@ void AdventureManager::DoLeaderboardRequest(const char* player, uint8 type)
void AdventureManager::DoLeaderboardRequestWins(const char* player) void AdventureManager::DoLeaderboardRequestWins(const char* player)
{ {
ClientListEntry *pc = client_list.FindCharacter(player); ClientListEntry *pc = ClientList::Instance()->FindCharacter(player);
if(pc) if(pc)
{ {
auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct)); auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct));
@ -1327,7 +1327,7 @@ void AdventureManager::DoLeaderboardRequestWins(const char* player)
void AdventureManager::DoLeaderboardRequestPercentage(const char* player) void AdventureManager::DoLeaderboardRequestPercentage(const char* player)
{ {
ClientListEntry *pc = client_list.FindCharacter(player); ClientListEntry *pc = ClientList::Instance()->FindCharacter(player);
if(pc) if(pc)
{ {
auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct)); auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct));
@ -1393,7 +1393,7 @@ void AdventureManager::DoLeaderboardRequestPercentage(const char* player)
void AdventureManager::DoLeaderboardRequestWinsGuk(const char* player) void AdventureManager::DoLeaderboardRequestWinsGuk(const char* player)
{ {
ClientListEntry *pc = client_list.FindCharacter(player); ClientListEntry *pc = ClientList::Instance()->FindCharacter(player);
if(pc) if(pc)
{ {
auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct)); auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct));
@ -1459,7 +1459,7 @@ void AdventureManager::DoLeaderboardRequestWinsGuk(const char* player)
void AdventureManager::DoLeaderboardRequestPercentageGuk(const char* player) void AdventureManager::DoLeaderboardRequestPercentageGuk(const char* player)
{ {
ClientListEntry *pc = client_list.FindCharacter(player); ClientListEntry *pc = ClientList::Instance()->FindCharacter(player);
if(pc) if(pc)
{ {
auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct)); auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct));
@ -1525,7 +1525,7 @@ void AdventureManager::DoLeaderboardRequestPercentageGuk(const char* player)
void AdventureManager::DoLeaderboardRequestWinsMir(const char* player) void AdventureManager::DoLeaderboardRequestWinsMir(const char* player)
{ {
ClientListEntry *pc = client_list.FindCharacter(player); ClientListEntry *pc = ClientList::Instance()->FindCharacter(player);
if(pc) if(pc)
{ {
auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct)); auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct));
@ -1591,7 +1591,7 @@ void AdventureManager::DoLeaderboardRequestWinsMir(const char* player)
void AdventureManager::DoLeaderboardRequestPercentageMir(const char* player) void AdventureManager::DoLeaderboardRequestPercentageMir(const char* player)
{ {
ClientListEntry *pc = client_list.FindCharacter(player); ClientListEntry *pc = ClientList::Instance()->FindCharacter(player);
if(pc) if(pc)
{ {
auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct)); auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct));
@ -1657,7 +1657,7 @@ void AdventureManager::DoLeaderboardRequestPercentageMir(const char* player)
void AdventureManager::DoLeaderboardRequestWinsMmc(const char* player) void AdventureManager::DoLeaderboardRequestWinsMmc(const char* player)
{ {
ClientListEntry *pc = client_list.FindCharacter(player); ClientListEntry *pc = ClientList::Instance()->FindCharacter(player);
if(pc) if(pc)
{ {
auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct)); auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct));
@ -1723,7 +1723,7 @@ void AdventureManager::DoLeaderboardRequestWinsMmc(const char* player)
void AdventureManager::DoLeaderboardRequestPercentageMmc(const char* player) void AdventureManager::DoLeaderboardRequestPercentageMmc(const char* player)
{ {
ClientListEntry *pc = client_list.FindCharacter(player); ClientListEntry *pc = ClientList::Instance()->FindCharacter(player);
if(pc) if(pc)
{ {
auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct)); auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct));
@ -1789,7 +1789,7 @@ void AdventureManager::DoLeaderboardRequestPercentageMmc(const char* player)
void AdventureManager::DoLeaderboardRequestWinsRuj(const char* player) void AdventureManager::DoLeaderboardRequestWinsRuj(const char* player)
{ {
ClientListEntry *pc = client_list.FindCharacter(player); ClientListEntry *pc = ClientList::Instance()->FindCharacter(player);
if(pc) if(pc)
{ {
auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct)); auto pack = new ServerPacket(ServerOP_AdventureLeaderboard, 64 + sizeof(AdventureLeaderboard_Struct));

View File

@ -94,7 +94,7 @@ ClientListEntry::~ClientListEntry()
{ {
if (RunLoops) { if (RunLoops) {
Camp(); // updates zoneserver's numplayers Camp(); // updates zoneserver's numplayers
client_list.RemoveCLEReferances(this); ClientList::Instance()->RemoveCLEReferances(this);
} }
for (auto &elem: m_tell_queue) { for (auto &elem: m_tell_queue) {
safe_delete_array(elem); safe_delete_array(elem);

View File

@ -85,6 +85,12 @@ public:
return {m_gm_zone_server_ids.begin(), m_gm_zone_server_ids.end()}; return {m_gm_zone_server_ids.begin(), m_gm_zone_server_ids.end()};
} }
static ClientList* Instance()
{
static ClientList instance;
return &instance;
}
private: private:
void OnTick(EQ::Timer *t); void OnTick(EQ::Timer *t);
inline uint32 GetNextCLEID() { return NextCLEID++; } inline uint32 GetNextCLEID() { return NextCLEID++; }

View File

@ -41,7 +41,7 @@ void DynamicZone::ChooseNewLeader()
auto it = std::find_if(m_members.begin(), m_members.end(), [&](const DynamicZoneMember& member) { auto it = std::find_if(m_members.begin(), m_members.end(), [&](const DynamicZoneMember& member) {
if (member.id != GetLeaderID() && member.IsOnline()) { if (member.id != GetLeaderID() && member.IsOnline()) {
auto member_cle = client_list.FindCLEByCharacterID(member.id); auto member_cle = ClientList::Instance()->FindCLEByCharacterID(member.id);
return (member_cle && member_cle->GetOnline() == CLE_Status::InZone); return (member_cle && member_cle->GetOnline() == CLE_Status::InZone);
} }
return false; return false;
@ -230,8 +230,8 @@ void DynamicZone::CacheMemberStatuses()
// called when a new dz is cached to fill member statuses // called when a new dz is cached to fill member statuses
std::string zone_name; std::string zone_name;
std::vector<ClientListEntry*> all_clients; std::vector<ClientListEntry*> all_clients;
all_clients.reserve(client_list.GetClientCount()); all_clients.reserve(ClientList::Instance()->GetClientCount());
client_list.GetClients(zone_name.c_str(), all_clients); ClientList::Instance()->GetClients(zone_name.c_str(), all_clients);
for (const auto& member : m_members) for (const auto& member : m_members)
{ {

View File

@ -210,7 +210,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
{ {
auto buf = reinterpret_cast<ServerDzCommand_Struct*>(pack->pBuffer); auto buf = reinterpret_cast<ServerDzCommand_Struct*>(pack->pBuffer);
ClientListEntry* cle = client_list.FindCharacter(buf->target_name); ClientListEntry* cle = ClientList::Instance()->FindCharacter(buf->target_name);
if (cle && cle->Server()) if (cle && cle->Server())
{ {
// continue in the add target's zone // continue in the add target's zone
@ -220,7 +220,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
else else
{ {
// add target not online, return to inviter // add target not online, return to inviter
ClientListEntry* inviter_cle = client_list.FindCharacter(buf->requester_name); ClientListEntry* inviter_cle = ClientList::Instance()->FindCharacter(buf->requester_name);
if (inviter_cle && inviter_cle->Server()) if (inviter_cle && inviter_cle->Server())
{ {
inviter_cle->Server()->SendPacket(pack); inviter_cle->Server()->SendPacket(pack);
@ -231,7 +231,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
case ServerOP_DzSaveInvite: case ServerOP_DzSaveInvite:
{ {
auto buf = reinterpret_cast<ServerDzCommand_Struct*>(pack->pBuffer); auto buf = reinterpret_cast<ServerDzCommand_Struct*>(pack->pBuffer);
if (ClientListEntry* cle = client_list.FindCharacter(buf->target_name)) if (ClientListEntry* cle = ClientList::Instance()->FindCharacter(buf->target_name))
{ {
// store packet on cle and re-send it when client requests it // store packet on cle and re-send it when client requests it
buf->is_char_online = true; buf->is_char_online = true;
@ -243,7 +243,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
case ServerOP_DzRequestInvite: case ServerOP_DzRequestInvite:
{ {
auto buf = reinterpret_cast<ServerCharacterID_Struct*>(pack->pBuffer); auto buf = reinterpret_cast<ServerCharacterID_Struct*>(pack->pBuffer);
if (ClientListEntry* cle = client_list.FindCLEByCharacterID(buf->char_id)) if (ClientListEntry* cle = ClientList::Instance()->FindCLEByCharacterID(buf->char_id))
{ {
auto invite_pack = cle->GetPendingDzInvite(); auto invite_pack = cle->GetPendingDzInvite();
if (invite_pack && cle->Server()) if (invite_pack && cle->Server())
@ -259,7 +259,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
// notify requester (old leader) and new leader of the result // notify requester (old leader) and new leader of the result
ZoneServer* new_leader_zs = nullptr; ZoneServer* new_leader_zs = nullptr;
ClientListEntry* leader_cle = client_list.FindCharacter(buf->new_leader_name); ClientListEntry* leader_cle = ClientList::Instance()->FindCharacter(buf->new_leader_name);
if (leader_cle && leader_cle->Server()) if (leader_cle && leader_cle->Server())
{ {
auto dz = DynamicZone::FindDynamicZoneByID(buf->dz_id); auto dz = DynamicZone::FindDynamicZoneByID(buf->dz_id);
@ -274,7 +274,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
} }
// if old and new leader are in the same zone only send one message // if old and new leader are in the same zone only send one message
ClientListEntry* requester_cle = client_list.FindCLEByCharacterID(buf->requester_id); ClientListEntry* requester_cle = ClientList::Instance()->FindCLEByCharacterID(buf->requester_id);
if (requester_cle && requester_cle->Server() && requester_cle->Server() != new_leader_zs) if (requester_cle && requester_cle->Server() && requester_cle->Server() != new_leader_zs)
{ {
requester_cle->Server()->SendPacket(pack); requester_cle->Server()->SendPacket(pack);
@ -441,7 +441,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
case ServerOP_DzCharacterLockout: case ServerOP_DzCharacterLockout:
{ {
auto buf = reinterpret_cast<ServerDzCharacterLockout_Struct*>(pack->pBuffer); auto buf = reinterpret_cast<ServerDzCharacterLockout_Struct*>(pack->pBuffer);
auto cle = client_list.FindCLEByCharacterID(buf->char_id); auto cle = ClientList::Instance()->FindCLEByCharacterID(buf->char_id);
if (cle && cle->Server()) if (cle && cle->Server())
{ {
cle->Server()->SendPacket(pack); cle->Server()->SendPacket(pack);

View File

@ -125,7 +125,7 @@ void callGetClientList(Json::Value &response, const std::vector<std::string> &ar
} }
} }
client_list.GetClientList(response, full_list); ClientList::Instance()->GetClientList(response, full_list);
} }
void getReloadTypes(Json::Value &response) void getReloadTypes(Json::Value &response)
@ -142,7 +142,7 @@ void getReloadTypes(Json::Value &response)
void getServerCounts(Json::Value &response, const std::vector<std::string> &args) void getServerCounts(Json::Value &response, const std::vector<std::string> &args)
{ {
response["zone_count"] = zoneserver_list.GetServerListCount(); response["zone_count"] = zoneserver_list.GetServerListCount();
response["client_count"] = client_list.GetClientCount(); response["client_count"] = ClientList::Instance()->GetClientCount();
} }
void EQEmuApiWorldDataService::reload(Json::Value &r, const std::vector<std::string> &args) void EQEmuApiWorldDataService::reload(Json::Value &r, const std::vector<std::string> &args)
@ -259,7 +259,7 @@ void EQEmuApiWorldDataService::callGetGuildDetails(Json::Value &response, const
row["tribute"]["time_remaining"] = guild->tribute.time_remaining; row["tribute"]["time_remaining"] = guild->tribute.time_remaining;
row["tribute"]["enabled"] = guild->tribute.enabled; row["tribute"]["enabled"] = guild->tribute.enabled;
client_list.GetGuildClientList(response, guild_id); ClientList::Instance()->GetGuildClientList(response, guild_id);
response.append(row); response.append(row);
} }

View File

@ -108,7 +108,7 @@ void LoginServer::ProcessUsertoWorldReqLeg(uint16_t opcode, EQ::Net::Packet &p)
} }
if (RuleB(World, EnforceCharacterLimitAtLogin)) { if (RuleB(World, EnforceCharacterLimitAtLogin)) {
if (client_list.IsAccountInGame(utwr->lsaccountid)) { if (ClientList::Instance()->IsAccountInGame(utwr->lsaccountid)) {
LogDebug("User already online account_id [{0}]", utwr->lsaccountid); LogDebug("User already online account_id [{0}]", utwr->lsaccountid);
utwrs->response = UserToWorldStatusAlreadyOnline; utwrs->response = UserToWorldStatusAlreadyOnline;
SendPacket(&outpack); SendPacket(&outpack);
@ -189,7 +189,7 @@ void LoginServer::ProcessUsertoWorldReq(uint16_t opcode, EQ::Net::Packet &p)
} }
if (RuleB(World, EnforceCharacterLimitAtLogin)) { if (RuleB(World, EnforceCharacterLimitAtLogin)) {
if (client_list.IsAccountInGame(utwr->lsaccountid)) { if (ClientList::Instance()->IsAccountInGame(utwr->lsaccountid)) {
LogDebug("User already online account_id [{0}]", utwr->lsaccountid); LogDebug("User already online account_id [{0}]", utwr->lsaccountid);
utwrs->response = UserToWorldStatusAlreadyOnline; utwrs->response = UserToWorldStatusAlreadyOnline;
SendPacket(&outpack); SendPacket(&outpack);
@ -221,7 +221,7 @@ void LoginServer::ProcessLSClientAuthLegacy(uint16_t opcode, EQ::Net::Packet &p)
r.is_client_from_local_network r.is_client_from_local_network
); );
client_list.CLEAdd( ClientList::Instance()->CLEAdd(
r.loginserver_account_id, r.loginserver_account_id,
"eqemu", "eqemu",
r.loginserver_account_name, r.loginserver_account_name,
@ -256,7 +256,7 @@ void LoginServer::ProcessLSClientAuth(uint16_t opcode, EQ::Net::Packet &p)
r.is_client_from_local_network r.is_client_from_local_network
); );
client_list.CLEAdd( ClientList::Instance()->CLEAdd(
r.loginserver_account_id, r.loginserver_account_id,
r.loginserver_name, r.loginserver_name,
r.account_name, r.account_name,

View File

@ -199,7 +199,7 @@ void SharedTaskManager::RemoveMember(SharedTask* s, const SharedTaskMember& memb
SendSharedTaskMemberRemovedToAllMembers(s, member.character_name); SendSharedTaskMemberRemovedToAllMembers(s, member.character_name);
client_list.SendCharacterMessageID(member.character_id, Chat::Yellow, ClientList::Instance()->SendCharacterMessageID(member.character_id, Chat::Yellow,
TaskStr::PLAYER_REMOVED, {member.character_name, s->GetTaskData().title}); TaskStr::PLAYER_REMOVED, {member.character_name, s->GetTaskData().title});
if (member.is_leader) { if (member.is_leader) {
@ -229,10 +229,10 @@ void SharedTaskManager::RemoveEveryoneFromSharedTask(SharedTask *t, uint32 reque
SendRemovePlayerFromSharedTaskPacket(m.character_id, t->GetTaskData().id, true); SendRemovePlayerFromSharedTaskPacket(m.character_id, t->GetTaskData().id, true);
client_list.SendCharacterMessageID(m.character_id, Chat::Yellow, TaskStr::YOU_REMOVED, {t->GetTaskData().title}); ClientList::Instance()->SendCharacterMessageID(m.character_id, Chat::Yellow, TaskStr::YOU_REMOVED, {t->GetTaskData().title});
} }
client_list.SendCharacterMessageID(requested_character_id, Chat::Red, TaskStr::PLAYER_REMOVED, {"Everyone", t->GetTaskData().title}); ClientList::Instance()->SendCharacterMessageID(requested_character_id, Chat::Red, TaskStr::PLAYER_REMOVED, {"Everyone", t->GetTaskData().title});
RemoveAllMembersFromDynamicZones(t); RemoveAllMembersFromDynamicZones(t);
@ -252,7 +252,7 @@ void SharedTaskManager::Terminate(SharedTask& s, bool send_fail, bool erase)
SendSharedTaskFailed(member.character_id, s.GetTaskData().id); SendSharedTaskFailed(member.character_id, s.GetTaskData().id);
} }
SendRemovePlayerFromSharedTaskPacket(member.character_id, s.GetTaskData().id, true); SendRemovePlayerFromSharedTaskPacket(member.character_id, s.GetTaskData().id, true);
client_list.SendCharacterMessageID(member.character_id, Chat::Yellow, TaskStr::HAS_ENDED, {s.GetTaskData().title}); ClientList::Instance()->SendCharacterMessageID(member.character_id, Chat::Yellow, TaskStr::HAS_ENDED, {s.GetTaskData().title});
} }
RemoveAllMembersFromDynamicZones(&s); RemoveAllMembersFromDynamicZones(&s);
@ -581,7 +581,7 @@ void SharedTaskManager::SharedTaskActivityUpdate(
d->ignore_quest_update = ignore_quest_update; d->ignore_quest_update = ignore_quest_update;
// get requested character zone server // get requested character zone server
ClientListEntry *c = client_list.FindCLEByCharacterID(m.character_id); ClientListEntry *c = ClientList::Instance()->FindCLEByCharacterID(m.character_id);
if (c && c->Server()) { if (c && c->Server()) {
c->Server()->SendPacket(p.get()); c->Server()->SendPacket(p.get());
} }
@ -683,7 +683,7 @@ void SharedTaskManager::SendAcceptNewSharedTaskPacket(
d->accept_time = accept_time; d->accept_time = accept_time;
// get requested character zone server // get requested character zone server
ClientListEntry *cle = client_list.FindCLEByCharacterID(character_id); ClientListEntry *cle = ClientList::Instance()->FindCLEByCharacterID(character_id);
if (cle && cle->Server()) { if (cle && cle->Server()) {
cle->Server()->SendPacket(p.get()); cle->Server()->SendPacket(p.get());
} }
@ -704,7 +704,7 @@ void SharedTaskManager::SendRemovePlayerFromSharedTaskPacket(
d->remove_from_db = remove_from_db; d->remove_from_db = remove_from_db;
// get requested character zone server // get requested character zone server
ClientListEntry *cle = client_list.FindCLEByCharacterID(character_id); ClientListEntry *cle = ClientList::Instance()->FindCLEByCharacterID(character_id);
if (cle && cle->Server()) { if (cle && cle->Server()) {
cle->Server()->SendPacket(p.get()); cle->Server()->SendPacket(p.get());
} }
@ -717,7 +717,7 @@ void SharedTaskManager::SendSharedTaskFailed(uint32_t character_id, uint32_t tas
buf->character_id = character_id; buf->character_id = character_id;
buf->task_id = task_id; buf->task_id = task_id;
ClientListEntry* cle = client_list.FindCLEByCharacterID(character_id); ClientListEntry* cle = ClientList::Instance()->FindCLEByCharacterID(character_id);
if (cle && cle->Server()) if (cle && cle->Server())
{ {
cle->Server()->SendPacket(&pack); cle->Server()->SendPacket(&pack);
@ -746,7 +746,7 @@ void SharedTaskManager::SendSharedTaskMemberList(uint32 character_id, const EQ::
memcpy(d->cereal_serialized_members, serialized_members.Data(), serialized_members.Length()); memcpy(d->cereal_serialized_members, serialized_members.Data(), serialized_members.Length());
// send memberlist // send memberlist
ClientListEntry *cle = client_list.FindCLEByCharacterID(character_id); ClientListEntry *cle = ClientList::Instance()->FindCLEByCharacterID(character_id);
if (cle && cle->Server()) { if (cle && cle->Server()) {
cle->Server()->SendPacket(p.get()); cle->Server()->SendPacket(p.get());
} }
@ -768,7 +768,7 @@ void SharedTaskManager::SendSharedTaskMemberChange(
d->removed = removed; d->removed = removed;
strn0cpy(d->player_name, player_name.c_str(), sizeof(d->player_name)); strn0cpy(d->player_name, player_name.c_str(), sizeof(d->player_name));
ClientListEntry *cle = client_list.FindCLEByCharacterID(character_id); ClientListEntry *cle = ClientList::Instance()->FindCLEByCharacterID(character_id);
if (cle && cle->Server()) { if (cle && cle->Server()) {
cle->Server()->SendPacket(p.get()); cle->Server()->SendPacket(p.get());
} }
@ -990,7 +990,7 @@ void SharedTaskManager::SendSharedTaskInvitePacket(SharedTask *s, int64 invited_
strn0cpy(d->task_name, s->GetTaskData().title.c_str(), sizeof(d->task_name)); strn0cpy(d->task_name, s->GetTaskData().title.c_str(), sizeof(d->task_name));
// get requested character zone server // get requested character zone server
ClientListEntry *cle = client_list.FindCLEByCharacterID(invited_character_id); ClientListEntry *cle = ClientList::Instance()->FindCLEByCharacterID(invited_character_id);
if (cle && cle->Server()) { if (cle && cle->Server()) {
SendLeaderMessageID(s, Chat::Yellow, TaskStr::SEND_INVITE_TO, {cle->name()}); SendLeaderMessageID(s, Chat::Yellow, TaskStr::SEND_INVITE_TO, {cle->name()});
cle->Server()->SendPacket(p.get()); cle->Server()->SendPacket(p.get());
@ -1213,7 +1213,7 @@ void SharedTaskManager::SendLeaderMessage(SharedTask *shared_task, int chat_type
for (const auto &member : shared_task->GetMembers()) { for (const auto &member : shared_task->GetMembers()) {
if (member.is_leader) { if (member.is_leader) {
client_list.SendCharacterMessage(member.character_id, chat_type, message); ClientList::Instance()->SendCharacterMessage(member.character_id, chat_type, message);
break; break;
} }
} }
@ -1230,7 +1230,7 @@ void SharedTaskManager::SendLeaderMessageID(
for (const auto &member : shared_task->GetMembers()) { for (const auto &member : shared_task->GetMembers()) {
if (member.is_leader) { if (member.is_leader) {
client_list.SendCharacterMessageID(member.character_id, chat_type, eqstr_id, args); ClientList::Instance()->SendCharacterMessageID(member.character_id, chat_type, eqstr_id, args);
break; break;
} }
} }
@ -1243,7 +1243,7 @@ void SharedTaskManager::SendMembersMessage(SharedTask *shared_task, int chat_typ
} }
for (const auto &member : shared_task->GetMembers()) { for (const auto &member : shared_task->GetMembers()) {
client_list.SendCharacterMessage(member.character_id, chat_type, message); ClientList::Instance()->SendCharacterMessage(member.character_id, chat_type, message);
} }
} }

View File

@ -68,7 +68,7 @@ void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack)
if (t) { if (t) {
auto leader = t->GetLeader(); auto leader = t->GetLeader();
if (leader.character_id != r->source_character_id) { if (leader.character_id != r->source_character_id) {
client_list.SendCharacterMessageID(r->source_character_id, Chat::Red, TaskStr::NOT_LEADER, {leader.character_name}); ClientList::Instance()->SendCharacterMessageID(r->source_character_id, Chat::Red, TaskStr::NOT_LEADER, {leader.character_name});
} }
else { else {
shared_task_manager.RemoveEveryoneFromSharedTask(t, r->source_character_id); shared_task_manager.RemoveEveryoneFromSharedTask(t, r->source_character_id);
@ -144,7 +144,7 @@ void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack)
auto leader = t->GetLeader(); auto leader = t->GetLeader();
if (leader.character_id != r->source_character_id) { if (leader.character_id != r->source_character_id) {
client_list.SendCharacterMessageID(r->source_character_id, Chat::Red, TaskStr::NOT_LEADER, {leader.character_name}); ClientList::Instance()->SendCharacterMessageID(r->source_character_id, Chat::Red, TaskStr::NOT_LEADER, {leader.character_name});
} }
else { else {
LogTasksDetail( LogTasksDetail(
@ -186,10 +186,10 @@ void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack)
auto leader = t->GetLeader(); auto leader = t->GetLeader();
if (leader.character_id != r->source_character_id) { if (leader.character_id != r->source_character_id) {
client_list.SendCharacterMessageID(r->source_character_id, Chat::Red, TaskStr::NOT_LEADER, {leader.character_name}); ClientList::Instance()->SendCharacterMessageID(r->source_character_id, Chat::Red, TaskStr::NOT_LEADER, {leader.character_name});
} }
else if (strcasecmp(leader.character_name.c_str(), r->player_name) == 0) { else if (strcasecmp(leader.character_name.c_str(), r->player_name) == 0) {
client_list.SendCharacterMessageID(r->source_character_id, Chat::Red, TaskStr::YOU_ALREADY_LEADER); ClientList::Instance()->SendCharacterMessageID(r->source_character_id, Chat::Red, TaskStr::YOU_ALREADY_LEADER);
} }
else { else {
LogTasksDetail( LogTasksDetail(
@ -226,7 +226,7 @@ void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack)
auto leader = t->GetLeader(); auto leader = t->GetLeader();
if (leader.character_id != r->source_character_id) { if (leader.character_id != r->source_character_id) {
// taskadd is client sided with System color in newer clients, server side might still be red // taskadd is client sided with System color in newer clients, server side might still be red
client_list.SendCharacterMessageID(r->source_character_id, Chat::Red, TaskStr::NOT_LEADER, {leader.character_name}); ClientList::Instance()->SendCharacterMessageID(r->source_character_id, Chat::Red, TaskStr::NOT_LEADER, {leader.character_name});
} }
else { else {
LogTasksDetail( LogTasksDetail(
@ -319,12 +319,12 @@ void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack)
player_names.emplace_back(member.character_name); player_names.emplace_back(member.character_name);
if (member.is_leader) { if (member.is_leader) {
client_list.SendCharacterMessageID(buf->source_character_id, Chat::Yellow, TaskStr::LEADER_PRINT, {member.character_name}); ClientList::Instance()->SendCharacterMessageID(buf->source_character_id, Chat::Yellow, TaskStr::LEADER_PRINT, {member.character_name});
} }
} }
std::string player_list = fmt::format("{}", Strings::Join(player_names, ", ")); std::string player_list = fmt::format("{}", Strings::Join(player_names, ", "));
client_list.SendCharacterMessageID(buf->source_character_id, Chat::Yellow, TaskStr::MEMBERS_PRINT, {player_list}); ClientList::Instance()->SendCharacterMessageID(buf->source_character_id, Chat::Yellow, TaskStr::MEMBERS_PRINT, {player_list});
} }
break; break;

View File

@ -913,7 +913,7 @@ bool ZSList::SendPacketToBootedZones(ServerPacket* pack)
bool ZSList::SendPacketToZonesWithGuild(uint32 guild_id, ServerPacket* pack) bool ZSList::SendPacketToZonesWithGuild(uint32 guild_id, ServerPacket* pack)
{ {
auto servers = client_list.GetGuildZoneServers(guild_id); auto servers = ClientList::Instance()->GetGuildZoneServers(guild_id);
for (auto const& z : zone_server_list) { for (auto const& z : zone_server_list) {
for (auto const& server_id : servers) { for (auto const& server_id : servers) {
if (z->GetID() == server_id && z->GetZoneID() > 0) { if (z->GetID() == server_id && z->GetZoneID() > 0) {
@ -927,7 +927,7 @@ bool ZSList::SendPacketToZonesWithGuild(uint32 guild_id, ServerPacket* pack)
bool ZSList::SendPacketToZonesWithGMs(ServerPacket* pack) bool ZSList::SendPacketToZonesWithGMs(ServerPacket* pack)
{ {
auto servers = client_list.GetZoneServersWithGMs(); auto servers = ClientList::Instance()->GetZoneServersWithGMs();
for (auto const &z: zone_server_list) { for (auto const &z: zone_server_list) {
for (auto const &server_id: servers) { for (auto const &server_id: servers) {
if (z->GetID() == server_id && z->GetZoneID() > 0) { if (z->GetID() == server_id && z->GetZoneID() > 0) {