public async Task <ButtcoinAccount> GetOrCreateAccount(string userId) { var existing = await _db.Accounts .AsQueryable() .Include(x => x.Stats) .FirstOrDefaultAsync(x => x.DeletedAt == null && x.DiscordUserId == userId); if (existing != null) { return(existing); } Log.Debug("Creating new account for {UserId}", userId); var account = new ButtcoinAccount { DiscordUserId = userId, Stats = new ButtcoinStats(), }; await _db.Accounts.AddAsync(account); await _db.SaveChangesAsync(); return(account); }
public static EmbedBuilder CreateStatsEmbed(IGuildUser user, ButtcoinAccount account, string logo) { return(CreateBalanceEmbed(user, account, logo) .WithTitle($"{user.GetDisplayName()}'s buttcoin stats") .AddField("# Mined", $"{account.Stats.AmountMined} buttcoins", true) .AddField("# Bruteforced", $"{account.Stats.AmountBruteforced} buttcoins", true) .AddField("# Gifted", $"{account.Stats.AmountGifted} buttcoins", true) .AddField("# Received", $"{account.Stats.AmountReceived} buttcoins", true)); }
public static EmbedBuilder CreateBalanceEmbed(IGuildUser user, ButtcoinAccount account, string logo) { return(new EmbedBuilder() .WithTitle($"{user.GetDisplayName()}'s buttcoin balance") .WithThumbnailUrl(user.GetAvatarUrl()) .AddField("Account Status", account.IsActive ? "Active" : "Inactive", true) .AddField("Balance", $"{account.Balance} buttcoins", true) .WithColor(Color.Green) .WithFooter("ButtBot", logo) .WithCurrentTimestamp()); }
public static EmbedBuilder CreateTransferEmbed(IGuildUser fromUser, IGuildUser toUser, ButtcoinAccount fromAccount, ButtcoinAccount toAccount, ulong amount, string reason, string logo) { return(new EmbedBuilder() .WithTitle("Buttcoin transfer report ➡") .WithThumbnailUrl(logo) .AddField($"From: {fromUser.GetDisplayName()}", $"{fromAccount.Balance} buttcoins", true) .AddField($"To: {toUser.GetDisplayName()}", $"{toAccount.Balance} buttcoins", true) .AddField("Amount", $"{amount} buttcoins", true) .AddField("Reason", reason, true) .WithColor(Color.Green) .WithFooter("ButtBot", logo) .WithCurrentTimestamp()); }