diff options
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/client/cheats.lua | 160 | ||||
-rw-r--r-- | builtin/client/init.lua | 2 | ||||
-rw-r--r-- | builtin/client/pos.lua | 19 |
3 files changed, 20 insertions, 161 deletions
diff --git a/builtin/client/cheats.lua b/builtin/client/cheats.lua deleted file mode 100644 index 9d7fd932c..000000000 --- a/builtin/client/cheats.lua +++ /dev/null @@ -1,160 +0,0 @@ -core.register_chatcommand("set", { - params = "([-n] <name> <value>) | <name>", - description = "Set or read client configuration setting", - privs = {server=true}, - func = function(param) - local arg, setname, setvalue = string.match(param, "(-[n]) ([^ ]+) (.+)") - if arg and arg == "-n" and setname and setvalue then - core.settings:set(setname, setvalue) - return true, setname .. " = " .. setvalue - end - - setname, setvalue = string.match(param, "([^ ]+) (.+)") - if setname and setvalue then - if not core.settings:get(setname) then - return false, "Failed. Use '.set -n <name> <value>' to create a new setting." - end - core.settings:set(setname, setvalue) - return true, setname .. " = " .. setvalue - end - - setname = string.match(param, "([^ ]+)") - if setname then - setvalue = core.settings:get(setname) - if not setvalue then - setvalue = "<not set>" - end - return true, setname .. " = " .. setvalue - end - - return false, "Invalid parameters (see .help set)." - end, -}) - -function core.parse_pos(param) - local p = {} - p.x, p.y, p.z = string.match(param, "^([~|%d.-]+)[, ] *([~|%d.-]+)[, ] *([~|%d.-]+)$") - for k, v in pairs(p) do - if p[k] == "~" then - p[k] = core.localplayer:get_pos()[k] - else - p[k] = tonumber(v) - end - end - if p.x and p.y and p.z then - local lm = 31000 - if p.x < -lm or p.x > lm or p.y < -lm or p.y > lm or p.z < -lm or p.z > lm then - return false, "Position out of Map bounds." - end - return true, p - end - return false, "Invalid position (" .. param .. ")" -end - -core.register_chatcommand("teleport", { - params = "<X>,<Y>,<Z>", - description = "Teleport to position", - func = function(param) - local success, pos = core.parse_pos(param) - if success then - core.localplayer:set_pos(pos) - return true, "Teleporting to " .. core.pos_to_string(pos) - end - return false, pos - end, -}) - -core.register_chatcommand("place", { - params = "<X>,<Y>,<Z>", - description = "Place wielded item", - func = function(param) - local success, pos = core.parse_pos(param) - if success then - core.place_node(pos) - return true, "Node placed at " .. core.pos_to_string(pos) - end - return false, pos - end, -}) - -core.register_chatcommand("dig", { - params = "<X>,<Y>,<Z>", - description = "Dig node", - func = function(param) - local success, pos = core.parse_pos(param) - if success then - core.dig_node(pos) - return true, "Node at " .. core.pos_to_string(pos) .. " dug" - end - return false, pos - end, -}) - -core.register_chatcommand("kill", { - description = "Kill yourself", - func = function(param) - core.send_damage(core.localplayer:get_hp()) - end, -}) - -core.register_chatcommand("scan", { - description = "Scan for one or multible nodes in a radius around you", - param = "<radius> node1[,node2...]", - func = function(param) - local radius = tonumber(param:split(" ")[1]) - local nodes = param:split(" ")[2]:split(",") - local pos = core.localplayer:get_pos() - local fpos = core.find_node_near(pos, radius, nodes, true) - if fpos then - return true, "Found " .. table.concat(nodes, " or ") .. " at " .. core.pos_to_string(fpos) - end - return false, "None of " .. table.concat(nodes, " or ") .. " found in a radius of " .. tostring(radius) - end, -}) - -core.register_chatcommand("digaround", { - description = "Scan for one or multible nodes in a radius around you", - param = "<radius> node1[,node2...]", - func = function(param) - local radius = tonumber(param:split(" ")[1]) - local nodes = param:split(" ")[2]:split(",") - local function loop() - local fpos = core.find_node_near(core.localplayer:get_pos(), radius, nodes, true) - if fpos then core.dig_node(fpos) end - core.after(0, loop) - end - loop() - end, -}) - -local keep_digging = false - -core.register_chatcommand("keepdigging", { - params = "<X>,<Y>,<Z>", - description = "Dig node again and again", - func = function(param) - local success, pos = core.parse_pos(param) - if success then - keep_digging = true - local function loop() - core.dig_node(pos) - if keep_digging then - core.after(0.1, loop) - end - end - loop() - end - end, -}) - -core.register_chatcommand("stopdigging", { - description = "Stop diggin", - func = function() - keep_digging = false - end, -}) - -core.register_on_punchnode(function(pos) - --core.dig_node(pos) -end) - diff --git a/builtin/client/init.lua b/builtin/client/init.lua index 6c024f02e..f3c1a4c82 100644 --- a/builtin/client/init.lua +++ b/builtin/client/init.lua @@ -9,5 +9,5 @@ dofile(commonpath .. "chatcommands.lua") dofile(commonpath .. "vector.lua") dofile(clientpath .. "death_formspec.lua") dofile(clientpath .. "chatcommands.lua") -dofile(clientpath .. "cheats.lua") +dofile(clientpath .. "pos.lua") diff --git a/builtin/client/pos.lua b/builtin/client/pos.lua new file mode 100644 index 000000000..618c142e7 --- /dev/null +++ b/builtin/client/pos.lua @@ -0,0 +1,19 @@ +function core.parse_pos(param) + local p = {} + p.x, p.y, p.z = string.match(param, "^([~|%d.-]+)[, ] *([~|%d.-]+)[, ] *([~|%d.-]+)$") + for k, v in pairs(p) do + if p[k] == "~" then + p[k] = core.localplayer:get_pos()[k] + else + p[k] = tonumber(v) + end + end + if p.x and p.y and p.z then + local lm = 31000 + if p.x < -lm or p.x > lm or p.y < -lm or p.y > lm or p.z < -lm or p.z > lm then + return false, "Position out of Map bounds." + end + return true, p + end + return false, "Invalid position (" .. param .. ")" +end |