2015-12-24 00:35:51 -08:00
|
|
|
# sethome
|
2015-12-28 23:43:32 -08:00
|
|
|
Minetest sethome mod for beds (teleport for beds).
|
2015-12-24 01:05:36 -08:00
|
|
|
Teleporting player to bed if he slept on it after writing in chat /home.
|
2015-12-24 09:29:13 -08:00
|
|
|
Tested on default beds from minetest_game.
|
2015-12-28 23:42:34 -08:00
|
|
|
|
|
|
|
http://forum.minetest.net/viewtopic.php?f=9&t=13788
|
2015-12-24 11:21:00 -08:00
|
|
|
|
|
|
|
If you want use PilzAdam's beds mod you must replace all code in init.lua by this:
|
|
|
|
|
|
|
|
minetest.register_on_chat_message(function(name, message, playername, player)
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
local player_spawns = {}
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
local file = io.open(minetest.get_worldpath().."/beds_player_spawns", "r")
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
if file then
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
player_spawns = minetest.deserialize(file:read("*all"))
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
file:close()
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
end
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
local cmd = "/home"
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
local player = minetest.get_player_by_name(name)
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
|
|
|
|
if message:sub(0, #cmd) == cmd then
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
if message == '/home' then
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
if (player_spawns[name]) then
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
minetest.chat_send_player(player:get_player_name(), "Teleporting to bed...")
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
player:setpos(player_spawns[name])
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
return true
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
else
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
minetest.chat_send_player(player:get_player_name(), "You haven't slept in a bed yet.")
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
return true
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
end
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
end
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
|
|
|
|
end
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
end)
|
|
|
|
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
minetest.register_chatcommand("sethome", {
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
--params = "",
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
description = "Information about set your home point",
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
func = function(name)
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
local player = minetest.get_player_by_name(name)
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
if player == nil then
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
-- just a check to prevent the server crashing
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
return false
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
end
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
minetest.chat_send_player(player:get_player_name(), "You must sleep in a bed for this.")
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
return true
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 11:21:00 -08:00
|
|
|
end,
|
2015-12-24 23:38:15 -08:00
|
|
|
|
2015-12-24 23:37:05 -08:00
|
|
|
})
|
2015-12-24 23:38:15 -08:00
|
|
|
|