mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 12:41:30 +00:00
[Hotfix] Fix ClientList Singleton Shortcomings of #4942
This commit is contained in:
parent
50ae0f8351
commit
2c6d405b2c
@ -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) {
|
||||
|
||||
@ -14,8 +14,6 @@
|
||||
#include <sstream>
|
||||
#include <stdio.h>
|
||||
|
||||
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));
|
||||
|
||||
@ -89,7 +89,6 @@
|
||||
std::vector<RaceClassAllocation> character_create_allocations;
|
||||
std::vector<RaceClassCombos> 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;
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
#include "world_config.h"
|
||||
|
||||
extern uint32 numplayers;
|
||||
extern ClientList client_list;
|
||||
extern volatile bool RunLoops;
|
||||
|
||||
ClientListEntry::ClientListEntry(
|
||||
|
||||
@ -33,8 +33,6 @@
|
||||
#include "../common/zone_store.h"
|
||||
#include <fmt/format.h>
|
||||
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -9,8 +9,6 @@
|
||||
#include "../common/repositories/dynamic_zone_lockouts_repository.h"
|
||||
#include <cereal/types/utility.hpp>
|
||||
|
||||
extern ClientList client_list;
|
||||
|
||||
DynamicZoneManager dynamic_zone_manager;
|
||||
|
||||
DynamicZoneManager::DynamicZoneManager() :
|
||||
|
||||
@ -13,7 +13,6 @@
|
||||
#include "ucs.h"
|
||||
#include "queryserv.h"
|
||||
|
||||
extern ClientList client_list;
|
||||
extern WorldGuildManager guild_mgr;
|
||||
|
||||
void callGetZoneList(Json::Value &response)
|
||||
|
||||
@ -45,7 +45,6 @@
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
extern ClientList client_list;
|
||||
extern uint32 numzones;
|
||||
extern LauncherList launcher_list;
|
||||
extern volatile bool RunLoops;
|
||||
@ -156,7 +155,7 @@ std::map<std::string,std::string> 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<std::string> EQW::ListPlayers(Const_char *zone_name) {
|
||||
std::vector<std::string> res;
|
||||
|
||||
std::vector<ClientListEntry *> list;
|
||||
client_list.GetClients(zone_name, list);
|
||||
ClientList::Instance()->GetClients(zone_name, list);
|
||||
|
||||
std::vector<ClientListEntry *>::iterator cur, end;
|
||||
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> 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));
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -9,8 +9,6 @@
|
||||
#include "../common/md5.h"
|
||||
#include "../common/packet_dump.h"
|
||||
|
||||
extern ClientList client_list;
|
||||
|
||||
QueryServConnection::QueryServConnection()
|
||||
{
|
||||
}
|
||||
|
||||
@ -17,8 +17,6 @@
|
||||
#include "../common/repositories/shared_task_dynamic_zones_repository.h"
|
||||
#include <ctime>
|
||||
|
||||
extern ClientList client_list;
|
||||
|
||||
SharedTaskManager::SharedTaskManager()
|
||||
: 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());
|
||||
|
||||
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(
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -34,8 +34,6 @@
|
||||
#include "../common/repositories/tributes_repository.h"
|
||||
#include "../common/repositories/tribute_levels_repository.h"
|
||||
|
||||
|
||||
extern ClientList client_list;
|
||||
std::map<uint32, TributeData> 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;
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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<EQ::Net::ServertalkServerConnection> 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<CZClientMessageString_Struct*>(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);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user