diff --git a/src/irc/commands.go b/src/irc/commands.go index 2839ed77..d6ac5be1 100644 --- a/src/irc/commands.go +++ b/src/irc/commands.go @@ -334,20 +334,17 @@ func (m *PrivMsgMessage) TargetIsChannel() bool { func (m *PrivMsgMessage) Handle(s *Server, c *Client) { if m.TargetIsChannel() { - channel := s.channels[m.target] - if channel != nil { + if channel := s.channels[m.target]; channel != nil { channel.PrivMsg(c, m.message) - } else { - c.send <- ErrNoSuchNick(s, m.target) + return } } else { - client := s.nicks[m.target] - if client != nil { - client.send <- RplPrivMsg(client, m.message) - } else { - c.send <- ErrNoSuchNick(s, m.target) + if client := s.nicks[m.target]; client != nil { + client.send <- RplPrivMsg(c, m.message) + return } } + c.send <- ErrNoSuchNick(s, m.target) } // TOPIC [newtopic] diff --git a/src/irc/server.go b/src/irc/server.go index 60fcc2db..7b1b0c90 100644 --- a/src/irc/server.go +++ b/src/irc/server.go @@ -102,7 +102,7 @@ func (s *Server) ChangeNick(c *Client, newNick string) { if c.nick != "" { delete(s.nicks, c.nick) } - s.nicks[c.nick] = c + s.nicks[newNick] = c s.SendToInterestedClients(c, RplNick(c, newNick))