diff options
author | Ben Harris <ben@tilde.team> | 2020-04-22 16:28:51 -0400 |
---|---|---|
committer | Ben Harris <ben@tilde.team> | 2020-04-22 16:28:51 -0400 |
commit | 933a4f85604e21445c9bac8272d64cf3e6f65e00 (patch) | |
tree | 5b300ca37beff5cf11ed67a8b6e3550d24cf18a3 /IrcStates/Channel.cs | |
parent | 338763fde71ba2dc0de8ea5e2437d24ee365874b (diff) |
rename to IrcSharp
also tidy up formatting with vs tools
Diffstat (limited to 'IrcStates/Channel.cs')
-rw-r--r-- | IrcStates/Channel.cs | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/IrcStates/Channel.cs b/IrcStates/Channel.cs new file mode 100644 index 0000000..1850e51 --- /dev/null +++ b/IrcStates/Channel.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace IrcStates +{ + public class Channel + { + public string Name { get; set; } + public string NameLower { get; set; } + public Dictionary<string, User> Users { get; set; } + public string Topic { get; set; } + public string TopicSetter { get; set; } + public DateTime TopicTime { get; set; } + public DateTime Created { get; set; } + public Dictionary<string, List<string>> ListModes { get; set; } + public Dictionary<string, string> Modes { get; set; } + + public override string ToString() + { + return $"Channel(name={Name})"; + } + + public void SetName(string name, string nameLower) + { + Name = name; + NameLower = nameLower; + } + + public void AddMode(string ch, string param, bool listMode) + { + if (listMode) + { + if (!ListModes.ContainsKey(ch)) + { + ListModes[ch] = new List<string>(); + } + + if (ListModes[ch].Contains(param)) + { + ListModes[ch].Add(param ?? string.Empty); + } + } + else + { + Modes[ch] = param; + } + } + + public void RemoveMode(string ch, string param) + { + if (ListModes.ContainsKey(ch)) + { + if (ListModes[ch].Contains(param)) + { + ListModes[ch].Remove(param); + if (!ListModes[ch].Any()) + { + ListModes.Remove(ch); + } + } + } + else if (Modes.ContainsKey(ch)) + { + Modes.Remove(ch); + } + } + } +} |