public void CacheCustomUrl() { SteamGroup.ClearCache(); var group1 = SteamGroup.Create("valve", false, false); Assert.IsFalse(SteamGroup.IsCached("valve")); Assert.IsFalse(SteamGroup.IsCached(103582791429521412L)); group1.Cache(); Assert.IsTrue(SteamGroup.IsCached("valve")); Assert.IsFalse(SteamGroup.IsCached(103582791429521412L)); group1.FetchMembers(); group1.Cache(); Assert.IsTrue(SteamGroup.IsCached("valve")); Assert.IsTrue(SteamGroup.IsCached(103582791429521412L)); var group2 = SteamGroup.Create("valve", false); Assert.AreSame(group1, group2); var group3 = SteamGroup.Create(103582791429521412L, false); Assert.AreSame(group1, group3); SteamGroup.ClearCache(); group1 = SteamGroup.Create("valve"); Assert.IsTrue(SteamGroup.IsCached("valve")); Assert.IsTrue(SteamGroup.IsCached(103582791429521412L)); }
public void MemberCountBySteamID() { SteamGroup.ClearCache(); SteamGroup group1 = SteamGroup.Create(103582791429521412L); Assert.IsTrue(group1.MemberCount > 0); // bypass cache SteamGroup group2 = SteamGroup.Create(103582791429521412L, true, true); Assert.AreEqual(group1.MemberCount, group2.MemberCount); }
public void MemberCountByCustomUrl() { SteamGroup.ClearCache(); SteamGroup group1 = SteamGroup.Create("valve"); Assert.IsTrue(group1.MemberCount > 0); // bypass cache SteamGroup group2 = SteamGroup.Create("valve", true, true); Assert.AreEqual(group1.MemberCount, group2.MemberCount); }
public void BypassCache() { SteamGroup.ClearCache(); var group1 = SteamGroup.Create("valve", false, false); Assert.IsFalse(group1.IsFetched); group1.FetchMembers(); Assert.IsTrue(group1.IsFetched); var group2 = SteamGroup.Create("valve"); Assert.IsTrue(group2.IsFetched); Assert.AreNotSame(group1, group2); }
public void CaseInsensitivity() { SteamGroup.ClearCache(); var group1 = SteamGroup.Create("valve"); Assert.IsTrue(SteamGroup.IsCached("valve")); Assert.IsTrue(SteamGroup.IsCached("Valve")); Assert.IsTrue(SteamGroup.IsCached("VALVE")); var group2 = SteamGroup.Create("Valve"); var group3 = SteamGroup.Create("VALVE"); Assert.AreEqual(group1, group2); Assert.AreEqual(group1, group3); }
public static SteamGroup GetSteamGroup(string groupid) { if (_cache.Get(groupid) is SteamGroup) { return(_cache.Get(groupid) as SteamGroup); } HttpClient client = new HttpClient(); var playerDetailsResponse = client.GetStreamAsync(string.Format(_groupMembersUrl, groupid)); XmlSerializer serializer = new XmlSerializer(typeof(SteamGroup)); SteamGroup group = (SteamGroup)serializer.Deserialize(playerDetailsResponse.Result); _cache.Add(groupid, group, null, DateTime.Now.AddDays(7), Cache.NoSlidingExpiration, CacheItemPriority.BelowNormal, null); return(group); }
public void Fetch() { SteamGroup.ClearCache(); var grp = SteamGroup.Create("valve", false); Assert.IsFalse(grp.IsFetched); Assert.IsTrue(grp.FetchMembers()); Assert.IsTrue(grp.IsFetched); SteamGroup.ClearCache(); grp = SteamGroup.Create("valve", true); Assert.IsTrue(grp.IsFetched); SteamGroup.ClearCache(); grp = SteamGroup.Create("valve"); Assert.IsTrue(grp.IsFetched); }
internal void FirstSteamGroups() { // Create the array SteamGroupConfig.Document.Add("SteamGroups", new JArray()); // Ceate the groups SteamGroup group = new SteamGroup(103582791437463178, -1, false, false); // Configure steam group group.AddPermission("unturned.commands.noadmin.*"); group.AddPrefix("Workshopper"); group.AddSuffix("Workshopper"); SteamGroupManager.AddSteamGroup(group); // Save the groups SaveSteamGroups(); }
public SteamGroup[] getGroups() { SteamGroup[] array = new SteamGroup[SteamFriends.GetClanCount()]; for (int i = 0; i < array.Length; i++) { CSteamID clanByIndex = SteamFriends.GetClanByIndex(i); SteamGroup steamGroup = this.getCachedGroup(clanByIndex); if (steamGroup == null) { string clanName = SteamFriends.GetClanName(clanByIndex); Texture2D icon = this.getIcon(clanByIndex); steamGroup = new SteamGroup(clanByIndex, clanName, icon); this.cachedGroups.Add(clanByIndex, steamGroup); } array[i] = steamGroup; } return(array); }
public async Task <SteamGroup> GetSteamGroup(string groupid) { if (_cache.Get(groupid) is SteamGroup) { return(_cache.Get(groupid) as SteamGroup); } HttpClient client = new(); SteamGroup group = null; var playerDetailsResponse = await client.GetAsync(string.Format(_groupMembersUrl, groupid)); if (playerDetailsResponse.IsSuccessStatusCode) { XmlSerializer serializer = new(typeof(SteamGroup)); group = (SteamGroup)serializer.Deserialize(await playerDetailsResponse.Content.ReadAsStreamAsync()); _cache.Set(groupid, group, DateTime.Now.AddDays(7)); } return(group); }
public static bool VerifyUserIsGroupAdmin(string userid, string groupid) { SteamGroup group = GetSteamGroup(groupid); return(group.members[0] == userid); }
internal static void RunPermissionRemoved(SteamGroup instance, string permission) => OnPermissionRemoved?.Invoke(instance, permission);
internal void LoadSteamGroups() { foreach (JObject obj in (JArray)SteamGroupConfig.Document["SteamGroups"]) { if (SteamGroupManager.Groups.Count(a => a.ID == (ulong)obj["Steam64"]) > 0) { continue; } SteamGroup g = new SteamGroup((ulong)obj["Steam64"], (int)obj["Cooldown"], false, false); SteamGroupManager.AddSteamGroup(g); } foreach (SteamGroup g in SteamGroupManager.Groups) { JObject obj = SteamGroupConfig.Document["SteamGroups"].FirstOrDefault(a => (ulong)a["Steam64"] == g.ID) as JObject; if (obj["Inherits"] is JArray) { foreach (JToken token in (JArray)obj["Inherits"]) { if (string.IsNullOrEmpty((string)token)) { continue; } SteamGroup i = SteamGroupManager.Groups.FirstOrDefault(a => a.ID == ulong.Parse((string)token)); if (i == null || g.Inherits.Contains(i) || g == i) { continue; } g.AddInherit(i); } } else { if (string.IsNullOrEmpty((string)obj["Inherits"])) { continue; } SteamGroup i = SteamGroupManager.Groups.FirstOrDefault(a => a.ID == ulong.Parse((string)obj["Inherits"])); if (i == null || g.Inherits.Contains(i) || g == i) { continue; } g.AddInherit(i); } if (obj["Permissions"] is JArray) { foreach (JToken token in (JArray)obj["Permissions"]) { if (g.Permissions.Contains((string)token)) { continue; } g.AddPermission((string)token); } } else { if (g.Permissions.Contains((string)obj["Permissions"])) { continue; } g.AddPermission((string)obj["Permissions"]); } if (obj["Prefixes"] is JArray) { foreach (JToken token in (JArray)obj["Prefixes"]) { if (g.Prefixes.Contains((string)token)) { continue; } g.AddPrefix((string)token); } } else { if (g.Prefixes.Contains((string)obj["Prefixes"])) { continue; } g.AddPrefix((string)obj["Prefixes"]); } if (obj["Suffixes"] is JArray) { foreach (JToken token in (JArray)obj["Suffixes"]) { if (g.Suffixes.Contains((string)token)) { continue; } g.AddSuffix((string)token); } } else { if (g.Suffixes.Contains((string)obj["Suffixes"])) { continue; } g.AddSuffix((string)obj["Suffixes"]); } } }
internal static void RunSteamGroupRemoved(SteamGroup g) => OnSteamGroupRemoved?.Invoke(g);
internal static void RunInheritRemoved(SteamGroup instance, SteamGroup group) => OnInheritRemoved?.Invoke(instance, @group);
internal static void RunSuffixRemoved(SteamGroup instance, string suffix) => OnSuffixRemoved?.Invoke(instance, suffix);
internal static void RunPrefixRemoved(SteamGroup instance, string prefix) => OnPrefixRemoved?.Invoke(instance, prefix);
public async Task <bool> VerifyUserIsGroupAdmin(string userid, string groupid) { SteamGroup group = await GetSteamGroup(groupid); return(group.members[0] == userid); }