Skip to content

Commit

Permalink
Limit radius to 120 even for players with server privilege.
Browse files Browse the repository at this point in the history
  • Loading branch information
gaelysam committed Feb 22, 2017
1 parent 4d8c261 commit d4e9de5
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ local function mapfix(minp, maxp)
vm:update_liquids()
vm:write_to_map()
vm:update_map()
local emin, emax = vm:get_emerged_area()
print(minetest.pos_to_string(emin), minetest.pos_to_string(emax))
end

local previous = os.time()
Expand All @@ -17,6 +19,10 @@ minetest.register_chatcommand("mapfix", {
func = function(name, param)
local pos = vector.round(minetest.get_player_by_name(name):getpos())
local size = tonumber(param) or default_size

if size >= 121 then
return false, "Radius is too big"
end
local privs = minetest.check_player_privs(name, {server=true})
local time = os.time()

Expand All @@ -29,12 +35,13 @@ minetest.register_chatcommand("mapfix", {
previous = time
end

minetest.log("action", name .. " uses mapfix at " .. minetest.pos_to_string(vector.round(pos)) .. " with radius " .. size)

size = math.max(math.floor(size - 8), 0) -- When passed to get_voxel_manip, positions are rounded up, to a multiple of 16 nodes in each direction. By subtracting 8 it's rounded to the nearest chunk border. max is used to avoid negative radius.

local minp = vector.subtract(pos, size)
local maxp = vector.add(pos, size)

minetest.log("action", name .. " uses mapfix at " .. minetest.pos_to_string(vector.round(pos)) .. " with radius " .. size)
mapfix(minp, maxp)
return true, "Done."
end,
Expand Down

1 comment on commit d4e9de5

@Thomas--S
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Please sign in to comment.