3 namespace TechBot.IRCLibrary
10 #region Private fields
12 private IrcClient owner;
13 private string nickname;
14 private string decoratedNickname;
18 #region Public properties
21 /// Owner of this channel.
23 public IrcClient Owner
34 public string Nickname
43 /// Decorated nickname of user.
45 public string DecoratedNickname
49 return decoratedNickname;
54 /// Wether user is channel operator.
60 return decoratedNickname.StartsWith("@");
65 /// Wether user has voice.
71 return decoratedNickname.StartsWith("+");
80 /// <param name="owner">Owner of this channel.</param>
81 /// <param name="nickname">Nickname (possibly decorated) of user.</param>
82 public IrcUser(IrcClient owner,
87 throw new ArgumentNullException("owner", "Owner cannot be null.");
90 this.decoratedNickname = nickname.Trim();
91 this.nickname = StripDecoration(decoratedNickname);
97 /// <param name="text">Text to send to the user.</param>
98 public void Talk(string text)
102 throw new ArgumentNullException("text", "Text cannot be null.");
105 owner.SendMessage(new IrcMessage(IRC.PRIVMSG,
106 String.Format("{0} :{1}",
112 /// Strip docoration of nickname.
114 /// <param name="nickname">Possible decorated nickname.</param>
115 /// <returns>Undecorated nickname.</returns>
116 public static string StripDecoration(string decoratedNickname)
118 if (decoratedNickname.StartsWith("@"))
120 return decoratedNickname.Substring(1);
122 else if (decoratedNickname.StartsWith("+"))
124 return decoratedNickname.Substring(1);
128 return decoratedNickname;