From 4b6ec1c0af69394cc5f0d880df7408df145a3bc2 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Sun, 8 Mar 2026 20:27:46 +0000 Subject: Respect in setname. --- src/modules/m_setname.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src') diff --git a/src/modules/m_setname.cpp b/src/modules/m_setname.cpp index 442bd0315..2b3ec46a5 100644 --- a/src/modules/m_setname.cpp +++ b/src/modules/m_setname.cpp @@ -53,6 +53,24 @@ public: return CmdResult::FAILURE; } + // Disallow the real name change if is on and there is a ban + // matching this user in one of the channels they are on. + if (ServerInstance->Config->RestrictBannedUsers != ServerConfig::BUT_NORMAL) + { + for (const auto* memb : user->chans) + { + if (memb->chan->GetPrefixValue(user) < VOICE_VALUE && memb->chan->IsBanned(user)) + { + if (ServerInstance->Config->RestrictBannedUsers == ServerConfig::BUT_RESTRICT_NOTIFY) + { + fail.SendIfCap(user, &cap, this, "CANNOT_CHANGE_REALNAME", INSP_FORMAT("Cannot change nickname while on {} (you're banned)", + memb->chan->name)); + } + return CmdResult::FAILURE; + } + } + } + user->ChangeRealName(parameters[0]); if (notifyopers) ServerInstance->SNO.WriteGlobalSno('a', "{} used SETNAME to change their real name to '{}'", -- cgit v1.3.1-10-gc9f91