From 5618e453e60219c10ac4d811dc44926ecee7c370 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Tue, 31 May 2016 01:01:55 +0200 Subject: LuaState: Inter-plugin calls now support simple tables. (#3220) --- Server/Plugins/Debuggers/Debuggers.lua | 57 ++++++++++++++++++++++++++++++++++ Server/Plugins/Debuggers/Info.lua | 6 ++++ 2 files changed, 63 insertions(+) (limited to 'Server/Plugins/Debuggers') diff --git a/Server/Plugins/Debuggers/Debuggers.lua b/Server/Plugins/Debuggers/Debuggers.lua index ae06b4fc9..aa2205368 100644 --- a/Server/Plugins/Debuggers/Debuggers.lua +++ b/Server/Plugins/Debuggers/Debuggers.lua @@ -1921,6 +1921,63 @@ end +function HandleConsoleTestCall(a_Split, a_EntireCmd) + LOG("Testing inter-plugin calls") + LOG("Note: These will fail if the Core plugin is not enabled") + + -- Test calling the HandleConsoleWeather handler: + local pm = cPluginManager + LOG("Calling Core's HandleConsoleWeather") + local isSuccess = pm:CallPlugin("Core", "HandleConsoleWeather", + { + "/weather", + "rain", + } + ) + if (type(isSuccess) == "boolean") then + LOG("Success") + else + LOG("FAILED") + end + + -- Test injecting some code: + LOG("Injecting code into the Core plugin") + isSuccess = pm:CallPlugin("Core", "dofile", pm:GetCurrentPlugin():GetLocalFolder() .. "/Inject.lua") + if (type(isSuccess) == "boolean") then + LOG("Success") + else + LOG("FAILED") + end + + -- Test the full capabilities of the table-passing API, using the injected function: + LOG("Calling injected code") + isSuccess = pm:CallPlugin("Core", "injectedPrintParams", + { + "test", + nil, + { + "test", + "test" + }, + [10] = "test", + ["test"] = "test", + [{"test"}] = "test", + [true] = "test", + } + ) + if (type(isSuccess) == "boolean") then + LOG("Success") + else + LOG("FAILED") + end + + return true +end + + + + + function HandleConsoleTestJson(a_Split, a_EntireCmd) LOG("Testing Json parsing...") local t1 = cJson:Parse([[{"a": 1, "b": "2", "c": [3, "4", 5] }]]) diff --git a/Server/Plugins/Debuggers/Info.lua b/Server/Plugins/Debuggers/Info.lua index fa85f0532..af3461342 100644 --- a/Server/Plugins/Debuggers/Info.lua +++ b/Server/Plugins/Debuggers/Info.lua @@ -254,6 +254,12 @@ g_PluginInfo = HelpString = "Tests the world scheduling", }, + ["testcall"] = + { + Handler = HandleConsoleTestCall, + HelpString = "Tests inter-plugin calls with various values" + }, + ["testjson"] = { Handler = HandleConsoleTestJson, -- cgit v1.2.3