diff options
Diffstat (limited to 'pos.lua')
-rw-r--r-- | pos.lua | 76 |
1 files changed, 26 insertions, 50 deletions
@@ -12,26 +12,20 @@ areas.pos1 = {} areas.pos2 = {} minetest.register_chatcommand("select_area", { - params = "<id>", + params = "<ID>", description = "Select a area by id.", - privs = {}, func = function(name, param) local id = tonumber(param) if not id then - minetest.chat_send_player(name, - "Invalid usage, see /help select_area.") - return + return false, "Invalid usage, see /help select_area." end if not areas.areas[id] then - minetest.chat_send_player(name, - "The area "..id.." does not exist.") - return + return false, "The area "..id.." does not exist." end areas:setPos1(name, areas.areas[id].pos1) areas:setPos2(name, areas.areas[id].pos2) - minetest.chat_send_player(name, - "Area "..id.." selected.") + return true, "Area "..id.." selected." end, }) @@ -47,24 +41,19 @@ minetest.register_chatcommand("area_pos1", { if found then pos = {x=tonumber(x), y=tonumber(y), z=tonumber(z)} elseif param == "" then - player = minetest.get_player_by_name(name) + local player = minetest.get_player_by_name(name) if player then pos = player:getpos() else - minetest.chat_send_player(name, - "Unable to get position") - return + return false, "Unable to get position." end else - minetest.chat_send_player(name, - "Invalid usage, see /help area_pos1") - return + return false, "Invalid usage, see /help area_pos1." end pos = vector.round(pos) areas:setPos1(name, pos) - minetest.chat_send_player(name, - "Area position 1 set to " - ..minetest.pos_to_string(pos)) + return true, "Area position 1 set to " + ..minetest.pos_to_string(pos) end, }) @@ -72,7 +61,6 @@ minetest.register_chatcommand("area_pos2", { params = "[X Y Z|X,Y,Z]", description = "Set area protection region position 2 to your" .." location or the one specified", - privs = {}, func = function(name, param) local pos = nil local found, _, x, y, z = param:find( @@ -80,24 +68,19 @@ minetest.register_chatcommand("area_pos2", { if found then pos = {x=tonumber(x), y=tonumber(y), z=tonumber(z)} elseif param == "" then - player = minetest.get_player_by_name(name) + local player = minetest.get_player_by_name(name) if player then pos = player:getpos() else - minetest.chat_send_player(name, - "Unable to get position") - return + return false, "Unable to get position." end else - minetest.chat_send_player(name, - "Invalid usage, see /help area_pos2") - return + return false, "Invalid usage, see /help area_pos2." end pos = vector.round(pos) areas:setPos2(name, pos) - minetest.chat_send_player(name, - "Area position 2 set to " - ..minetest.pos_to_string(pos)) + return true, "Area position 2 set to " + ..minetest.pos_to_string(pos) end, }) @@ -106,38 +89,31 @@ minetest.register_chatcommand("area_pos", { params = "set/set1/set2/get", description = "Set area protection region, position 1, or position 2" .." by punching nodes, or display the region", - privs = {}, func = function(name, param) if param == "set" then -- Set both area positions areas.set_pos[name] = "pos1" - minetest.chat_send_player(name, - "Select positions by punching two nodes") + return true, "Select positions by punching two nodes." elseif param == "set1" then -- Set area position 1 areas.set_pos[name] = "pos1only" - minetest.chat_send_player(name, - "Select position 1 by punching a node") + return true, "Select position 1 by punching a node." elseif param == "set2" then -- Set area position 2 areas.set_pos[name] = "pos2" - minetest.chat_send_player(name, - "Select position 2 by punching a node") + return true, "Select position 2 by punching a node." elseif param == "get" then -- Display current area positions - if areas.pos1[name] ~= nil then - minetest.chat_send_player(name, "Position 1: " - ..minetest.pos_to_string(areas.pos1[name])) + local pos1str, pos2str = "Position 1: ", "Position 2: " + if areas.pos1[name] then + pos1str = pos1str..minetest.pos_to_string(areas.pos1[name]) else - minetest.chat_send_player(name, - "Position 1 not set") + pos1str = pos1str.."<not set>" end - if areas.pos2[name] ~= nil then - minetest.chat_send_player(name, "Position 2: " - ..minetest.pos_to_string(areas.pos2[name])) + if areas.pos2[name] then + pos2str = pos2str..minetest.pos_to_string(areas.pos2[name]) else - minetest.chat_send_player(name, - "Position 2 not set") + pos2str = pos2str.."<not set>" end + return true, pos1str.."\n"..pos2str else - minetest.chat_send_player(name, - "Unknown subcommand: "..param) + return false, "Unknown subcommand: "..param end end, }) |