From fdd4274ed29e632ae3daa961925cf7e7fe6e03e4 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 10 May 2015 17:12:20 -0600 Subject: [PATCH] Add NickChanged event --- ChatSharp/ChatSharp.csproj | 1 + ChatSharp/Events/NickChangedEventArgs.cs | 11 +++++++++++ ChatSharp/Handlers/MessageHandlers.cs | 9 ++++++++- ChatSharp/IrcClient.cs | 6 ++++++ 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 ChatSharp/Events/NickChangedEventArgs.cs diff --git a/ChatSharp/ChatSharp.csproj b/ChatSharp/ChatSharp.csproj index a5fbf0c..2d12215 100644 --- a/ChatSharp/ChatSharp.csproj +++ b/ChatSharp/ChatSharp.csproj @@ -72,6 +72,7 @@ + diff --git a/ChatSharp/Events/NickChangedEventArgs.cs b/ChatSharp/Events/NickChangedEventArgs.cs new file mode 100644 index 0000000..b133f0d --- /dev/null +++ b/ChatSharp/Events/NickChangedEventArgs.cs @@ -0,0 +1,11 @@ +using System; + +namespace ChatSharp.Events +{ + public class NickChangedEventArgs : EventArgs + { + public IrcUser User { get; set; } + public string OldNick { get; set; } + public string NewNick { get; set; } + } +} \ No newline at end of file diff --git a/ChatSharp/Handlers/MessageHandlers.cs b/ChatSharp/Handlers/MessageHandlers.cs index 2cffcef..37fb048 100644 --- a/ChatSharp/Handlers/MessageHandlers.cs +++ b/ChatSharp/Handlers/MessageHandlers.cs @@ -61,10 +61,17 @@ namespace ChatSharp.Handlers public static void HandleNick(IrcClient client, IrcMessage message) { - if (client.User.Nick == new IrcUser(message.Prefix).Nick) + var u = new IrcUser(message.Prefix); + if (client.User.Nick == u.Nick) { client.User.Nick = message.Parameters[0]; } + client.OnNickChanged(new NickChangedEventArgs + { + User = u, + OldNick = u.Nick, + NewNick = message.Parameters[0] + }); } public static void HandleQuit(IrcClient client, IrcMessage message) diff --git a/ChatSharp/IrcClient.cs b/ChatSharp/IrcClient.cs index f4a4c70..e0e3dff 100644 --- a/ChatSharp/IrcClient.cs +++ b/ChatSharp/IrcClient.cs @@ -375,6 +375,12 @@ namespace ChatSharp protected internal virtual void OnWhoIsReceived(WhoIsReceivedEventArgs e) { if (WhoIsReceived != null) WhoIsReceived(this, e); + } + + public event EventHandler NickChanged; + protected internal virtual void OnNickChanged(NickChangedEventArgs e) + { + if (NickChanged != null) NickChanged(this, e); } } }