diff --git a/dump.lua b/dump.lua index 355bedc..670ad21 100644 --- a/dump.lua +++ b/dump.lua @@ -55,24 +55,22 @@ local function basic_dump(o) --elseif tp == "function" then -- return string.format("loadstring(%q)", string.dump(o)) elseif tp == "userdata" then - if o:is_valid() then - if o.is_player then - if o:is_player() then - return string.format('#', o:get_player_name()) - else - local e = o:get_luaentity() - if e then - return string.format('#', e.name) - else - return string.format('#', o) - end - end - else - return tostring(o) - end - else + if o.is_valid and not o:is_valid() then return string.format('#', o) end + if o.is_player then + if o:is_player() then + return string.format('#', o:get_player_name()) + else + local e = o:get_luaentity() + if e then + return string.format('#', e.name) + else + return string.format('#', o) + end + end + end + return string.format("#<%s>", o) else return string.format("#<%s>", tp) end diff --git a/init.lua b/init.lua index 838d177..5f60fc6 100644 --- a/init.lua +++ b/init.lua @@ -75,7 +75,7 @@ local function create_shared_environment(player_name) return magic() elseif not g[key] then core.chat_send_player(player_name, string.format("* Accessing undeclared variable: '%s'", key)) - g[key] = true + g[key] = true -- warn only once end end return res