Example #1
0
        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);
        }
Example #2
0
 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));
 }
Example #3
0
 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());
 }
Example #4
0
 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());
 }