mirror of
				https://gitlab.com/Kwoth/nadekobot.git
				synced 2025-11-04 00:34:26 -05:00 
			
		
		
		
	Using INumber<T> for pretty printing nadeko currency
This commit is contained in:
		@@ -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