summaryrefslogtreecommitdiff
path: root/chatcommands.lua
diff options
context:
space:
mode:
authorShadowNinja <noreply@gmail.com>2013-09-03 01:33:08 -0400
committerShadowNinja <noreply@gmail.com>2013-09-03 01:33:08 -0400
commit7b0ff512f7f44fde11204e57f5b9b30ae550e4bb (patch)
tree61a8584c2320341858c9dc2c063e85743ba65195 /chatcommands.lua
parent3d866330bf01409e5113ece322e500aaa095417a (diff)
Shorten lines
Diffstat (limited to 'chatcommands.lua')
-rw-r--r--chatcommands.lua275
1 files changed, 151 insertions, 124 deletions
diff --git a/chatcommands.lua b/chatcommands.lua
index 22c4d8e..8a22887 100644
--- a/chatcommands.lua
+++ b/chatcommands.lua
@@ -22,7 +22,9 @@ minetest.register_chatcommand("protect", {
local canAdd, errMsg = areas:canPlayerAddArea(pos1, pos2, name)
if not canAdd then
- minetest.chat_send_player(name, "You can't protect that area: "..errMsg)
+ minetest.chat_send_player(name,
+ "You can't protect that area: "
+ ..errMsg)
return
end
@@ -38,103 +40,101 @@ end})
minetest.register_chatcommand("set_owner", {
params = "<PlayerName> <AreaName>",
- description = "Protect an area beetween two positions and give a player access to it without setting the parent of the area to any existing area",
+ description = "Protect an area beetween two positions and give"
+ .." a player access to it without setting the parent of the"
+ .." area to any existing area",
privs = {areas=true},
func = function(name, param)
- if param and param ~= "" then
- local found, _, ownername, areaname = param:find('^([^%s]+)%s(.+)$')
+ local found, _, ownername, areaname = param:find('^([^%s]+)%s(.+)$')
- if not found then
- minetest.chat_send_player(name, "Incorrect usage, see /help set_owner")
- return
- end
-
- local pos1, pos2 = {}, {}
- if areas:getPos1(name) and areas:getPos2(name) then
- pos1 = areas:getPos1(name)
- pos2 = areas:getPos2(name)
- pos1, pos2 = areas:sortPos(pos1, pos2)
- else
- minetest.chat_send_player(name, 'You need to select an area first')
- return
- end
-
- if not areas:player_exists(ownername) then
- minetest.chat_send_player(name, 'The player "'..ownername..'" does not exist')
- return
- end
-
- --local canAdd, errMsg = areas:canPlayerAddArea(pos1, pos2, name)
- --if not canAdd then
- -- minetest.chat_send_player(name, "You can't protect that area: "..errMsg)
- -- return
- --end
-
- minetest.log("action", "/set_owner invoked, Owner="..ownername..
- " AreaName="..areaname..
- " StartPos="..minetest.pos_to_string(pos1)..
- " EndPos=" ..minetest.pos_to_string(pos2))
+ if not found then
+ minetest.chat_send_player(name, "Incorrect usage, see /help set_owner")
+ return
+ end
- areas:add(ownername, areaname, pos1, pos2, nil)
- areas:save()
-
- minetest.chat_send_player(ownername, "A concession has been granted to you! Type /list_areas to show your concessions.")
- minetest.chat_send_player(name, "Area protected")
+ local pos1, pos2 = {}, {}
+ if areas:getPos1(name) and areas:getPos2(name) then
+ pos1 = areas:getPos1(name)
+ pos2 = areas:getPos2(name)
+ pos1, pos2 = areas:sortPos(pos1, pos2)
else
- minetest.chat_send_player(name, 'Invalid usage, see /help set_owner')
+ minetest.chat_send_player(name, 'You need to select an area first')
+ return
end
+
+ if not areas:player_exists(ownername) then
+ minetest.chat_send_player(name, 'The player "'
+ ..ownername..'" does not exist')
+ return
+ end
+
+ minetest.log("action", "/set_owner invoked, Owner="..ownername..
+ " AreaName="..areaname..
+ " StartPos="..minetest.pos_to_string(pos1)..
+ " EndPos=" ..minetest.pos_to_string(pos2))
+
+ areas:add(ownername, areaname, pos1, pos2, nil)
+ areas:save()
+
+ minetest.chat_send_player(ownername,
+ "You have been granted control over an area."
+ .." Type /list_areas to show your areas.")
+ minetest.chat_send_player(name, "Area protected")
end})
minetest.register_chatcommand("add_owner", {
params = "<ParentID> <Player> <AreaName>",
- description = "Give a player access to a sub-area beetween two positions that have already been protected, use set_owner if you don't want the parent to be set",
+ description = "Give a player access to a sub-area beetween two"
+ .." positions that have already been protected,"
+ .." Use set_owner if you don't want the parent to be set.",
privs = {},
func = function(name, param)
- if param and param ~= "" then
- local found, _, pid, ownername, areaname = param:find('^(%d+)%s([^%s]+)%s(.+)$')
+ local found, _, pid, ownername, areaname
+ = param:find('^(%d+)%s([^%s]+)%s(.+)$')
- if not found then
- minetest.chat_send_player(name, "Incorrect usage, see /help set_owner")
- return
- end
-
- local pos1, pos2 = {}, {}
- if areas:getPos1(name) and areas:getPos2(name) then
- pos1 = areas:getPos1(name)
- pos2 = areas:getPos2(name)
- pos1, pos2 = areas:sortPos(pos1, pos2)
- else
- minetest.chat_send_player(name, 'You need to select an area first')
- return
- end
-
- if not areas:player_exists(ownername) then
- minetest.chat_send_player(name, 'The player "'..ownername..'" does not exist')
- return
- end
+ if not found then
+ minetest.chat_send_player(name, "Incorrect usage, see /help set_owner")
+ return
+ end
- minetest.log("action", "add_owner invoked, Owner = "..ownername..
- " AreaName = "..areaname.." ParentID = "..pid..
- " StartPos = "..pos1.x..","..pos1.y..","..pos1.z..
- " EndPos = " ..pos2.x..","..pos2.y..","..pos2.z)
+ local pos1, pos2 = {}, {}
+ if areas:getPos1(name) and areas:getPos2(name) then
+ pos1 = areas:getPos1(name)
+ pos2 = areas:getPos2(name)
+ pos1, pos2 = areas:sortPos(pos1, pos2)
+ else
+ minetest.chat_send_player(name, 'You need to select an area first')
+ return
+ end
- --Look to see if this new area is inside an area owned by the player using this function
- pid = tonumber(pid)
- if (not areas:isAreaOwner(pid, name)) or
- (not areas:isSubarea(pos1, pos2, pid)) then
- minetest.chat_send_player(name, "You can't protect that area")
- return
- end
+ if not areas:player_exists(ownername) then
+ minetest.chat_send_player(name, 'The player "'
+ ..ownername..'" does not exist')
+ return
+ end
- areas:add(ownername, areaname, pos1, pos2, pid)
- areas:save()
-
- minetest.chat_send_player(ownername, "A concession has been granted to you! Type /list_areas to show your concessions.")
- minetest.chat_send_player(name, "You granted "..ownername.." a concession successfully!")
- else
- minetest.chat_send_player(name, 'Invalid usage, see /help add_owner')
+ minetest.log("action", "add_owner invoked, Owner = "..ownername..
+ " AreaName = "..areaname.." ParentID = "..pid..
+ " StartPos = "..pos1.x..","..pos1.y..","..pos1.z..
+ " EndPos = " ..pos2.x..","..pos2.y..","..pos2.z)
+
+ -- Check if this new area is inside an area owned by the player
+ pid = tonumber(pid)
+ if (not areas:isAreaOwner(pid, name)) or
+ (not areas:isSubarea(pos1, pos2, pid)) then
+ minetest.chat_send_player(name,
+ "You can't protect that area")
+ return
end
+
+ areas:add(ownername, areaname, pos1, pos2, pid)
+ areas:save()
+
+ minetest.chat_send_player(ownername,
+ "You have been gtanted control over an area."
+ .." Type /list_areas to show your areas.")
+ minetest.chat_send_player(name, "Area protected.")
end})
@@ -146,19 +146,20 @@ minetest.register_chatcommand("rename_area", {
local found, _, id, newName = param:find("^(%d+)%s(.+)$")
if not found then
- minetest.chat_send_player(name, "Invalid usage, see /help rename_area")
+ minetest.chat_send_player(name,
+ "Invalid usage, see /help rename_area")
return
end
index = areas:getIndexById(tonumber(id))
if not index then
- minetest.chat_send_player(name, "That area doesn't exist")
+ minetest.chat_send_player(name, "That area doesn't exist.")
return
end
if not areas:isAreaOwner(id, name) then
- minetest.chat_send_player(name, "You don't own that area")
+ minetest.chat_send_player(name, "You don't own that area.")
return
end
@@ -169,14 +170,23 @@ end})
minetest.register_chatcommand("list_owners", {
params = "",
- description = "list the players that can edit the area you are in",
+ description = "List the owners of your position",
privs = {},
func = function(name, param)
- local owners = areas:getNodeOwners(vector.round(minetest.get_player_by_name(name):getpos()))
+ local player = minetest.get_player_by_name(name)
+ if not player then
+ minetest.chat_send_player(name,
+ "Unable to find your position.")
+ return
+ end
+ local pos = vector.round(player:getpos())
+ local owners = areas:getNodeOwners(pos)
if #owners > 0 then
- minetest.chat_send_player(name, "Owners: "..table.concat(owners, ", "))
+ minetest.chat_send_player(name,
+ "Owners: "..table.concat(owners, ", "))
else
- minetest.chat_send_player(name, "Your position is unowned")
+ minetest.chat_send_player(name,
+ "Your position is unowned.")
end
end})
@@ -186,38 +196,42 @@ minetest.register_chatcommand("find_areas", {
description = "Find areas using a Lua regular expression",
privs = {},
func = function(name, param)
- if param and param ~= "" then
- local found = false
- for _, area in pairs(areas.areas) do
- if areas:isAreaOwner(area.id, name) and
- areas:toString(area):find(param) then
- minetest.chat_send_player(name, areas:toString(area))
- found = true
- end
- end
- if not found then
- minetest.chat_send_player(name, "No matches found")
+ if param == "" then
+ minetest.chat_send_player(name,
+ "A regular expression is required.")
+ return
+ end
+ local found = false
+ for _, area in pairs(areas.areas) do
+ if areas:isAreaOwner(area.id, name) and
+ areas:toString(area):find(param) then
+ minetest.chat_send_player(name, areas:toString(area))
+ found = true
end
- else
- minetest.chat_send_player(name, "Regular expression required")
+ end
+ if not found then
+ minetest.chat_send_player(name, "No matches found")
end
end})
minetest.register_chatcommand("list_areas", {
params = "",
- description = "list the areas you own, or all areas if you have privileges",
+ description = "List your areas, or all areas if you are an admin.",
privs = {},
func = function(name, param)
admin = minetest.check_player_privs(name, {areas=true})
if admin then
- minetest.chat_send_player(name, "Showing all owner entries.")
+ minetest.chat_send_player(name,
+ "Showing all areas.")
else
- minetest.chat_send_player(name, "Showing your owner entries (You can only modify these).")
+ minetest.chat_send_player(name,
+ "Showing your areas.")
end
for _, area in pairs(areas.areas) do
if admin or area.owner == name then
- minetest.chat_send_player(name, areas:toString(area))
+ minetest.chat_send_player(name,
+ areas:toString(area))
end
end
end})
@@ -230,8 +244,9 @@ minetest.register_chatcommand("recursive_remove_areas", {
func = function(name, param)
local id = tonumber(param)
if not id then
- minetest.chat_send_player(name, 'Invalid usage, see /help recursive_remove_areas')
- minetest.chat_send_player(name, 'Use /list_areas to see entries')
+ minetest.chat_send_player(name,
+ "Invalid usage, see"
+ .." /help recursive_remove_areas")
return
end
@@ -240,10 +255,13 @@ minetest.register_chatcommand("recursive_remove_areas", {
areas:sort()
areas:save()
else
- minetest.chat_send_player(name, "Area "..id.." does not exist or is not owned by you")
+ minetest.chat_send_player(name, "Area "..id
+ .." does not exist or is"
+ .." not owned by you.")
return
end
- minetest.chat_send_player(name, 'Removed area '..id..'and sub areas')
+ minetest.chat_send_player(name, "Removed area "..id
+ .." and it's sub areas.")
end})
@@ -254,8 +272,8 @@ minetest.register_chatcommand("remove_area", {
func = function(name, param)
local id = tonumber(param)
if not id then
- minetest.chat_send_player(name, 'Invalid usage, see /help remove_area')
- minetest.chat_send_player(name, 'Use /list_areas to see entries')
+ minetest.chat_send_player(name,
+ "Invalid usage, see /help remove_area")
return
end
@@ -264,7 +282,9 @@ minetest.register_chatcommand("remove_area", {
areas:sort()
areas:save()
else
- minetest.chat_send_player(name, "Area "..id.." does not exist or is not owned by you")
+ minetest.chat_send_player(name, "Area "..id
+ .." does not exist or"
+ .." is not owned by you")
return
end
minetest.chat_send_player(name, 'Removed area '..id)
@@ -272,31 +292,38 @@ end})
minetest.register_chatcommand("change_owner", {
- params = "<id> <newplayer>",
- description = "change the owner of an area using its id",
+ params = "<id> <NewOwner>",
+ description = "Change the owner of an area using its id",
privs = {},
func = function(name, param)
- local found, _, id, new_owner = param:find('^(%d+)%s+([^%s]+)$')
+ local found, _, id, new_owner =
+ param:find('^(%d+)%s+([^%s]+)$')
if not found then
- minetest.chat_send_player(name, 'Invalid usage, see /help change_area_owner')
- minetest.chat_send_player(name, 'Use /list_areas to see entries')
+ minetest.chat_send_player(name,
+ "Invalid usage,"
+ .." see /help change_area_owner")
return
end
if not areas:player_exists(new_owner) then
- minetest.chat_send_player(name, 'The player "'..new_owner..'" does not exist')
+ minetest.chat_send_player(name, 'The player "'
+ ..new_owner..'" does not exist')
return
end
id = tonumber(id)
- if areas:isAreaOwner(id, name) then
- areas.areas[areas:getIndexById(id)].owner = new_owner
- areas:save()
- minetest.chat_send_player(name, 'Owner changed succesfully')
- minetest.chat_send_player(new_owner, name..'" has granted you a concession!')
- else
- minetest.chat_send_player(new_owner, "Area "..id.." does not exist or is not owned by you")
+ if not areas:isAreaOwner(id, name) then
+ minetest.chat_send_player(name,
+ "Area "..id.." does not exist"
+ .." or is not owned by you.")
+ return
end
+ local index = areas:getImdexById(id)
+ areas.areas[index].owner = new_owner
+ areas:save()
+ minetest.chat_send_player(name, 'Owner changed.')
+ minetest.chat_send_player(new_owner,
+ name..'" has given you control over an area.')
end})