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..0bcce651 100644 --- a/src/LuaAPI.cpp +++ b/src/LuaAPI.cpp @@ -292,6 +292,28 @@ 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); + case 1: // private + return Application::Settings.getAsBool(Settings::Key::General_Private); + case 2: // max cars + return Application::Settings.getAsInt(Settings::Key::General_MaxCars); + case 3: // max players + return Application::Settings.getAsInt(Settings::Key::General_MaxPlayers); + case 4: // Map + return Application::Settings.getAsString(Settings::Key::General_Map); + case 5: // Name + return Application::Settings.getAsString(Settings::Key::General_Name); + case 6: // Desc + return Application::Settings.getAsString(Settings::Key::General_Description); + default: + beammp_warn("Invalid config ID \"" + std::to_string(ConfigID) + "\". Use `MP.Settings.*` enum for this."); + return 0; + } +} + 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) {