aboutsummaryrefslogtreecommitdiff
path: root/clientmods/commands/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'clientmods/commands/init.lua')
-rw-r--r--clientmods/commands/init.lua109
1 files changed, 55 insertions, 54 deletions
diff --git a/clientmods/commands/init.lua b/clientmods/commands/init.lua
index 6e2ea4ed6..4ea8d04f6 100644
--- a/clientmods/commands/init.lua
+++ b/clientmods/commands/init.lua
@@ -1,80 +1,81 @@
-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
+minetest.register_chatcommand("say", {
+ description = "Send raw text",
+ func = function(text)
+ minetest.send_chat_message(text)
+ return true
end,
})
-core.register_chatcommand("dig", {
+minetest.register_chatcommand("teleport", {
params = "<X>,<Y>,<Z>",
- description = "Dig node",
+ description = "Teleport to position. " .. (core.anticheat_protection and "Only works for short distances." or ""),
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"
+ core.localplayer:set_pos(pos)
+ return true, "Teleporting to " .. core.pos_to_string(pos)
end
return false, pos
end,
})
-core.register_chatcommand("kill", {
- description = "Kill yourself",
- func = function(param)
- core.send_damage(core.localplayer:get_hp())
- end,
+minetest.register_chatcommand("wielded", {
+ description = "Print itemstring of wieleded item",
+ func = function()
+ return true, minetest.get_wielded_item():get_name()
+ end
})
-core.register_chatcommand("scan", {
- description = "Scan for one or multible nodes in a radius around you",
- param = "<radius> node1[,node2...]",
+minetest.register_chatcommand("disconnect", {
+ description = "Exit to main menu",
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)
+ minetest.disconnect()
end,
})
-local function teleport(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)
+minetest.register_chatcommand("players", {
+ description = "List online players",
+ func = function(param)
+ return true, "Online players: " .. table.concat(minetest.get_player_names(), ", ")
end
- return false, pos
-end
+})
-core.register_chatcommand("teleport", {
- params = "<X>,<Y>,<Z>",
- description = "Teleport to position",
- func = function(param)
- return teleport(param)
+minetest.register_chatcommand("kill", {
+ description = "Kill yourself",
+ func = function()
+ minetest.send_damage(minetest.localplayer:get_hp())
end,
})
-core.register_chatcommand("tpoff", {
- params = "<X>,<Y>,<Z>",
- description = "Teleport to position and log out immediately",
+minetest.register_chatcommand("set", {
+ params = "([-n] <name> <value>) | <name>",
+ description = "Set or read client configuration setting",
func = function(param)
- teleport(param)
- minetest.disconnect()
- end,
-})
+ local arg, setname, setvalue = string.match(param, "(-[n]) ([^ ]+) (.+)")
+ if arg and arg == "-n" and setname and setvalue then
+ minetest.settings:set(setname, setvalue)
+ return true, setname .. " = " .. setvalue
+ end
-minetest.register_chatcommand("wielded", {
- description = "Print itemstring of wieleded item",
- func = function()
- return true, minetest.get_wielded_item():get_name()
- end
+ setname, setvalue = string.match(param, "([^ ]+) (.+)")
+ if setname and setvalue then
+ if not minetest.settings:get(setname) then
+ return false, "Failed. Use '.set -n <name> <value>' to create a new setting."
+ end
+ minetest.settings:set(setname, setvalue)
+ return true, setname .. " = " .. setvalue
+ end
+
+ setname = string.match(param, "([^ ]+)")
+ if setname then
+ setvalue = minetest.settings:get(setname)
+ if not setvalue then
+ setvalue = "<not set>"
+ end
+ return true, setname .. " = " .. setvalue
+ end
+
+ return false, "Invalid parameters (see .help set)."
+ end,
})
+