void ExternalExtensionsPlugin::Unload(void) { PRINT_TAG(); ConColorMsg(Color(255, 255, 0, 255), "Unloading plugin...\n"); g_ModuleManager->UnloadAllModules(); ConVar_Unregister(); Interfaces::Unload(); PRINT_TAG(); ConColorMsg(Color(0, 255, 0, 255), "Finished unloading!\n"); }
bool ExternalExtensionsPlugin::Load(CreateInterfaceFn interfaceFactory, CreateInterfaceFn gameServerFactory) { PRINT_TAG(); ConColorMsg(Color(0, 255, 255, 255), "version %s | a Forward Command Post project (http://fwdcp.net)\n", PLUGIN_VERSION); PRINT_TAG(); ConColorMsg(Color(255, 255, 0, 255), "Loading plugin...\n"); Interfaces::Load(interfaceFactory, gameServerFactory); g_GameThreadHelper = new GameThreadHelper(); g_WebSockets = new WebSockets(); g_ModuleManager = new ModuleManager(); g_ModuleManager->LoadModule<Console>("Console"); g_ModuleManager->LoadModule<GameInfo>("Game Info"); ConVar_Register(); PRINT_TAG(); ConColorMsg(Color(0, 255, 0, 255), "Finished loading!\n"); return true; }
bool StatusIcons::CheckDependencies(std::string name) { bool ready = true; if (!Interfaces::pClientDLL) { PRINT_TAG(); Warning("Required interface IBaseClientDLL for module %s not available!\n", name.c_str()); ready = false; } if (!Interfaces::vguiLibrariesAvailable) { PRINT_TAG(); Warning("Required VGUI library for module %s not available!\n", name.c_str()); ready = false; } if (!g_pVGui) { PRINT_TAG(); Warning("Required interface vgui::IVGui for module %s not available!\n", name.c_str()); ready = false; } if (!g_pVGuiPanel) { PRINT_TAG(); Warning("Required interface vgui::IPanel for module %s not available!\n", name.c_str()); ready = false; } if (!g_pVGuiSchemeManager) { PRINT_TAG(); Warning("Required interface vgui::ISchemeManager for module %s not available!\n", name.c_str()); ready = false; } if (!Player::CheckDependencies()) { PRINT_TAG(); Warning("Required player helper class for module %s not available!\n", name.c_str()); ready = false; } if (!Player::conditionsRetrievalAvailable) { PRINT_TAG(); Warning("Required player condition retrieval for module %s not available!\n", name.c_str()); ready = false; } if (!Player::nameRetrievalAvailable) { PRINT_TAG(); Warning("Required player name retrieval for module %s not available!\n", name.c_str()); ready = false; } try { Interfaces::GetClientMode(); } catch (bad_pointer) { PRINT_TAG(); Warning("Module %s requires IClientMode, which cannot be verified at this time!\n", name.c_str()); } return ready; }