private void Awake() { if (instance == null) { instance = this; } else { Destroy(this.gameObject); } DontDestroyOnLoad(this.gameObject); }
public async Task <GlobalLeaderboard> GetGlobalLeaderboard() { try { using (var soraContext = new SoraContext()) { var users = soraContext.Users.ToList(); var sorted = users.OrderByDescending(x => x.Exp).ToList(); var resp = new GlobalLeaderboard() { ShardId = _client.ShardId }; for (int i = 0; i < (sorted.Count > 150 ? 150 : sorted.Count); i++) { var guser = sorted[i]; IUser user = _client.GetUser(guser.UserId) ?? await _restClient.GetUserAsync(guser.UserId) as IUser; if (user == null) { continue; } resp.Ranks.Add(new GuildRank() { Rank = i + 1, AvatarUrl = user.GetAvatarUrl() ?? "https://i.imgur.com/PvYs6dc.png", Discrim = user.Discriminator, Exp = (int)guser.Exp, Name = user.Username, NextExp = ExpService.CalculateNeededExp(ExpService.CalculateLevel(guser.Exp) + 1), UserId = user.Id + "" }); if (resp.Ranks.Count >= 100) { break; } } return(resp); } } catch (Exception e) { Console.WriteLine(e); } return(null); }
public async Task <ActionResult <GlobalLeaderboard> > GetGlobalLeaderboard() { var topUsers = await _profileRepo.GetTop150Users().ConfigureAwait(false); if (!topUsers) { return(NotFound("Could not fetch Leaderboard")); } var leaderboard = new GlobalLeaderboard() { ShardId = GlobalConstants.ShardId }; var users = topUsers.Some(); for (var i = 0; i < users.Count; i++) { var dbUser = users[i]; var user = _userService.Get(dbUser.Id); if (!user) { continue; } int rank = i + 1; leaderboard.Ranks.Add(user.MatchSome((u) => new GuildRank() { Rank = rank, AvatarUrl = u.GetAvatarUrl() ?? u.GetDefaultAvatarUrl(), Discrim = u.Discriminator, Exp = dbUser.Exp, Name = u.Username, UserId = u.Id.ToString(), })); if (leaderboard.Ranks.Count >= 100) { break; } } return(Ok(leaderboard)); }
private void Start() { GlobalLeaderboard = GetComponent <GlobalLeaderboard>(); LoadPersonalBest(); LoginToPlayFab(); }