Merge pull request #3 from Kotolegokot/master

Some small fixes
master
xyzz 2012-07-25 12:04:44 -07:00
commit b84d4a8850
1 changed files with 36 additions and 23 deletions

View File

@ -11,22 +11,27 @@ local max_distance = 0
----------------------------------
local homes_file = minetest.get_modpath('sethome')..'/homes'
--local homes_file = minetest.get_worldpath() .. "/homes"
local homepos = {}
local last_moved = {}
local function loadhomes()
local input = io.open(homes_file, "r")
while true do
local x = input:read("*n")
if x == nil then
break
if input then
while true do
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("*l")
homepos[name:sub(2)] = {x = x, y = y, z = z}
end
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}
io.close(input)
else
homepos = {}
end
io.close(input)
end
loadhomes()
@ -46,15 +51,12 @@ end
local changed = false
minetest.register_on_chat_message(function(name, message)
if message == '/sethome' then
local player = minetest.env:get_player_by_name(name)
local pos = player:getpos()
homepos[name] = pos
minetest.chat_send_player(name, "Home set!")
changed = true
return true
elseif message == "/home" then
minetest.register_privilege("home", "Can use /home and /sethome commands")
minetest.register_chatcommand("home", {
privs = {home=true},
description = "Teleport you to your home point",
func = function(name, param)
local player = minetest.env:get_player_by_name(name)
if player == nil then
-- just a check to prevent server death
@ -76,11 +78,22 @@ minetest.register_on_chat_message(function(name, message)
player:setpos(homepos[name])
minetest.chat_send_player(name, "Teleported to home!")
else
minetest.chat_send_player(name, "You don't have a home now! Set it using /sethome")
minetest.chat_send_player(name, "You don't have a home now! Set it using /sethome.")
end
return true
end
end)
end,
})
minetest.register_chatcommand("sethome", {
privs = {home=true},
description = "Set your home point",
func = function(name, param)
local player = minetest.env:get_player_by_name(name)
local pos = player:getpos()
homepos[name] = pos
minetest.chat_send_player(name, "Home set!")
changed = true
end,
})
local delta = 0
minetest.register_globalstep(function(dtime)
@ -96,4 +109,4 @@ minetest.register_globalstep(function(dtime)
io.close(output)
end
end
end)
end)