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:
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