@@ -19,10 +19,11 @@ bool PluginManager::PluginExists(std::string plugin_name)
1919
2020void PluginManager::LoadPlugins (std::string directory)
2121{
22- if (!Files::ExistsPath (" addons/swiftly/plugins" + directory))
23- Files::CreateDirectory (" addons/swiftly/plugins" + directory);
22+ std::string baseDir = " addons/swiftly/plugins" + directory;
23+ if (!Files::ExistsPath (baseDir))
24+ Files::CreateDirectory (baseDir);
2425
25- std::vector<std::string> plugins = Files::FetchDirectories (" addons/swiftly/plugins " + directory );
26+ std::vector<std::string> plugins = Files::FetchDirectories (baseDir );
2627 for (std::string folder : plugins)
2728 {
2829 // Skips over disabled
@@ -35,18 +36,20 @@ void PluginManager::LoadPlugins(std::string directory)
3536 LoadPlugins (directory + " /" + directory_name);
3637 else
3738 {
38- folder = replace (folder, " addons/swiftly/plugins " + directory , " " );
39+ folder = replace (folder, baseDir , " " );
3940 std::string plugin_name = replace (folder, WIN_LINUX (" \\ " , " /" ), " " );
4041
41- LoadPlugin (plugin_name);
42+ pluginBasePaths[plugin_name] = baseDir;
43+
44+ LoadPlugin (plugin_name);
4245 }
4346 }
4447}
4548
4649void PluginManager::UnloadPlugins ()
4750{
4851 std::vector<std::string> pluginNames;
49- for (Plugin * plugin : pluginsList)
52+ for (Plugin* plugin : pluginsList)
5053 pluginNames.push_back (plugin->GetName ());
5154
5255 for (std::string plugin_name : pluginNames)
@@ -58,11 +61,11 @@ void PluginManager::LoadPlugin(std::string plugin_name)
5861 if (PluginExists (plugin_name))
5962 return ;
6063
61- std::vector<std::string> files = Files::FetchFileNames (" addons/swiftly/plugins /" + plugin_name);
64+ std::vector<std::string> files = Files::FetchFileNames (pluginBasePaths[plugin_name] + " /" + plugin_name);
6265 if (files.size () == 0 )
6366 return ;
6467
65- Plugin * plugin = nullptr ;
68+ Plugin* plugin = nullptr ;
6669
6770 for (std::string file : files)
6871 {
@@ -80,15 +83,15 @@ void PluginManager::LoadPlugin(std::string plugin_name)
8083 }
8184
8285 pluginsList.push_back (plugin);
83- pluginsMap.insert ({plugin_name, plugin});
86+ pluginsMap.insert ({ plugin_name, plugin });
8487}
8588
8689void PluginManager::UnloadPlugin (std::string plugin_name)
8790{
8891 if (!PluginExists (plugin_name))
8992 return ;
9093
91- Plugin * plugin = pluginsMap.at (plugin_name);
94+ Plugin* plugin = pluginsMap.at (plugin_name);
9295
9396 auto it = std::find (pluginsList.begin (), pluginsList.end (), plugin);
9497 if (it != pluginsList.end ())
@@ -100,7 +103,7 @@ void PluginManager::UnloadPlugin(std::string plugin_name)
100103
101104void PluginManager::StartPlugins ()
102105{
103- for (Plugin * plugin : pluginsList)
106+ for (Plugin* plugin : pluginsList)
104107 if (!StartPlugin (plugin->GetName ()))
105108 StopPlugin (plugin->GetName ());
106109
@@ -109,15 +112,15 @@ void PluginManager::StartPlugins()
109112
110113 msgpack::pack (ss, eventData);
111114
112- PluginEvent * event = new PluginEvent (" core" , nullptr , nullptr );
115+ PluginEvent* event = new PluginEvent (" core" , nullptr , nullptr );
113116 this ->ExecuteEvent (" core" , " OnAllPluginsLoaded" , ss.str (), event);
114117 delete event;
115118 AllPluginsStarted = true ;
116119}
117120
118121void PluginManager::StopPlugins ()
119122{
120- for (Plugin * plugin : pluginsList)
123+ for (Plugin* plugin : pluginsList)
121124 StopPlugin (plugin->GetName ());
122125}
123126
@@ -126,7 +129,7 @@ bool PluginManager::StartPlugin(std::string plugin_name)
126129 if (!PluginExists (plugin_name))
127130 return false ;
128131
129- Plugin * plugin = pluginsMap.at (plugin_name);
132+ Plugin* plugin = pluginsMap.at (plugin_name);
130133 if (plugin->GetPluginState () == PluginState_t::Started)
131134 return true ;
132135
@@ -143,7 +146,7 @@ bool PluginManager::StartPlugin(std::string plugin_name)
143146
144147 msgpack::pack (ss, eventData);
145148
146- PluginEvent * event = new PluginEvent (" core" , nullptr , nullptr );
149+ PluginEvent* event = new PluginEvent (" core" , nullptr , nullptr );
147150 plugin->TriggerEvent (" core" , " OnAllPluginsLoaded" , ss.str (), event);
148151 delete event;
149152 }
@@ -156,7 +159,7 @@ void PluginManager::StopPlugin(std::string plugin_name)
156159 if (!PluginExists (plugin_name))
157160 return ;
158161
159- Plugin * plugin = pluginsMap.at (plugin_name);
162+ Plugin* plugin = pluginsMap.at (plugin_name);
160163 if (plugin->GetPluginState () == PluginState_t::Stopped)
161164 return ;
162165
@@ -167,17 +170,17 @@ void PluginManager::StopPlugin(std::string plugin_name)
167170 g_MenuManager->UnregisterPluginMenus (plugin_name);
168171}
169172
170- Plugin * PluginManager::FetchPlugin (std::string name)
173+ Plugin* PluginManager::FetchPlugin (std::string name)
171174{
172175 if (!PluginExists (name))
173176 return nullptr ;
174177
175178 return pluginsMap.at (name);
176179}
177180
178- EventResult PluginManager::ExecuteEvent (std::string invokedBy, std::string eventName, std::string eventPayload, PluginEvent * event)
181+ EventResult PluginManager::ExecuteEvent (std::string invokedBy, std::string eventName, std::string eventPayload, PluginEvent* event)
179182{
180- for (Plugin * plugin : this ->pluginsList )
183+ for (Plugin* plugin : this ->pluginsList )
181184 {
182185 EventResult result = plugin->TriggerEvent (invokedBy, eventName, eventPayload, event);
183186 if (result != EventResult::Continue)
@@ -187,7 +190,7 @@ EventResult PluginManager::ExecuteEvent(std::string invokedBy, std::string event
187190 return EventResult::Continue;
188191}
189192
190- std::vector<Plugin *> PluginManager::GetPluginsList ()
193+ std::vector<Plugin*> PluginManager::GetPluginsList ()
191194{
192195 return this ->pluginsList ;
193196}
0 commit comments