mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
(edit: don't) Fix unpack, and some other things
This commit is contained in:
parent
a70fee4d35
commit
439ac1d192
4 changed files with 8 additions and 15 deletions
|
@ -162,11 +162,11 @@ Client::Client(
|
|||
}
|
||||
|
||||
{
|
||||
//TODO: network packets
|
||||
//TODO: check that *client_builtin* is not overridden
|
||||
//FIXME: network packets
|
||||
//FIXME: check that *client_builtin* is not overridden
|
||||
|
||||
std::string enable_sscsm = g_settings->get("enable_sscsm");
|
||||
if (enable_sscsm == "singleplayer") {
|
||||
if (enable_sscsm == "singleplayer") { //FIXME: enum
|
||||
auto event1 = std::make_unique<SSCSMEventUpdateVFSFiles>();
|
||||
event1->files.emplace_back("sscsm_test0:init.lua",
|
||||
R"=+=(
|
||||
|
|
|
@ -76,7 +76,7 @@ ScriptApiBase::ScriptApiBase(ScriptingType type):
|
|||
|
||||
lua_atpanic(m_luastack, &luaPanic);
|
||||
|
||||
if (m_type == ScriptingType::Client)
|
||||
if (m_type == ScriptingType::Client || m_type == ScriptingType::SSCSM)
|
||||
clientOpenLibs(m_luastack);
|
||||
else
|
||||
luaL_openlibs(m_luastack);
|
||||
|
@ -213,7 +213,8 @@ void ScriptApiBase::checkSetByBuiltin()
|
|||
if (getType() == ScriptingType::Server ||
|
||||
(getType() == ScriptingType::Async && m_gamedef) ||
|
||||
getType() == ScriptingType::Emerge ||
|
||||
getType() == ScriptingType::Client) {
|
||||
getType() == ScriptingType::Client ||
|
||||
getType() == ScriptingType::SSCSM) {
|
||||
CHECK(CUSTOM_RIDX_READ_NODE, "read_node");
|
||||
CHECK(CUSTOM_RIDX_PUSH_NODE, "push_node");
|
||||
}
|
||||
|
|
|
@ -392,7 +392,6 @@ void ScriptApiSecurity::initializeSecuritySSCSM()
|
|||
"next",
|
||||
"pairs",
|
||||
"pcall",
|
||||
"print", //TODO
|
||||
"rawequal",
|
||||
"rawget",
|
||||
"rawset",
|
||||
|
@ -403,7 +402,7 @@ void ScriptApiSecurity::initializeSecuritySSCSM()
|
|||
"tonumber",
|
||||
"tostring",
|
||||
"type",
|
||||
"unpack", //TODO: replace, because of UB in some lua versions
|
||||
"unpack",
|
||||
"_VERSION",
|
||||
"xpcall",
|
||||
// Completely safe libraries
|
||||
|
@ -423,7 +422,6 @@ void ScriptApiSecurity::initializeSecuritySSCSM()
|
|||
"getinfo", // used by builtin and unset before mods load //TODO
|
||||
"traceback" //TODO: is this fine, or does it print paths of C functions?
|
||||
};
|
||||
|
||||
#if USE_LUAJIT
|
||||
static const char *jit_whitelist[] = {
|
||||
"arch",
|
||||
|
@ -469,7 +467,7 @@ void ScriptApiSecurity::initializeSecuritySSCSM()
|
|||
lua_pop(L, 1); // Pop old OS
|
||||
|
||||
|
||||
// Copy safe debug functions //TODO
|
||||
// Copy safe debug functions
|
||||
lua_getglobal(L, "debug");
|
||||
lua_newtable(L);
|
||||
copy_safe(L, debug_whitelist, sizeof(debug_whitelist));
|
||||
|
|
|
@ -9,12 +9,6 @@
|
|||
class ModApiSSCSM : public ModApiBase
|
||||
{
|
||||
private:
|
||||
// print(text)
|
||||
static int l_print(lua_State *L);
|
||||
|
||||
// log([level], text)
|
||||
static int l_log(lua_State *L);
|
||||
|
||||
// get_node_or_nil(pos)
|
||||
static int l_get_node_or_nil(lua_State *L);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue