X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=builtin%2Fbuiltin.lua;h=d6782a49a03e22e460b42627b8e36acc85a415c0;hb=e297c739139ad0116ebdcda7a8dc5884d89f5a96;hp=0cb7643945b16d37bdcab66c78726fea82873b5a;hpb=4cee9a86ac6fcde65dc2855a716b52f4437323f0;p=minetest.git diff --git a/builtin/builtin.lua b/builtin/builtin.lua index 0cb764394..d6782a49a 100644 --- a/builtin/builtin.lua +++ b/builtin/builtin.lua @@ -100,7 +100,11 @@ function string:trim() return (self:gsub("^%s*(.-)%s*$", "%1")) end -assert(string.trim("\n \t\tfoo\t ") == "foo") +assert(string.trim("\n \t\tfoo bar\t ") == "foo bar") + +function minetest.pos_to_string(pos) + return "(" .. pos.x .. "," .. pos.y .. "," .. pos.z .. ")" +end -- -- Item definition helpers @@ -115,10 +119,6 @@ function minetest.inventorycube(img1, img2, img3) .. "{" .. img3:gsub("%^", "&") end -function minetest.pos_to_string(pos) - return "(" .. pos.x .. "," .. pos.y .. "," .. pos.z .. ")" -end - function minetest.get_pointed_thing_position(pointed_thing, above) if pointed_thing.type == "node" then if above then @@ -861,6 +861,14 @@ function minetest.get_connected_players() return list end +function minetest.hash_node_position(pos) + return (pos.z+32768)*65536*65536 + (pos.y+32768)*65536 + pos.x+32768 +end + +-- +-- Privileges +-- + minetest.registered_privileges = {} function minetest.register_privilege(name, description) minetest.registered_privileges[name] = description @@ -1177,7 +1185,8 @@ local function read_auth_file() local newtable = {} local file, errmsg = io.open(minetest.auth_file_path, 'rb') if not file then - error(minetest.auth_file_path.." could not be opened for reading: "..errmsg) + minetest.log("info", minetest.auth_file_path.." could not be opened for reading ("..errmsg.."); assuming new world") + return end for line in file:lines() do if line ~= "" then @@ -1222,13 +1231,20 @@ minetest.builtin_auth_handler = { if not minetest.auth_table[name] then minetest.builtin_auth_handler.create_auth(name, minetest.get_password_hash(name, minetest.setting_get("default_password"))) end - if minetest.is_singleplayer() or name == minetest.setting_get("name") then + if minetest.is_singleplayer() then return { password = "", privileges = minetest.registered_privileges } else - return minetest.auth_table[name] + if minetest.auth_table[name] and name == minetest.setting_get("name") then + return { + password = minetest.auth_table[name].password, + privileges = minetest.registered_privileges + } + else + return minetest.auth_table[name] + end end end, create_auth = function(name, password)