registrar

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 7276842546dc847ee4a0f040a7723c620b80ebdb
parent 5d45185c18b03296730722a49ca46ab4cd452a0f
Author: Juan F. Meleiro <juan@juanmeleiro.mat.br>
Date:   Thu, 21 Sep 2023 15:38:55 -0300

script: Add renaming and readdressing command

Diffstat:
Mlib/registration.lua | 18++++++++++++++++++
Mregistrar | 16+++++++++++++---
2 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/lib/registration.lua b/lib/registration.lua @@ -83,4 +83,22 @@ function _M.register(args, players, log, ts) end end +function _M.rename(args, players, log) + die(not players[args.who], string.format("No player '%s'.", args.who)) + local h = table.query(players[args.who], function (h) return h.reason == "s" end) + die(not h, "Player is not registered.") + h.name = args.whither + players[args.whither] = players[args.who] + players[args.who] = nil + table.insert(log, {what="rename", who=args.who, whither=args.whither, where=args.m, when=os.time()}) +end + +function _M.readdress(args, players, log) + die(not players[args.who], string.format("No player '%s'.", args.who)) + local h = table.query(players[args.who], function (h) return h.reason == "s" end) + die(not h, "Player is not registered.") + h.contact = args.whither + table.insert(log, {what="readdress", who=args.who, whither=args.whither, where=args.m, when=os.time()}) +end + return _M diff --git a/registrar b/registrar @@ -48,8 +48,15 @@ deactivate_cmd:argument("when", "When they were deactivated (seconds after epoch :convert(tonumber) deactivate_cmd:option("-m", "Message ID of deactivation (without 'message://' prefix)") --- parser:command("rename", "Rename player") --- parser:command("readdress", "Change player's address") +local rename_cmd = parser:command("rename", "Rename player") +rename_cmd:argument("who", "Current player name") +rename_cmd:argument("whither", "New player name") +rename_cmd:option("-m", "Message ID of renaming (without 'message://' prefix)") + +local readdress_cmd = parser:command("readdress", "Change player's address") +readdress_cmd:argument("who", "Player to be readdressed") +readdress_cmd:argument("whither", "New address") +readdress_cmd:option("-m", "Message ID of readdressing (without 'message://' prefix)") -- Deserialize local fns = { @@ -149,7 +156,10 @@ elseif args.command == "activate" then activity.activate(args, players, log) elseif args.command == "deactivate" then activity.deactivate(args, players, log) - pprint.pprint(players["juan"][1]) +elseif args.command == "rename" then + registration.rename(args, players, log) +elseif args.command == "readdress" then + registration.readdress(args, players, log) else io.write("Not implemented.") end