From b2026fe7395271c750ce03fc26fc2256fcf4eb5c Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Sat, 27 Sep 2025 18:12:34 +0100 Subject: [PATCH] Fix various stupid mistakes in nickserv/confirm/register. --- modules/nickserv/ns_register.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/nickserv/ns_register.cpp b/modules/nickserv/ns_register.cpp index 4629f56ea..c56fe23fa 100644 --- a/modules/nickserv/ns_register.cpp +++ b/modules/nickserv/ns_register.cpp @@ -238,7 +238,7 @@ class CommandNSConfirmRegister final { public: CommandNSConfirmRegister(Module *creator) - : Command(creator, "nickserv/confirm/register", 1, 2) + : Command(creator, "nickserv/confirm/register", 1, 1) { this->SetDesc(_("Confirm a previous account registration")); this->SetSyntax(_("\037code\037")); @@ -247,19 +247,17 @@ public: void Execute(CommandSource &source, const std::vector ¶ms) override { - auto has_priv = source.HasPriv("nickserv/confirm/register"); - Anope::string code; NickAlias *na; - if (params[0] == '@') + if (params[0][0] == '@') { - if (!has_priv) + if (!source.HasPriv("nickserv/confirm/register")) { source.Reply(ACCESS_DENIED); return; } - auto nick = params[0].substr(0); + auto nick = params[0].substr(1); na = NickAlias::Find(nick); if (!na) { @@ -287,14 +285,16 @@ public: na->nick.c_str()); return; } - if (has_priv || !code.equals_cs(*passcode)) + if (!code.empty() && !code.equals_cs(*passcode)) { source.Reply(_("The registration confirmation code you specified for %s is incorrect."), na->nick.c_str()); return; } - na->nc->Shrink("UNCONFIRMED"); + nc->Shrink("passcode"); + nc->Shrink("UNCONFIRMED"); + FOREACH_MOD(OnNickConfirm, (source.GetUser(), nc)); auto nonicknameownership = Config->GetModule("nickserv").Get("nonicknameownership");