diff --git a/world/eqemu_api_world_data_service.cpp b/world/eqemu_api_world_data_service.cpp index e3a75d052..dc6a29892 100644 --- a/world/eqemu_api_world_data_service.cpp +++ b/world/eqemu_api_world_data_service.cpp @@ -16,7 +16,6 @@ extern ZSList zoneserver_list; extern ClientList client_list; extern WorldGuildManager guild_mgr; -extern QueryServConnection QSLink; void callGetZoneList(Json::Value &response) { diff --git a/world/main.cpp b/world/main.cpp index 6e185e677..e3824bb28 100644 --- a/world/main.cpp +++ b/world/main.cpp @@ -94,7 +94,6 @@ ClientList client_list; GroupLFPList LFPGroupList; ZSList zoneserver_list; -QueryServConnection QSLink; LauncherList launcher_list; WorldEventScheduler event_scheduler; volatile bool RunLoops = true; @@ -269,7 +268,7 @@ int main(int argc, char **argv) connection->Handle()->RemotePort(), connection->GetUUID()); - QSLink.AddConnection(connection); + QueryServConnection::Instance()->AddConnection(connection); } ); @@ -280,7 +279,7 @@ int main(int argc, char **argv) connection->GetUUID() ); - QSLink.RemoveConnection(connection); + QueryServConnection::Instance()->RemoveConnection(connection); } ); diff --git a/world/queryserv.h b/world/queryserv.h index 028fdcbbd..5366fbeb5 100644 --- a/world/queryserv.h +++ b/world/queryserv.h @@ -15,6 +15,13 @@ public: void HandleGenericMessage(uint16_t opcode, EQ::Net::Packet &p); void HandleLFGuildUpdateMessage(uint16_t opcode, EQ::Net::Packet &p); bool SendPacket(ServerPacket* pack); + + static QueryServConnection* Instance() + { + static QueryServConnection instance; + return &instance; + } + private: std::map> m_streams; std::unique_ptr m_keepalive; diff --git a/world/zonelist.cpp b/world/zonelist.cpp index 265747fbc..e1e0b16ea 100644 --- a/world/zonelist.cpp +++ b/world/zonelist.cpp @@ -44,7 +44,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA extern uint32 numzones; extern WebInterfaceList web_interface; extern ClientList client_list; -extern QueryServConnection QSLink; volatile bool UCSServerAvailable_ = false; void CatchSignal(int sig_num); @@ -985,7 +984,7 @@ void ZSList::SendServerReload(ServerReload::Type type, uchar *packet) EQEmuLogSys::Instance()->LoadLogDatabaseSettings(); player_event_logs.ReloadSettings(); UCSConnection::Instance()->SendPacket(&pack); - QSLink.SendPacket(&pack); + QueryServConnection::Instance()->SendPacket(&pack); } else if (type == ServerReload::Type::Tasks) { SharedTaskManager::Instance()->LoadTaskData(); } else if (type == ServerReload::Type::DzTemplates) { diff --git a/world/zoneserver.cpp b/world/zoneserver.cpp index 976a4e462..bc7017197 100644 --- a/world/zoneserver.cpp +++ b/world/zoneserver.cpp @@ -57,7 +57,6 @@ extern GroupLFPList LFPGroupList; extern ZSList zoneserver_list; extern volatile bool RunLoops; extern volatile bool UCSServerAvailable_; -extern QueryServConnection QSLink; void CatchSignal(int sig_num); @@ -372,7 +371,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { player_event_logs.AddToQueue(n.player_event_log); } else { - QSLink.SendPacket(pack); + QueryServConnection::Instance()->SendPacket(pack); } // if discord enabled for event, ship to UCS to process @@ -1359,7 +1358,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) { break; } case ServerOP_QueryServGeneric: { - QSLink.SendPacket(pack); + QueryServConnection::Instance()->SendPacket(pack); break; } case ServerOP_CZDialogueWindow: