about summary refs log tree commit diff
path: root/IrcTokens/Hostmask.cs
diff options
context:
space:
mode:
Diffstat (limited to 'IrcTokens/Hostmask.cs')
-rw-r--r--IrcTokens/Hostmask.cs42
1 files changed, 42 insertions, 0 deletions
diff --git a/IrcTokens/Hostmask.cs b/IrcTokens/Hostmask.cs
new file mode 100644
index 0000000..05470ef
--- /dev/null
+++ b/IrcTokens/Hostmask.cs
@@ -0,0 +1,42 @@
+namespace IrcTokens
+{
+    /// <summary>
+    /// Represents the three parts of a hostmask. Parse with the constructor.
+    /// </summary>
+    public class Hostmask
+    {
+        public string NickName { get; set; }
+        public string UserName { get; set; }
+        public string HostName { get; set; }
+
+        public override string ToString() => _source;
+
+        private readonly string _source;
+        
+        public Hostmask(string source)
+        {
+            if (source == null) return;
+
+            _source = source;
+
+            if (source.Contains('@'))
+            {
+                var split = source.Split('@');
+
+                NickName = split[0];
+                HostName = split[1];
+            }
+            else
+            {
+                NickName = source;
+            }
+            
+            if (NickName.Contains('!'))
+            {
+                var userSplit = NickName.Split('!');
+                NickName = userSplit[0];
+                UserName = userSplit[1];
+            }
+        }
+    }
+}