本文整理汇总了C#中IrcChannel.AddFlag方法的典型用法代码示例。如果您正苦于以下问题:C# IrcChannel.AddFlag方法的具体用法?C# IrcChannel.AddFlag怎么用?C# IrcChannel.AddFlag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IrcChannel
的用法示例。
在下文中一共展示了IrcChannel.AddFlag方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ParseModes
internal void ParseModes(IrcUser user, IrcChannel chan, string flags, string[] args)
{
bool add = true;
if (chan == null)
{
// User Modes
for (int i = 0; i < flags.Length; i++)
{
var c = Convert.ToString(flags[i]);
if (c == "+")
{
add = true;
continue;
}
else if (c == "-")
{
add = false;
continue;
}
if (add)
irc.Me.AddMode(c);
else
irc.Me.DeleteMode(c);
irc.UserModeChangedNotify();
}
return;
}
int n = 0;
for (int i = 0; i < flags.Length; i++)
{
// Chan Modes/Flags
var c = Convert.ToString(flags[i]);
if (c == "+")
{
add = true;
continue;
}
else if (c == "-")
{
add = false;
continue;
}
var arg = "";
if (irc.HasChanMode(c))
{
// channel modes
if (add)
{
if (c == "b" || c == "k" || c == "l")
arg = args[n++];
if (c == "b")
{
var entry = new BanEntry(arg, user.Nick, DateTime.Now);
if (!chan.BanMasks.ContainsKey(arg))
{
chan.BanMasks.Add(arg, entry);
}
}
else
{
chan.AddMode(c, arg);
}
irc.ModeAddedNotify(user, chan, c, arg);
}
else
{
if (c == "b")
{
arg = args[n++];
chan.BanMasks.Remove(arg);
}
else
{
chan.DeleteMode(c);
}
irc.ModeDeletedNotify(user, chan, c, arg);
}
}
else
{
// channel user flags
var priv = irc.GetPrivForFlag(flags[i]);
if (priv != Privilege.Regular)
{
arg = args[n++];
var targ = irc.GetOrCreateUser(arg);
if (add)
{
chan.AddFlag(priv, targ);
irc.FlagAddedNotify(user, chan, priv, targ);
}
else
{
chan.DeleteFlag(priv, targ);
//.........这里部分代码省略.........