diff options
Diffstat (limited to 'clientmods/set/init.lua')
-rw-r--r-- | clientmods/set/init.lua | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/clientmods/set/init.lua b/clientmods/set/init.lua new file mode 100644 index 000000000..7eb1d9d6d --- /dev/null +++ b/clientmods/set/init.lua @@ -0,0 +1,33 @@ +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, +}) + |