public static Parse ( string input ) : |
||
input | string | The names command fragment. |
return |
public static IRCUser Parse(string input)
{
IRCUserMode mode = IRCUserMode.Normal;
string nickname = input;
if (input.StartsWith("+", StringComparison.OrdinalIgnoreCase))
{
mode = IRCUserMode.Voice;
}
else if (input.StartsWith("%", StringComparison.OrdinalIgnoreCase))
{
mode = IRCUserMode.HalfOperator;
}
else if (input.StartsWith("@", StringComparison.OrdinalIgnoreCase))
{
mode = IRCUserMode.Operator;
}
else if (input.StartsWith("&", StringComparison.OrdinalIgnoreCase))
{
mode = IRCUserMode.Admin;
}
else if (input.StartsWith("~", StringComparison.OrdinalIgnoreCase))
{
mode = IRCUserMode.Founder;
}
if (mode != IRCUserMode.Normal)
{
nickname = input.Substring(1);
}
return new IRCUser(nickname, mode);
}
/// <summary> /// Populate the user list from a names message. /// </summary> /// <param name="message">The message to process.</param> private void PopulateChannelNamesFromMessage(Message message) { string[] names = message.TrailingParameter.Split(new char[] { ' ' }); for (int i = 0; i < names.GetLength(0); i++) { if (!string.IsNullOrEmpty(names[i])) { this.users.Add(IRCUser.Parse(names[i])); } } }