From 17185da53b0e7e13d6e077ab5141ba38336a104d Mon Sep 17 00:00:00 2001 From: Tixx <83774803+WiserTixx@users.noreply.github.com> Date: Sat, 21 Sep 2024 23:17:08 +0200 Subject: [PATCH 1/2] Add MP.Get --- include/LuaAPI.h | 1 + src/LuaAPI.cpp | 30 ++++++++++++++++++++++++++++++ src/TLuaEngine.cpp | 1 + 3 files changed, 32 insertions(+) diff --git a/include/LuaAPI.h b/include/LuaAPI.h index 49819dbc..928df0b1 100644 --- a/include/LuaAPI.h +++ b/include/LuaAPI.h @@ -37,6 +37,7 @@ namespace MP { std::pair SendChatMessage(int ID, const std::string& Message); std::pair RemoveVehicle(int PlayerID, int VehicleID); void Set(int ConfigID, sol::object NewValue); + TLuaValue Get(int ConfigID); bool IsPlayerGuest(int ID); bool IsPlayerConnected(int ID); void Sleep(size_t Ms); diff --git a/src/LuaAPI.cpp b/src/LuaAPI.cpp index bc8c94fe..41035063 100644 --- a/src/LuaAPI.cpp +++ b/src/LuaAPI.cpp @@ -292,6 +292,36 @@ void LuaAPI::MP::Set(int ConfigID, sol::object NewValue) { } } +TLuaValue LuaAPI::MP::Get(int ConfigID) { + switch (ConfigID) { + case 0: // debug + return Application::Settings.getAsBool(Settings::Key::General_Debug); + break; + case 1: // private + return Application::Settings.getAsBool(Settings::Key::General_Private); + break; + case 2: // max cars + return Application::Settings.getAsInt(Settings::Key::General_MaxCars); + break; + case 3: // max players + return Application::Settings.getAsInt(Settings::Key::General_MaxPlayers); + break; + case 4: // Map + return Application::Settings.getAsString(Settings::Key::General_Map); + break; + case 5: // Name + return Application::Settings.getAsString(Settings::Key::General_Name); + break; + case 6: // Desc + return Application::Settings.getAsString(Settings::Key::General_Description); + break; + default: + beammp_warn("Invalid config ID \"" + std::to_string(ConfigID) + "\". Use `MP.Settings.*` enum for this."); + return 0; + break; + } +} + void LuaAPI::MP::Sleep(size_t Ms) { std::this_thread::sleep_for(std::chrono::milliseconds(Ms)); } diff --git a/src/TLuaEngine.cpp b/src/TLuaEngine.cpp index 9810c999..5a3cc5a7 100644 --- a/src/TLuaEngine.cpp +++ b/src/TLuaEngine.cpp @@ -910,6 +910,7 @@ TLuaEngine::StateThreadData::StateThreadData(const std::string& Name, TLuaStateI mEngine->CancelEventTimers(EventName, mStateId); }); MPTable.set_function("Set", &LuaAPI::MP::Set); + MPTable.set_function("Get", &LuaAPI::MP::Get); auto UtilTable = StateView.create_named_table("Util"); UtilTable.set_function("LogDebug", [this](sol::variadic_args args) { From 9d44c2063c4f4b5f07c2386dcd2d052c8f6b889f Mon Sep 17 00:00:00 2001 From: Tixx <83774803+WiserTixx@users.noreply.github.com> Date: Sun, 22 Sep 2024 15:34:13 +0200 Subject: [PATCH 2/2] Remove break after return --- src/LuaAPI.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/LuaAPI.cpp b/src/LuaAPI.cpp index 41035063..0bcce651 100644 --- a/src/LuaAPI.cpp +++ b/src/LuaAPI.cpp @@ -296,29 +296,21 @@ TLuaValue LuaAPI::MP::Get(int ConfigID) { switch (ConfigID) { case 0: // debug return Application::Settings.getAsBool(Settings::Key::General_Debug); - break; case 1: // private return Application::Settings.getAsBool(Settings::Key::General_Private); - break; case 2: // max cars return Application::Settings.getAsInt(Settings::Key::General_MaxCars); - break; case 3: // max players return Application::Settings.getAsInt(Settings::Key::General_MaxPlayers); - break; case 4: // Map return Application::Settings.getAsString(Settings::Key::General_Map); - break; case 5: // Name return Application::Settings.getAsString(Settings::Key::General_Name); - break; case 6: // Desc return Application::Settings.getAsString(Settings::Key::General_Description); - break; default: beammp_warn("Invalid config ID \"" + std::to_string(ConfigID) + "\". Use `MP.Settings.*` enum for this."); return 0; - break; } }