]> git.lizzy.rs Git - minetest.git/blobdiff - builtin/builtin.lua
More documentation in doc/lua_api.txt
[minetest.git] / builtin / builtin.lua
index 0cb7643945b16d37bdcab66c78726fea82873b5a..d6782a49a03e22e460b42627b8e36acc85a415c0 100644 (file)
@@ -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)