]> git.lizzy.rs Git - worldedit.git/blob - worldedit_commands/safe.lua
Raise safe region limit to 20000
[worldedit.git] / worldedit_commands / safe.lua
1 local safe_region_callback = {}\r
2 \r
3 --`count` is the number of nodes that would possibly be modified\r
4 --`callback` is a callback to run when the user confirms\r
5 local function safe_region(name, count, callback)\r
6         if count < 20000 then\r
7                 return callback()\r
8         end\r
9 \r
10         --save callback to call later\r
11         safe_region_callback[name] = callback\r
12         worldedit.player_notify(name, "WARNING: this operation could affect up to " .. count .. " nodes; type //y to continue or //n to cancel")\r
13 end\r
14 \r
15 local function reset_pending(name)\r
16         safe_region_callback[name] = nil\r
17 end\r
18 \r
19 minetest.register_chatcommand("/y", {\r
20         params = "",\r
21         description = "Confirm a pending operation",\r
22         func = function(name)\r
23                 local callback = safe_region_callback[name]\r
24                 if not callback then\r
25                         worldedit.player_notify(name, "no operation pending")\r
26                         return\r
27                 end\r
28 \r
29                 reset_pending(name)\r
30                 callback(name)\r
31         end,\r
32 })\r
33 \r
34 minetest.register_chatcommand("/n", {\r
35         params = "",\r
36         description = "Abort a pending operation",\r
37         func = function(name)\r
38                 if not safe_region_callback[name] then\r
39                         worldedit.player_notify(name, "no operation pending")\r
40                         return\r
41                 end\r
42 \r
43                 reset_pending(name)\r
44         end,\r
45 })\r
46 \r
47 \r
48 return safe_region, reset_pending\r