about summary refs log tree commit diff
path: root/IrcStates/ChannelUser.cs
diff options
context:
space:
mode:
Diffstat (limited to 'IrcStates/ChannelUser.cs')
-rw-r--r--IrcStates/ChannelUser.cs22
1 files changed, 20 insertions, 2 deletions
diff --git a/IrcStates/ChannelUser.cs b/IrcStates/ChannelUser.cs
index 220a9c4..fab881c 100644
--- a/IrcStates/ChannelUser.cs
+++ b/IrcStates/ChannelUser.cs
@@ -4,11 +4,29 @@ namespace IrcStates
 {
     public class ChannelUser
     {
-        public List<string> Modes { get; set; }
-
         public ChannelUser()
         {
             Modes = new List<string>();
         }
+
+        public List<string> Modes { get; set; }
+
+        protected bool Equals(ChannelUser other)
+        {
+            return other != null && Equals(Modes, other.Modes);
+        }
+
+        public override bool Equals(object obj)
+        {
+            if (ReferenceEquals(null, obj)) return false;
+            if (ReferenceEquals(this, obj)) return true;
+            if (obj.GetType() != GetType()) return false;
+            return Equals((ChannelUser) obj);
+        }
+
+        public override int GetHashCode()
+        {
+            return Modes != null ? Modes.GetHashCode() : 0;
+        }
     }
 }