From 6df3f9fefc2586c1d98499ef863e13def8f33e71 Mon Sep 17 00:00:00 2001 From: Alexandre Oliveira Date: Sat, 19 Aug 2017 02:32:36 -0300 Subject: [PATCH] Check if user is not in channel before joining it Moved the join logic to the null check statement because it wouldn't make sense to add a null channel to a user. --- ChatSharp/Handlers/ChannelHandlers.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ChatSharp/Handlers/ChannelHandlers.cs b/ChatSharp/Handlers/ChannelHandlers.cs index 3c9e56c..d85fc2b 100644 --- a/ChatSharp/Handlers/ChannelHandlers.cs +++ b/ChatSharp/Handlers/ChannelHandlers.cs @@ -12,9 +12,14 @@ namespace ChatSharp.Handlers { var channel = client.Channels.GetOrAdd(message.Parameters[0]); var user = client.Users.GetOrAdd(message.Prefix); - user.Channels.Add(channel); + if (channel != null) + { + if (!user.Channels.Contains(channel)) + user.Channels.Add(channel); + client.OnUserJoinedChannel(new ChannelUserEventArgs(channel, new IrcUser(message.Prefix))); + } } public static void HandleGetTopic(IrcClient client, IrcMessage message)