1111#include " addons/addons.h"
1212#include " encoders/msgpack.h"
1313#include " addons/clients.h"
14+ #include " http/HTTPManager.h"
1415#include " configuration/Configuration.h"
1516#include " commands/CommandsManager.h"
1617#include " crashreporter/CallStack.h"
@@ -41,6 +42,7 @@ SH_DECL_HOOK6_void(IServerGameClients, OnClientConnected, SH_NOATTRIB, 0, CPlaye
4142SH_DECL_HOOK6 (IServerGameClients, ClientConnect, SH_NOATTRIB, 0 , bool , CPlayerSlot, const char *, uint64, const char *, bool , CBufferString*);
4243SH_DECL_HOOK3_void (ICvar, DispatchConCommand, SH_NOATTRIB, 0 , ConCommandHandle, const CCommandContext&, const CCommand&);
4344SH_DECL_HOOK0_void (IServerGameDLL, GameServerSteamAPIActivated, SH_NOATTRIB, 0 );
45+ SH_DECL_HOOK0_void (IServerGameDLL, GameServerSteamAPIDeactivated, SH_NOATTRIB, 0 );
4446SH_DECL_HOOK2_void (IServerGameClients, ClientCommand, SH_NOATTRIB, 0 , CPlayerSlot, const CCommand&);
4547
4648#ifdef _WIN32
@@ -69,6 +71,7 @@ IGameEventManager2* g_gameEventManager = nullptr;
6971IGameEventSystem* g_pGameEventSystem = nullptr ;
7072CEntityListener g_entityListener;
7173CSteamGameServerAPIContext g_SteamAPI;
74+ ISteamHTTP* g_http = nullptr ;
7275CSchemaSystem* g_pSchemaSystem2 = nullptr ;
7376CCSGameRules* gameRules = nullptr ;
7477
@@ -109,6 +112,7 @@ ResourceMonitor* g_ResourceMonitor = nullptr;
109112Patches* g_Patches = nullptr ;
110113CallStack* g_callStack = nullptr ;
111114EventManager* eventManager = nullptr ;
115+ HTTPManager* g_httpManager = nullptr ;
112116VoiceManager g_voiceManager;
113117
114118// ////////////////////////////////////////////////////////////
@@ -143,6 +147,7 @@ bool Swiftly::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
143147 SH_ADD_HOOK_MEMFUNC (INetworkServerService, StartupServer, g_pNetworkServerService, this , &Swiftly::Hook_StartupServer, true );
144148 SH_ADD_HOOK_MEMFUNC (ICvar, DispatchConCommand, icvar, this , &Swiftly::Hook_DispatchConCommand, false );
145149 SH_ADD_HOOK_MEMFUNC (IServerGameDLL, GameServerSteamAPIActivated, server, this , &Swiftly::Hook_GameServerSteamAPIActivated, false );
150+ SH_ADD_HOOK_MEMFUNC (IServerGameDLL, GameServerSteamAPIDeactivated, server, this , &Swiftly::Hook_GameServerSteamAPIDeactivated, false );
146151
147152 g_pCVar = icvar;
148153
@@ -151,6 +156,7 @@ bool Swiftly::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
151156 if (!BeginCrashListener ())
152157 PRINTRET (" Crash Reporter failed to initialize.\n " , false );
153158
159+ g_httpManager = new HTTPManager ();
154160 g_pluginManager = new PluginManager ();
155161 g_Config = new Configuration ();
156162 g_conFilter = new ConsoleFilter ();
@@ -205,6 +211,8 @@ bool Swiftly::Load(PluginId id, ISmmAPI* ismm, char* error, size_t maxlen, bool
205211 if (late)
206212 {
207213 g_SteamAPI.Init ();
214+ g_http = g_SteamAPI.SteamHTTP ();
215+ g_httpManager->ProcessPendingHTTPRequests ();
208216 m_CallbackDownloadItemResult.Register (this , &Swiftly::OnAddonDownloaded);
209217 }
210218
@@ -223,6 +231,8 @@ void Swiftly::Hook_GameServerSteamAPIActivated()
223231 return ;
224232
225233 g_SteamAPI.Init ();
234+ g_http = g_SteamAPI.SteamHTTP ();
235+ g_httpManager->ProcessPendingHTTPRequests ();
226236 m_CallbackDownloadItemResult.Register (this , &Swiftly::OnAddonDownloaded);
227237
228238 std::thread ([&]() -> void
@@ -236,6 +246,13 @@ void Swiftly::Hook_GameServerSteamAPIActivated()
236246 RETURN_META (MRES_IGNORED);
237247}
238248
249+ void Swiftly::Hook_GameServerSteamAPIDeactivated ()
250+ {
251+ g_http = nullptr ;
252+
253+ RETURN_META (MRES_IGNORED);
254+ }
255+
239256void Swiftly::OnAddonDownloaded (DownloadItemResult_t* pResult)
240257{
241258 g_addons.OnAddonDownloaded (pResult);
@@ -263,6 +280,7 @@ bool Swiftly::Unload(char* error, size_t maxlen)
263280 SH_REMOVE_HOOK_MEMFUNC (INetworkServerService, StartupServer, g_pNetworkServerService, this , &Swiftly::Hook_StartupServer, true );
264281 SH_REMOVE_HOOK_MEMFUNC (ICvar, DispatchConCommand, icvar, this , &Swiftly::Hook_DispatchConCommand, false );
265282 SH_REMOVE_HOOK_MEMFUNC (IServerGameDLL, GameServerSteamAPIActivated, server, this , &Swiftly::Hook_GameServerSteamAPIActivated, false );
283+ SH_REMOVE_HOOK_MEMFUNC (IServerGameDLL, GameServerSteamAPIDeactivated, server, this , &Swiftly::Hook_GameServerSteamAPIDeactivated, false );
266284
267285 g_pGameEntitySystem->RemoveListenerEntity (&g_entityListener);
268286
0 commit comments