Exemplo n.º 1
0
        /// <summary>
        /// Parse the data from the DataMap given by subprofile
        /// </summary>
        /// <param name="bot"></param>
        /// <param name="data"></param>
        public void Process(DataMap data)
        {
            foreach (var item in data.StrData)
            {
                if (item.Key == "desc")
                {
                    Description = item.Value;
                }
                else if (item.Key == "name")
                {
                    Name = item.Value;
                }
                else if (item.Key == "owner")
                {
                    OwnerId = int.Parse(item.Value);
                }
                else if (item.Key == "attributes")
                {
                    var t2 = DataMap.Deserialize(item.Value);
                    foreach (var it in t2)
                    {
                        var    t3   = DataMap.Deserialize(it.Value);
                        string val  = t3["data"];
                        int    atri = int.Parse(t3["attribute_type"]);
                        switch (atri)
                        {
                        case 1:
                            LongDescription = val;
                            break;

                        case 2:     //Locked
                            Locked = false;
                            break;

                        case 4:     //CONSENT - Full Admin?
                            break;

                        case 5:     //Language ID
                            Language = (Language)int.Parse(val);
                            break;

                        case 6:     //PAYTIER (Proxy Admin?)

                            break;

                        case 7:     //PAYPERIOD (Proxy Admin?)

                            break;

                        case 8:     //AVATAR

                            break;

                        case 9:     //Longitude
                            Longitude = float.Parse(val);
                            break;

                        case 10:     //Latitude
                            Latitude = float.Parse(val);
                            break;

                        case 11:
                            Premium = true;
                            break;

                        case 12:     //Permanent (Proxy Admin?)

                            break;

                        case 14:     //Weight

                            break;

                        case 15:     //Tags
                        case 16:
                        case 17:
                        case 18:
                        case 19:
                            Tags.Add(val);
                            break;

                        case 20:     //Catagories
                        case 21:
                        case 22:
                        case 23:
                        case 24:
                            Categories.Add((GroupCategory)int.Parse(val));
                            break;

                        case 25:     //Entry Level
                            EntryLevel = int.Parse(val);
                            break;

                        case 28:

                            break;

                        case 13:    //Discoverability shit
                        case 3:
                        case 32:
                            Discoverability.Add((GroupOptions)int.Parse(val));
                            break;

                        case 26:    //Anonymous Listeners (Proxy Admin?)

                            break;
                        }
                    }
                }
                else
                {
                    if (!int.TryParse(item.Key, out int uid))
                    {
                        continue;
                    }


                    var t1 = DataMap.Deserialize(item.Value);

                    Role role = Members.ContainsKey(uid) ? Members[uid] : Role.User;

                    if (t1.ContainsKey("capabilities"))
                    {
                        role = (Role)int.Parse(t1["capabilities"]);
                    }

                    if (uid == OwnerId)
                    {
                        role = Role.Owner;
                    }

                    if (!Members.ContainsKey(uid))
                    {
                        Members.Add(uid, role);
                    }
                    else
                    {
                        Members[uid] = role;
                    }
                }
            }

            if (Members.ContainsKey(OwnerId))
            {
                Members[OwnerId] = Role.Owner;
            }
            else
            {
                Members.Add(OwnerId, Role.Owner);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Parse the data from the DataMap given by subprofile
        /// </summary>
        /// <param name="bot"></param>
        /// <param name="data"></param>
        public void Parse(PalBot bot, DataMap data)
        {
            foreach (var item in data.StrData)
            {
                if (item.Key == "desc")
                {
                    Description = item.Value.GetDisplayString();
                }
                else if (item.Key == "name")
                {
                    Name = item.Value.GetDisplayString();
                }
                else if (item.Key == "owner")
                {
                    OwnerId = item.Value;
                }
                else if (item.Key == "attributes")
                {
                    var t2 = DataMap.Deserialize(item.Value);
                    foreach (var it in t2)
                    {
                        var    t3   = DataMap.Deserialize(it.Value);
                        string val  = t3["data"];
                        int    atri = int.Parse(t3["attribute_type"]);
                        #region Attributes
                        switch (atri)
                        {
                        case 1:
                            LongDescription = val.GetDisplayString();
                            break;

                        case 2:     //Locked
                            Locked = false;
                            break;

                        case 4:     //CONSENT - Full Admin?
                            break;

                        case 5:     //Language ID
                            Language = (Language)int.Parse(val);
                            break;

                        case 6:     //PAYTIER (Proxy Admin?)

                            break;

                        case 7:     //PAYPERIOD (Proxy Admin?)

                            break;

                        case 8:     //AVATAR

                            break;

                        case 9:     //Longitude
                            Longitude = float.Parse(val);
                            break;

                        case 10:     //Latitude
                            Latitude = float.Parse(val);
                            break;

                        case 11:
                            Premium = true;
                            break;

                        case 12:     //Permanent (Proxy Admin?)

                            break;

                        case 14:     //Weight

                            break;

                        case 15:     //Tags
                        case 16:
                        case 17:
                        case 18:
                        case 19:
                            Tags.Add(val.GetDisplayString());
                            break;

                        case 20:     //Catagories
                        case 21:
                        case 22:
                        case 23:
                        case 24:
                            Categories.Add((GroupCategory)int.Parse(val));
                            break;

                        case 25:     //Entry Level
                            EntryLevel = int.Parse(val);
                            break;

                        case 28:

                            break;

                        case 13:    //Discoverability shit
                        case 3:
                        case 32:
                            Discoverability.Add((GroupOptions)int.Parse(val));
                            break;

                        case 26:    //Anonymous Listeners (Proxy Admin?)

                            break;
                        }
                        #endregion
                    }
                }
                else
                {
                    UserId uid;
                    if (!UserId.TryParse(item.Key, out uid))
                    {
                        continue;
                    }

                    var gm = Members.ContainsKey(uid) ? Members[uid] : GroupUser.FromUser(uid.GetUser(bot) ?? new User(uid));

                    var t1 = DataMap.Deserialize(item.Value);
                    if (t1.ContainsKey("capabilities"))
                    {
                        gm.UserRole = OwnerId == uid ? Role.Owner : (Role)int.Parse(t1["capabilities"]);
                    }

                    if (!Members.ContainsKey(uid))
                    {
                        Members.Add(uid, gm);
                    }
                }
            }

            if (Members.ContainsKey(OwnerId))
            {
                Members[OwnerId].UserRole = Role.Owner;
            }

            Updated();
        }