From 0cd6be8008577783d4c804d00ab108a476833965 Mon Sep 17 00:00:00 2001 From: Jeremy Latt Date: Tue, 18 Feb 2014 15:36:58 -0800 Subject: [PATCH] clean up nickname setting logic --- irc/client.go | 13 +++++++++---- irc/server.go | 5 +---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/irc/client.go b/irc/client.go index e2f06d4a..180e495e 100644 --- a/irc/client.go +++ b/irc/client.go @@ -236,12 +236,17 @@ func (client *Client) Friends() ClientSet { return friends } -func (client *Client) ChangeNickname(nickname string) { - // Make reply before changing nick. - reply := RplNick(client, nickname) - +func (client *Client) SetNickname(nickname string) { client.nick = nickname + client.server.clients.Add(client) +} +func (client *Client) ChangeNickname(nickname string) { + // Make reply before changing nick to capture original source id. + reply := RplNick(client, nickname) + client.server.clients.Remove(client) + client.nick = nickname + client.server.clients.Add(client) for friend := range client.Friends() { friend.Reply(reply) } diff --git a/irc/server.go b/irc/server.go index a4baae06..07582578 100644 --- a/irc/server.go +++ b/irc/server.go @@ -296,8 +296,7 @@ func (m *NickCommand) HandleRegServer(s *Server) { return } - client.ChangeNickname(m.nickname) - s.clients.Add(client) + client.SetNickname(m.nickname) s.tryRegister(client) } @@ -356,9 +355,7 @@ func (msg *NickCommand) HandleServer(server *Server) { return } - server.clients.Remove(client) client.ChangeNickname(msg.nickname) - server.clients.Add(client) } func (m *UserCommand) HandleServer(s *Server) {