diff --git a/minetestforfun_game/mods/sethome/depends.txt b/minetestforfun_game/mods/sethome/depends.txt new file mode 100644 index 00000000..04f18514 --- /dev/null +++ b/minetestforfun_game/mods/sethome/depends.txt @@ -0,0 +1,2 @@ +default +nether diff --git a/minetestforfun_game/mods/sethome/init.lua b/minetestforfun_game/mods/sethome/init.lua index 20f77c01..12a2b8de 100755 --- a/minetestforfun_game/mods/sethome/init.lua +++ b/minetestforfun_game/mods/sethome/init.lua @@ -1,8 +1,9 @@ -local homes_file = minetest.get_worldpath() .. "/homes" -local homepos = {} +local real_homes_file = minetest.get_worldpath() .. "/real_homes" +local nether_homes_file = minetest.get_worldpath() .. "/nether_homes" +local homepos = {real = {},nether = {}} local function loadhomes() - local input = io.open(homes_file, "r") + local input = io.open(real_homes_file, "r") if input then repeat local x = input:read("*n") @@ -12,12 +13,29 @@ local function loadhomes() local y = input:read("*n") local z = input:read("*n") local name = input:read("*l") - homepos[name:sub(2)] = {x = x, y = y, z = z} + homepos.real[name:sub(2)] = {x = x, y = y, z = z} until input:read(0) == nil io.close(input) else - homepos = {} + homepos.real = {} 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() @@ -31,12 +49,19 @@ minetest.register_chatcommand("home", { privs = {home=true}, func = function(name) local player = minetest.env:get_player_by_name(name) + if not player_in_nether then return end + local is_in_nether = table.icontains(players_in_nether, name) + if player == nil then -- just a check to prevent the server crashing return false end if homepos[player:get_player_name()] then - player:setpos(homepos[player:get_player_name()]) + if is_in_nether then + player:setpos(nether.homepos[player:get_player_name()]) + else + player:setpos(real.homepos[player:get_player_name()]) + end minetest.chat_send_player(name, "Teleported to home!") else minetest.chat_send_player(name, "Set a home using /sethome") @@ -50,11 +75,21 @@ minetest.register_chatcommand("sethome", { func = function(name) local player = minetest.env:get_player_by_name(name) local pos = player:getpos() - homepos[player:get_player_name()] = pos + if not players_in_nether then return end + local is_in_nether = table.icontains(players_in_nether, name) + if is_in_nether then + homepos.nether[player:get_player_name()] = pos + else + homepos.real[player:get_player_name()] = pos + end minetest.chat_send_player(name, "Home set!") changed = true if changed then - local output = io.open(homes_file, "w") + if is_in_nether then + local output = io.open(nether_homes_file, "w") + else + local output = io.open(real_homes_file, "w") + end for i, v in pairs(homepos) do output:write(v.x.." "..v.y.." "..v.z.." "..i.."\n") end diff --git a/mods/factions/factions.lua b/mods/factions/factions.lua index 2c8ba3b2..fe0b8fa1 100755 --- a/mods/factions/factions.lua +++ b/mods/factions/factions.lua @@ -343,7 +343,7 @@ end --! @return true/false (succesfully changed privileges) ------------------------------------------------------------------------------- function factions.set_admin(name,playername,value) - mobf_assert_backtrace(type(playername) == "string") + --mobf_assert_backtrace(type(playername) == "string") if factions.data.factions[name] ~= nil then if value then factions.data.factions[name].adminlist[playername] = true @@ -772,4 +772,4 @@ function factions.load() end end ) -end \ No newline at end of file +end diff --git a/mods/nether/nether/portal.lua b/mods/nether/nether/portal.lua index c6ccdbf5..49fe196f 100644 --- a/mods/nether/nether/portal.lua +++ b/mods/nether/nether/portal.lua @@ -16,7 +16,7 @@ table.icontains = table.icontains or function(t, v) return false end -local players_in_nether = {} +players_in_nether = {} local file = io.open(minetest.get_worldpath()..'/nether_players', "r") if file then local contents = file:read('*all') diff --git a/mods/u_skins/u_skins/players.lua b/mods/u_skins/u_skins/players.lua index 30535305..a2303002 100755 --- a/mods/u_skins/u_skins/players.lua +++ b/mods/u_skins/u_skins/players.lua @@ -13,7 +13,7 @@ u_skins.load_players() local ttime = 0 minetest.register_globalstep(function(t) ttime = ttime + t - if ttime < 360 then --every 6min' + if ttime < 120 then --every 6min' return end ttime = 0