mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2026-07-12 17:54:04 +00:00
fix error handling from SetErrorMessageFromResult
This commit is contained in:
@@ -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
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user