2024-11-27 15:27:59 -06:00

46 lines
1.3 KiB
Lua

local storage = core.get_mod_storage()
local spawnpoints = core.deserialize(storage:get("player_spawns")) or {}
core.register_on_joinplayer(function(player)
local name = player:get_player_name()
if spawnpoints[name] == nil then
spawnpoints[name] = player:get_pos()
end
end)
core.register_on_respawnplayer(function(player)
local name = player:get_player_name()
if spawnpoints[name] ~= nil then
player:set_pos(spawnpoints[name])
return true
end
end)
local function save_data()
storage:set_string("player_spawns", core.serialize(spawnpoints))
end
core.register_on_shutdown(save_data)
PyuTest.register_interval(save_data, 10)
PyuTest.make_node("pyutest_spawnpoints:spawnpoint", "Spawnpoint", {
choppy = PyuTest.BLOCK_FAST
}, { "pyutest-spawnpoint.png" }, {
on_rightclick = function(pos, node, clicker)
if clicker == nil then return end
if not clicker:is_player() then return end
local name = clicker:get_player_name()
spawnpoints[name] = pos
end
})
core.register_craft({
output = "pyutest_spawnpoints:spawnpoint",
recipe = {
{ "pyutest_blocks:stone_block", "pyutest_blocks:stone_block", "pyutest_blocks:stone_block" },
{ "pyutest_blocks:stone_block", "pyutest_blocks:stone_block", "pyutest_blocks:stone_block" },
{ "pyutest_blocks:stone_block", "pyutest_blocks:stone_block", "pyutest_blocks:stone_block" },
}
})