mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-10 15:51:29 +00:00
[Code] ZSList Global to Singleton Cleanup (#4940)
* [Code] ZSList Global to Singleton Cleanup * Final * Post merge fixes --------- Co-authored-by: Chris Miles <akkadius1@gmail.com>
This commit is contained in:
parent
643ee56433
commit
dc261bb203
@ -28,7 +28,6 @@ Database database;
|
||||
std::string WorldShortName;
|
||||
const queryservconfig *Config;
|
||||
WorldServer *worldserver = 0;
|
||||
ZSList zs_list;
|
||||
uint32 numzones = 0;
|
||||
|
||||
void CatchSignal(int sig_num)
|
||||
@ -122,7 +121,7 @@ int main()
|
||||
server_connection->OnConnectionIdentified(
|
||||
"Zone", [&console](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
||||
numzones++;
|
||||
zs_list.Add(new ZoneServer(connection, console.get()));
|
||||
ZSList::Instance()->Add(new ZoneServer(connection, console.get()));
|
||||
|
||||
LogInfo(
|
||||
"New Zone Server connection from [{}] at [{}:{}] zone_count [{}]",
|
||||
@ -137,7 +136,7 @@ int main()
|
||||
server_connection->OnConnectionRemoved(
|
||||
"Zone", [](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
||||
numzones--;
|
||||
zs_list.Remove(connection->GetUUID());
|
||||
ZSList::Instance()->Remove(connection->GetUUID());
|
||||
|
||||
LogInfo(
|
||||
"Removed Zone Server connection from [{}] total zone_count [{}]",
|
||||
|
||||
@ -26,7 +26,6 @@
|
||||
extern WorldServer worldserver;
|
||||
extern const queryservconfig *Config;
|
||||
extern QSDatabase qs_database;
|
||||
extern ZSList zs_list;
|
||||
|
||||
WorldServer::WorldServer()
|
||||
{
|
||||
@ -80,7 +79,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
||||
if (o->type == ServerReload::Type::Logs) {
|
||||
EQEmuLogSys::Instance()->LoadLogDatabaseSettings();
|
||||
PlayerEventLogs::Instance()->ReloadSettings();
|
||||
zs_list.SendPlayerEventLogSettings();
|
||||
ZSList::Instance()->SendPlayerEventLogSettings();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@ -6,9 +6,9 @@
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
#include <list>
|
||||
#include "zoneserver.h"
|
||||
|
||||
class WorldTCPConnection;
|
||||
class ZoneServer;
|
||||
|
||||
class ZSList {
|
||||
public:
|
||||
@ -17,6 +17,12 @@ public:
|
||||
void Remove(const std::string& uuid);
|
||||
void SendPlayerEventLogSettings();
|
||||
|
||||
static ZSList* Instance()
|
||||
{
|
||||
static ZSList instance;
|
||||
return &instance;
|
||||
}
|
||||
|
||||
private:
|
||||
std::list<std::unique_ptr<ZoneServer>> zone_server_list;
|
||||
};
|
||||
|
||||
@ -15,7 +15,6 @@
|
||||
#include "../common/zone_store.h"
|
||||
#include "../common/repositories/character_corpses_repository.h"
|
||||
|
||||
extern ZSList zoneserver_list;
|
||||
extern ClientList client_list;
|
||||
extern EQ::Random emu_random;
|
||||
|
||||
@ -176,7 +175,7 @@ void Adventure::SetStatus(AdventureStatus new_status)
|
||||
ut->instance_id = instance_id;
|
||||
ut->new_duration = adventure_template->duration + 60;
|
||||
|
||||
zoneserver_list.SendPacket(0, instance_id, pack);
|
||||
ZSList::Instance()->SendPacket(0, instance_id, pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
else if(new_status == AS_WaitingForSecondaryEndTime)
|
||||
@ -190,7 +189,7 @@ void Adventure::SetStatus(AdventureStatus new_status)
|
||||
ut->instance_id = instance_id;
|
||||
ut->new_duration = 1860;
|
||||
|
||||
zoneserver_list.SendPacket(0, instance_id, pack);
|
||||
ZSList::Instance()->SendPacket(0, instance_id, pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
else if(new_status == AS_Finished)
|
||||
@ -204,7 +203,7 @@ void Adventure::SetStatus(AdventureStatus new_status)
|
||||
ut->instance_id = instance_id;
|
||||
ut->new_duration = 1860;
|
||||
|
||||
zoneserver_list.SendPacket(0, instance_id, pack);
|
||||
ZSList::Instance()->SendPacket(0, instance_id, pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
else
|
||||
@ -233,7 +232,7 @@ void Adventure::SendAdventureMessage(uint32 type, const char *msg)
|
||||
if(current)
|
||||
{
|
||||
strcpy(sms->to, (*iter).c_str());
|
||||
zoneserver_list.SendPacket(current->zone(), current->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(current->zone(), current->instance(), pack);
|
||||
}
|
||||
++iter;
|
||||
}
|
||||
@ -309,7 +308,7 @@ void Adventure::Finished(AdventureWinStatus ws)
|
||||
af->win = false;
|
||||
af->points = 0;
|
||||
}
|
||||
zoneserver_list.SendPacket(current->zone(), current->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(current->zone(), current->instance(), pack);
|
||||
database.UpdateAdventureStatsEntry(character_id, GetTemplate()->theme, (ws != AWS_Lose) ? true : false);
|
||||
delete pack;
|
||||
}
|
||||
@ -395,7 +394,7 @@ void Adventure::MoveCorpsesToGraveyard()
|
||||
d->InstanceID = 0;
|
||||
d->ZoneID = GetTemplate()->graveyard_zone_id;
|
||||
|
||||
zoneserver_list.SendPacket(0, GetInstanceID(), pack);
|
||||
ZSList::Instance()->SendPacket(0, GetInstanceID(), pack);
|
||||
|
||||
delete pack;
|
||||
|
||||
@ -406,7 +405,7 @@ void Adventure::MoveCorpsesToGraveyard()
|
||||
spc->player_corpse_id = e.id;
|
||||
spc->zone_id = GetTemplate()->graveyard_zone_id;
|
||||
|
||||
zoneserver_list.SendPacket(spc->zone_id, 0, pack);
|
||||
ZSList::Instance()->SendPacket(spc->zone_id, 0, pack);
|
||||
|
||||
delete pack;
|
||||
}
|
||||
|
||||
@ -14,7 +14,6 @@
|
||||
#include <sstream>
|
||||
#include <stdio.h>
|
||||
|
||||
extern ZSList zoneserver_list;
|
||||
extern ClientList client_list;
|
||||
|
||||
AdventureManager::AdventureManager()
|
||||
@ -83,7 +82,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ServerAdventureRequestDeny_Struct *deny = (ServerAdventureRequestDeny_Struct*)pack->pBuffer;
|
||||
strcpy(deny->leader, sar->leader);
|
||||
strcpy(deny->reason, "There are currently no adventures set for this theme.");
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
}
|
||||
@ -112,7 +111,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ss << (data + sizeof(ServerAdventureRequest_Struct) + (64 * i)) << " is already apart of an active adventure.";
|
||||
|
||||
strcpy(deny->reason, ss.str().c_str());
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
}
|
||||
@ -243,7 +242,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ServerAdventureRequestDeny_Struct *deny = (ServerAdventureRequestDeny_Struct*)pack->pBuffer;
|
||||
strcpy(deny->leader, sar->leader);
|
||||
strcpy(deny->reason, "The number of found players for this adventure was zero.");
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
}
|
||||
@ -260,7 +259,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ss << "The maximum level range for this adventure is " << RuleI(Adventure, MaxLevelRange);
|
||||
ss << " but the level range calculated was " << (max_level - min_level) << ".";
|
||||
strcpy(deny->reason, ss.str().c_str());
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
}
|
||||
@ -337,7 +336,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
sra->id = (*ea_iter)->id;
|
||||
sra->member_count = sar->member_count;
|
||||
memcpy((pack->pBuffer + sizeof(ServerAdventureRequestAccept_Struct)), (data + sizeof(ServerAdventureRequest_Struct)), (sar->member_count * 64));
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
}
|
||||
@ -347,7 +346,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ServerAdventureRequestDeny_Struct *deny = (ServerAdventureRequestDeny_Struct*)pack->pBuffer;
|
||||
strcpy(deny->leader, sar->leader);
|
||||
strcpy(deny->reason, "The number of adventures returned was zero.");
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
}
|
||||
@ -367,7 +366,7 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
||||
{
|
||||
auto pack = new ServerPacket(ServerOP_AdventureCreateDeny, 64);
|
||||
strcpy((char*)pack->pBuffer, src->leader);
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
}
|
||||
@ -377,7 +376,7 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
||||
{
|
||||
auto pack = new ServerPacket(ServerOP_AdventureCreateDeny, 64);
|
||||
strcpy((char*)pack->pBuffer, src->leader);
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
delete adv;
|
||||
return;
|
||||
@ -390,7 +389,7 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
||||
{
|
||||
auto pack = new ServerPacket(ServerOP_AdventureCreateDeny, 64);
|
||||
strcpy((char*)pack->pBuffer, src->leader);
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
delete adv;
|
||||
return;
|
||||
@ -435,7 +434,7 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
||||
sfa->zone_in_object = finished_adventures[f]->GetTemplate()->zone_in_object_id;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(player->zone(), player->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(player->zone(), player->instance(), pack);
|
||||
safe_delete_array(finished_adventures);
|
||||
delete pack;
|
||||
}
|
||||
@ -496,7 +495,7 @@ void AdventureManager::GetAdventureData(const char *name)
|
||||
delete pack;
|
||||
auto pack = new ServerPacket(ServerOP_AdventureDataClear, 64);
|
||||
strcpy((char*)pack->pBuffer, name);
|
||||
zoneserver_list.SendPacket(player->zone(), player->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(player->zone(), player->instance(), pack);
|
||||
|
||||
delete pack;
|
||||
delete[] finished_adventures;
|
||||
@ -514,7 +513,7 @@ void AdventureManager::GetAdventureData(const char *name)
|
||||
sfa->zone_in_object = finished_adventures[i]->GetTemplate()->zone_in_object_id;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(player->zone(), player->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(player->zone(), player->instance(), pack);
|
||||
safe_delete_array(finished_adventures);
|
||||
delete pack;
|
||||
delete[] finished_adventures;
|
||||
@ -782,7 +781,7 @@ void AdventureManager::PlayerClickedDoor(const char *player, int zone_id, int do
|
||||
(*iter)->SetStatus(AS_WaitingForPrimaryEndTime);
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
return;
|
||||
@ -796,7 +795,7 @@ void AdventureManager::PlayerClickedDoor(const char *player, int zone_id, int do
|
||||
{
|
||||
auto pack = new ServerPacket(ServerOP_AdventureClickDoorError, 64);
|
||||
strcpy((char*)pack->pBuffer, player);
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
}
|
||||
@ -813,7 +812,7 @@ void AdventureManager::LeaveAdventure(const char *name)
|
||||
{
|
||||
auto pack = new ServerPacket(ServerOP_AdventureLeaveDeny, 64);
|
||||
strcpy((char*)pack->pBuffer, name);
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
else
|
||||
@ -826,7 +825,7 @@ void AdventureManager::LeaveAdventure(const char *name)
|
||||
current->RemovePlayer(name);
|
||||
auto pack = new ServerPacket(ServerOP_AdventureLeaveReply, 64);
|
||||
strcpy((char*)pack->pBuffer, name);
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
}
|
||||
@ -834,7 +833,7 @@ void AdventureManager::LeaveAdventure(const char *name)
|
||||
{
|
||||
auto pack = new ServerPacket(ServerOP_AdventureLeaveReply, 64);
|
||||
strcpy((char*)pack->pBuffer, name);
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
}
|
||||
@ -871,7 +870,7 @@ void AdventureManager::IncrementCount(uint16 instance_id)
|
||||
{
|
||||
memset(ac->player, 0, 64);
|
||||
strcpy(ac->player, (*siter).c_str());
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
}
|
||||
++siter;
|
||||
}
|
||||
@ -935,7 +934,7 @@ void AdventureManager::GetZoneData(uint16 instance_id)
|
||||
zd->dest_y = temp->dest_y;
|
||||
zd->dest_z = temp->dest_z;
|
||||
zd->dest_h = temp->dest_h;
|
||||
zoneserver_list.SendPacket(0, instance_id, pack);
|
||||
ZSList::Instance()->SendPacket(0, instance_id, pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -1320,7 +1319,7 @@ void AdventureManager::DoLeaderboardRequestWins(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -1386,7 +1385,7 @@ void AdventureManager::DoLeaderboardRequestPercentage(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -1452,7 +1451,7 @@ void AdventureManager::DoLeaderboardRequestWinsGuk(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -1518,7 +1517,7 @@ void AdventureManager::DoLeaderboardRequestPercentageGuk(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -1584,7 +1583,7 @@ void AdventureManager::DoLeaderboardRequestWinsMir(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -1650,7 +1649,7 @@ void AdventureManager::DoLeaderboardRequestPercentageMir(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -1716,7 +1715,7 @@ void AdventureManager::DoLeaderboardRequestWinsMmc(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -1782,7 +1781,7 @@ void AdventureManager::DoLeaderboardRequestPercentageMmc(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -1848,7 +1847,7 @@ void AdventureManager::DoLeaderboardRequestWinsRuj(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -1914,7 +1913,7 @@ void AdventureManager::DoLeaderboardRequestPercentageRuj(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -1980,7 +1979,7 @@ void AdventureManager::DoLeaderboardRequestWinsTak(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -2046,7 +2045,7 @@ void AdventureManager::DoLeaderboardRequestPercentageTak(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
@ -2083,7 +2082,7 @@ void AdventureManager::SendAdventureFinish(AdventureFinishEvent fe)
|
||||
af->win = fe.win;
|
||||
af->points = fe.points;
|
||||
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
}
|
||||
|
||||
@ -89,7 +89,6 @@
|
||||
std::vector<RaceClassAllocation> character_create_allocations;
|
||||
std::vector<RaceClassCombos> character_create_race_class_combos;
|
||||
|
||||
extern ZSList zoneserver_list;
|
||||
extern ClientList client_list;
|
||||
extern uint32 numclients;
|
||||
extern volatile bool RunLoops;
|
||||
@ -1415,18 +1414,18 @@ void Client::EnterWorld(bool TryBootup) {
|
||||
return;
|
||||
}
|
||||
|
||||
zone_server = zoneserver_list.FindByInstanceID(instance_id);
|
||||
zone_server = ZSList::Instance()->FindByInstanceID(instance_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
zone_server = zoneserver_list.FindByZoneID(zone_id);
|
||||
zone_server = ZSList::Instance()->FindByZoneID(zone_id);
|
||||
}
|
||||
|
||||
const char *zone_name = ZoneName(zone_id, true);
|
||||
if (zone_server) {
|
||||
if (false == enter_world_triggered) {
|
||||
//Drop any clients we own in other zones.
|
||||
zoneserver_list.DropClient(GetLSID(), zone_server);
|
||||
ZSList::Instance()->DropClient(GetLSID(), zone_server);
|
||||
|
||||
// warn the zone we're coming
|
||||
zone_server->IncomingClient(this);
|
||||
@ -1439,7 +1438,7 @@ void Client::EnterWorld(bool TryBootup) {
|
||||
if (TryBootup) {
|
||||
LogInfo("Attempting autobootup of [{}] [{}] [{}]", zone_name, zone_id, instance_id);
|
||||
autobootup_timeout.Start();
|
||||
zone_waiting_for_bootup = zoneserver_list.TriggerBootup(zone_id, instance_id);
|
||||
zone_waiting_for_bootup = ZSList::Instance()->TriggerBootup(zone_id, instance_id);
|
||||
if (zone_waiting_for_bootup == 0) {
|
||||
LogInfo("No zoneserver available to boot up");
|
||||
TellClientZoneUnavailable();
|
||||
@ -1455,7 +1454,7 @@ void Client::EnterWorld(bool TryBootup) {
|
||||
|
||||
zone_waiting_for_bootup = 0;
|
||||
|
||||
if (GetAdmin() < 80 && zoneserver_list.IsZoneLocked(zone_id)) {
|
||||
if (GetAdmin() < 80 && ZSList::Instance()->IsZoneLocked(zone_id)) {
|
||||
LogInfo("Enter world failed. Zone is locked");
|
||||
TellClientZoneUnavailable();
|
||||
return;
|
||||
@ -1501,11 +1500,11 @@ void Client::Clearance(int8 response)
|
||||
ZoneServer* zs = nullptr;
|
||||
if(instance_id > 0)
|
||||
{
|
||||
zs = zoneserver_list.FindByInstanceID(instance_id);
|
||||
zs = ZSList::Instance()->FindByInstanceID(instance_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
zs = zoneserver_list.FindByZoneID(zone_id);
|
||||
zs = ZSList::Instance()->FindByZoneID(zone_id);
|
||||
}
|
||||
|
||||
if(zs == 0 || response == -1 || response == 0)
|
||||
|
||||
@ -36,7 +36,6 @@
|
||||
#include "../common/zone_store.h"
|
||||
#include <set>
|
||||
|
||||
extern ZSList zoneserver_list;
|
||||
uint32 numplayers = 0; //this really wants to be a member variable of ClientList...
|
||||
|
||||
ClientList::ClientList()
|
||||
@ -232,7 +231,7 @@ void ClientList::DisconnectByIP(uint32 in_ip) {
|
||||
strn0cpy(skp->adminname, "SessionLimit", sizeof(skp->adminname));
|
||||
strn0cpy(skp->name, cle->name(), sizeof(skp->name));
|
||||
skp->adminrank = 255;
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
cle->SetOnline(CLE_Status::Offline);
|
||||
@ -551,7 +550,7 @@ void ClientList::SendOnlineGuildMembers(uint32 FromID, uint32 GuildID)
|
||||
|
||||
Iterator.Advance();
|
||||
}
|
||||
zoneserver_list.SendPacket(from->zone(), from->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(from->zone(), from->instance(), pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
|
||||
@ -1316,7 +1315,7 @@ void ClientList::RemoveCLEReferances(ClientListEntry* cle) {
|
||||
|
||||
bool ClientList::SendPacket(const char* to, ServerPacket* pack) {
|
||||
if (to == 0 || to[0] == 0) {
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
return true;
|
||||
}
|
||||
else if (to[0] == '*') {
|
||||
@ -1332,7 +1331,7 @@ bool ClientList::SendPacket(const char* to, ServerPacket* pack) {
|
||||
}
|
||||
return false;
|
||||
} else {
|
||||
ZoneServer* zs = zoneserver_list.FindByName(to);
|
||||
ZoneServer* zs = ZSList::Instance()->FindByName(to);
|
||||
if (zs != nullptr) {
|
||||
zs->SendPacket(pack);
|
||||
return true;
|
||||
@ -1437,7 +1436,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
||||
);
|
||||
|
||||
if (client_count[EQ::versions::ClientVersion::Titanium]) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
Name,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -1450,7 +1449,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
||||
}
|
||||
|
||||
if (client_count[EQ::versions::ClientVersion::SoF]) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
Name,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -1463,7 +1462,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
||||
}
|
||||
|
||||
if (client_count[EQ::versions::ClientVersion::SoD]) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
Name,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -1476,7 +1475,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
||||
}
|
||||
|
||||
if (client_count[EQ::versions::ClientVersion::UF]) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
Name,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -1489,7 +1488,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
||||
}
|
||||
|
||||
if (client_count[EQ::versions::ClientVersion::RoF]) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
Name,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -1502,7 +1501,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
||||
}
|
||||
|
||||
if (client_count[EQ::versions::ClientVersion::RoF2]) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
Name,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -1515,7 +1514,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
||||
}
|
||||
|
||||
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
Name,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
|
||||
@ -34,7 +34,6 @@
|
||||
#include <fmt/format.h>
|
||||
|
||||
extern ClientList client_list;
|
||||
extern ZSList zoneserver_list;
|
||||
|
||||
/**
|
||||
* @param username
|
||||
@ -148,7 +147,7 @@ void ConsoleZoneStatus(
|
||||
)
|
||||
{
|
||||
WorldConsoleTCPConnection console_connection(connection);
|
||||
zoneserver_list.SendZoneStatus(0, connection->Admin(), &console_connection);
|
||||
ZSList::Instance()->SendZoneStatus(0, connection->Admin(), &console_connection);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -215,7 +214,7 @@ void ConsoleUptime(
|
||||
ServerUptime_Struct *sus = (ServerUptime_Struct *) pack->pBuffer;
|
||||
snprintf(sus->adminname, sizeof(sus->adminname), "*%s", connection->UserName().c_str());
|
||||
sus->zoneserverid = Strings::ToInt(args[0]);
|
||||
ZoneServer *zs = zoneserver_list.FindByID(sus->zoneserverid);
|
||||
ZoneServer *zs = ZSList::Instance()->FindByID(sus->zoneserverid);
|
||||
if (zs) {
|
||||
zs->SendPacket(pack);
|
||||
}
|
||||
@ -290,7 +289,7 @@ void ConsoleEmote(
|
||||
join_args.erase(join_args.begin(), join_args.begin() + 2);
|
||||
|
||||
if (strcasecmp(args[0].c_str(), "world") == 0) {
|
||||
zoneserver_list.SendEmoteMessageRaw(
|
||||
ZSList::Instance()->SendEmoteMessageRaw(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -299,7 +298,7 @@ void ConsoleEmote(
|
||||
);
|
||||
}
|
||||
else {
|
||||
ZoneServer *zs = zoneserver_list.FindByName(args[0].c_str());
|
||||
ZoneServer *zs = ZSList::Instance()->FindByName(args[0].c_str());
|
||||
if (zs != 0) {
|
||||
zs->SendEmoteMessageRaw(
|
||||
0,
|
||||
@ -310,7 +309,7 @@ void ConsoleEmote(
|
||||
);
|
||||
}
|
||||
else {
|
||||
zoneserver_list.SendEmoteMessageRaw(
|
||||
ZSList::Instance()->SendEmoteMessageRaw(
|
||||
args[0].c_str(),
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -371,7 +370,7 @@ void ConsoleTell(
|
||||
auto join_args = args;
|
||||
join_args.erase(join_args.begin(), join_args.begin() + 1);
|
||||
|
||||
zoneserver_list.SendChannelMessage(tmpname, to.c_str(), ChatChannel_Tell, 0, Strings::Join(join_args, " ").c_str());
|
||||
ZSList::Instance()->SendChannelMessage(tmpname, to.c_str(), ChatChannel_Tell, 0, Strings::Join(join_args, " ").c_str());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -392,7 +391,7 @@ void ConsoleBroadcast(
|
||||
char tmpname[64];
|
||||
tmpname[0] = '*';
|
||||
strcpy(&tmpname[1], connection->UserName().c_str());
|
||||
zoneserver_list.SendChannelMessage(tmpname, 0, ChatChannel_Broadcast, 0, Strings::Join(args, " ").c_str());
|
||||
ZSList::Instance()->SendChannelMessage(tmpname, 0, ChatChannel_Broadcast, 0, Strings::Join(args, " ").c_str());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -413,7 +412,7 @@ void ConsoleGMSay(
|
||||
char tmpname[64];
|
||||
tmpname[0] = '*';
|
||||
strcpy(&tmpname[1], connection->UserName().c_str());
|
||||
zoneserver_list.SendChannelMessage(tmpname, 0, ChatChannel_GMSAY, 0, Strings::Join(args, " ").c_str());
|
||||
ZSList::Instance()->SendChannelMessage(tmpname, 0, ChatChannel_GMSAY, 0, Strings::Join(args, " ").c_str());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -446,7 +445,7 @@ void ConsoleGuildSay(
|
||||
Strings::Join(join_args, " ")
|
||||
);
|
||||
|
||||
zoneserver_list.SendEmoteMessage(0, guild_id, AccountStatus::Player, Chat::Guild, message.c_str());
|
||||
ZSList::Instance()->SendEmoteMessage(0, guild_id, AccountStatus::Player, Chat::Guild, message.c_str());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -467,7 +466,7 @@ void ConsoleOOC(
|
||||
char tmpname[64];
|
||||
tmpname[0] = '*';
|
||||
strcpy(&tmpname[1], connection->UserName().c_str());
|
||||
zoneserver_list.SendChannelMessage(tmpname, 0, ChatChannel_OOC, 0, Strings::Join(args, " ").c_str());
|
||||
ZSList::Instance()->SendChannelMessage(tmpname, 0, ChatChannel_OOC, 0, Strings::Join(args, " ").c_str());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -488,7 +487,7 @@ void ConsoleAuction(
|
||||
char tmpname[64];
|
||||
tmpname[0] = '*';
|
||||
strcpy(&tmpname[1], connection->UserName().c_str());
|
||||
zoneserver_list.SendChannelMessage(tmpname, 0, ChatChannel_Auction, 0, Strings::Join(args, " ").c_str());
|
||||
ZSList::Instance()->SendChannelMessage(tmpname, 0, ChatChannel_Auction, 0, Strings::Join(args, " ").c_str());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -517,7 +516,7 @@ void ConsoleKick(
|
||||
strcpy(skp->adminname, tmpname);
|
||||
strcpy(skp->name, args[0].c_str());
|
||||
skp->adminrank = connection->Admin();
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
delete pack;
|
||||
}
|
||||
|
||||
@ -603,10 +602,10 @@ void ConsoleZoneShutdown(
|
||||
|
||||
ZoneServer *zs = 0;
|
||||
if (s->zone_server_id != 0) {
|
||||
zs = zoneserver_list.FindByID(s->zone_server_id);
|
||||
zs = ZSList::Instance()->FindByID(s->zone_server_id);
|
||||
}
|
||||
else if (s->zone_id != 0) {
|
||||
zs = zoneserver_list.FindByName(ZoneName(s->zone_id));
|
||||
zs = ZSList::Instance()->FindByName(ZoneName(s->zone_id));
|
||||
}
|
||||
else {
|
||||
connection->SendLine("Error: ZoneShutdown: neither ID nor name specified");
|
||||
@ -647,14 +646,14 @@ void ConsoleZoneBootup(
|
||||
strcpy(&tmpname[1], connection->UserName().c_str());
|
||||
|
||||
if (args.size() > 2) {
|
||||
zoneserver_list.SOPZoneBootup(
|
||||
ZSList::Instance()->SOPZoneBootup(
|
||||
tmpname,
|
||||
Strings::ToInt(args[0]),
|
||||
args[1].c_str(),
|
||||
(bool) (strcasecmp(args[1].c_str(), "static") == 0));
|
||||
}
|
||||
else {
|
||||
zoneserver_list.SOPZoneBootup(tmpname, Strings::ToInt(args[0]), args[1].c_str(), false);
|
||||
ZSList::Instance()->SOPZoneBootup(tmpname, Strings::ToInt(args[0]), args[1].c_str(), false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -676,7 +675,7 @@ void ConsoleZoneLock(
|
||||
|
||||
if (strcasecmp(args[0].c_str(), "list") == 0) {
|
||||
WorldConsoleTCPConnection console_connection(connection);
|
||||
zoneserver_list.ListLockedZones(0, &console_connection);
|
||||
ZSList::Instance()->ListLockedZones(0, &console_connection);
|
||||
}
|
||||
else if (strcasecmp(args[0].c_str(), "lock") == 0 && connection->Admin() >= 101) {
|
||||
if (args.size() < 2) {
|
||||
@ -685,8 +684,8 @@ void ConsoleZoneLock(
|
||||
|
||||
uint16 tmp = ZoneID(args[1].c_str());
|
||||
if (tmp) {
|
||||
if (zoneserver_list.SetLockedZone(tmp, true)) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
if (ZSList::Instance()->SetLockedZone(tmp, true)) {
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::QuestTroupe,
|
||||
@ -712,8 +711,8 @@ void ConsoleZoneLock(
|
||||
|
||||
uint16 tmp = ZoneID(args[1].c_str());
|
||||
if (tmp) {
|
||||
if (zoneserver_list.SetLockedZone(tmp, false)) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
if (ZSList::Instance()->SetLockedZone(tmp, false)) {
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::QuestTroupe,
|
||||
@ -833,7 +832,7 @@ void ConsoleWorldShutdown(
|
||||
int32 time, interval;
|
||||
if (Strings::IsNumber(args[0]) && Strings::IsNumber(args[1]) && ((time = Strings::ToInt(args[0])) > 0) &&
|
||||
((interval = Strings::ToInt(args[1])) > 0)) {
|
||||
zoneserver_list.WorldShutDown(time, interval);
|
||||
ZSList::Instance()->WorldShutDown(time, interval);
|
||||
}
|
||||
else {
|
||||
connection->SendLine("Usage: worldshutdown [now] [disable] ([time] [interval])");
|
||||
@ -841,19 +840,19 @@ void ConsoleWorldShutdown(
|
||||
}
|
||||
else if (args.size() == 1) {
|
||||
if (strcasecmp(args[0].c_str(), "now") == 0) {
|
||||
zoneserver_list.WorldShutDown(0, 0);
|
||||
ZSList::Instance()->WorldShutDown(0, 0);
|
||||
}
|
||||
else if (strcasecmp(args[0].c_str(), "disable") == 0) {
|
||||
connection->SendLine("[SYSTEM] World shutdown has been aborted.");
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::Yellow,
|
||||
"[SYSTEM] World shutdown has been aborted."
|
||||
);
|
||||
zoneserver_list.shutdowntimer->Disable();
|
||||
zoneserver_list.reminder->Disable();
|
||||
ZSList::Instance()->shutdowntimer->Disable();
|
||||
ZSList::Instance()->reminder->Disable();
|
||||
}
|
||||
else {
|
||||
connection->SendLine("Usage: worldshutdown [now] [disable] ([time] [interval])");
|
||||
@ -906,7 +905,7 @@ void ConsoleSignalCharByName(
|
||||
CZS->update_identifier = update_identifier;
|
||||
CZS->signal_id = Strings::ToInt(args[1]);
|
||||
strn0cpy(CZS->client_name, (char *) args[0].c_str(), 64);
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
|
||||
@ -922,7 +921,7 @@ void ConsoleReloadWorld(
|
||||
)
|
||||
{
|
||||
connection->SendLine("Reloading World...");
|
||||
zoneserver_list.SendServerReload(ServerReload::Type::WorldRepop, nullptr);
|
||||
ZSList::Instance()->SendServerReload(ServerReload::Type::WorldRepop, nullptr);
|
||||
}
|
||||
|
||||
auto debounce_reload = std::chrono::system_clock::now();
|
||||
@ -959,7 +958,7 @@ void ConsoleReloadZoneQuests(
|
||||
auto *hot_reload_quests = (HotReloadQuestsStruct *) pack->pBuffer;
|
||||
strn0cpy(hot_reload_quests->zone_short_name, (char *) zone_short_name.c_str(), 200);
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
|
||||
@ -1075,7 +1074,7 @@ void ConsoleCrossZoneCastSpell(
|
||||
|
||||
strn0cpy(CZS->client_name, name.c_str(), sizeof(CZS->client_name));
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
|
||||
connection->SendLine(
|
||||
@ -1126,7 +1125,7 @@ void ConsoleWorldWideCastSpell(
|
||||
WWS->min_status = min_status;
|
||||
WWS->max_status = max_status;
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
|
||||
connection->SendLine(
|
||||
@ -1257,7 +1256,7 @@ void ConsoleCrossZoneMove(
|
||||
m->zone_short_name = zone_short_name;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
|
||||
connection->SendLine(
|
||||
@ -1316,7 +1315,7 @@ void ConsoleWorldWideMove(
|
||||
|
||||
strn0cpy(WWM->zone_short_name, zone_short_name.c_str(), sizeof(WWM->zone_short_name));
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
|
||||
connection->SendLine(
|
||||
@ -1360,7 +1359,7 @@ void ConsoleWWMarquee(
|
||||
|
||||
strn0cpy(wwm->message, message.c_str(), sizeof(wwm->message));
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
|
||||
connection->SendLine(fmt::format("Sent world marquee type {}: {}", type, message));
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
#include "../common/repositories/instance_list_repository.h"
|
||||
|
||||
extern ClientList client_list;
|
||||
extern ZSList zoneserver_list;
|
||||
|
||||
Database& DynamicZone::GetDatabase()
|
||||
{
|
||||
@ -18,7 +17,7 @@ Database& DynamicZone::GetDatabase()
|
||||
|
||||
bool DynamicZone::SendServerPacket(ServerPacket* packet)
|
||||
{
|
||||
return zoneserver_list.SendPacket(packet);
|
||||
return ZSList::Instance()->SendPacket(packet);
|
||||
}
|
||||
|
||||
DynamicZone* DynamicZone::FindDynamicZoneByID(uint32_t dz_id)
|
||||
@ -91,7 +90,7 @@ DynamicZoneStatus DynamicZone::Process()
|
||||
{
|
||||
status = DynamicZoneStatus::Expired;
|
||||
|
||||
auto dz_zoneserver = zoneserver_list.FindByInstanceID(GetInstanceID());
|
||||
auto dz_zoneserver = ZSList::Instance()->FindByInstanceID(GetInstanceID());
|
||||
if (!dz_zoneserver || dz_zoneserver->NumPlayers() == 0) // no clients inside dz
|
||||
{
|
||||
status = DynamicZoneStatus::ExpiredEmpty;
|
||||
@ -119,7 +118,7 @@ void DynamicZone::SendZonesDynamicZoneDeleted()
|
||||
auto pack = std::make_unique<ServerPacket>(ServerOP_DzDeleted, pack_size);
|
||||
auto buf = reinterpret_cast<ServerDzID_Struct*>(pack->pBuffer);
|
||||
buf->dz_id = GetID();
|
||||
zoneserver_list.SendPacket(pack.get());
|
||||
ZSList::Instance()->SendPacket(pack.get());
|
||||
}
|
||||
|
||||
void DynamicZone::SetSecondsRemaining(uint32_t seconds_remaining)
|
||||
@ -154,7 +153,7 @@ void DynamicZone::SendZonesDurationUpdate()
|
||||
auto packbuf = reinterpret_cast<ServerDzSetDuration_Struct*>(pack->pBuffer);
|
||||
packbuf->dz_id = GetID();
|
||||
packbuf->seconds = static_cast<uint32_t>(m_duration.count());
|
||||
zoneserver_list.SendPacket(pack.get());
|
||||
ZSList::Instance()->SendPacket(pack.get());
|
||||
}
|
||||
|
||||
void DynamicZone::SendZonesLeaderChanged()
|
||||
@ -164,7 +163,7 @@ void DynamicZone::SendZonesLeaderChanged()
|
||||
auto buf = reinterpret_cast<ServerDzLeaderID_Struct*>(pack->pBuffer);
|
||||
buf->dz_id = GetID();
|
||||
buf->leader_id = GetLeaderID();
|
||||
zoneserver_list.SendPacket(pack.get());
|
||||
ZSList::Instance()->SendPacket(pack.get());
|
||||
}
|
||||
|
||||
void DynamicZone::ProcessMemberAddRemove(const DynamicZoneMember& member, bool removed)
|
||||
@ -198,7 +197,7 @@ void DynamicZone::SendZonesExpireWarning(uint32_t minutes_remaining)
|
||||
auto buf = reinterpret_cast<ServerDzExpireWarning_Struct*>(pack->pBuffer);
|
||||
buf->dz_id = GetID();
|
||||
buf->minutes_remaining = minutes_remaining;
|
||||
zoneserver_list.SendPacket(pack.get());
|
||||
ZSList::Instance()->SendPacket(pack.get());
|
||||
}
|
||||
|
||||
void DynamicZone::SendZoneMemberStatuses(uint16_t zone_id, uint16_t instance_id)
|
||||
@ -217,7 +216,7 @@ void DynamicZone::SendZoneMemberStatuses(uint16_t zone_id, uint16_t instance_id)
|
||||
buf->entries[i].online_status = static_cast<uint8_t>(m_members[i].status);
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(zone_id, instance_id, pack.get());
|
||||
ZSList::Instance()->SendPacket(zone_id, instance_id, pack.get());
|
||||
}
|
||||
|
||||
void DynamicZone::CacheMemberStatuses()
|
||||
|
||||
@ -10,7 +10,6 @@
|
||||
#include <cereal/types/utility.hpp>
|
||||
|
||||
extern ClientList client_list;
|
||||
extern ZSList zoneserver_list;
|
||||
|
||||
DynamicZoneManager dynamic_zone_manager;
|
||||
|
||||
@ -56,7 +55,7 @@ DynamicZone* DynamicZoneManager::TryCreate(DynamicZone& dz_request, const std::v
|
||||
LogDynamicZones("Created new dz [{}] for zone [{}]", dz_id, dz_request.GetZoneID());
|
||||
|
||||
auto pack = dz->CreateServerPacket(0, 0);
|
||||
zoneserver_list.SendPacket(pack.get());
|
||||
ZSList::Instance()->SendPacket(pack.get());
|
||||
|
||||
auto inserted = dynamic_zone_cache.emplace(dz_id, std::move(dz));
|
||||
return inserted.first->second.get();
|
||||
@ -76,7 +75,7 @@ void DynamicZoneManager::CacheNewDynamicZone(ServerPacket* pack)
|
||||
dynamic_zone_cache.emplace(buf->dz_id, std::move(new_dz));
|
||||
LogDynamicZones("Cached new dynamic zone [{}]", buf->dz_id);
|
||||
|
||||
zoneserver_list.SendPacket(repack.get());
|
||||
ZSList::Instance()->SendPacket(repack.get());
|
||||
}
|
||||
|
||||
void DynamicZoneManager::CacheAllFromDatabase()
|
||||
@ -194,7 +193,7 @@ void DynamicZoneManager::SendBulkMemberStatuses(uint32_t zone_id, uint16_t inst_
|
||||
buf->cereal_size = static_cast<uint32_t>(sv.size());
|
||||
memcpy(buf->cereal_data, sv.data(), sv.size());
|
||||
|
||||
zoneserver_list.SendPacket(zone_id, inst_id, &pack);
|
||||
ZSList::Instance()->SendPacket(zone_id, inst_id, &pack);
|
||||
}
|
||||
|
||||
void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||
@ -301,7 +300,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||
dz->SetZoneInLocation(buf->x, buf->y, buf->z, buf->heading, false);
|
||||
}
|
||||
}
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_DzSetSwitchID:
|
||||
@ -311,7 +310,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||
{
|
||||
dz->ProcessSetSwitchID(buf->dz_switch_id);
|
||||
}
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_DzAddRemoveMember:
|
||||
@ -322,7 +321,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||
auto status = static_cast<DynamicZoneMemberStatus>(buf->character_status);
|
||||
dz->ProcessMemberAddRemove({ buf->character_id, buf->character_name, status }, buf->removed);
|
||||
}
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_DzSwapMembers:
|
||||
@ -335,7 +334,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||
dz->ProcessMemberAddRemove({ buf->add_character_id, buf->add_character_name, status }, false);
|
||||
dz->ProcessMemberAddRemove({ buf->remove_character_id, buf->remove_character_name }, true);
|
||||
}
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_DzRemoveAllMembers:
|
||||
@ -345,7 +344,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||
{
|
||||
dz->ProcessRemoveAllMembers();
|
||||
}
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_DzSetSecondsRemaining:
|
||||
@ -383,7 +382,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||
auto status = static_cast<DynamicZoneMemberStatus>(buf->status);
|
||||
dz->ProcessMemberStatusChange(buf->character_id, status);
|
||||
}
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_DzMovePC:
|
||||
@ -392,7 +391,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||
auto dz = DynamicZone::FindDynamicZoneByID(buf->dz_id);
|
||||
if (dz && dz->HasMember(buf->character_id))
|
||||
{
|
||||
zoneserver_list.SendPacket(buf->sender_zone_id, buf->sender_instance_id, pack);
|
||||
ZSList::Instance()->SendPacket(buf->sender_zone_id, buf->sender_instance_id, pack);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -403,7 +402,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||
{
|
||||
dz->SetLocked(buf->lock);
|
||||
}
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_DzReplayOnJoin:
|
||||
@ -413,7 +412,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||
{
|
||||
dz->SetReplayOnJoin(buf->enabled);
|
||||
}
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_DzLockout:
|
||||
@ -424,7 +423,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||
DzLockout lockout{ dz->GetUUID(), dz->GetName(), buf->event_name, buf->expire_time, buf->duration };
|
||||
dz->HandleLockoutUpdate(lockout, buf->remove, buf->members_only);
|
||||
}
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_DzLockoutDuration:
|
||||
@ -435,7 +434,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||
DzLockout lockout{ dz->GetUUID(), dz->GetName(), buf->event_name, buf->expire_time, buf->duration };
|
||||
dz->HandleLockoutDuration(lockout, buf->seconds, buf->members_only, false);
|
||||
}
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_DzCharacterLockout:
|
||||
|
||||
@ -13,13 +13,12 @@
|
||||
#include "ucs.h"
|
||||
#include "queryserv.h"
|
||||
|
||||
extern ZSList zoneserver_list;
|
||||
extern ClientList client_list;
|
||||
extern WorldGuildManager guild_mgr;
|
||||
|
||||
void callGetZoneList(Json::Value &response)
|
||||
{
|
||||
for (auto &zone: zoneserver_list.getZoneServerList()) {
|
||||
for (auto &zone: ZSList::Instance()->getZoneServerList()) {
|
||||
Json::Value row;
|
||||
|
||||
if (!zone) {
|
||||
@ -139,7 +138,7 @@ void getReloadTypes(Json::Value &response)
|
||||
|
||||
void getServerCounts(Json::Value &response, const std::vector<std::string> &args)
|
||||
{
|
||||
response["zone_count"] = zoneserver_list.GetServerListCount();
|
||||
response["zone_count"] = ZSList::Instance()->GetServerListCount();
|
||||
response["client_count"] = ClientList::Instance()->GetClientCount();
|
||||
}
|
||||
|
||||
@ -165,7 +164,7 @@ void EQEmuApiWorldDataService::reload(Json::Value &r, const std::vector<std::str
|
||||
if (std::to_string(t) == command || Strings::ToLower(ServerReload::GetName(t)) == command) {
|
||||
message(r, fmt::format("Reloading [{}] globally", ServerReload::GetName(t)));
|
||||
LogInfo("Queueing reload of type [{}] to zones", ServerReload::GetName(t));
|
||||
zoneserver_list.QueueServerReload(t);
|
||||
ZSList::Instance()->QueueServerReload(t);
|
||||
}
|
||||
found_command = true;
|
||||
}
|
||||
|
||||
@ -45,7 +45,6 @@
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
extern ZSList zoneserver_list;
|
||||
extern ClientList client_list;
|
||||
extern uint32 numzones;
|
||||
extern LauncherList launcher_list;
|
||||
@ -107,7 +106,7 @@ bool EQW::LSConnected() {
|
||||
}
|
||||
|
||||
int EQW::CountZones() {
|
||||
return(zoneserver_list.GetZoneCount());
|
||||
return(ZSList::Instance()->GetZoneCount());
|
||||
}
|
||||
|
||||
//returns an array of zone_refs (opaque)
|
||||
@ -115,7 +114,7 @@ std::vector<std::string> EQW::ListBootedZones() {
|
||||
std::vector<std::string> res;
|
||||
|
||||
std::vector<uint32> zones;
|
||||
zoneserver_list.GetZoneIDList(zones);
|
||||
ZSList::Instance()->GetZoneIDList(zones);
|
||||
|
||||
std::vector<uint32>::iterator cur, end;
|
||||
cur = zones.begin();
|
||||
@ -130,7 +129,7 @@ std::vector<std::string> EQW::ListBootedZones() {
|
||||
std::map<std::string,std::string> EQW::GetZoneDetails(Const_char *zone_ref) {
|
||||
std::map<std::string,std::string> res;
|
||||
|
||||
ZoneServer *zs = zoneserver_list.FindByID(Strings::ToInt(zone_ref));
|
||||
ZoneServer *zs = ZSList::Instance()->FindByID(Strings::ToInt(zone_ref));
|
||||
if(zs == nullptr) {
|
||||
res["error"] = "Invalid zone.";
|
||||
return(res);
|
||||
@ -360,7 +359,7 @@ void EQW::ResolveBug(const char *id) {
|
||||
}
|
||||
|
||||
void EQW::SendMessage(uint32 type, const char *msg) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -370,7 +369,7 @@ void EQW::SendMessage(uint32 type, const char *msg) {
|
||||
}
|
||||
|
||||
void EQW::WorldShutDown(uint32 time, uint32 interval) {
|
||||
zoneserver_list.WorldShutDown(time, interval);
|
||||
ZSList::Instance()->WorldShutDown(time, interval);
|
||||
}
|
||||
|
||||
#endif //EMBPERL
|
||||
|
||||
@ -26,7 +26,6 @@
|
||||
#include "../common/classes.h"
|
||||
|
||||
extern ClientList client_list;
|
||||
extern ZSList zoneserver_list;
|
||||
|
||||
GroupLFP::GroupLFP(uint32 inLeaderID) {
|
||||
|
||||
@ -270,7 +269,7 @@ void GroupLFPList::SendLFPMatches(ServerLFPMatchesRequest_Struct* smrs) {
|
||||
CLE->Server()->SendPacket(Pack);
|
||||
}
|
||||
else {
|
||||
ZoneServer* zs = zoneserver_list.FindByName(smrs->FromName);
|
||||
ZoneServer* zs = ZSList::Instance()->FindByName(smrs->FromName);
|
||||
if (zs != nullptr)
|
||||
zs->SendPacket(Pack);
|
||||
}
|
||||
|
||||
@ -20,7 +20,6 @@
|
||||
#include "cliententry.h"
|
||||
#include "world_config.h"
|
||||
|
||||
extern ZSList zoneserver_list;
|
||||
extern ClientList client_list;
|
||||
extern uint32 numzones;
|
||||
extern uint32 numplayers;
|
||||
@ -312,7 +311,7 @@ void LoginServer::ProcessSystemwideMessage(uint16_t opcode, EQ::Net::Packet &p)
|
||||
LogNetcode("Received ServerPacket from LS OpCode {:#04x}", opcode);
|
||||
|
||||
ServerSystemwideMessage *swm = (ServerSystemwideMessage *) p.Data();
|
||||
zoneserver_list.SendEmoteMessageRaw(
|
||||
ZSList::Instance()->SendEmoteMessageRaw(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -376,7 +375,7 @@ bool LoginServer::Connect()
|
||||
|
||||
SendInfo();
|
||||
SendStatus();
|
||||
zoneserver_list.SendLSZones();
|
||||
ZSList::Instance()->SendLSZones();
|
||||
|
||||
m_statusupdate_timer = std::make_unique<EQ::Timer>(
|
||||
LoginServer_StatusUpdateInterval, true, [this](EQ::Timer *t) {
|
||||
@ -485,7 +484,7 @@ bool LoginServer::Connect()
|
||||
);
|
||||
SendInfo();
|
||||
SendStatus();
|
||||
zoneserver_list.SendLSZones();
|
||||
ZSList::Instance()->SendLSZones();
|
||||
|
||||
m_statusupdate_timer = std::make_unique<EQ::Timer>(
|
||||
LoginServer_StatusUpdateInterval, true, [this](EQ::Timer *t) {
|
||||
|
||||
@ -36,7 +36,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#include "clientlist.h"
|
||||
#include "world_config.h"
|
||||
|
||||
extern ZSList zoneserver_list;
|
||||
extern ClientList client_list;
|
||||
extern uint32 numzones;
|
||||
extern uint32 numplayers;
|
||||
|
||||
@ -93,7 +93,6 @@
|
||||
|
||||
ClientList client_list;
|
||||
GroupLFPList LFPGroupList;
|
||||
ZSList zoneserver_list;
|
||||
LauncherList launcher_list;
|
||||
volatile bool RunLoops = true;
|
||||
uint32 numclients = 0;
|
||||
@ -173,7 +172,7 @@ int main(int argc, char **argv)
|
||||
// global loads
|
||||
LogInfo("Loading launcher list");
|
||||
launcher_list.LoadList();
|
||||
zoneserver_list.Init();
|
||||
ZSList::Instance()->Init();
|
||||
|
||||
if (IpUtil::IsPortInUse(Config->WorldIP, Config->WorldTCPPort)) {
|
||||
LogError("World port [{}] already in use", Config->WorldTCPPort);
|
||||
@ -207,7 +206,7 @@ int main(int argc, char **argv)
|
||||
server_connection->OnConnectionIdentified(
|
||||
"Zone", [&console](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
||||
numzones++;
|
||||
zoneserver_list.Add(new ZoneServer(connection, console.get()));
|
||||
ZSList::Instance()->Add(new ZoneServer(connection, console.get()));
|
||||
|
||||
LogInfo(
|
||||
"New Zone Server connection from [{}] at [{}:{}] zone_count [{}]",
|
||||
@ -222,7 +221,7 @@ int main(int argc, char **argv)
|
||||
server_connection->OnConnectionRemoved(
|
||||
"Zone", [](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
||||
numzones--;
|
||||
zoneserver_list.Remove(connection->GetUUID());
|
||||
ZSList::Instance()->Remove(connection->GetUUID());
|
||||
|
||||
LogInfo(
|
||||
"Removed Zone Server connection from [{}] total zone_count [{}]",
|
||||
@ -290,7 +289,7 @@ int main(int argc, char **argv)
|
||||
|
||||
UCSConnection::Instance()->SetConnection(connection);
|
||||
|
||||
zoneserver_list.UpdateUCSServerAvailable();
|
||||
ZSList::Instance()->UpdateUCSServerAvailable();
|
||||
}
|
||||
);
|
||||
|
||||
@ -303,7 +302,7 @@ int main(int argc, char **argv)
|
||||
if (ucs_connection->GetUUID() == connection->GetUUID()) {
|
||||
LogInfo("Removing currently active UCS connection");
|
||||
UCSConnection::Instance()->SetConnection(nullptr);
|
||||
zoneserver_list.UpdateUCSServerAvailable(false);
|
||||
ZSList::Instance()->UpdateUCSServerAvailable(false);
|
||||
}
|
||||
}
|
||||
);
|
||||
@ -346,10 +345,10 @@ int main(int argc, char **argv)
|
||||
//register all the patches we have avaliable with the stream identifier.
|
||||
EQStreamIdentifier stream_identifier;
|
||||
RegisterAllPatches(stream_identifier);
|
||||
zoneserver_list.shutdowntimer = new Timer(60000);
|
||||
zoneserver_list.shutdowntimer->Disable();
|
||||
zoneserver_list.reminder = new Timer(20000);
|
||||
zoneserver_list.reminder->Disable();
|
||||
ZSList::Instance()->shutdowntimer = new Timer(60000);
|
||||
ZSList::Instance()->shutdowntimer->Disable();
|
||||
ZSList::Instance()->reminder = new Timer(20000);
|
||||
ZSList::Instance()->reminder->Disable();
|
||||
Timer InterserverTimer(INTERSERVER_TIMER); // does MySQL pings and auto-reconnect
|
||||
InterserverTimer.Trigger();
|
||||
uint8 ReconnectCounter = 100;
|
||||
@ -414,7 +413,7 @@ int main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
WorldEventScheduler::Instance()->Process(&zoneserver_list);
|
||||
WorldEventScheduler::Instance()->Process(ZSList::Instance());
|
||||
|
||||
client_list.Process();
|
||||
guild_mgr.Process();
|
||||
@ -427,7 +426,7 @@ int main(int argc, char **argv)
|
||||
);
|
||||
|
||||
auto out = std::make_unique<ServerPacket>(ServerOP_ParcelPrune);
|
||||
zoneserver_list.SendPacketToBootedZones(out.get());
|
||||
ZSList::Instance()->SendPacketToBootedZones(out.get());
|
||||
|
||||
database.PurgeCharacterParcels();
|
||||
}
|
||||
@ -442,7 +441,7 @@ int main(int argc, char **argv)
|
||||
|
||||
if (EQTimeTimer.Check()) {
|
||||
TimeOfDay_Struct tod{};
|
||||
zoneserver_list.worldclock.GetCurrentEQTimeOfDay(time(nullptr), &tod);
|
||||
ZSList::Instance()->worldclock.GetCurrentEQTimeOfDay(time(nullptr), &tod);
|
||||
if (!database.SaveTime(tod.minute, tod.hour, tod.day, tod.month, tod.year)) {
|
||||
LogEqTime("Failed to save eqtime");
|
||||
}
|
||||
@ -457,7 +456,7 @@ int main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
zoneserver_list.Process();
|
||||
ZSList::Instance()->Process();
|
||||
launcher_list.Process();
|
||||
LFPGroupList.Process();
|
||||
AdventureManager::Instance()->Process();
|
||||
@ -491,7 +490,7 @@ int main(int argc, char **argv)
|
||||
|
||||
LogInfo("World main loop completed");
|
||||
LogInfo("Shutting down zone connections (if any)");
|
||||
zoneserver_list.KillAll();
|
||||
ZSList::Instance()->KillAll();
|
||||
LogInfo("Zone (TCP) listener stopped");
|
||||
LogInfo("Signaling HTTP service to stop");
|
||||
EQEmuLogSys::Instance()->CloseFileLogs();
|
||||
|
||||
@ -10,7 +10,6 @@
|
||||
#include "../common/packet_dump.h"
|
||||
|
||||
extern ClientList client_list;
|
||||
extern ZSList zoneserver_list;
|
||||
|
||||
QueryServConnection::QueryServConnection()
|
||||
{
|
||||
@ -36,12 +35,12 @@ void QueryServConnection::HandleGenericMessage(uint16_t opcode, EQ::Net::Packet
|
||||
uint32 ZoneID = p.GetUInt32(0);
|
||||
uint16 InstanceID = p.GetUInt32(4);
|
||||
ServerPacket pack(opcode, p);
|
||||
zoneserver_list.SendPacket(ZoneID, InstanceID, &pack);
|
||||
ZSList::Instance()->SendPacket(ZoneID, InstanceID, &pack);
|
||||
}
|
||||
|
||||
void QueryServConnection::HandleLFGuildUpdateMessage(uint16_t opcode, EQ::Net::Packet &p) {
|
||||
ServerPacket pack(opcode, p);
|
||||
zoneserver_list.SendPacket(&pack);
|
||||
ZSList::Instance()->SendPacket(&pack);
|
||||
}
|
||||
|
||||
bool QueryServConnection::SendPacket(ServerPacket* pack)
|
||||
|
||||
@ -18,7 +18,6 @@
|
||||
#include <ctime>
|
||||
|
||||
extern ClientList client_list;
|
||||
extern ZSList zoneserver_list;
|
||||
|
||||
SharedTaskManager::SharedTaskManager()
|
||||
: m_process_timer{ static_cast<uint32_t>(RuleI(TaskSystem, SharedTasksWorldProcessRate)) }
|
||||
|
||||
@ -15,7 +15,6 @@
|
||||
#include "dynamic_zone.h"
|
||||
|
||||
extern ClientList client_list;
|
||||
extern ZSList zoneserver_list;
|
||||
|
||||
void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack)
|
||||
{
|
||||
@ -297,7 +296,7 @@ void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack)
|
||||
0
|
||||
);
|
||||
|
||||
zoneserver_list.SendPacket(p.get());
|
||||
ZSList::Instance()->SendPacket(p.get());
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
#include "launcher_list.h"
|
||||
|
||||
extern ClientList client_list;
|
||||
extern ZSList zoneserver_list;
|
||||
extern LauncherList launcher_list;
|
||||
|
||||
void EQW__GetConfig(WebInterface *i, const std::string& method, const std::string& id, const Json::Value& params) {
|
||||
@ -58,7 +57,7 @@ void EQW__GetPlayerCount(WebInterface *i, const std::string& method, const std::
|
||||
}
|
||||
|
||||
void EQW__GetZoneCount(WebInterface *i, const std::string& method, const std::string& id, const Json::Value& params) {
|
||||
Json::Value ret = zoneserver_list.GetZoneCount();
|
||||
Json::Value ret = ZSList::Instance()->GetZoneCount();
|
||||
i->SendResponse(id, ret);
|
||||
}
|
||||
|
||||
|
||||
@ -36,7 +36,6 @@
|
||||
|
||||
|
||||
extern ClientList client_list;
|
||||
extern ZSList zoneserver_list;
|
||||
std::map<uint32, TributeData> tribute_list;
|
||||
|
||||
WorldGuildManager guild_mgr;
|
||||
@ -50,7 +49,7 @@ void WorldGuildManager::SendGuildRefresh(uint32 guild_id, bool name, bool motd,
|
||||
s->motd_change = motd;
|
||||
s->rank_change = rank;
|
||||
s->relation_change = relation;
|
||||
zoneserver_list.SendPacketToZonesWithGuild(guild_id, pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(guild_id, pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
|
||||
@ -61,7 +60,7 @@ void WorldGuildManager::SendCharRefresh(uint32 old_guild_id, uint32 guild_id, ui
|
||||
s->guild_id = guild_id;
|
||||
s->old_guild_id = old_guild_id;
|
||||
s->char_id = charid;
|
||||
zoneserver_list.SendPacketToZonesWithGuild(guild_id, pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(guild_id, pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
|
||||
@ -70,7 +69,7 @@ void WorldGuildManager::SendGuildDelete(uint32 guild_id) {
|
||||
auto pack = new ServerPacket(ServerOP_DeleteGuild, sizeof(ServerGuildID_Struct));
|
||||
ServerGuildID_Struct *s = (ServerGuildID_Struct *) pack->pBuffer;
|
||||
s->guild_id = guild_id;
|
||||
zoneserver_list.SendPacketToZonesWithGuild(guild_id, pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(guild_id, pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
|
||||
@ -91,7 +90,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
||||
}
|
||||
|
||||
//broadcast this packet to all zones.
|
||||
zoneserver_list.SendPacketToBootedZones(pack);
|
||||
ZSList::Instance()->SendPacketToBootedZones(pack);
|
||||
|
||||
break;
|
||||
}
|
||||
@ -107,7 +106,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
||||
|
||||
//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.
|
||||
zoneserver_list.SendPacketToZonesWithGuild(s->guild_id, pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(s->guild_id, pack);
|
||||
|
||||
break;
|
||||
}
|
||||
@ -130,7 +129,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
||||
LogGuilds("Received and broadcasting guild delete for guild [{}]", s->guild_id);
|
||||
|
||||
//broadcast this packet to all zones.
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
|
||||
break;
|
||||
}
|
||||
@ -146,7 +145,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
||||
auto s = (ServerGuildID_Struct *)pack->pBuffer;
|
||||
RefreshGuild(s->guild_id);
|
||||
|
||||
zoneserver_list.SendPacketToZonesWithGuild(s->guild_id, pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(s->guild_id, pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_GuildPermissionUpdate:
|
||||
@ -178,7 +177,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
||||
sg->function_value
|
||||
);
|
||||
|
||||
zoneserver_list.SendPacketToZonesWithGuild(sg->guild_id, pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(sg->guild_id, pack);
|
||||
}
|
||||
else {
|
||||
LogError("World Received ServerOP_GuildPermissionUpdate for guild [{}] function id {} with value of {} but guild could not be found.",
|
||||
@ -212,7 +211,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
||||
rnc->rank,
|
||||
rnc->rank_name
|
||||
);
|
||||
zoneserver_list.SendPacketToZonesWithGuild(rnc->guild_id, pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(rnc->guild_id, pack);
|
||||
}
|
||||
else {
|
||||
LogError("World Received ServerOP_GuildRankNameChange from zone for guild [{}] rank id {} with new name of {} but could not find guild.",
|
||||
@ -232,7 +231,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
||||
case ServerOP_GuildMembersList:
|
||||
{
|
||||
auto in = (ServerOP_GuildMessage_Struct *) pack->pBuffer;
|
||||
zoneserver_list.SendPacketToZonesWithGuild(in->guild_id, pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(in->guild_id, pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_GuildMemberAdd:
|
||||
@ -243,12 +242,12 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
||||
BaseGuildManager::RefreshGuild(in->guild_id);
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacketToZonesWithGuild(in->guild_id, pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(in->guild_id, pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_GuildSendGuildList: {
|
||||
auto in = (ServerOP_GuildMessage_Struct *) pack->pBuffer;
|
||||
zoneserver_list.SendPacketToBootedZones(pack);
|
||||
ZSList::Instance()->SendPacketToBootedZones(pack);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -456,6 +455,6 @@ void WorldGuildManager::SendGuildTributeFavorAndTimer(uint32 guild_id, uint32 fa
|
||||
data->tribute_timer = time;
|
||||
data->trophy_timer = 0;
|
||||
|
||||
zoneserver_list.SendPacketToZonesWithGuild(guild_id, sp);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(guild_id, sp);
|
||||
safe_delete(sp)
|
||||
}
|
||||
|
||||
@ -29,7 +29,6 @@
|
||||
#include "../common/database/database_update.h"
|
||||
#include "../common/repositories/zone_state_spawns_repository.h"
|
||||
|
||||
extern ZSList zoneserver_list;
|
||||
extern WorldConfig Config;
|
||||
|
||||
auto mutex = new Mutex;
|
||||
@ -53,7 +52,7 @@ void WorldBoot::GMSayHookCallBackProcessWorld(uint16 log_category, const char *f
|
||||
auto message_split = Strings::Split(message, '\n');
|
||||
|
||||
for (size_t iter = 0; iter < message_split.size(); ++iter) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::QuestTroupe,
|
||||
@ -69,7 +68,7 @@ void WorldBoot::GMSayHookCallBackProcessWorld(uint16 log_category, const char *f
|
||||
return;
|
||||
}
|
||||
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::QuestTroupe,
|
||||
@ -351,7 +350,7 @@ bool WorldBoot::DatabaseLoadRoutines(int argc, char **argv)
|
||||
TimeOfDay_Struct eqTime{};
|
||||
time_t realtime;
|
||||
eqTime = database.LoadTime(realtime);
|
||||
zoneserver_list.worldclock.SetCurrentEQTimeOfDay(eqTime, realtime);
|
||||
ZSList::Instance()->worldclock.SetCurrentEQTimeOfDay(eqTime, realtime);
|
||||
|
||||
LogInfo("Deleted [{}] stale player corpses from database", database.DeleteStalePlayerCorpses());
|
||||
|
||||
|
||||
@ -79,6 +79,13 @@ public:
|
||||
std::vector<ServerReload::Type> m_queued_reloads = {};
|
||||
|
||||
void QueueServerReload(ServerReload::Type &type);
|
||||
|
||||
static ZSList* Instance()
|
||||
{
|
||||
static ZSList instance;
|
||||
return &instance;
|
||||
}
|
||||
|
||||
private:
|
||||
void OnTick(EQ::Timer *t);
|
||||
uint32 NextID;
|
||||
|
||||
@ -54,7 +54,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
extern ClientList client_list;
|
||||
extern GroupLFPList LFPGroupList;
|
||||
extern ZSList zoneserver_list;
|
||||
extern volatile bool RunLoops;
|
||||
extern volatile bool UCSServerAvailable_;
|
||||
|
||||
@ -69,7 +68,7 @@ ZoneServer::ZoneServer(std::shared_ptr<EQ::Net::ServertalkServerConnection> in_c
|
||||
memset(client_address, 0, sizeof(client_address));
|
||||
memset(client_local_address, 0, sizeof(client_local_address));
|
||||
|
||||
zone_server_id = zoneserver_list.GetNextID();
|
||||
zone_server_id = ZSList::Instance()->GetNextID();
|
||||
zone_server_zone_id = 0;
|
||||
instance_id = 0;
|
||||
zone_os_process_id = 0;
|
||||
@ -242,7 +241,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_GroupJoin: {
|
||||
@ -250,7 +249,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_ForceGroupUpdate: {
|
||||
@ -258,7 +257,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_DisbandGroup: {
|
||||
@ -266,7 +265,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RaidAdd: {
|
||||
@ -274,7 +273,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RaidRemove: {
|
||||
@ -282,7 +281,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RaidDisband: {
|
||||
@ -290,7 +289,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RaidLockFlag: {
|
||||
@ -298,7 +297,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RaidChangeGroup: {
|
||||
@ -306,7 +305,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_UpdateGroup: {
|
||||
@ -314,7 +313,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RaidGroupDisband: {
|
||||
@ -322,7 +321,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RaidGroupAdd: {
|
||||
@ -330,7 +329,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RaidGroupRemove: {
|
||||
@ -338,7 +337,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RaidGroupLeader: {
|
||||
@ -346,7 +345,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RaidLeader: {
|
||||
@ -354,7 +353,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_PlayerEvent: {
|
||||
@ -386,7 +385,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RaidMOTD: {
|
||||
@ -394,7 +393,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RaidNote: {
|
||||
@ -402,7 +401,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_SpawnCondition: {
|
||||
@ -411,7 +410,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
|
||||
auto ssc = (ServerSpawnCondition_Struct*) pack->pBuffer;
|
||||
zoneserver_list.SendPacket(ssc->zoneID, ssc->instanceID, pack);
|
||||
ZSList::Instance()->SendPacket(ssc->zoneID, ssc->instanceID, pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_SpawnEvent: {
|
||||
@ -420,7 +419,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
|
||||
auto sse = (ServerSpawnEvent_Struct*) pack->pBuffer;
|
||||
zoneserver_list.SendPacket(sse->zoneID, 0, pack);
|
||||
ZSList::Instance()->SendPacket(sse->zoneID, 0, pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_ChannelMessage: {
|
||||
@ -456,7 +455,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
) &&
|
||||
!scm->noreply
|
||||
) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
scm->from,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -530,7 +529,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
} else if (!cle->Server()) {
|
||||
if (!scm->noreply)
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
scm->from,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -568,11 +567,11 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
}
|
||||
if (scm->guilddbid > 0) {
|
||||
zoneserver_list.SendPacketToZonesWithGuild(scm->guilddbid, pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(scm->guilddbid, pack);
|
||||
} else if (scm->chan_num == ChatChannel_GMSAY) {
|
||||
zoneserver_list.SendPacketToZonesWithGMs(pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGMs(pack);
|
||||
} else {
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
}
|
||||
}
|
||||
|
||||
@ -580,7 +579,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
case ServerOP_EmoteMessage: {
|
||||
auto sem = (ServerEmoteMessage_Struct*) pack->pBuffer;
|
||||
zoneserver_list.SendEmoteMessageRaw(
|
||||
ZSList::Instance()->SendEmoteMessageRaw(
|
||||
sem->to,
|
||||
sem->guilddbid,
|
||||
sem->minstatus,
|
||||
@ -598,7 +597,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
cle->Online() < CLE_Status::Zoning ||
|
||||
!cle->Server()
|
||||
) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
svm->From,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -612,14 +611,14 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
cle->Server()->SendPacket(pack);
|
||||
} else {
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case ServerOP_RezzPlayer: {
|
||||
auto rps = (RezzPlayer_Struct*) pack->pBuffer;
|
||||
if (zoneserver_list.SendPacket(pack)) {
|
||||
if (ZSList::Instance()->SendPacket(pack)) {
|
||||
LogInfo("Sent Rez packet for [{}]", rps->rez.your_name);
|
||||
} else {
|
||||
LogInfo("Could not send Rez packet for [{}]", rps->rez.your_name);
|
||||
@ -663,7 +662,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
auto sci = (ServerConnectInfo*) pack->pBuffer;
|
||||
|
||||
if (!sci->port) {
|
||||
client_port = zoneserver_list.GetAvailableZonePort();
|
||||
client_port = ZSList::Instance()->GetAvailableZonePort();
|
||||
|
||||
ServerPacket p(ServerOP_SetConnectInfo, sizeof(ServerConnectInfo));
|
||||
memset(p.pBuffer, 0, sizeof(ServerConnectInfo));
|
||||
@ -705,20 +704,20 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
case ServerOP_ShutdownAll: {
|
||||
if (!pack->size) {
|
||||
zoneserver_list.SendPacket(pack);
|
||||
zoneserver_list.Process();
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
ZSList::Instance()->Process();
|
||||
CatchSignal(2);
|
||||
} else {
|
||||
auto wsd = (WorldShutDown_Struct*) pack->pBuffer;
|
||||
if (!wsd->time && !wsd->interval && zoneserver_list.shutdowntimer->Enabled()) {
|
||||
zoneserver_list.shutdowntimer->Disable();
|
||||
zoneserver_list.reminder->Disable();
|
||||
if (!wsd->time && !wsd->interval && ZSList::Instance()->shutdowntimer->Enabled()) {
|
||||
ZSList::Instance()->shutdowntimer->Disable();
|
||||
ZSList::Instance()->reminder->Disable();
|
||||
} else {
|
||||
zoneserver_list.shutdowntimer->SetTimer(wsd->time);
|
||||
zoneserver_list.reminder->SetTimer(wsd->interval - 1000);
|
||||
zoneserver_list.reminder->SetAtTrigger(wsd->interval);
|
||||
zoneserver_list.shutdowntimer->Start();
|
||||
zoneserver_list.reminder->Start();
|
||||
ZSList::Instance()->shutdowntimer->SetTimer(wsd->time);
|
||||
ZSList::Instance()->reminder->SetTimer(wsd->interval - 1000);
|
||||
ZSList::Instance()->reminder->SetAtTrigger(wsd->interval);
|
||||
ZSList::Instance()->shutdowntimer->Start();
|
||||
ZSList::Instance()->reminder->Start();
|
||||
}
|
||||
}
|
||||
|
||||
@ -728,13 +727,13 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
auto *s = (ServerZoneStateChange_Struct*) pack->pBuffer;
|
||||
ZoneServer* zs = 0;
|
||||
if (s->zone_server_id) {
|
||||
zs = zoneserver_list.FindByID(s->zone_server_id);
|
||||
zs = ZSList::Instance()->FindByID(s->zone_server_id);
|
||||
} else if (s->zone_id) {
|
||||
zs = zoneserver_list.FindByName(ZoneName(s->zone_id));
|
||||
zs = ZSList::Instance()->FindByName(ZoneName(s->zone_id));
|
||||
} else if (s->instance_id) {
|
||||
zs = zoneserver_list.FindByInstanceID(s->instance_id);
|
||||
zs = ZSList::Instance()->FindByInstanceID(s->instance_id);
|
||||
} else {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
s->admin_name,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -744,7 +743,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
|
||||
if (!zs) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
s->admin_name,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
@ -759,13 +758,13 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
case ServerOP_ZoneBootup: {
|
||||
auto *s = (ServerZoneStateChange_Struct*) pack->pBuffer;
|
||||
zoneserver_list.SOPZoneBootup(s->admin_name, s->zone_server_id, ZoneName(s->zone_id), s->is_static);
|
||||
ZSList::Instance()->SOPZoneBootup(s->admin_name, s->zone_server_id, ZoneName(s->zone_id), s->is_static);
|
||||
break;
|
||||
}
|
||||
case ServerOP_ZoneStatus: {
|
||||
if (pack->size >= 1) {
|
||||
auto z = (ServerZoneStatus_Struct*) pack->pBuffer;
|
||||
zoneserver_list.SendZoneStatus(z->name, z->admin, this);
|
||||
ZSList::Instance()->SendZoneStatus(z->name, z->admin, this);
|
||||
}
|
||||
|
||||
break;
|
||||
@ -829,7 +828,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
if (
|
||||
ztz->admin < AccountStatus::QuestTroupe &&
|
||||
ztz->ignorerestrictions < 2 &&
|
||||
zoneserver_list.IsZoneLocked(ztz->requested_zone_id)
|
||||
ZSList::Instance()->IsZoneLocked(ztz->requested_zone_id)
|
||||
) {
|
||||
ztz->response = 0;
|
||||
|
||||
@ -846,8 +845,8 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
|
||||
auto ingress_server = (
|
||||
ztz->requested_instance_id ?
|
||||
zoneserver_list.FindByInstanceID(ztz->requested_instance_id) :
|
||||
zoneserver_list.FindByZoneID(ztz->requested_zone_id)
|
||||
ZSList::Instance()->FindByInstanceID(ztz->requested_instance_id) :
|
||||
ZSList::Instance()->FindByZoneID(ztz->requested_zone_id)
|
||||
);
|
||||
|
||||
if (ingress_server) {
|
||||
@ -861,7 +860,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
ztz->response = 1;
|
||||
} else {
|
||||
int server_id;
|
||||
if ((server_id = zoneserver_list.TriggerBootup(ztz->requested_zone_id, ztz->requested_instance_id))) {
|
||||
if ((server_id = ZSList::Instance()->TriggerBootup(ztz->requested_zone_id, ztz->requested_instance_id))) {
|
||||
LogZoning(
|
||||
"ZoneToZone successfully booted a zone for character [{}] zone [{}] ({}) instance [{}] ({})",
|
||||
ztz->name,
|
||||
@ -871,7 +870,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
server_id
|
||||
);
|
||||
ztz->response = 1;
|
||||
ingress_server = zoneserver_list.FindByID(server_id);
|
||||
ingress_server = ZSList::Instance()->FindByID(server_id);
|
||||
} else {
|
||||
LogError("failed to boot a zone for [{}]", ztz->name);
|
||||
ztz->response = 0;
|
||||
@ -895,8 +894,8 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
);
|
||||
auto egress_server = (
|
||||
ztz->current_instance_id ?
|
||||
zoneserver_list.FindByInstanceID(ztz->current_instance_id) :
|
||||
zoneserver_list.FindByZoneID(ztz->current_zone_id)
|
||||
ZSList::Instance()->FindByInstanceID(ztz->current_instance_id) :
|
||||
ZSList::Instance()->FindByZoneID(ztz->current_zone_id)
|
||||
);
|
||||
|
||||
if (egress_server) {
|
||||
@ -1006,7 +1005,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
cle->SetAdmin(*((int16*)&pack->pBuffer[4]));
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_GMGoto: {
|
||||
@ -1106,7 +1105,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
|
||||
auto smotd = (ServerMotd_Struct*) pack->pBuffer;
|
||||
RuleManager::Instance()->SetRule("MOTD", smotd->motd, &database, true, true);
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_Uptime: {
|
||||
@ -1119,7 +1118,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
if (!sus->zoneserverid) {
|
||||
ZSList::ShowUpTime(this, sus->adminname);
|
||||
} else {
|
||||
auto zs = zoneserver_list.FindByID(sus->zoneserverid);
|
||||
auto zs = ZSList::Instance()->FindByID(sus->zoneserverid);
|
||||
if (zs) {
|
||||
zs->SendPacket(pack);
|
||||
}
|
||||
@ -1136,8 +1135,8 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
pack->pBuffer = new uchar[pack->size];
|
||||
memset(pack->pBuffer, 0, pack->size);
|
||||
auto tod = (eqTimeOfDay*) pack->pBuffer;
|
||||
tod->start_eqtime = zoneserver_list.worldclock.getStartEQTime();
|
||||
tod->start_realtime = zoneserver_list.worldclock.getStartRealTime();
|
||||
tod->start_eqtime = ZSList::Instance()->worldclock.getStartEQTime();
|
||||
tod->start_realtime = ZSList::Instance()->worldclock.getStartRealTime();
|
||||
SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
break;
|
||||
@ -1145,10 +1144,10 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
case ServerOP_SetWorldTime: {
|
||||
LogNetcode("Received SetWorldTime");
|
||||
auto newtime = (eqTimeOfDay*) pack->pBuffer;
|
||||
zoneserver_list.worldclock.SetCurrentEQTimeOfDay(newtime->start_eqtime, newtime->start_realtime);
|
||||
ZSList::Instance()->worldclock.SetCurrentEQTimeOfDay(newtime->start_eqtime, newtime->start_realtime);
|
||||
LogInfo("New time = [{}]-[{}]-[{}] [{}]:[{}] ([{}])\n", newtime->start_eqtime.year, newtime->start_eqtime.month, (int)newtime->start_eqtime.day, (int)newtime->start_eqtime.hour, (int)newtime->start_eqtime.minute, (int)newtime->start_realtime);
|
||||
database.SaveTime((int)newtime->start_eqtime.minute, (int)newtime->start_eqtime.hour, (int)newtime->start_eqtime.day, newtime->start_eqtime.month, newtime->start_eqtime.year);
|
||||
zoneserver_list.SendTimeSync();
|
||||
ZSList::Instance()->SendTimeSync();
|
||||
break;
|
||||
}
|
||||
case ServerOP_IPLookup: {
|
||||
@ -1174,14 +1173,14 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
|
||||
auto lock_zone = (ServerLockZone_Struct*) pack->pBuffer;
|
||||
if (lock_zone->op == ServerLockType::List) {
|
||||
zoneserver_list.ListLockedZones(lock_zone->adminname, this);
|
||||
ZSList::Instance()->ListLockedZones(lock_zone->adminname, this);
|
||||
break;
|
||||
} else if (
|
||||
lock_zone->op == ServerLockType::Lock ||
|
||||
lock_zone->op == ServerLockType::Unlock
|
||||
) {
|
||||
if (zoneserver_list.SetLockedZone(lock_zone->zoneID, lock_zone->op == ServerLockType::Lock)) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
if (ZSList::Instance()->SetLockedZone(lock_zone->zoneID, lock_zone->op == ServerLockType::Lock)) {
|
||||
ZSList::Instance()->SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::QuestTroupe,
|
||||
@ -1225,7 +1224,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
case ServerOP_SpawnPlayerCorpse: {
|
||||
auto s = (SpawnPlayerCorpse_Struct*) pack->pBuffer;
|
||||
auto zs = zoneserver_list.FindByZoneID(s->zone_id);
|
||||
auto zs = ZSList::Instance()->FindByZoneID(s->zone_id);
|
||||
if (zs) {
|
||||
zs->SendPacket(pack);
|
||||
}
|
||||
@ -1237,8 +1236,8 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
|
||||
auto owner_zs = (
|
||||
s->instance_id ?
|
||||
zoneserver_list.FindByInstanceID(s->instance_id) :
|
||||
zoneserver_list.FindByZoneID(s->zone_id)
|
||||
ZSList::Instance()->FindByInstanceID(s->instance_id) :
|
||||
ZSList::Instance()->FindByZoneID(s->zone_id)
|
||||
);
|
||||
|
||||
if (owner_zs) {
|
||||
@ -1252,8 +1251,8 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
if (cle) {
|
||||
auto granted_zs = (
|
||||
cle->instance() ?
|
||||
zoneserver_list.FindByInstanceID(cle->instance()) :
|
||||
zoneserver_list.FindByZoneID(cle->zone())
|
||||
ZSList::Instance()->FindByInstanceID(cle->instance()) :
|
||||
ZSList::Instance()->FindByZoneID(cle->zone())
|
||||
);
|
||||
|
||||
if (granted_zs && granted_zs != owner_zs) {
|
||||
@ -1266,7 +1265,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
case ServerOP_InstanceUpdateTime: {
|
||||
auto iut = (ServerInstanceUpdateTime_Struct*) pack->pBuffer;
|
||||
auto zm = zoneserver_list.FindByInstanceID(iut->instance_id);
|
||||
auto zm = ZSList::Instance()->FindByInstanceID(iut->instance_id);
|
||||
if (zm) {
|
||||
zm->SendPacket(pack);
|
||||
}
|
||||
@ -1278,7 +1277,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_QGlobalDelete: {
|
||||
@ -1286,7 +1285,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
break;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_AdventureRequest: {
|
||||
@ -1344,7 +1343,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
case ServerOP_UCSServerStatusRequest: {
|
||||
auto ucsss = (UCSServerStatus_Struct*) pack->pBuffer;
|
||||
auto zs = zoneserver_list.FindByPort(ucsss->port);
|
||||
auto zs = ZSList::Instance()->FindByPort(ucsss->port);
|
||||
if (!zs) {
|
||||
break;
|
||||
}
|
||||
@ -1398,12 +1397,12 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
case ServerOP_WWSpell:
|
||||
case ServerOP_WWTaskUpdate:
|
||||
case ServerOP_ZonePlayer: {
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_ServerReloadRequest: {
|
||||
auto o = (ServerReload::Request*) pack->pBuffer;
|
||||
zoneserver_list.SendServerReload((ServerReload::Type) o->type, pack->pBuffer);
|
||||
ZSList::Instance()->SendServerReload((ServerReload::Type) o->type, pack->pBuffer);
|
||||
break;
|
||||
}
|
||||
case ServerOP_IsOwnerOnline: {
|
||||
@ -1425,7 +1424,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
);
|
||||
}
|
||||
|
||||
auto zs = zoneserver_list.FindByZoneID(o->zone_id);
|
||||
auto zs = ZSList::Instance()->FindByZoneID(o->zone_id);
|
||||
if (zs) {
|
||||
zs->SendPacket(pack);
|
||||
}
|
||||
@ -1439,7 +1438,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
LogInfo("Error: Could not load item data. But ignoring");
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_RequestTellQueue: {
|
||||
@ -1514,7 +1513,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
|
||||
guild->tribute.timer.Disable();
|
||||
|
||||
zoneserver_list.SendPacketToZonesWithGuild(data->guild_id, pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(data->guild_id, pack);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -1557,7 +1556,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
guild_mgr.UpdateDbGuildFavor(data->guild_id, data->favor);
|
||||
guild_mgr.UpdateDbTributeTimeRemaining(data->guild_id, data->time_remaining);
|
||||
|
||||
zoneserver_list.SendPacketToZonesWithGuild(data->guild_id, pack);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(data->guild_id, pack);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -1591,7 +1590,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
data->time_remaining = in->time_remaining;
|
||||
strn0cpy(data->player_name, in->player_name, sizeof(data->player_name));
|
||||
|
||||
zoneserver_list.SendPacketToZonesWithGuild(in->guild_id, out);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(in->guild_id, out);
|
||||
safe_delete(out);
|
||||
}
|
||||
break;
|
||||
@ -1614,7 +1613,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
out->tribute_id_2_tier = guild->tribute.id_2_tier;
|
||||
out->time_remaining = guild_mgr.GetGuildTributeTimeRemaining(in->guild_id);
|
||||
|
||||
zoneserver_list.SendPacketToZonesWithGuild(in->guild_id, sp);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(in->guild_id, sp);
|
||||
safe_delete(sp);
|
||||
}
|
||||
|
||||
@ -1634,7 +1633,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
out->tribute_timer = guild_mgr.GetGuildTributeTimeRemaining(in->guild_id);
|
||||
out->trophy_timer = 0;
|
||||
|
||||
zoneserver_list.SendPacketToZonesWithGuild(in->guild_id, sp);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(in->guild_id, sp);
|
||||
safe_delete(sp);
|
||||
}
|
||||
|
||||
@ -1658,7 +1657,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
out->member_time = in->member_time;
|
||||
strn0cpy(out->player_name, in->player_name, sizeof(out->player_name));
|
||||
|
||||
zoneserver_list.SendPacketToZonesWithGuild(out->guild_id, sp);
|
||||
ZSList::Instance()->SendPacketToZonesWithGuild(out->guild_id, sp);
|
||||
safe_delete(sp)
|
||||
}
|
||||
break;
|
||||
@ -1672,7 +1671,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
return;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacketToBootedZones(pack);
|
||||
ZSList::Instance()->SendPacketToBootedZones(pack);
|
||||
break;
|
||||
}
|
||||
case ServerOP_BazaarPurchase: {
|
||||
@ -1688,7 +1687,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
|
||||
auto trader = client_list.FindCLEByCharacterID(in->trader_buy_struct.trader_id);
|
||||
if (trader) {
|
||||
zoneserver_list.SendPacket(trader->zone(), trader->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(trader->zone(), trader->instance(), pack);
|
||||
}
|
||||
|
||||
break;
|
||||
@ -1706,13 +1705,13 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
return;
|
||||
}
|
||||
|
||||
zoneserver_list.SendPacketToBootedZones(pack);
|
||||
ZSList::Instance()->SendPacketToBootedZones(pack);
|
||||
break;
|
||||
}
|
||||
case Barter_SellItem: {
|
||||
auto buyer = client_list.FindCharacter(in->buyer_name);
|
||||
if (buyer) {
|
||||
zoneserver_list.SendPacket(buyer->zone(), buyer->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(buyer->zone(), buyer->instance(), pack);
|
||||
}
|
||||
|
||||
break;
|
||||
@ -1721,7 +1720,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
case Barter_BuyerTransactionComplete: {
|
||||
auto seller = client_list.FindCharacter(in->seller_name);
|
||||
if (seller) {
|
||||
zoneserver_list.SendPacket(seller->zone(), seller->instance(), pack);
|
||||
ZSList::Instance()->SendPacket(seller->zone(), seller->instance(), pack);
|
||||
}
|
||||
|
||||
break;
|
||||
@ -1789,7 +1788,7 @@ void ZoneServer::SendEmoteMessageRaw(const char* to, uint32 to_guilddbid, int16
|
||||
void ZoneServer::SendGroupIDs() {
|
||||
auto pack = new ServerPacket(ServerOP_GroupIDReply, sizeof(ServerGroupIDReply_Struct));
|
||||
auto sgi = (ServerGroupIDReply_Struct*) pack->pBuffer;
|
||||
zoneserver_list.NextGroupIDs(sgi->start, sgi->end);
|
||||
ZSList::Instance()->NextGroupIDs(sgi->start, sgi->end);
|
||||
SendPacket(pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -1806,7 +1805,7 @@ void ZoneServer::ChangeWID(uint32 iCharID, uint32 iWID) {
|
||||
auto scw = (ServerChangeWID_Struct*) pack->pBuffer;
|
||||
scw->charid = iCharID;
|
||||
scw->newwid = iWID;
|
||||
zoneserver_list.SendPacket(pack);
|
||||
ZSList::Instance()->SendPacket(pack);
|
||||
delete pack;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user