diff --git a/minetestforfun_game/mods/sethome/depends.txt b/minetestforfun_game/mods/sethome/depends.txt deleted file mode 100644 index 04f18514..00000000 --- a/minetestforfun_game/mods/sethome/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -nether diff --git a/minetestforfun_game/mods/sethome/init.lua b/minetestforfun_game/mods/sethome/init.lua index 9762dc7e..20f77c01 100755 --- a/minetestforfun_game/mods/sethome/init.lua +++ b/minetestforfun_game/mods/sethome/init.lua @@ -1,9 +1,8 @@ -local real_homes_file = minetest.get_worldpath() .. "/real_homes" -local nether_homes_file = minetest.get_worldpath() .. "/nether_homes" -local homepos = {real = {},nether = {}} +local homes_file = minetest.get_worldpath() .. "/homes" +local homepos = {} local function loadhomes() - local input = io.open(real_homes_file, "r") + local input = io.open(homes_file, "r") if input then repeat local x = input:read("*n") @@ -13,29 +12,12 @@ local function loadhomes() local y = input:read("*n") local z = input:read("*n") local name = input:read("*l") - homepos.real[name:sub(2)] = {x = x, y = y, z = z} + homepos[name:sub(2)] = {x = x, y = y, z = z} until input:read(0) == nil io.close(input) else - homepos.real = {} + homepos = {} end - - input = io.open(nether_homes_file, "r") - if input then - repeat - local x = input:read("*n") - if x == nil then - break - end - local y = input:read("*n") - local z = input:read("*n") - local name = input:read("*n") - homepos.nether[name:sub(2)] = {x = x, y = y, z = z} - until input:read(0) == nil - io.close(input) - else - homepos.nether = {} - end end loadhomes() @@ -48,32 +30,16 @@ minetest.register_chatcommand("home", { description = "Teleport you to your home point", privs = {home=true}, func = function(name) - - local player = minetest.get_player_by_name(name) - local player_pos = player:getpos() - local is_player_in_nether = player_pos.y < -19600 - + local player = minetest.env:get_player_by_name(name) if player == nil then -- just a check to prevent the server crashing return false end - - if is_player_in_nether then - if homepos.nether[name] ~= nil then - player:setpos(homepos.nether[name]) - minetest.log("action",name.." teleported with /home to "..homepos.nether[name].x..","..homepos.nether[name].y..","..homepos.nether[name].z..", in the nether.") - core.chat_send_player(name, "Teleported to home in the nether!") - else - core.chat_send_player(name, "Set a home in the nether using /sethome") - end - else - if homepos.real[name] ~= nil then - player:setpos(homepos.real[name]) - minetest.log("action",name.." teleported with /home to "..homepos.real[name].x..","..homepos.real[name].y..","..homepos.real[name].z..", in the real world.") - core.chat_send_player(name,"Teleported to home in the real world!") - else - core.chat_send_player(name, "Set a home in the real world using /sethome") - end + if homepos[player:get_player_name()] then + player:setpos(homepos[player:get_player_name()]) + minetest.chat_send_player(name, "Teleported to home!") + else + minetest.chat_send_player(name, "Set a home using /sethome") end end, }) @@ -82,38 +48,16 @@ minetest.register_chatcommand("sethome", { description = "Set your home point", privs = {home=true}, func = function(name) - - local player_pnt = minetest.get_player_by_name(name) - local player_pos = player_pnt:getpos() - local player_is_in_nether = player_pos.y < -19600 - - if player_is_in_nether == true then - homepos.nether[name] = pos - minetest.log("action",name.." set its home position to "..player_pos.x..","..player_pos.y..","..player_pos.z..", in the nether.") - core.chat_send_player(name,"Home set in the nether!") - else - homepos.real[name] = pos - minetest.log("action",name.." set its home position to "..player_pos.x..","..player_pos.y..","..player_pos.z..", in the real world.") - core.chat_send_player(name,"Home set in the real world!") - end - - changed = true + local player = minetest.env:get_player_by_name(name) + local pos = player:getpos() + homepos[player:get_player_name()] = pos + minetest.chat_send_player(name, "Home set!") + changed = true if changed then - local output = 0 - - if is_in_nether then - output = io.open(nether_homes_file, "w") - if output == 0 then return end -- Had not open the file - for i, v in pairs(homepos.nether) do - output:write(v.x.." "..v.y.." "..v.z.." "..i.."\n") - end - else - output = io.open(real_homes_file, "w") - for i, v in pairs(homepos.real) do - output:write(v.x.." "..v.y.." "..v.z.." "..i.."\n") - end - end - + local output = io.open(homes_file, "w") + for i, v in pairs(homepos) do + output:write(v.x.." "..v.y.." "..v.z.." "..i.."\n") + end io.close(output) changed = false end