diff --git a/api.lua b/api.lua index 78a6419..ef0545d 100644 --- a/api.lua +++ b/api.lua @@ -214,10 +214,16 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) local mod_pos_pos2 = formname:split(":") if mod_pos_pos2[1] == "telemosaic" then + local pos = minetest.string_to_pos(mod_pos_pos2[2]) + + if minetest.is_protected(pos, player:get_player_name()) then + minetest.chat_send_player(player:get_player_name(), "You cannot use protected beacon!") + return + end + -- beacon name change if fields.bname then local bname = fields.bname - local pos = minetest.string_to_pos(mod_pos_pos2[2]) local meta = minetest.get_meta(pos) local pos2 = minetest.string_to_pos(mod_pos_pos2[3]) @@ -241,11 +247,6 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) local range = meta:get_int("range") local pos2 = minetest.string_to_pos(mod_pos_pos2[3]) - if minetest.is_protected(pos, player:get_player_name()) then - minetest.chat_send_player(player:get_player_name(), "You cannot teleport from protected beacon!") - return - end - if pos2 then if math.floor(vector.distance(pos, pos2)) <= range then for i = 1, 2 do @@ -438,10 +439,12 @@ function telemosaic.beacon_rightclick(pos, node, clicker, itemstack, pointed_thi -- departure if stackname == "default:mese_crystal_fragment" and itemstack:get_count() == 1 then - itemstack:replace("telemosaic:key") + + local item_description = minetest.registered_items[itemstack:get_name()]["description"] -- remember departure position in the item meta meta_stack:set_string("dep_pos", minetest.pos_to_string(pos)) + meta_stack:set_string("description", item_description.."\nsaved position: "..minetest.pos_to_string(pos)) meta:set_string("infotext", description.."\nowner: "..ownername.."\nrange: "..range.." blocks\nright-click for more info")