From 9d9ee11224f400a93b7547fe2c1f5ebde5d84005 Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Wed, 8 Dec 2021 23:45:02 -0500 Subject: [PATCH] fix #1860 CS AMODE changes should take immediate effect even if the nick does not match the account. --- irc/chanserv.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/irc/chanserv.go b/irc/chanserv.go index d50c19f9..f63cfe21 100644 --- a/irc/chanserv.go +++ b/irc/chanserv.go @@ -270,9 +270,13 @@ func csAmodeHandler(service *ircService, server *Server, client *Client, command // #729: apply change to current membership for _, member := range channel.Members() { if member.Account() == change.Arg { - applied, change := channel.applyModeToMember(client, change, rb) + // applyModeToMember takes the nickname, not the account name, + // so translate: + modeChange := change + modeChange.Arg = member.Nick() + applied, modeChange := channel.applyModeToMember(client, modeChange, rb) if applied { - announceCmodeChanges(channel, modes.ModeChanges{change}, server.name, "*", "", false, rb) + announceCmodeChanges(channel, modes.ModeChanges{modeChange}, server.name, "*", "", false, rb) } } }