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] 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 49819db..928df0b 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 bc8c94f..4103506 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 9810c99..5a3cc5a 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) {