From 1237e7e533a5cdc378d16f3b70901d2efe02193d Mon Sep 17 00:00:00 2001 From: Lion Kortlepel Date: Fri, 19 Apr 2024 11:10:50 +0200 Subject: [PATCH] add lua logging facilities as Util.Log*() functions --- include/Common.h | 4 ++++ src/TLuaEngine.cpp | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/include/Common.h b/include/Common.h index 4c264db..878364a 100644 --- a/include/Common.h +++ b/include/Common.h @@ -214,6 +214,10 @@ void RegisterThread(const std::string& str); do { \ Application::Console().Write(_this_location + std::string("[LUA ERROR] ") + (x)); \ } while (false) + #define beammp_lua_log(level, plugin, x) \ + do { \ + Application::Console().Write(_this_location + fmt::format("[{}] [{}] ", plugin, level) + (x)); \ + } while (false) #define beammp_lua_warn(x) \ do { \ Application::Console().Write(_this_location + std::string("[LUA WARN] ") + (x)); \ diff --git a/src/TLuaEngine.cpp b/src/TLuaEngine.cpp index 5dff14e..379c73d 100644 --- a/src/TLuaEngine.cpp +++ b/src/TLuaEngine.cpp @@ -18,6 +18,7 @@ #include "TLuaEngine.h" #include "Client.h" +#include "Common.h" #include "CustomAssert.h" #include "Http.h" #include "LuaAPI.h" @@ -829,6 +830,30 @@ TLuaEngine::StateThreadData::StateThreadData(const std::string& Name, TLuaStateI MPTable.set_function("Set", &LuaAPI::MP::Set); auto UtilTable = StateView.create_named_table("Util"); + UtilTable.set_function("LogInfo", [this](sol::variadic_args args) { + std::string ToPrint = ""; + for (const auto& arg : args) { + ToPrint += LuaAPI::LuaToString(static_cast(arg)); + ToPrint += "\t"; + } + beammp_lua_log("INFO", mStateId, ToPrint); + }); + UtilTable.set_function("LogWarn", [this](sol::variadic_args args) { + std::string ToPrint = ""; + for (const auto& arg : args) { + ToPrint += LuaAPI::LuaToString(static_cast(arg)); + ToPrint += "\t"; + } + beammp_lua_log("WARN", mStateId, ToPrint); + }); + UtilTable.set_function("LogError", [this](sol::variadic_args args) { + std::string ToPrint = ""; + for (const auto& arg : args) { + ToPrint += LuaAPI::LuaToString(static_cast(arg)); + ToPrint += "\t"; + } + beammp_lua_log("ERROR", mStateId, ToPrint); + }); UtilTable.set_function("JsonEncode", &LuaAPI::MP::JsonEncode); UtilTable.set_function("JsonDecode", [this](const std::string& str) { return Lua_JsonDecode(str);