fix error handling from SetErrorMessageFromResult

This commit is contained in:
Lion Kortlepel
2026-04-16 18:32:54 +02:00
parent e260de55af
commit 66f5f2b8b6
2 changed files with 16 additions and 4 deletions
+9 -2
View File
@@ -34,6 +34,7 @@
#include <queue>
#include <random>
#include <set>
#include <sol/forward.hpp>
#include <sol/protected_function_result.hpp>
#include <toml.hpp>
#include <unordered_map>
@@ -86,8 +87,14 @@ struct TLuaResult {
};
void SetErrorMessageFromResult(sol::protected_function_result& Res) {
auto error = Res.get<std::optional<std::string>>();
ErrorMessage = error ? *error : "(unknown error; error object is not a string value)";
if (Res.valid()) {
beammp_lua_errorf("Error was not an error");
}
if (Res.get_type() == sol::type::string) {
ErrorMessage = Res.get<sol::error>().what();
} else {
ErrorMessage = "(unknown error; error object is not inspectable)";
}
}
void MarkAsReady();
+7 -2
View File
@@ -550,8 +550,13 @@ sol::table TLuaEngine::StateThreadData::Lua_TriggerLocalEvent(const std::string&
Result.set(i, FnRet);
++i;
} else {
auto ErrStr = FnRet.get<std::optional<std::string>>();
beammp_lua_error(std::string("TriggerLocalEvent: ") + (ErrStr ? *ErrStr : "(unknown error; error object is not a string)"));
std::string ErrStr;
if (FnRet.get_type() == sol::type::string) {
ErrStr = FnRet.get<sol::error>().what();
} else {
ErrStr = "(unknown error; error object is not inspectable)";
}
beammp_lua_errorf("TriggerLocalEvent: {}", ErrStr);
}
}
}