diff --git a/irc.go b/irc.go index 290dc76..57036f5 100644 --- a/irc.go +++ b/irc.go @@ -114,13 +114,19 @@ func GetNick(name string) string { return strings.Split(name, "!")[0] } +func hasNick(nick string, names []string) bool { + for _, v := range names { + if v == nick { + return true + } + } + return false +} + func (c *Connection) updateNicks(channel string, names []string) { log.Printf("updating channel %s with %d nicks\n", channel, len(names)) for _, i := range names { - for _, n := range c.userList[channel] { - if n == i { - continue - } + if !hasNick(i, c.userList[channel]) { c.userList[channel] = append(c.userList[channel], i) log.Printf("added nick: %s to channel %s\n", channel, i) }