From 6fe6a28c21760dd609613c69564b3e008e0241c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20P=C3=A9rez-Cerezo?= Date: Sun, 23 Oct 2016 16:43:34 +0200 Subject: Give everyone an apartment on login, enable /aphome to go to any rented apartment. --- init.lua | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/init.lua b/init.lua index e8892f6..8b14c30 100644 --- a/init.lua +++ b/init.lua @@ -829,7 +829,7 @@ minetest.register_node("apartment:apartment_occupied", { if( apartment.enable_aphome_command ) then minetest.register_chatcommand("aphome", { - params = "", + params = "", description = "Teleports you back to the apartment you rented.", privs = {}, func = function(name, param) @@ -837,19 +837,24 @@ if( apartment.enable_aphome_command ) then if( not( name )) then return; end - + local category; + if (not param or param == "") then + category = 'apartment' + else + category = param + end local player = minetest.env:get_player_by_name(name); for k,v in pairs( apartment.apartments ) do -- found the apartment the player rented - if( v and v.owner and v.owner==name ) then + if( v and v.owner and v.owner==name and v.category == category) then player:moveto( v.pos, false); minetest.chat_send_player(name, "Welcome back to your apartment "..k.."."); return; end end - - minetest.chat_send_player(name, "Please rent an apartment first."); + + minetest.chat_send_player(name, "Please rent a "..category.." first."); end }) end @@ -932,5 +937,18 @@ minetest.register_abm({ end }) +-- give each player an apartment upon joining the server -- + +minetest.register_on_newplayer(function(player) + for k,v in pairs( apartment.apartments ) do + if (v.owner == '' and v.category == 'apartment') then + if (apartment.rent( v.pos, player:get_player_name(), nil, player )) then + player:moveto( v.pos, false); + minetest.chat_send_player(player:get_player_name(),"Welcome to your new apartment. You can return here by saying '/aphome'") + break + end + end + end +end) -- upon server start, read the savefile apartment.restore_data(); -- cgit v1.2.3