From f57a43f3da876b749c9942d199bd8572d45bc45d Mon Sep 17 00:00:00 2001 From: Daniel Oaks Date: Thu, 1 Dec 2016 18:10:38 +1000 Subject: [PATCH] KICK: Allow multiple kicks to the same channel --- irc/server.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/irc/server.go b/irc/server.go index a32a9760..d9a04f09 100644 --- a/irc/server.go +++ b/irc/server.go @@ -1339,12 +1339,12 @@ func kickHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool { return false } - kicks := make(map[string]string) + var kicks [][]string for index, channel := range channels { if len(users) == 1 { - kicks[channel] = users[0] + kicks = append(kicks, []string{channel, users[0]}) } else { - kicks[channel] = users[index] + kicks = append(kicks, []string{channel, users[index]}) } } @@ -1352,7 +1352,9 @@ func kickHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool { if len(msg.Params) > 2 { comment = msg.Params[2] } - for chname, nickname := range kicks { + for _, info := range kicks { + chname := info[0] + nickname := info[1] casefoldedChname, err := CasefoldChannel(chname) channel := server.channels.Get(casefoldedChname) if err != nil || channel == nil {