Added bank information to .economy

This commit is contained in:
Kwoth
2022-05-05 23:12:49 +02:00
parent d80cbb4647
commit 5ed005211e
4 changed files with 16 additions and 5 deletions

View File

@@ -8,7 +8,7 @@ Experimental changelog. Mostly based on [keepachangelog](https://keepachangelog.
### Added ### Added
- Added support for embed arrays in commands such as .say, .greet, .bye, etc... - Added support for embed arrays in commands such as .say, .greet, .bye, etc...
- Website to create them is live at eb2.nadeko.bot (it will soon be replacing eb.nadeko.bot) - Website to create them is live at eb.nadeko.bot (old one is moved to oldeb.nadeko.bot)
- Embed arrays don't have a plainText property (it's renamed to 'content') - Embed arrays don't have a plainText property (it's renamed to 'content')
- Embed arrays use color hex values instead of an integer - Embed arrays use color hex values instead of an integer
- Old embed format will still work - Old embed format will still work
@@ -21,6 +21,7 @@ Experimental changelog. Mostly based on [keepachangelog](https://keepachangelog.
- Added `.h <command group>` - Added `.h <command group>`
- Using this command will list all commands in the specified group - Using this command will list all commands in the specified group
- Atm only .bank is a proper group (`.h bank`) - Atm only .bank is a proper group (`.h bank`)
- Added "Bank Accounts" entry to `.economy`
### Changed ### Changed

View File

@@ -77,7 +77,7 @@ public partial class Gambling : GamblingModule<GamblingService>
[Cmd] [Cmd]
public async partial Task Economy() public async partial Task Economy()
{ {
var ec = _service.GetEconomy(); var ec = await _service.GetEconomyAsync();
decimal onePercent = 0; decimal onePercent = 0;
// This stops the top 1% from owning more than 100% of the money // This stops the top 1% from owning more than 100% of the money
@@ -94,7 +94,8 @@ public partial class Gambling : GamblingModule<GamblingService>
.AddField(GetText(strs.currency_planted), N(ec.Planted)) .AddField(GetText(strs.currency_planted), N(ec.Planted))
.AddField(GetText(strs.owned_waifus_total), N(ec.Waifus)) .AddField(GetText(strs.owned_waifus_total), N(ec.Waifus))
.AddField(GetText(strs.bot_currency), N(ec.Bot)) .AddField(GetText(strs.bot_currency), N(ec.Bot))
.AddField(GetText(strs.total), N(ec.Cash + ec.Planted + ec.Waifus)) .AddField(GetText(strs.bank_accounts), N(ec.Bank))
.AddField(GetText(strs.total), N(ec.Cash + ec.Planted + ec.Waifus + ec.Bank))
.WithOkColor(); .WithOkColor();
// ec.Cash already contains ec.Bot as it's the total of all values in the CurrencyAmount column of the DiscordUser table // ec.Cash already contains ec.Bot as it's the total of all values in the CurrencyAmount column of the DiscordUser table

View File

@@ -1,8 +1,11 @@
#nullable disable #nullable disable
using LinqToDB; using LinqToDB;
using LinqToDB.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using NadekoBot.Common.ModuleBehaviors; using NadekoBot.Common.ModuleBehaviors;
using NadekoBot.Db; using NadekoBot.Db;
using NadekoBot.Db.Models;
using NadekoBot.Migrations;
using NadekoBot.Modules.Gambling.Common; using NadekoBot.Modules.Gambling.Common;
using NadekoBot.Modules.Gambling.Common.Connect4; using NadekoBot.Modules.Gambling.Common.Connect4;
using NadekoBot.Modules.Gambling.Common.Slot; using NadekoBot.Modules.Gambling.Common.Slot;
@@ -158,7 +161,7 @@ public class GamblingService : INService, IReadyExecutor
return toReturn; return toReturn;
} }
public EconomyResult GetEconomy() public async Task<EconomyResult> GetEconomyAsync()
{ {
if (_cache.TryGetEconomy(out var data)) if (_cache.TryGetEconomy(out var data))
{ {
@@ -173,6 +176,7 @@ public class GamblingService : INService, IReadyExecutor
decimal onePercent; decimal onePercent;
decimal planted; decimal planted;
decimal waifus; decimal waifus;
decimal bank;
long bot; long bot;
using (var uow = _db.GetDbContext()) using (var uow = _db.GetDbContext())
@@ -182,6 +186,8 @@ public class GamblingService : INService, IReadyExecutor
planted = uow.PlantedCurrency.AsQueryable().Sum(x => x.Amount); planted = uow.PlantedCurrency.AsQueryable().Sum(x => x.Amount);
waifus = uow.WaifuInfo.GetTotalValue(); waifus = uow.WaifuInfo.GetTotalValue();
bot = uow.DiscordUser.GetUserCurrency(_client.CurrentUser.Id); bot = uow.DiscordUser.GetUserCurrency(_client.CurrentUser.Id);
bank = await uow.GetTable<BankUser>()
.SumAsyncLinqToDB(x => x.Balance);
} }
var result = new EconomyResult var result = new EconomyResult
@@ -190,7 +196,8 @@ public class GamblingService : INService, IReadyExecutor
Planted = planted, Planted = planted,
Bot = bot, Bot = bot,
Waifus = waifus, Waifus = waifus,
OnePercent = onePercent OnePercent = onePercent,
Bank = bank
}; };
_cache.SetEconomy(JsonConvert.SerializeObject(result)); _cache.SetEconomy(JsonConvert.SerializeObject(result));
@@ -207,6 +214,7 @@ public class GamblingService : INService, IReadyExecutor
public decimal Planted { get; set; } public decimal Planted { get; set; }
public decimal Waifus { get; set; } public decimal Waifus { get; set; }
public decimal OnePercent { get; set; } public decimal OnePercent { get; set; }
public decimal Bank { get; set; }
public long Bot { get; set; } public long Bot { get; set; }
} }
} }

View File

@@ -939,6 +939,7 @@
"owned_waifus_total": "Total value of owned waifus", "owned_waifus_total": "Total value of owned waifus",
"bot_currency": "Currency owned by the bot", "bot_currency": "Currency owned by the bot",
"total": "Total", "total": "Total",
"bank_accounts": "Bank Accounts",
"no_invites": "No invites on this page.", "no_invites": "No invites on this page.",
"invite_deleted": "Invite {0} has been deleted.", "invite_deleted": "Invite {0} has been deleted.",
"group_name_added": "Group #{0} now has a name: {1}", "group_name_added": "Group #{0} now has a name: {1}",