当前位置: 首页>>代码示例>>C#>>正文


C# IrcChannel.AddFlag方法代码示例

本文整理汇总了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);
//.........这里部分代码省略.........
开发者ID:WCell,项目名称:WCell-UtilityBot,代码行数:101,代码来源:IrcProtocolHandler.cs


注:本文中的IrcChannel.AddFlag方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。