Fix marshal issues
This commit is contained in:
parent
3cb7b4f53e
commit
62b06791f9
54
basis/marshal.lua
Normal file
54
basis/marshal.lua
Normal file
@ -0,0 +1,54 @@
|
||||
--[[
|
||||
|
||||
TechAge
|
||||
=======
|
||||
|
||||
Copyright (C) 2019-2022 Joachim Stolberg
|
||||
|
||||
AGPL v3
|
||||
See LICENSE.txt for more information
|
||||
|
||||
]]--
|
||||
|
||||
-------------------------------------------------------------------
|
||||
-- Marshaling: Returns serialize, deserialize functions
|
||||
-------------------------------------------------------------------
|
||||
local use_marshal = minetest.settings:get_bool('techage_use_marshal', false)
|
||||
local MAR_MAGIC = 0x8e
|
||||
local marshal = techage.IE.require("marshal")
|
||||
|
||||
if use_marshal then
|
||||
if not techage.IE then
|
||||
error("Please add 'secure.trusted_mods = techage' to minetest.conf!")
|
||||
end
|
||||
marshal = techage.IE.require("marshal")
|
||||
if not marshal then
|
||||
error("Please install marshal via 'luarocks install lua-marshal'")
|
||||
end
|
||||
elseif techage.IE then
|
||||
marshal = techage.IE.require("marshal")
|
||||
end
|
||||
|
||||
if marshal then
|
||||
return marshal.encode,
|
||||
function(s)
|
||||
if s ~= "" then
|
||||
if s:byte(1) == MAR_MAGIC then
|
||||
return marshal.decode(s)
|
||||
else
|
||||
return minetest.deserialize(s)
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
return minetest.serialize,
|
||||
function(s)
|
||||
if s ~= "" then
|
||||
if s:byte(1) == MAR_MAGIC then
|
||||
error("'lua-marshal' is required to deserialize this string")
|
||||
else
|
||||
return minetest.deserialize(s)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user