mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-15 20:51:29 +00:00
[Code] ClientList Global to Singleton Cleanup (#4942)
This commit is contained in:
parent
4f7ff2d6f2
commit
2128b45313
@ -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));
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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++; }
|
||||||
|
|||||||
@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user