Aselia.UserCommands.MetaHandler.SendMeta C# (CSharp) Метод

SendMeta() приватный Метод

private SendMeta ( UserBase user, string target, bool super, List allFlags, object>.IDictionary allProperties ) : void
user UserBase
target string
super bool
allFlags List
allProperties object>.IDictionary
Результат void
        private void SendMeta(UserBase user, string target, bool super, List<string> allFlags, IDictionary<string, object> allProperties)
        {
            List<string> flags;
            if (super)
            {
                flags = allFlags;
            }
            else
            {
                flags = new List<string>();
                for (int i = 0; i < allFlags.Count; i++)
                {
                    switch (allFlags[i])
                    {
                    case "Arena":
                    case "DisableForward":
                    case "FreeTarget":
                    case "InviteOnly":
                    case "LockTopic":
                    case "LongLists":
                    case "Moderated":
                    case "NoActions":
                    case "NoColors":
                    case "NoCtcps":
                    case "NoExternal":
                    case "OpModerated":
                    case "Permanent":
                    case "Private":
                    case "RegisteredOnly":
                    case "Secret":
                        flags.Add(flags[i]);
                        continue;

                    default:
                        if (allFlags[i][0] == ':')
                        {
                            flags.Add(flags[i]);
                        }
                        continue;
                    }
                }
            }

            user.SendNumeric(Numerics.RPL_METAFLAGS, target, string.Join(" ", flags));

            foreach (KeyValuePair<string, object> kv in allProperties)
            {
                if (!super)
                {
                    switch (kv.Key)
                    {
                    case "JoinThrottle":
                    case "Limit":
                    case "Forward":
                    case "Created":
                    case "Founder":
                        break;

                    default:
                        if (kv.Key[0] == ':')
                        {
                            break;
                        }
                        continue;
                    }
                }

                user.SendNumeric(Numerics.RPL_METAPROPERTY, target, kv.Key, "=", kv.Value);
            }
        }