public Leaderboard(LeaderboardQuery flag, LeaderboardSort sort, bool allowEmptyValues = false, int pageSize = 10) { Flag = flag; Sort = sort; AllowEmptyValues = allowEmptyValues; PageSize = pageSize; }
public async Task GetLeaderboardAsync(string statId, LeaderboardSort sort = LeaderboardSort.Most, int page = 1) { var board = new Leaderboard(statId, sort); string result = board.Write(Context.Account, Context.Data.Users.Values.Values, --page); await Context.Channel.SendMessageAsync(result); }
public Leaderboard(string statId, LeaderboardSort sort, bool allowEmptyValues = false, int pageSize = 10) { Flag = LeaderboardQuery.Custom; StatId = statId; Sort = sort; AllowEmptyValues = allowEmptyValues; PageSize = pageSize; }
/// <summary> /// Gets a leaderboard by name, it will create it if it's not yet created. /// Leaderboards created with this function will not automatically show up in the Steam Community. /// You must manually set the Community Name field in the App Admin panel of the Steamworks website. /// As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on /// the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of /// dynamically created leaderboards. /// </summary> public static async Task <Leaderboard?> FindOrCreateLeaderboard(string name, LeaderboardSort sort, LeaderboardDisplay display) { var result = await Internal.FindOrCreateLeaderboard(name, sort, display); if (!result.HasValue || result.Value.LeaderboardFound == 0) { return(null); } return(new Leaderboard { Id = result.Value.SteamLeaderboard }); }
internal CallResult <LeaderboardFindResult_t> FindOrCreateLeaderboard([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Utf8StringToNative))] string pchLeaderboardName, LeaderboardSort eLeaderboardSortMethod, LeaderboardDisplay eLeaderboardDisplayType) { var returnValue = _FindOrCreateLeaderboard(Self, pchLeaderboardName, eLeaderboardSortMethod, eLeaderboardDisplayType); return(new CallResult <LeaderboardFindResult_t>(returnValue)); }
private static extern SteamAPICall_t _FindOrCreateLeaderboard(IntPtr self, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Utf8StringToNative))] string pchLeaderboardName, LeaderboardSort eLeaderboardSortMethod, LeaderboardDisplay eLeaderboardDisplayType);
public async Task GetLeaderboardAsync(LeaderboardQuery flag = LeaderboardQuery.Default, LeaderboardSort sort = LeaderboardSort.Most, int page = 1) { if (flag == LeaderboardQuery.Custom) { flag = LeaderboardQuery.Default; } var board = new Leaderboard(flag, sort); string result = board.Write(Context.Account, Context.Data.Users.Values.Values, --page); await Context.Channel.SendMessageAsync(result); }
internal async Task <LeaderboardFindResult_t?> FindOrCreateLeaderboard([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Utf8StringToNative))] string pchLeaderboardName, LeaderboardSort eLeaderboardSortMethod, LeaderboardDisplay eLeaderboardDisplayType) { return(await LeaderboardFindResult_t.GetResultAsync(_FindOrCreateLeaderboard( Self, pchLeaderboardName, eLeaderboardSortMethod, eLeaderboardDisplayType ))); }
internal Leaderboard(IDictionary <string, object> dict) { foreach (string key in dict.Keys) { object value; dict.TryGetValue(key, out value); if (value == null) { continue; } string valueString = value.ToString(); switch (key) { case "leaderboard_id": LeaderboardId = valueString; break; case "name": Name = valueString; break; case "public_id": PublicId = valueString; break; case "next_offset_key": OffsetKey = valueString; break; case "sort": switch (valueString) { case "asc": Sort = LeaderboardSort.ASC; break; case "desc": Sort = LeaderboardSort.DESC; break; } break; case "type": Type = LeaderboardType.RANK; break; case "display_hint": DisplayHint = valueString; break; case "tags": List <string> tagList = new List <string> (); JsonArray tagArray = (JsonArray)value; foreach (string entryObject in tagArray) { tagList.Add(entryObject); } Tags = tagList.ToArray(); break; case "score_limit": ScoreLimit = (long)value; break; case "created_at": CreatedAt = (long)value; break; case "leaderboard_reset": LeaderboardReset = new Reset((IDictionary <string, object>)value); break; case "limit": Limit = (long)value; break; case "offset": Offset = (long)value; break; case "total": Total = (long)value; break; case "entries": List <Leaderboard.Entry> resultList = new List <Leaderboard.Entry> (); JsonArray jsonArray = (JsonArray)value; foreach (object entryObject in jsonArray) { Leaderboard.Entry entry = new Leaderboard.Entry((IDictionary <string, object>)entryObject); resultList.Add(entry); } Entries = resultList.ToArray(); break; } } }
internal async Task <LeaderboardFindResult_t?> FindOrCreateLeaderboard(string pchLeaderboardName, LeaderboardSort eLeaderboardSortMethod, LeaderboardDisplay eLeaderboardDisplayType) { return(await LeaderboardFindResult_t.GetResultAsync(_FindOrCreateLeaderboard( Self, pchLeaderboardName, eLeaderboardSortMethod, eLeaderboardDisplayType ))); }
public static async Task <Leaderboard?> FindOrCreateLeaderboardAsync(string name, LeaderboardSort sort, LeaderboardDisplay display) { Leaderboard? nullable; bool flag; LeaderboardFindResult_t?nullable1 = await SteamUserStats.Internal.FindOrCreateLeaderboard(name, sort, display); LeaderboardFindResult_t?nullable2 = nullable1; nullable1 = null; flag = (!nullable2.HasValue ? true : nullable2.Value.LeaderboardFound == 0); if (!flag) { nullable = new Leaderboard?(new Leaderboard() { Id = nullable2.Value.SteamLeaderboard }); } else { nullable = null; } return(nullable); }