mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 09:18:27 -04:00
Using INumber<T> for pretty printing nadeko currency
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
namespace Nadeko.Common;
|
||||
using System.Numerics;
|
||||
|
||||
namespace Nadeko.Common;
|
||||
|
||||
public readonly struct ShmartNumber : IEquatable<ShmartNumber>
|
||||
{
|
||||
|
@@ -29,7 +29,7 @@ public partial class Gambling
|
||||
|
||||
if (await _bank.DepositAsync(ctx.User.Id, amount))
|
||||
{
|
||||
await ReplyConfirmLocalizedAsync(strs.bank_deposited(N(amount)));
|
||||
await ReplyConfirmLocalizedAsync(strs.bank_deposited(N(amount.Value)));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -45,7 +45,7 @@ public partial class Gambling
|
||||
|
||||
if (await _bank.WithdrawAsync(ctx.User.Id, amount))
|
||||
{
|
||||
await ReplyConfirmLocalizedAsync(strs.bank_withdrew(N(amount)));
|
||||
await ReplyConfirmLocalizedAsync(strs.bank_withdrew(N(amount.Amount)));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -435,7 +435,7 @@ public partial class Gambling : GamblingModule<GamblingService>
|
||||
return;
|
||||
}
|
||||
|
||||
if (!await _cs.TransferAsync(_eb, ctx.User, receiver, amount, msg, N(amount)))
|
||||
if (!await _cs.TransferAsync(_eb, ctx.User, receiver, amount, msg, N(amount.Value)))
|
||||
{
|
||||
await ReplyErrorLocalizedAsync(strs.not_enough(CurrencySign));
|
||||
return;
|
||||
@@ -744,7 +744,7 @@ public partial class Gambling : GamblingModule<GamblingService>
|
||||
await ctx.Channel.TriggerTypingAsync();
|
||||
await _tracker.EnsureUsersDownloadedAsync(ctx.Guild);
|
||||
|
||||
var sg = (SocketGuild)ctx.Guild;
|
||||
var sg = (SocketGuild)ctx.Guild!;
|
||||
cleanRichest = cleanRichest.Where(x => sg.GetUser(x.UserId) is not null).ToList();
|
||||
}
|
||||
else
|
||||
@@ -920,10 +920,11 @@ public partial class Gambling : GamblingModule<GamblingService>
|
||||
[OwnerOnly]
|
||||
public async Task BetTest()
|
||||
{
|
||||
await SendConfirmAsync(GetText(strs.available_tests),
|
||||
Enum.GetValues<GambleTestTarget>()
|
||||
.Select(x => $"`{x}`")
|
||||
.Join(", "));
|
||||
var values = Enum.GetValues<GambleTestTarget>()
|
||||
.Select(x => $"`{x}`")
|
||||
.Join(", ");
|
||||
|
||||
await SendConfirmAsync(GetText(strs.available_tests), values);
|
||||
}
|
||||
|
||||
[Cmd]
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#nullable disable
|
||||
using NadekoBot.Modules.Gambling.Services;
|
||||
using System.Globalization;
|
||||
using System.Numerics;
|
||||
|
||||
namespace NadekoBot.Modules.Gambling.Common;
|
||||
|
||||
@@ -39,16 +40,12 @@ public abstract class GamblingModule<TService> : NadekoModule<TService>
|
||||
return true;
|
||||
}
|
||||
|
||||
public static string N(long cur, IFormatProvider format)
|
||||
public static string N<T>(T cur, IFormatProvider format)
|
||||
where T : INumber<T>
|
||||
=> cur.ToString("C0", format);
|
||||
|
||||
public static string N(decimal cur, IFormatProvider format)
|
||||
=> cur.ToString("C0", format);
|
||||
|
||||
protected string N(long cur)
|
||||
=> N(cur, GetFlowersCiInternal());
|
||||
|
||||
protected string N(decimal cur)
|
||||
protected string N<T>(T cur)
|
||||
where T : INumber<T>
|
||||
=> N(cur, GetFlowersCiInternal());
|
||||
|
||||
protected IFormatProvider GetFlowersCiInternal()
|
||||
|
Reference in New Issue
Block a user