/// <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); } }
/// <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(); }