Skip to content

Commit 3268669

Browse files
committed
update(plugins-refresh): Reimplementing
1 parent 3025cef commit 3268669

File tree

19 files changed

+65
-76
lines changed

19 files changed

+65
-76
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
test_plugin/

src/components/BasicComponent/src/BasicComponent.cpp

Lines changed: 64 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#include "../../Plugins/inc/Plugin.h"
99
#include "../../../files/Files.h"
1010
#include "../../../http/HTTPManager.h"
11+
#include "../../Plugins/inc/plugins/CPPPlugin.h"
12+
#include "../../Plugins/inc/plugins/LuaPlugin.h"
1113

1214
typedef const char *(*GetPlugin)();
1315

@@ -272,47 +274,73 @@ void SwiftlyPluginManagerReload(CPlayerSlot *slot, CCommandContext context, std:
272274
PrintToClientOrConsole(slot, "Plugin Reload", "Plugin '%s' has been reloaded.\n", plugin_name.c_str());
273275
}
274276

277+
void LoadPlugin(std::string plugin_name)
278+
{
279+
Plugin *plugin = nullptr;
280+
281+
std::vector<std::string> files = Files::FetchFileNames("addons/swiftly/plugins/" + plugin_name);
282+
283+
for (const std::string &file : files)
284+
{
285+
if (ends_with(file, WIN_LINUX(".dll", ".so")))
286+
{
287+
plugin = new CPPPlugin(file, plugin_name, PluginType_t::PLUGIN_CPP);
288+
break;
289+
}
290+
else if (ends_with(file, ".lua"))
291+
{
292+
plugin = new LuaPlugin(std::string(std::filesystem::current_path().string() + "/addons/swiftly/plugins/" + plugin_name), plugin_name, PluginType_t::PLUGIN_LUA);
293+
break;
294+
}
295+
}
296+
297+
if (plugin)
298+
AddPluginInMap(plugin);
299+
}
300+
275301
void SwiftlyPluginManagerRefresh(CPlayerSlot *slot, CCommandContext context)
276302
{
277303
if (slot->Get() != -1)
278304
return;
279305

280-
PrintToClientOrConsole(slot, "Plugin Refresh", "This feature has been temporarely removed until support for multi language scripting is finished.\n");
281-
282-
// std::vector<std::string> pluginNames;
283-
284-
// std::vector<std::string> files = Files::FetchFileNames("addons/swiftly/plugins");
285-
// for (const std::string &file : files)
286-
// {
287-
// if (!ends_with(file, WIN_LINUX(".dll", ".so")))
288-
// continue;
289-
// if (starts_with(file, WIN_LINUX("disabled\\", "disabled/")))
290-
// continue;
291-
292-
// pluginNames.push_back(file);
293-
// }
294-
295-
// uint32 newPlugins = 0;
296-
297-
// for (const std::string plugin_name : pluginNames)
298-
// {
299-
// if (!ExistsPluginInMap(plugin_name))
300-
// {
301-
// std::vector<std::string> exploded = explode(plugin_name, WIN_LINUX("\\", "/"));
302-
// std::string name = exploded[exploded.size() - 2];
303-
// if (name == "plugins")
304-
// {
305-
// PrintToClientOrConsole(slot, "Plugin Refresh", "Skipped '%s' because it needs to be in it's own folder.\n", plugin_name);
306-
// continue;
307-
// }
308-
309-
// Plugin *plugin = new Plugin(plugin_name, name);
310-
// AddPluginInMap(plugin);
311-
// ++newPlugins;
312-
// }
313-
// }
314-
315-
// PrintToClientOrConsole(slot, "Plugin Refresh", "%02d plugins have been added.\n", newPlugins);
306+
std::vector<std::string> pluginNames;
307+
308+
std::vector<std::string> directories = Files::FetchDirectories("addons/swiftly/plugins");
309+
for (std::string directory : directories)
310+
{
311+
if (directory.find("disabled") != std::string::npos)
312+
continue;
313+
314+
directory = replace(directory, "addons/swiftly/plugins", "");
315+
directory = replace(directory, WIN_LINUX("\\", "/"), "");
316+
317+
pluginNames.push_back(directory);
318+
}
319+
320+
uint32 newPlugins = 0;
321+
322+
for (const std::string plugin_name : pluginNames)
323+
{
324+
if (!ExistsPluginInMap(plugin_name))
325+
{
326+
// std::vector<std::string> exploded = explode(plugin_name, WIN_LINUX("\\", "/"));
327+
// std::string name = exploded[exploded.size() - 2];
328+
// if (name == "plugins")
329+
// {
330+
// PrintToClientOrConsole(slot, "Plugin Refresh", "Skipped '%s' because it needs to be in it's own folder.\n", plugin_name);
331+
// continue;
332+
// }
333+
334+
// Plugin *plugin = new Plugin(plugin_name, name);
335+
336+
// AddPluginInMap(new LuaPlugin(plugin_name, "", PluginType_t::PLUGIN_LUA));
337+
338+
LoadPlugin(plugin_name);
339+
++newPlugins;
340+
}
341+
}
342+
343+
PrintToClientOrConsole(slot, "Plugin Refresh", "%02d plugins have been added.\n", newPlugins);
316344
}
317345

318346
void SwiftlyPluginManager(CPlayerSlot *slot, CCommandContext context, const char *subcmd, const char *plugin_name)

src/components/Plugins/src/language/lua/commands.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,4 @@ void SetupLuaCommands(luacpp::LuaState *state, Plugin *plugin)
2929
} });
3030

3131
state->DoString("commands = Commands()");
32-
33-
PRINT("Scripting - Lua", "Commands loaded.\n");
3432
}

src/components/Plugins/src/language/lua/configuration.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,4 @@ void SetupLuaConfiguration(luacpp::LuaState *state, Plugin *plugin)
5858
return state->CreateNil(); });
5959

6060
state->DoString("config = Configuration()");
61-
62-
PRINT("Scripting - Lua", "Configuration loaded.\n");
6361
}

src/components/Plugins/src/language/lua/convars.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,4 @@ void SetupLuaConvars(luacpp::LuaState *state, Plugin *plugin)
4949
} });
5050

5151
state->DoString("convar = Convars()");
52-
53-
PRINT("Scripting - Lua", "Convars loaded.\n");
5452
}

src/components/Plugins/src/language/lua/core.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,6 @@ void SetupLuaEnvironment(Plugin *plugin)
8787
{ return playerTable; },
8888
"GetPlayers");
8989

90-
PRINT("Scripting - Lua", "Core loaded.\n");
91-
9290
SetupLuaCommands(state, plugin);
9391
SetupLuaConfiguration(state, plugin);
9492
SetupLuaConvars(state, plugin);

src/components/Plugins/src/language/lua/database.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,4 @@ void SetupLuaDatabase(luacpp::LuaState *state, Plugin *plugin)
9292
return tbl; });
9393

9494
state->DoString("db = nil;");
95-
96-
PRINT("Scripting - Lua", "Database loaded.\n");
9795
}

src/components/Plugins/src/language/lua/entities.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,4 @@ void SetupLuaEntities(luacpp::LuaState *state, Plugin *plugin)
217217
scripting_Entity_SetColors(base->entityID, colors.GetInteger("r"), colors.GetInteger("g"), colors.GetInteger("b"), colors.GetInteger("a")); });
218218

219219
state->DoString("entities = Entities()");
220-
221-
PRINT("Scripting - Lua", "Entities loaded.\n");
222220
}

src/components/Plugins/src/language/lua/gameevents.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,4 @@ void SetupLuaGameEvents(luacpp::LuaState *state, Plugin *plugin)
4848
state->DoString("function Internal_RegisterPlayer(slot, fake) players[slot] = Player(slot, fake); end");
4949
state->DoString("function Internal_UnregisterPlayer(slot) players[slot] = nil; end");
5050
state->DoString("function Internal_OnProgramLoad(plugin_name, bin) if OnProgramLoad then OnProgramLoad(plugin_name, bin) end end");
51-
52-
PRINT("Scripting - Lua", "Game Events loaded.\n");
5351
}

src/components/Plugins/src/language/lua/http.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,4 @@ void SetupLuaHTTP(luacpp::LuaState *state, Plugin *plugin)
8181
{ scripting_HTTP_SetFollowRedirect(base->GetRequestID(), follow); });
8282

8383
state->DoString("http = HTTP()");
84-
85-
PRINT("Scripting - Lua", "HTTP loaded.\n");
8684
}

src/components/Plugins/src/language/lua/logger.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,4 @@ void SetupLuaLogger(luacpp::LuaState *state, Plugin *plugin)
2121
{ scripting_Logger_WriteLog(plugin->GetName().c_str(), (ELogType)level, message); });
2222

2323
state->DoString("logger = Logger(PluginName())");
24-
25-
PRINT("Scripting - Lua", "Logger loaded.\n");
2624
}

src/components/Plugins/src/language/lua/player.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,4 @@ void SetupLuaPlayer(luacpp::LuaState *state, Plugin *plugin)
269269
{ scripting_Player_Weapon_SetDefaultChangeSkinAttributes(base->playerSlot, base->slot); })
270270
.DefMember("GetID", [](LuaPlayerTwoArgsClass *base) -> uint32
271271
{ return base->slot; });
272-
273-
PRINT("Scripting - Lua", "Player loaded.\n");
274272
}

src/components/Plugins/src/language/lua/playermanager.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,4 @@ void SetupLuaPlayerManager(luacpp::LuaState *state, Plugin *plugin)
2525
{ scripting_Players_SendMessage(dest, message); });
2626

2727
state->DoString("playermanager = PlayerManager()");
28-
29-
PRINT("Scripting - Lua", "Player Manager loaded.\n");
3028
}

src/components/Plugins/src/language/lua/precacher.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,4 @@ void SetupLuaPrecacher(luacpp::LuaState *state, Plugin *plugin)
2121
{ scripting_Precacher_AddModel(model); });
2222

2323
state->DoString("precacher = Precacher()");
24-
25-
PRINT("Scripting - Lua", "Precacher loaded.\n");
2624
}

src/components/Plugins/src/language/lua/server.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,4 @@ void SetupLuaServer(luacpp::LuaState *state, Plugin *plugin)
3131
scripting_Server_ExecuteCommand(string_format("map %s", map).c_str()); });
3232

3333
state->DoString("server = Server()");
34-
35-
PRINT("Scripting - Lua", "Server loaded.\n");
3634
}

src/components/Plugins/src/language/lua/timers.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,4 @@ void SetupLuaTimers(luacpp::LuaState *state, Plugin *plugin)
112112
state->DoString("timers = Timers()");
113113

114114
state->DoString("events:on(\"OnGameTick\", function(simulating, first, last) for _, timerTbl in next,timersTbl,nil do if timerTbl.paused ~= 0 then goto continue end if (GetTime() - timerTbl.last_called) < timerTbl.delay then goto continue end timerTbl.func();timerTbl.last_called = GetTime(); ::continue:: end end)");
115-
116-
PRINT("Scripting - Lua", "Timers loaded.\n");
117115
}

src/components/Plugins/src/language/lua/translation.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,7 @@
77
#include <luacpp/luacpp.h>
88
#include <luacpp/func_utils.h>
99

10-
class LuaLoggerClass
11-
{
12-
public:
13-
LuaLoggerClass(const char *plugin_name) { scripting_Logger_CreateLogger(plugin_name); }
14-
};
15-
1610
void SetupLuaTranslation(luacpp::LuaState *state, Plugin *plugin)
1711
{
1812
state->CreateFunction(scripting_Translations_Fetch, "FetchTranslation");
19-
20-
PRINT("Scripting - Lua", "Translation loaded.\n");
2113
}

src/components/Plugins/src/language/lua/types.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,4 @@ void SetupLuaTypes(luacpp::LuaState *state, Plugin *plugin)
166166
state->CreateInteger(0, "SITE_A");
167167
state->CreateInteger(1, "SITE_B");
168168
state->CreateInteger(2, "SITE_UNKNOWN");
169-
170-
PRINT("Scripting - Lua", "Types loaded.\n");
171169
}

src/components/Plugins/src/language/lua/utils.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,4 @@ void SetupLuaUtils(luacpp::LuaState *state, Plugin *plugin)
2121
state->CreateFunction([]() -> uint64_t
2222
{ return std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count(); },
2323
"GetTime");
24-
25-
PRINT("Scripting - Lua", "Utils loaded.\n");
2624
}

0 commit comments

Comments
 (0)