[Hotfix] Fix ClientList Singleton Shortcomings of #4942

This commit is contained in:
Chris Miles 2025-06-25 15:50:34 -05:00
parent 50ae0f8351
commit 2c6d405b2c
20 changed files with 80 additions and 109 deletions

View File

@ -15,7 +15,6 @@
#include "../common/zone_store.h" #include "../common/zone_store.h"
#include "../common/repositories/character_corpses_repository.h" #include "../common/repositories/character_corpses_repository.h"
extern ClientList client_list;
extern EQ::Random emu_random; extern EQ::Random emu_random;
Adventure::Adventure(AdventureTemplate *t) Adventure::Adventure(AdventureTemplate *t)
@ -228,7 +227,7 @@ void Adventure::SendAdventureMessage(uint32 type, const char *msg)
auto iter = players.begin(); auto iter = players.begin();
while(iter != players.end()) while(iter != players.end())
{ {
ClientListEntry *current = client_list.FindCharacter((*iter).c_str()); ClientListEntry *current = ClientList::Instance()->FindCharacter((*iter).c_str());
if(current) if(current)
{ {
strcpy(sms->to, (*iter).c_str()); strcpy(sms->to, (*iter).c_str());
@ -281,7 +280,7 @@ void Adventure::Finished(AdventureWinStatus ws)
{ {
auto iter = players.begin(); auto iter = players.begin();
while (iter != players.end()) { 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); auto character_id = database.GetCharacterID(*iter);
if (character_id == 0) { if (character_id == 0) {

View File

@ -14,8 +14,6 @@
#include <sstream> #include <sstream>
#include <stdio.h> #include <stdio.h>
extern ClientList client_list;
AdventureManager::AdventureManager() AdventureManager::AdventureManager()
{ {
process_timer = new Timer(500); process_timer = new Timer(500);
@ -1854,7 +1852,7 @@ void AdventureManager::DoLeaderboardRequestWinsRuj(const char* player)
void AdventureManager::DoLeaderboardRequestPercentageRuj(const char* player) void AdventureManager::DoLeaderboardRequestPercentageRuj(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));
@ -1920,7 +1918,7 @@ void AdventureManager::DoLeaderboardRequestPercentageRuj(const char* player)
void AdventureManager::DoLeaderboardRequestWinsTak(const char* player) void AdventureManager::DoLeaderboardRequestWinsTak(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));
@ -1986,7 +1984,7 @@ void AdventureManager::DoLeaderboardRequestWinsTak(const char* player)
void AdventureManager::DoLeaderboardRequestPercentageTak(const char* player) void AdventureManager::DoLeaderboardRequestPercentageTak(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));
@ -2072,7 +2070,7 @@ bool AdventureManager::PopFinishedEvent(const char *name, AdventureFinishEvent &
void AdventureManager::SendAdventureFinish(AdventureFinishEvent fe) 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) if(pc)
{ {
auto pack = new ServerPacket(ServerOP_AdventureFinish, sizeof(ServerAdventureFinish_Struct)); auto pack = new ServerPacket(ServerOP_AdventureFinish, sizeof(ServerAdventureFinish_Struct));

View File

@ -89,7 +89,6 @@
std::vector<RaceClassAllocation> character_create_allocations; std::vector<RaceClassAllocation> character_create_allocations;
std::vector<RaceClassCombos> character_create_race_class_combos; std::vector<RaceClassCombos> character_create_race_class_combos;
extern ClientList client_list;
extern uint32 numclients; extern uint32 numclients;
extern volatile bool RunLoops; extern volatile bool RunLoops;
extern volatile bool UCSServerAvailable_; extern volatile bool UCSServerAvailable_;
@ -476,7 +475,7 @@ bool Client::HandleSendLoginInfoPacket(const EQApplicationPacket *app)
LogClientLogin("Checking authentication id [{}]", id); LogClientLogin("Checking authentication id [{}]", id);
if ((cle = client_list.CheckAuth(id, password))) { if ((cle = ClientList::Instance()->CheckAuth(id, password))) {
LoadDataBucketsCache(); LoadDataBucketsCache();
LogClientLogin("Checking authentication id [{}] passed", id); LogClientLogin("Checking authentication id [{}] passed", id);
@ -799,7 +798,7 @@ bool Client::HandleEnterWorldPacket(const EQApplicationPacket *app) {
RuleB(World, EnableIPExemptions) || RuleB(World, EnableIPExemptions) ||
RuleI(World, MaxClientsPerIP) > 0 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; auto ew = (EnterWorld_Struct *) app->pBuffer;

View File

@ -9,7 +9,6 @@
#include "world_config.h" #include "world_config.h"
extern uint32 numplayers; extern uint32 numplayers;
extern ClientList client_list;
extern volatile bool RunLoops; extern volatile bool RunLoops;
ClientListEntry::ClientListEntry( ClientListEntry::ClientListEntry(

View File

@ -33,8 +33,6 @@
#include "../common/zone_store.h" #include "../common/zone_store.h"
#include <fmt/format.h> #include <fmt/format.h>
extern ClientList client_list;
/** /**
* @param username * @param username
* @param password * @param password
@ -191,7 +189,7 @@ void ConsoleWho(
} }
WorldConsoleTCPConnection console_connection(connection); 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()) { if (!args.empty()) {
WorldConsoleTCPConnection console_connection(connection); 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());
} }
} }

View File

@ -8,8 +8,6 @@
#include "../common/eqemu_logsys.h" #include "../common/eqemu_logsys.h"
#include "../common/repositories/instance_list_repository.h" #include "../common/repositories/instance_list_repository.h"
extern ClientList client_list;
Database& DynamicZone::GetDatabase() Database& DynamicZone::GetDatabase()
{ {
return database; return database;

View File

@ -9,8 +9,6 @@
#include "../common/repositories/dynamic_zone_lockouts_repository.h" #include "../common/repositories/dynamic_zone_lockouts_repository.h"
#include <cereal/types/utility.hpp> #include <cereal/types/utility.hpp>
extern ClientList client_list;
DynamicZoneManager dynamic_zone_manager; DynamicZoneManager dynamic_zone_manager;
DynamicZoneManager::DynamicZoneManager() : DynamicZoneManager::DynamicZoneManager() :

View File

@ -13,7 +13,6 @@
#include "ucs.h" #include "ucs.h"
#include "queryserv.h" #include "queryserv.h"
extern ClientList client_list;
extern WorldGuildManager guild_mgr; extern WorldGuildManager guild_mgr;
void callGetZoneList(Json::Value &response) void callGetZoneList(Json::Value &response)

View File

@ -45,7 +45,6 @@
#include <algorithm> #include <algorithm>
extern ClientList client_list;
extern uint32 numzones; extern uint32 numzones;
extern LauncherList launcher_list; extern LauncherList launcher_list;
extern volatile bool RunLoops; extern volatile bool RunLoops;
@ -156,7 +155,7 @@ std::map<std::string,std::string> EQW::GetZoneDetails(Const_char *zone_ref) {
} }
int EQW::CountPlayers() { int EQW::CountPlayers() {
return(client_list.GetClientCount()); return(ClientList::Instance()->GetClientCount());
} }
//returns an array of character names in the zone (empty=all zones) //returns an array of character names in the zone (empty=all zones)
@ -164,7 +163,7 @@ std::vector<std::string> EQW::ListPlayers(Const_char *zone_name) {
std::vector<std::string> res; std::vector<std::string> res;
std::vector<ClientListEntry *> list; std::vector<ClientListEntry *> list;
client_list.GetClients(zone_name, list); ClientList::Instance()->GetClients(zone_name, list);
std::vector<ClientListEntry *>::iterator cur, end; std::vector<ClientListEntry *>::iterator cur, end;
cur = list.begin(); cur = list.begin();
@ -178,7 +177,7 @@ std::vector<std::string> EQW::ListPlayers(Const_char *zone_name) {
std::map<std::string,std::string> EQW::GetPlayerDetails(Const_char *char_name) { std::map<std::string,std::string> EQW::GetPlayerDetails(Const_char *char_name) {
std::map<std::string,std::string> res; std::map<std::string,std::string> res;
ClientListEntry *cle = client_list.FindCharacter(char_name); ClientListEntry *cle = ClientList::Instance()->FindCharacter(char_name);
if(cle == nullptr) { if(cle == nullptr) {
res["error"] = "1"; res["error"] = "1";
return(res); 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 EQW::CreateGuild(const char* name, uint32 leader_char_id) {
uint32 id = guild_mgr.CreateGuild(name, leader_char_id); uint32 id = guild_mgr.CreateGuild(name, leader_char_id);
if(id != GUILD_NONE) if(id != GUILD_NONE)
client_list.UpdateClientGuild(leader_char_id, id); ClientList::Instance()->UpdateClientGuild(leader_char_id, id);
return(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) { 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)); return(guild_mgr.SetGuild(charid, guild_id, rank));
} }

View File

@ -25,8 +25,6 @@
#include "../common/misc_functions.h" #include "../common/misc_functions.h"
#include "../common/classes.h" #include "../common/classes.h"
extern ClientList client_list;
GroupLFP::GroupLFP(uint32 inLeaderID) { GroupLFP::GroupLFP(uint32 inLeaderID) {
LeaderID = inLeaderID; LeaderID = inLeaderID;
@ -68,7 +66,7 @@ void GroupLFP::SetDetails(ServerLFPUpdate_Struct *Update) {
} }
// Otherwise try and find the information ourselves. // Otherwise try and find the information ourselves.
else { else {
CLE = client_list.FindCharacter(Members[i].Name); CLE = ClientList::Instance()->FindCharacter(Members[i].Name);
if(CLE) { if(CLE) {
Members[i].Class = CLE->class_(); Members[i].Class = CLE->class_();
Members[i].Level = CLE->level(); Members[i].Level = CLE->level();
@ -124,7 +122,7 @@ void GroupLFPList::Process() {
if(GroupMembers[i].Name[0] == '\0') if(GroupMembers[i].Name[0] == '\0')
continue; continue;
ClientListEntry *CLE = client_list.FindCharacter(GroupMembers[i].Name); ClientListEntry *CLE = ClientList::Instance()->FindCharacter(GroupMembers[i].Name);
if(!CLE) { if(!CLE) {
// The first member entry is always the person who posted the LFP group, either // 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 // 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 != nullptr) {
if (CLE->Server() != nullptr) if (CLE->Server() != nullptr)
CLE->Server()->SendPacket(Pack); CLE->Server()->SendPacket(Pack);

View File

@ -20,7 +20,6 @@
#include "cliententry.h" #include "cliententry.h"
#include "world_config.h" #include "world_config.h"
extern ClientList client_list;
extern uint32 numzones; extern uint32 numzones;
extern uint32 numplayers; extern uint32 numplayers;
extern volatile bool RunLoops; extern volatile bool RunLoops;

View File

@ -36,7 +36,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#include "clientlist.h" #include "clientlist.h"
#include "world_config.h" #include "world_config.h"
extern ClientList client_list;
extern uint32 numzones; extern uint32 numzones;
extern uint32 numplayers; extern uint32 numplayers;
extern volatile bool RunLoops; extern volatile bool RunLoops;

View File

@ -91,7 +91,6 @@
#include "../common/repositories/character_parcels_repository.h" #include "../common/repositories/character_parcels_repository.h"
#include "../common/ip_util.h" #include "../common/ip_util.h"
ClientList client_list;
GroupLFPList LFPGroupList; GroupLFPList LFPGroupList;
LauncherList launcher_list; LauncherList launcher_list;
volatile bool RunLoops = true; 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)); LogInfo("Connection [{}] PASSED banned IPs check. Processing connection", inet_ntoa(in));
auto client = new Client(eqsi); auto client = new Client(eqsi);
// @merth: client->zoneattempt=0; // @merth: client->zoneattempt=0;
client_list.Add(client); ClientList::Instance()->Add(client);
} }
else { else {
LogInfo("Connection from [{}] failed banned IPs check. Closing connection", inet_ntoa(in)); 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); auto client = new Client(eqsi);
// @merth: client->zoneattempt=0; // @merth: client->zoneattempt=0;
client_list.Add(client); ClientList::Instance()->Add(client);
} }
} }
WorldEventScheduler::Instance()->Process(ZSList::Instance()); WorldEventScheduler::Instance()->Process(ZSList::Instance());
client_list.Process(); ClientList::Instance()->Process();
guild_mgr.Process(); guild_mgr.Process();
if (parcel_prune_timer.Check()) { if (parcel_prune_timer.Check()) {
@ -477,7 +476,7 @@ int main(int argc, char **argv)
std::string window_title = fmt::format( std::string window_title = fmt::format(
"World [{}] Clients [{}]", "World [{}] Clients [{}]",
Config->LongName, Config->LongName,
client_list.GetClientCount() ClientList::Instance()->GetClientCount()
); );
UpdateWindowTitle(window_title); UpdateWindowTitle(window_title);
} }

View File

@ -9,8 +9,6 @@
#include "../common/md5.h" #include "../common/md5.h"
#include "../common/packet_dump.h" #include "../common/packet_dump.h"
extern ClientList client_list;
QueryServConnection::QueryServConnection() QueryServConnection::QueryServConnection()
{ {
} }

View File

@ -17,8 +17,6 @@
#include "../common/repositories/shared_task_dynamic_zones_repository.h" #include "../common/repositories/shared_task_dynamic_zones_repository.h"
#include <ctime> #include <ctime>
extern ClientList client_list;
SharedTaskManager::SharedTaskManager() SharedTaskManager::SharedTaskManager()
: m_process_timer{ static_cast<uint32_t>(RuleI(TaskSystem, SharedTasksWorldProcessRate)) } : m_process_timer{ static_cast<uint32_t>(RuleI(TaskSystem, SharedTasksWorldProcessRate)) }
{ {
@ -1273,7 +1271,7 @@ void SharedTaskManager::SendMembersMessageID(
memcpy(buf->args, serialized_args.buffer(), serialized_args.size()); memcpy(buf->args, serialized_args.buffer(), serialized_args.size());
for (const auto &member : shared_task->GetMembers()) { 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()) { if (character && character->Server()) {
strn0cpy(buf->client_name, character->name(), sizeof(buf->client_name)); strn0cpy(buf->client_name, character->name(), sizeof(buf->client_name));
character->Server()->SendPacket(pack.get()); 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 // messages for every character already in a shared task
for (const auto& it : shared_task_members) { for (const auto& it : shared_task_members) {
if (it.character_id == request.leader_id) { 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) { 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 { 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) // 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) { 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; return false;
} }
// check if any party member's maximum level is too high (pre-2014 this was average level) // 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) { 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; return false;
} }
// allow gm/dev bypass for minimum player count requirements // 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()); bool is_gm = (requester && requester->GetGM());
// check if party member count is below the minimum // check if party member count is below the minimum
if (!is_gm && task.min_players > 0 && request.members.size() < task.min_players) { 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; return false;
} }
if (is_gm) { 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 // 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) // 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) { 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; return false;
} }
// check if party level spread exceeds task's maximum // check if party level spread exceeds task's maximum
if (task.level_spread > 0 && (request.highest_level - request.lowest_level) > task.level_spread) { 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; 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 (character_task_timers.front().character_id == request.leader_id) {
if (timer_type == TaskTimerType::Replay) { 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) { 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)); 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) { 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}); TaskStr::PLAYER_REPLAY_TIMER, {it->character_name, days, hours, mins});
} }
else if (it != request.members.end() && timer_type == TaskTimerType::Request) { 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)); 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) // 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()) { if (!cle || !cle->Server()) {
SendLeaderMessageID(s, Chat::Red, TaskStr::PLAYER_NOT_ONLINE, {player_name}); SendLeaderMessageID(s, Chat::Red, TaskStr::PLAYER_NOT_ONLINE, {player_name});
SendLeaderMessageID(s, Chat::Red, TaskStr::COULD_NOT_BE_INVITED, {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); task_timers.emplace_back(timer);
client_list.SendCharacterMessage( ClientList::Instance()->SendCharacterMessage(
member_id, member_id,
Chat::Yellow, Chat::Yellow,
fmt::format( fmt::format(

View File

@ -14,8 +14,6 @@
#include "../common/repositories/task_activities_repository.h" #include "../common/repositories/task_activities_repository.h"
#include "dynamic_zone.h" #include "dynamic_zone.h"
extern ClientList client_list;
void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack) void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack)
{ {
switch (pack->opcode) { switch (pack->opcode) {

View File

@ -6,7 +6,6 @@
#include "zonelist.h" #include "zonelist.h"
#include "launcher_list.h" #include "launcher_list.h"
extern ClientList client_list;
extern LauncherList launcher_list; extern LauncherList launcher_list;
void EQW__GetConfig(WebInterface *i, const std::string& method, const std::string& id, const Json::Value& params) { 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) { 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); i->SendResponse(id, ret);
} }

View File

@ -34,8 +34,6 @@
#include "../common/repositories/tributes_repository.h" #include "../common/repositories/tributes_repository.h"
#include "../common/repositories/tribute_levels_repository.h" #include "../common/repositories/tribute_levels_repository.h"
extern ClientList client_list;
std::map<uint32, TributeData> tribute_list; std::map<uint32, TributeData> tribute_list;
WorldGuildManager guild_mgr; WorldGuildManager guild_mgr;
@ -102,7 +100,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
RefreshGuild(s->guild_id); RefreshGuild(s->guild_id);
//preform the local update //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. //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. //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) 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 = guild_members.size();
auto total_cost = 0; auto total_cost = 0;

View File

@ -42,7 +42,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#include "../common/repositories/buyer_repository.h" #include "../common/repositories/buyer_repository.h"
extern uint32 numzones; extern uint32 numzones;
extern ClientList client_list;
volatile bool UCSServerAvailable_ = false; volatile bool UCSServerAvailable_ = false;
void CatchSignal(int sig_num); void CatchSignal(int sig_num);

View File

@ -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/trader_repository.h"
#include "../common/repositories/buyer_repository.h" #include "../common/repositories/buyer_repository.h"
extern ClientList client_list;
extern GroupLFPList LFPGroupList; extern GroupLFPList LFPGroupList;
extern volatile bool RunLoops; extern volatile bool RunLoops;
extern volatile bool UCSServerAvailable_; extern volatile bool UCSServerAvailable_;
@ -91,7 +90,7 @@ ZoneServer::ZoneServer(std::shared_ptr<EQ::Net::ServertalkServerConnection> in_c
ZoneServer::~ZoneServer() { ZoneServer::~ZoneServer() {
if (RunLoops) { 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) { if (!zone_server_zone_id) {
client_list.CLERemoveZSRef(this); ClientList::Instance()->CLERemoveZSRef(this);
zone_player_count = 0; zone_player_count = 0;
LSSleepUpdate(GetPrevZoneID()); 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(zone_name, zone_short_name.c_str(), sizeof(zone_name));
strn0cpy(long_name, zone_long_name.c_str(), sizeof(long_name)); strn0cpy(long_name, zone_long_name.c_str(), sizeof(long_name));
client_list.ZoneBootup(this); ClientList::Instance()->ZoneBootup(this);
zone_boot_timer.Start(); zone_boot_timer.Start();
return true; return true;
@ -202,7 +201,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
} }
auto gis = (GroupInvite_Struct*) pack->pBuffer; auto gis = (GroupInvite_Struct*) pack->pBuffer;
client_list.SendPacket(gis->invitee_name, pack); ClientList::Instance()->SendPacket(gis->invitee_name, pack);
break; break;
} }
case ServerOP_GroupFollow: { case ServerOP_GroupFollow: {
@ -211,7 +210,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
} }
auto sgfs = (ServerGroupFollow_Struct*) pack->pBuffer; auto sgfs = (ServerGroupFollow_Struct*) pack->pBuffer;
client_list.SendPacket(sgfs->gf.name1, pack); ClientList::Instance()->SendPacket(sgfs->gf.name1, pack);
break; break;
} }
case ServerOP_GroupFollowAck: { case ServerOP_GroupFollowAck: {
@ -220,7 +219,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
} }
auto sgfas = (ServerGroupFollowAck_Struct*) pack->pBuffer; auto sgfas = (ServerGroupFollowAck_Struct*) pack->pBuffer;
client_list.SendPacket(sgfas->Name, pack); ClientList::Instance()->SendPacket(sgfas->Name, pack);
break; break;
} }
case ServerOP_GroupCancelInvite: { case ServerOP_GroupCancelInvite: {
@ -229,7 +228,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
} }
auto gcs = (GroupCancel_Struct*) pack->pBuffer; auto gcs = (GroupCancel_Struct*) pack->pBuffer;
client_list.SendPacket(gcs->name1, pack); ClientList::Instance()->SendPacket(gcs->name1, pack);
break; break;
} }
case ServerOP_GroupIDReq: { case ServerOP_GroupIDReq: {
@ -448,7 +447,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
auto scm2 = (ServerChannelMessage_Struct*) pack->pBuffer; auto scm2 = (ServerChannelMessage_Struct*) pack->pBuffer;
strcpy(scm2->deliverto, scm2->from); strcpy(scm2->deliverto, scm2->from);
scm2->noreply = true; scm2->noreply = true;
client_list.SendPacket(scm->from, pack); ClientList::Instance()->SendPacket(scm->from, pack);
safe_delete(pack); safe_delete(pack);
} }
) )
@ -470,7 +469,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
break; break;
} }
auto cle = client_list.FindCharacter(scm->deliverto); auto cle = ClientList::Instance()->FindCharacter(scm->deliverto);
if ( if (
!cle || !cle ||
cle->Online() < CLE_Status::Zoning || cle->Online() < CLE_Status::Zoning ||
@ -483,7 +482,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
) )
) { ) {
if (!scm->noreply) { if (!scm->noreply) {
auto sender = client_list.FindCharacter(scm->from); auto sender = ClientList::Instance()->FindCharacter(scm->from);
if (!sender || !sender->Server()) { if (!sender || !sender->Server()) {
break; break;
} }
@ -497,7 +496,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
} }
else if (cle->Online() == CLE_Status::Zoning) { else if (cle->Online() == CLE_Status::Zoning) {
if (!scm->noreply) { if (!scm->noreply) {
auto sender = client_list.FindCharacter(scm->from); auto sender = ClientList::Instance()->FindCharacter(scm->from);
if (cle->TellQueueFull()) { if (cle->TellQueueFull()) {
if (!sender || !sender->Server()) { if (!sender || !sender->Server()) {
break; break;
@ -560,7 +559,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
auto scm2 = (ServerChannelMessage_Struct*) pack->pBuffer; auto scm2 = (ServerChannelMessage_Struct*) pack->pBuffer;
strcpy(scm2->deliverto, scm2->from); strcpy(scm2->deliverto, scm2->from);
scm2->noreply = true; scm2->noreply = true;
client_list.SendPacket(scm->from, pack); ClientList::Instance()->SendPacket(scm->from, pack);
safe_delete(pack); safe_delete(pack);
} }
); );
@ -591,7 +590,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
case ServerOP_VoiceMacro: { case ServerOP_VoiceMacro: {
auto svm = (ServerVoiceMacro_Struct*) pack->pBuffer; auto svm = (ServerVoiceMacro_Struct*) pack->pBuffer;
if (svm->Type == VoiceMacroTell) { if (svm->Type == VoiceMacroTell) {
auto cle = client_list.FindCharacter(svm->To); auto cle = ClientList::Instance()->FindCharacter(svm->To);
if ( if (
!cle || !cle ||
cle->Online() < CLE_Status::Zoning || cle->Online() < CLE_Status::Zoning ||
@ -628,12 +627,12 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
} }
case ServerOP_RezzPlayerReject: { case ServerOP_RezzPlayerReject: {
auto recipient = (char*) pack->pBuffer; auto recipient = (char*) pack->pBuffer;
client_list.SendPacket(recipient, pack); ClientList::Instance()->SendPacket(recipient, pack);
break; break;
} }
case ServerOP_MultiLineMsg: { case ServerOP_MultiLineMsg: {
auto mlm = (ServerMultiLineMsg_Struct*) pack->pBuffer; auto mlm = (ServerMultiLineMsg_Struct*) pack->pBuffer;
client_list.SendPacket(mlm->to, pack); ClientList::Instance()->SendPacket(mlm->to, pack);
break; break;
} }
case ServerOP_SetZone: { case ServerOP_SetZone: {
@ -775,7 +774,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
} }
auto wtz = (WorldToZone_Struct*) pack->pBuffer; auto wtz = (WorldToZone_Struct*) pack->pBuffer;
auto client = client_list.FindByAccountID(wtz->account_id); auto client = ClientList::Instance()->FindByAccountID(wtz->account_id);
if (client) { if (client) {
client->Clearance(wtz->response); client->Clearance(wtz->response);
} }
@ -798,7 +797,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
auto ztz = (ZoneToZone_Struct*) pack->pBuffer; auto ztz = (ZoneToZone_Struct*) pack->pBuffer;
ClientListEntry* client = nullptr; ClientListEntry* client = nullptr;
if (WorldConfig::get()->UpdateStats) { if (WorldConfig::get()->UpdateStats) {
client = client_list.FindCharacter(ztz->name); client = ClientList::Instance()->FindCharacter(ztz->name);
} }
LogZoning( LogZoning(
@ -919,7 +918,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
} }
auto scl = (ServerClientList_Struct*) pack->pBuffer; auto scl = (ServerClientList_Struct*) pack->pBuffer;
client_list.ClientUpdate(this, scl); ClientList::Instance()->ClientUpdate(this, scl);
break; break;
} }
case ServerOP_ClientListKA: { case ServerOP_ClientListKA: {
@ -929,7 +928,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
break; break;
} }
client_list.CLEKeepAlive(sclka->numupdates, sclka->wid); ClientList::Instance()->CLEKeepAlive(sclka->numupdates, sclka->wid);
break; break;
} }
case ServerOP_Who: { case ServerOP_Who: {
@ -942,28 +941,28 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
whom->wclass = whoall->wclass; whom->wclass = whoall->wclass;
whom->wrace = whoall->wrace; whom->wrace = whoall->wrace;
strn0cpy(whom->whom, whoall->whom, sizeof(whom->whom)); 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); safe_delete(whom);
break; break;
} }
case ServerOP_RequestOnlineGuildMembers: { case ServerOP_RequestOnlineGuildMembers: {
auto srogms = (ServerRequestOnlineGuildMembers_Struct*) pack->pBuffer; auto srogms = (ServerRequestOnlineGuildMembers_Struct*) pack->pBuffer;
client_list.SendOnlineGuildMembers(srogms->FromID, srogms->GuildID); ClientList::Instance()->SendOnlineGuildMembers(srogms->FromID, srogms->GuildID);
break; break;
} }
case ServerOP_ClientVersionSummary: { case ServerOP_ClientVersionSummary: {
auto srcvss = (ServerRequestClientVersionSummary_Struct*) pack->pBuffer; auto srcvss = (ServerRequestClientVersionSummary_Struct*) pack->pBuffer;
client_list.SendClientVersionSummary(srcvss->Name); ClientList::Instance()->SendClientVersionSummary(srcvss->Name);
break; break;
} }
case ServerOP_FriendsWho: { case ServerOP_FriendsWho: {
auto sfw = (ServerFriendsWho_Struct*) pack->pBuffer; auto sfw = (ServerFriendsWho_Struct*) pack->pBuffer;
client_list.SendFriendsWho(sfw, this); ClientList::Instance()->SendFriendsWho(sfw, this);
break; break;
} }
case ServerOP_LFGMatches: { case ServerOP_LFGMatches: {
auto smrs = (ServerLFGMatchesRequest_Struct*) pack->pBuffer; auto smrs = (ServerLFGMatchesRequest_Struct*) pack->pBuffer;
client_list.SendLFGMatches(smrs); ClientList::Instance()->SendLFGMatches(smrs);
break; break;
} }
case ServerOP_LFPMatches: { case ServerOP_LFPMatches: {
@ -1000,7 +999,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
break; break;
} }
case ServerOP_FlagUpdate: { case ServerOP_FlagUpdate: {
auto cle = client_list.FindCLEByAccountID(*((uint32*) pack->pBuffer)); auto cle = ClientList::Instance()->FindCLEByAccountID(*((uint32*) pack->pBuffer));
if (cle) { if (cle) {
cle->SetAdmin(*((int16*)&pack->pBuffer[4])); 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 gmg = (ServerGMGoto_Struct*) pack->pBuffer;
auto cle = client_list.FindCharacter(gmg->gotoname); auto cle = ClientList::Instance()->FindCharacter(gmg->gotoname);
if (cle) { if (cle) {
if (!cle->Server()) { if (!cle->Server()) {
SendEmoteMessage( SendEmoteMessage(
@ -1158,9 +1157,9 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
auto sgwq = (ServerGenericWorldQuery_Struct*) pack->pBuffer; auto sgwq = (ServerGenericWorldQuery_Struct*) pack->pBuffer;
if (pack->size == sizeof(ServerGenericWorldQuery_Struct)) { if (pack->size == sizeof(ServerGenericWorldQuery_Struct)) {
client_list.SendCLEList(sgwq->admin, sgwq->from, this); ClientList::Instance()->SendCLEList(sgwq->admin, sgwq->from, this);
} else { } else {
client_list.SendCLEList(sgwq->admin, sgwq->from, this, sgwq->query); ClientList::Instance()->SendCLEList(sgwq->admin, sgwq->from, this, sgwq->query);
} }
break; break;
@ -1215,7 +1214,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
} }
case ServerOP_Revoke: { case ServerOP_Revoke: {
auto rev = (RevokeStruct*) pack->pBuffer; auto rev = (RevokeStruct*) pack->pBuffer;
auto cle = client_list.FindCharacter(rev->name); auto cle = ClientList::Instance()->FindCharacter(rev->name);
if (cle && cle->Server()) { if (cle && cle->Server()) {
cle->Server()->SendPacket(pack); 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) { if (s->consent_type == EQ::consent::Normal) {
auto cle = client_list.FindCharacter(s->grantname); auto cle = ClientList::Instance()->FindCharacter(s->grantname);
if (cle) { if (cle) {
auto granted_zs = ( auto granted_zs = (
cle->instance() ? cle->instance() ?
@ -1411,7 +1410,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
} }
auto o = (ServerIsOwnerOnline_Struct*) pack->pBuffer; 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; o->online = cle ? 1 : 0;
@ -1443,7 +1442,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
} }
case ServerOP_RequestTellQueue: { case ServerOP_RequestTellQueue: {
auto rtq = (ServerRequestTellQueue_Struct*) pack->pBuffer; auto rtq = (ServerRequestTellQueue_Struct*) pack->pBuffer;
auto cle = client_list.FindCharacter(rtq->name); auto cle = ClientList::Instance()->FindCharacter(rtq->name);
if (!cle || cle->TellQueueEmpty()) { if (!cle || cle->TellQueueEmpty()) {
break; break;
} }
@ -1453,7 +1452,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
} }
case ServerOP_CZClientMessageString: { case ServerOP_CZClientMessageString: {
auto buf = reinterpret_cast<CZClientMessageString_Struct*>(pack->pBuffer); auto buf = reinterpret_cast<CZClientMessageString_Struct*>(pack->pBuffer);
client_list.SendPacket(buf->client_name, pack); ClientList::Instance()->SendPacket(buf->client_name, pack);
break; break;
} }
case ServerOP_SharedTaskRequest: case ServerOP_SharedTaskRequest:
@ -1564,12 +1563,12 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
{ {
auto in = (GuildTributeMemberToggle *)pack->pBuffer; auto in = (GuildTributeMemberToggle *)pack->pBuffer;
auto guild = guild_mgr.GetGuildByGuildID(in->guild_id); 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) { if (c) {
c->SetGuildTributeOptIn(in->tribute_toggle ? true : false); 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) { if (cle) {
cle->SetGuildTributeOptIn(in->tribute_toggle ? true : false); cle->SetGuildTributeOptIn(in->tribute_toggle ? true : false);
} }
@ -1685,7 +1684,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
return; 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) { if (trader) {
ZSList::Instance()->SendPacket(trader->zone(), trader->instance(), pack); ZSList::Instance()->SendPacket(trader->zone(), trader->instance(), pack);
} }
@ -1709,7 +1708,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
break; break;
} }
case Barter_SellItem: { case Barter_SellItem: {
auto buyer = client_list.FindCharacter(in->buyer_name); auto buyer = ClientList::Instance()->FindCharacter(in->buyer_name);
if (buyer) { if (buyer) {
ZSList::Instance()->SendPacket(buyer->zone(), buyer->instance(), pack); 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_FailedTransaction:
case Barter_BuyerTransactionComplete: { case Barter_BuyerTransactionComplete: {
auto seller = client_list.FindCharacter(in->seller_name); auto seller = ClientList::Instance()->FindCharacter(in->seller_name);
if (seller) { if (seller) {
ZSList::Instance()->SendPacket(seller->zone(), seller->instance(), pack); ZSList::Instance()->SendPacket(seller->zone(), seller->instance(), pack);
} }