From 7b13858f8cd259ca30294b27f74ec5f0122dde37 Mon Sep 17 00:00:00 2001 From: Daniel Oaks Date: Sun, 19 Jun 2016 15:37:29 +1000 Subject: [PATCH] client: Fix --- irc/client.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/irc/client.go b/irc/client.go index 72e8c685..ff5f6eec 100644 --- a/irc/client.go +++ b/irc/client.go @@ -145,7 +145,7 @@ func (client *Client) Touch() { } func (client *Client) Idle() { - client.Reply(RplPing(client.server)) + client.Send(nil, "", "PING", client.nickString) if client.quitTimer == nil { client.quitTimer = time.AfterFunc(QUIT_TIMEOUT, client.connectionTimeout) @@ -229,24 +229,31 @@ func (client *Client) Friends() ClientSet { return friends } +func (client *Client) updateNickMask() { + client.nickString = client.nick.String() + client.nickMaskString = fmt.Sprintf("%s!%s@%s", client.nickString, client.username, client.hostname) +} + func (client *Client) SetNickname(nickname Name) { if client.HasNick() { Log.error.Printf("%s nickname already set!", client) return } client.nick = nickname + client.updateNickMask() client.server.clients.Add(client) } func (client *Client) ChangeNickname(nickname Name) { - // Make reply before changing nick to capture original source id. - reply := RplNick(client, nickname) + origNickMask := client.nickMaskString client.server.clients.Remove(client) client.server.whoWas.Append(client) client.nick = nickname + client.updateNickMask() client.server.clients.Add(client) + client.Send(nil, origNickMask, "NICK", nickname.String()) for friend := range client.Friends() { - friend.Reply(reply) + friend.Send(nil, origNickMask, "NICK", nickname.String()) } }