sethome/README.md

83 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

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