Used minetest.register_chatcommand instead of minetest.register_on_chat_message
parent
486f491364
commit
9f36331842
|
@ -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)
|
Loading…
Reference in New Issue