Updated editorconfig to (mostly?) require braces around if/else statements, and applied the new formatting rules

This commit is contained in:
Kwoth
2022-02-02 01:44:45 +01:00
parent b22cd5a81e
commit ffa2c3f119
202 changed files with 2108 additions and 920 deletions

View File

@@ -99,8 +99,10 @@ public sealed class AnimalRace : IDisposable
if (_users.Count <= 1)
{
foreach (var user in _users)
{
if (user.Bet > 0)
await _currency.AddAsync(user.UserId, user.Bet, new("animalrace", "refund"));
}
_ = OnStartingFailed?.Invoke(this);
CurrentPhase = Phase.Ended;

View File

@@ -48,7 +48,7 @@ public partial class Gambling
Task ClientMessageReceived(SocketMessage arg)
{
_= Task.Run(() =>
_ = Task.Run(() =>
{
try
{

View File

@@ -75,9 +75,7 @@ public partial class Gambling
try
{
if (msg is not null)
{
_= msg.DeleteAsync();
}
_ = msg.DeleteAsync();
var c = bj.Dealer.Cards.Select(x => x.GetEmojiString())
.ToList();
@@ -99,7 +97,8 @@ public partial class Gambling
.WithTitle("BlackJack")
.AddField($"{dealerIcon} Dealer's Hand | Value: {bj.Dealer.GetHandValue()}", cStr);
if (bj.CurrentUser is not null) embed.WithFooter($"Player to make a choice: {bj.CurrentUser.DiscordUser}");
if (bj.CurrentUser is not null)
embed.WithFooter($"Player to make a choice: {bj.CurrentUser.DiscordUser}");
foreach (var p in bj.Players)
{

View File

@@ -33,7 +33,7 @@ public class Blackjack
}
public void Start()
=> _= GameLoop();
=> _ = GameLoop();
public async Task GameLoop()
{
@@ -73,11 +73,13 @@ public class Blackjack
//go through all users and ask them what they want to do
foreach (var usr in Players.Where(x => !x.Done))
{
while (!usr.Done)
{
Log.Information("Waiting for {DiscordUser}'s move", usr.DiscordUser);
await PromptUserMove(usr);
}
}
await PrintState();
State = GameState.Ended;
@@ -85,13 +87,13 @@ public class Blackjack
Log.Information("Dealer moves");
await DealerMoves();
await PrintState();
_= GameEnded?.Invoke(this);
_ = GameEnded?.Invoke(this);
}
catch (Exception ex)
{
Log.Error(ex, "REPORT THE MESSAGE BELOW IN #NadekoLog SERVER PLEASE");
State = GameState.Ended;
_= GameEnded?.Invoke(this);
_ = GameEnded?.Invoke(this);
}
}
@@ -106,14 +108,10 @@ public class Blackjack
// if he doesn't - stand
var finished = await Task.WhenAny(pause, currentUserMove.Task);
if (finished == pause)
{
await Stand(usr);
}
else
{
cts.Cancel();
}
CurrentUser = null;
currentUserMove = null;
}
@@ -129,10 +127,11 @@ public class Blackjack
if (Players.Count >= 5)
return false;
if (!await _cs.RemoveAsync(user, bet, new("blackjack","gamble"))) return false;
if (!await _cs.RemoveAsync(user, bet, new("blackjack", "gamble")))
return false;
Players.Add(new(user, bet));
_= PrintState();
_ = PrintState();
return true;
}
finally
@@ -204,22 +203,28 @@ public class Blackjack
if (hw > 21)
foreach (var usr in Players)
{
if (usr.State is User.UserState.Stand or User.UserState.Blackjack)
usr.State = User.UserState.Won;
else
usr.State = User.UserState.Lost;
}
else
foreach (var usr in Players)
{
if (usr.State == User.UserState.Blackjack)
usr.State = User.UserState.Won;
else if (usr.State == User.UserState.Stand)
usr.State = hw < usr.GetHandValue() ? User.UserState.Won : User.UserState.Lost;
else
usr.State = User.UserState.Lost;
}
foreach (var usr in Players)
{
if (usr.State is User.UserState.Won or User.UserState.Blackjack)
await _cs.AddAsync(usr.DiscordUser.Id, usr.Bet * 2, new("blackjack", "win"));
}
}
public async Task<bool> Double(IUser u)

View File

@@ -13,7 +13,8 @@ public abstract class Player
// reduce the value by 10 until it drops below 22
// (emulating the fact that ace is either a 1 or a 11)
var i = Cards.Count(x => x.Number == 1);
while (val > 21 && i-- > 0) val -= 10;
while (val > 21 && i-- > 0)
val -= 10;
return val;
}

View File

@@ -81,14 +81,15 @@ public sealed class Connect4Game : IDisposable
_cs = cs;
_rng = new();
for (var i = 0; i < NUMBER_OF_COLUMNS * NUMBER_OF_ROWS; i++) _gameState[i] = Field.Empty;
for (var i = 0; i < NUMBER_OF_COLUMNS * NUMBER_OF_ROWS; i++)
_gameState[i] = Field.Empty;
}
public void Initialize()
{
if (CurrentPhase != Phase.Joining)
return;
_= Task.Run(async () =>
_ = Task.Run(async () =>
{
await Task.Delay(15000);
await _locker.WaitAsync();
@@ -173,11 +174,13 @@ public sealed class Connect4Game : IDisposable
var start = NUMBER_OF_ROWS * inputCol;
for (var i = start; i < start + NUMBER_OF_ROWS; i++)
{
if (_gameState[i] == Field.Empty)
{
_gameState[i] = GetPlayerPiece(userId);
break;
}
}
//check winnning condition
// ok, i'll go from [0-2] in rows (and through all columns) and check upward if 4 are connected
@@ -233,7 +236,8 @@ public sealed class Connect4Game : IDisposable
EndGame(Result.CurrentPlayerWon, CurrentPlayer.UserId);
else
continue;
else break;
else
break;
}
}
}
@@ -271,7 +275,8 @@ public sealed class Connect4Game : IDisposable
var cur = _gameState[curRow + (curCol * NUMBER_OF_ROWS)];
if (cur == first)
same++;
else break;
else
break;
}
if (same == 4)
@@ -298,7 +303,8 @@ public sealed class Connect4Game : IDisposable
var cur = _gameState[curRow + (curCol * NUMBER_OF_ROWS)];
if (cur == first)
same++;
else break;
else
break;
}
if (same == 4)
@@ -311,7 +317,8 @@ public sealed class Connect4Game : IDisposable
}
//check draw? if it's even possible
if (_gameState.All(x => x != Field.Empty)) EndGame(Result.Draw, null);
if (_gameState.All(x => x != Field.Empty))
EndGame(Result.Draw, null);
if (CurrentPhase != Phase.Ended)
{
@@ -323,7 +330,7 @@ public sealed class Connect4Game : IDisposable
ResetTimer();
}
_= OnGameStateUpdated?.Invoke(this);
_ = OnGameStateUpdated?.Invoke(this);
return true;
}
finally { _locker.Release(); }
@@ -337,7 +344,7 @@ public sealed class Connect4Game : IDisposable
{
if (CurrentPhase == Phase.Ended)
return;
_= OnGameEnded?.Invoke(this, result);
_ = OnGameEnded?.Invoke(this, result);
CurrentPhase = Phase.Ended;
if (result == Result.Draw)
@@ -359,8 +366,11 @@ public sealed class Connect4Game : IDisposable
{
var start = NUMBER_OF_ROWS * column;
for (var i = start; i < start + NUMBER_OF_ROWS; i++)
{
if (_gameState[i] == Field.Empty)
return false;
}
return true;
}

View File

@@ -23,7 +23,8 @@ public partial class Gambling
{
if (value is < 0 or > 7)
repostCounter = 0;
else repostCounter = value;
else
repostCounter = value;
}
}
@@ -88,10 +89,11 @@ public partial class Gambling
if (ctx.Channel.Id != arg.Channel.Id)
return Task.CompletedTask;
_= Task.Run(async () =>
_ = Task.Run(async () =>
{
var success = false;
if (int.TryParse(arg.Content, out var col)) success = await game.Input(arg.Author.Id, col);
if (int.TryParse(arg.Content, out var col))
success = await game.Input(arg.Author.Id, col);
if (success)
{
@@ -100,7 +102,8 @@ public partial class Gambling
}
else
{
if (game.CurrentPhase is Connect4Game.Phase.Joining or Connect4Game.Phase.Ended) return;
if (game.CurrentPhase is Connect4Game.Phase.Joining or Connect4Game.Phase.Ended)
return;
RepostCounter++;
if (RepostCounter == 0)
try { msg = await ctx.Channel.SendMessageAsync("", embed: (Embed)msg.Embeds.First()); }
@@ -185,7 +188,8 @@ public partial class Gambling
sb.AppendLine();
}
for (var i = 0; i < Connect4Game.NUMBER_OF_COLUMNS; i++) sb.Append(_numbers[i]);
for (var i = 0; i < Connect4Game.NUMBER_OF_COLUMNS; i++)
sb.Append(_numbers[i]);
return sb.ToString();
}
}

View File

@@ -83,11 +83,13 @@ public partial class Gambling
toInsert = 0;
else if (randomNumber != 1)
for (var j = 0; j < dice.Count; j++)
{
if (values[j] < randomNumber)
{
toInsert = j;
break;
}
}
}
else
{
@@ -100,7 +102,8 @@ public partial class Gambling
using var bitmap = dice.Merge(out var format);
await using var ms = bitmap.ToStream(format);
foreach (var d in dice) d.Dispose();
foreach (var d in dice)
d.Dispose();
await ctx.Channel.SendFileAsync(ms,
$"dice.{format.FileExtensions.First()}",
@@ -123,7 +126,8 @@ public partial class Gambling
var rolls = new List<char>();
for (var i = 0; i < n1; i++) rolls.Add(_fateRolls[rng.Next(0, _fateRolls.Length)]);
for (var i = 0; i < n1; i++)
rolls.Add(_fateRolls[rng.Next(0, _fateRolls.Length)]);
var embed = _eb.Create()
.WithOkColor()
.WithDescription(ctx.User.Mention
@@ -150,7 +154,8 @@ public partial class Gambling
sub = 0;
var arr = new int[n1];
for (var i = 0; i < n1; i++) arr[i] = rng.Next(1, n2 + 1);
for (var i = 0; i < n1; i++)
arr[i] = rng.Next(1, n2 + 1);
var sum = arr.Sum();
var embed = _eb.Create()

View File

@@ -47,7 +47,8 @@ public partial class Gambling
}
using var img = images.Merge();
foreach (var i in images) i.Dispose();
foreach (var i in images)
i.Dispose();
var toSend = $"{Format.Bold(ctx.User.ToString())}";
if (cardObjects.Count == 5)

View File

@@ -68,7 +68,8 @@ public class GameStatusEvent : ICurrencyEvent
{
var potEmpty = PotEmptied;
var toAward = new List<ulong>();
while (_toAward.TryDequeue(out var x)) toAward.Add(x);
while (_toAward.TryDequeue(out var x))
toAward.Add(x);
if (!toAward.Any())
return;
@@ -85,7 +86,10 @@ public class GameStatusEvent : ICurrencyEvent
{
m.Embed = GetEmbed(PotSize).Build();
},
new() { RetryMode = RetryMode.AlwaysRetry });
new()
{
RetryMode = RetryMode.AlwaysRetry
});
Log.Information("Awarded {Count} users {Amount} currency.{Remaining}",
toAward.Count,
@@ -93,9 +97,7 @@ public class GameStatusEvent : ICurrencyEvent
_isPotLimited ? $" {PotSize} left." : "");
if (potEmpty)
{
_= StopEvent();
}
_ = StopEvent();
}
catch (Exception ex)
{
@@ -117,7 +119,8 @@ public class GameStatusEvent : ICurrencyEvent
private async Task OnMessageDeleted(Cacheable<IMessage, ulong> message, Cacheable<IMessageChannel, ulong> cacheable)
{
if (message.Id == msg.Id) await StopEvent();
if (message.Id == msg.Id)
await StopEvent();
}
public async Task StopEvent()
@@ -135,7 +138,7 @@ public class GameStatusEvent : ICurrencyEvent
_ = _client.SetGameAsync(null);
try
{
_= msg.DeleteAsync();
_ = msg.DeleteAsync();
}
catch { }
@@ -145,7 +148,7 @@ public class GameStatusEvent : ICurrencyEvent
private Task HandleMessage(SocketMessage message)
{
_= Task.Run(async () =>
_ = Task.Run(async () =>
{
if (message.Author is not IGuildUser gu // no unknown users, as they could be bots, or alts
|| gu.IsBot // no bots
@@ -163,7 +166,10 @@ public class GameStatusEvent : ICurrencyEvent
try
{
await message.DeleteAsync(new() { RetryMode = RetryMode.AlwaysFail });
await message.DeleteAsync(new()
{
RetryMode = RetryMode.AlwaysFail
});
}
catch { }
});

View File

@@ -58,13 +58,14 @@ public class ReactionEvent : ICurrencyEvent
}
private void EventTimeout(object state)
=> _= StopEvent();
=> _ = StopEvent();
private async void OnTimerTick(object state)
{
var potEmpty = PotEmptied;
var toAward = new List<ulong>();
while (_toAward.TryDequeue(out var x)) toAward.Add(x);
while (_toAward.TryDequeue(out var x))
toAward.Add(x);
if (!toAward.Any())
return;
@@ -78,7 +79,10 @@ public class ReactionEvent : ICurrencyEvent
{
m.Embed = GetEmbed(PotSize).Build();
},
new() { RetryMode = RetryMode.AlwaysRetry });
new()
{
RetryMode = RetryMode.AlwaysRetry
});
Log.Information("Awarded {Count} users {Amount} currency.{Remaining}",
toAward.Count,
@@ -86,9 +90,7 @@ public class ReactionEvent : ICurrencyEvent
_isPotLimited ? $" {PotSize} left." : "");
if (potEmpty)
{
_= StopEvent();
}
_ = StopEvent();
}
catch (Exception ex)
{
@@ -114,7 +116,8 @@ public class ReactionEvent : ICurrencyEvent
private async Task OnMessageDeleted(Cacheable<IMessage, ulong> message, Cacheable<IMessageChannel, ulong> cacheable)
{
if (message.Id == msg.Id) await StopEvent();
if (message.Id == msg.Id)
await StopEvent();
}
public async Task StopEvent()
@@ -131,7 +134,7 @@ public class ReactionEvent : ICurrencyEvent
_timeout?.Change(Timeout.Infinite, Timeout.Infinite);
try
{
_= msg.DeleteAsync();
_ = msg.DeleteAsync();
}
catch { }
@@ -144,7 +147,7 @@ public class ReactionEvent : ICurrencyEvent
Cacheable<IMessageChannel, ulong> cacheable,
SocketReaction r)
{
_= Task.Run(() =>
_ = Task.Run(() =>
{
if (emote.Name != r.Emote.Name)
return;

View File

@@ -63,7 +63,8 @@ public partial class Gambling
using var img = imgs.Merge(out var format);
await using var stream = img.ToStream(format);
foreach (var i in imgs) i.Dispose();
foreach (var i in imgs)
i.Dispose();
var msg = count != 1
? Format.Bold(ctx.User.ToString()) + " " + GetText(strs.flip_results(count, headCount, tailCount))
: Format.Bold(ctx.User.ToString())

View File

@@ -86,11 +86,11 @@ public partial class Gambling : GamblingModule<GamblingService>
{
var ec = _service.GetEconomy();
decimal onePercent = 0;
// This stops the top 1% from owning more than 100% of the money
if (ec.Cash > 0)
onePercent = ec.OnePercent / (ec.Cash - ec.Bot);
// [21:03] Bob Page: Kinda remids me of US economy
var embed = _eb.Create()
.WithTitle(GetText(strs.economy_state))
@@ -103,7 +103,7 @@ public partial class Gambling : GamblingModule<GamblingService>
.AddField(GetText(strs.total),
((BigInteger)(ec.Cash + ec.Planted + ec.Waifus)).ToString("N", Culture) + CurrencySign)
.WithOkColor();
// ec.Cash already contains ec.Bot as it's the total of all values in the CurrencyAmount column of the DiscordUser table
await ctx.Channel.EmbedAsync(embed);
}
@@ -165,7 +165,8 @@ public partial class Gambling : GamblingModule<GamblingService>
var members = (await role.GetMembersAsync()).Where(u => u.Status != UserStatus.Offline);
var membersArray = members as IUser[] ?? members.ToArray();
if (membersArray.Length == 0) return;
if (membersArray.Length == 0)
return;
var usr = membersArray[new NadekoRandom().Next(0, membersArray.Length)];
await SendConfirmAsync("🎟 " + GetText(strs.raffled_user),
$"**{usr.Username}#{usr.Discriminator}**",
@@ -180,7 +181,8 @@ public partial class Gambling : GamblingModule<GamblingService>
var members = await role.GetMembersAsync();
var membersArray = members as IUser[] ?? members.ToArray();
if (membersArray.Length == 0) return;
if (membersArray.Length == 0)
return;
var usr = membersArray[new NadekoRandom().Next(0, membersArray.Length)];
await SendConfirmAsync("🎟 " + GetText(strs.raffled_user),
$"**{usr.Username}#{usr.Discriminator}**",
@@ -228,13 +230,13 @@ public partial class Gambling : GamblingModule<GamblingService>
var change = tr.Amount >= 0 ? "🔵" : "🔴";
var kwumId = new kwum(tr.Id).ToString();
var date = $"#{Format.Code(kwumId)} `〖{GetFormattedCurtrDate(tr)}〗`";
sb.AppendLine($"\\{change} {date} {Format.Bold(N(tr.Amount))}");
var transactionString = GetHumanReadableTransaction(tr.Type, tr.Extra, tr.OtherId);
if(transactionString is not null)
if (transactionString is not null)
sb.AppendLine(transactionString);
if (!string.IsNullOrWhiteSpace(tr.Note))
sb.AppendLine($"\t`Note:` {tr.Note.TrimTo(50)}");
}
@@ -265,7 +267,7 @@ public partial class Gambling : GamblingModule<GamblingService>
}
var eb = _eb.Create(ctx)
.WithOkColor();
.WithOkColor();
eb.WithAuthor(ctx.User);
eb.WithTitle(GetText(strs.transaction));
@@ -273,16 +275,16 @@ public partial class Gambling : GamblingModule<GamblingService>
eb.AddField("Amount", N(tr.Amount));
eb.AddField("Type", tr.Type, true);
eb.AddField("Extra", tr.Extra, true);
if (tr.OtherId is ulong other)
eb.AddField("From Id", other);
if (!string.IsNullOrWhiteSpace(tr.Note))
eb.AddField("Note", tr.Note);
eb.WithFooter(GetFormattedCurtrDate(tr));
await ctx.Channel.EmbedAsync(eb);
}
@@ -325,7 +327,7 @@ public partial class Gambling : GamblingModule<GamblingService>
{
if (amount <= 0 || ctx.User.Id == receiver.Id || receiver.IsBot)
return;
if (!await _cs.TransferAsync(ctx.User.Id, receiver.Id, amount, ctx.User.ToString(), msg))
{
await ReplyErrorLocalizedAsync(strs.not_enough(CurrencySign));
@@ -373,7 +375,7 @@ public partial class Gambling : GamblingModule<GamblingService>
await _cs.AddAsync(usr.Id,
amount,
new TxData("award", ctx.User.ToString()!, msg, ctx.User.Id)
new("award", ctx.User.ToString()!, msg, ctx.User.Id)
);
await ReplyConfirmLocalizedAsync(strs.awarded(N(amount), $"<@{usrId}>"));
}
@@ -431,7 +433,7 @@ public partial class Gambling : GamblingModule<GamblingService>
ctx.User.ToString()!,
null,
ctx.User.Id);
if (await _cs.RemoveAsync(user.Id, amount, extra))
await ReplyConfirmLocalizedAsync(strs.take(N(amount), Format.Bold(user.ToString())));
else
@@ -450,7 +452,7 @@ public partial class Gambling : GamblingModule<GamblingService>
ctx.User.ToString()!,
null,
ctx.User.Id);
if (await _cs.RemoveAsync(usrId, amount, extra))
await ReplyConfirmLocalizedAsync(strs.take(N(amount), $"<@{usrId}>"));
else
@@ -689,7 +691,6 @@ public partial class Gambling : GamblingModule<GamblingService>
var nadekoPick = (RpsPick)new NadekoRandom().Next(0, 3);
if (amount > 0)
{
if (!await _cs.RemoveAsync(ctx.User.Id,
amount,
new("rps", "bet", "")))
@@ -697,7 +698,6 @@ public partial class Gambling : GamblingModule<GamblingService>
await ReplyErrorLocalizedAsync(strs.not_enough(CurrencySign));
return;
}
}
string msg;
if (pick == nadekoPick)

View File

@@ -109,8 +109,21 @@ Doesn't have to be ordered.")]
public BetRollConfig()
=> Pairs = new BetRollPair[]
{
new() { WhenAbove = 99, MultiplyBy = 10 }, new() { WhenAbove = 90, MultiplyBy = 4 },
new() { WhenAbove = 66, MultiplyBy = 2 }
new()
{
WhenAbove = 99,
MultiplyBy = 10
},
new()
{
WhenAbove = 90,
MultiplyBy = 4
},
new()
{
WhenAbove = 66,
MultiplyBy = 2
}
};
}

View File

@@ -8,6 +8,7 @@ public sealed class GamblingConfigService : ConfigServiceBase<GamblingConfig>
{
private const string FILE_PATH = "data/gambling.yml";
private static readonly TypedKey<GamblingConfig> _changeKey = new("config.gambling.updated");
public override string Name
=> "gambling";

View File

@@ -86,7 +86,10 @@ WHERE CurrencyAmount > {config.Decay.MinThreshold} AND UserId!={_client.CurrentU
var takeRes = await _cs.RemoveAsync(userId, amount, new("slot", "bet"));
if (!takeRes)
return new() { Error = GamblingError.NotEnough };
return new()
{
Error = GamblingError.NotEnough
};
var game = new SlotGame();
var result = game.Spin();
@@ -99,7 +102,11 @@ WHERE CurrencyAmount > {config.Decay.MinThreshold} AND UserId!={_client.CurrentU
await _cs.AddAsync(userId, won, new("slot", "win", $"Slot Machine x{result.Multiplier}"));
}
var toReturn = new SlotResponse { Multiplier = result.Multiplier, Won = won };
var toReturn = new SlotResponse
{
Multiplier = result.Multiplier,
Won = won
};
toReturn.Rolls.AddRange(result.Rolls);

View File

@@ -21,7 +21,8 @@ public abstract class GamblingModule<TService> : NadekoModule<TService>
private async Task<bool> InternalCheckBet(long amount)
{
if (amount < 1) return false;
if (amount < 1)
return false;
if (amount < Config.MinBet)
{
await ReplyErrorLocalizedAsync(strs.min_bet_limit(Format.Bold(Config.MinBet.ToString()) + CurrencySign));
@@ -39,13 +40,15 @@ public abstract class GamblingModule<TService> : NadekoModule<TService>
protected Task<bool> CheckBetMandatory(long amount)
{
if (amount < 1) return Task.FromResult(false);
if (amount < 1)
return Task.FromResult(false);
return InternalCheckBet(amount);
}
protected Task<bool> CheckBetOptional(long amount)
{
if (amount == 0) return Task.FromResult(true);
if (amount == 0)
return Task.FromResult(true);
return InternalCheckBet(amount);
}
}

View File

@@ -13,13 +13,14 @@ public partial class Gambling
public PlantPickCommands(ILogCommandService logService, GamblingConfigService gss)
: base(gss)
=> this._logService = logService;
=> _logService = logService;
[Cmd]
[RequireContext(ContextType.Guild)]
public async partial Task Pick(string pass = null)
{
if (!string.IsNullOrWhiteSpace(pass) && !pass.IsAlphaNumeric()) return;
if (!string.IsNullOrWhiteSpace(pass) && !pass.IsAlphaNumeric())
return;
var picked = await _service.PickAsync(ctx.Guild.Id, (ITextChannel)ctx.Channel, ctx.User.Id, pass);
@@ -45,7 +46,8 @@ public partial class Gambling
if (amount < 1)
return;
if (!string.IsNullOrWhiteSpace(pass) && !pass.IsAlphaNumeric()) return;
if (!string.IsNullOrWhiteSpace(pass) && !pass.IsAlphaNumeric())
return;
if (((SocketGuild)ctx.Guild).CurrentUser.GuildPermissions.ManageMessages)
{
@@ -59,7 +61,8 @@ public partial class Gambling
ctx.User.ToString(),
amount,
pass);
if (!success) await ReplyErrorLocalizedAsync(strs.not_enough(CurrencySign));
if (!success)
await ReplyErrorLocalizedAsync(strs.not_enough(CurrencySign));
}
[Cmd]

View File

@@ -71,7 +71,10 @@ public class PlantPickService : INService
using var uow = _db.GetDbContext();
var guildConfig = uow.GuildConfigsForId(gid, set => set.Include(gc => gc.GenerateCurrencyChannelIds));
var toAdd = new GCChannelId { ChannelId = cid };
var toAdd = new GCChannelId
{
ChannelId = cid
};
if (!guildConfig.GenerateCurrencyChannelIds.Contains(toAdd))
{
guildConfig.GenerateCurrencyChannelIds.Add(toAdd);
@@ -81,7 +84,8 @@ public class PlantPickService : INService
else
{
var toDelete = guildConfig.GenerateCurrencyChannelIds.FirstOrDefault(x => x.Equals(toAdd));
if (toDelete is not null) uow.Remove(toDelete);
if (toDelete is not null)
uow.Remove(toDelete);
_generationChannels.TryRemove(cid);
enabled = false;
}
@@ -172,7 +176,7 @@ public class PlantPickService : INService
if (!_generationChannels.Contains(channel.Id))
return Task.CompletedTask;
_= Task.Run(async () =>
_ = Task.Run(async () =>
{
try
{
@@ -277,7 +281,7 @@ public class PlantPickService : INService
try
{
// delete all of the plant messages which have just been picked
_= ch.DeleteMessagesAsync(ids);
_ = ch.DeleteMessagesAsync(ids);
}
catch { }

View File

@@ -26,7 +26,11 @@ public class CurrencyRaffleGame
if (GameType == Type.Normal && _users.Count > 0 && _users.First().Amount != amount)
return false;
if (!_users.Add(new() { DiscordUser = usr, Amount = amount }))
if (!_users.Add(new()
{
DiscordUser = usr,
Amount = amount
}))
return false;
return true;

View File

@@ -52,7 +52,6 @@ public class CurrencyRaffleService : INService
}
if (newGame)
{
_ = Task.Run(async () =>
{
await Task.Delay(60000);
@@ -69,7 +68,6 @@ public class CurrencyRaffleService : INService
catch { }
finally { _locker.Release(); }
});
}
return (crg, null);
}

View File

@@ -225,7 +225,10 @@ public partial class Gambling
var entries = new IndexedCollection<ShopEntry>(uow.GuildConfigsForId(ctx.Guild.Id,
set => set.Include(x => x.ShopEntries)
.ThenInclude(x => x.Items))
.ShopEntries) { entry };
.ShopEntries)
{
entry
};
uow.GuildConfigsForId(ctx.Guild.Id, set => set).ShopEntries = entries;
uow.SaveChanges();
}
@@ -254,7 +257,10 @@ public partial class Gambling
var entries = new IndexedCollection<ShopEntry>(uow.GuildConfigsForId(ctx.Guild.Id,
set => set.Include(x => x.ShopEntries)
.ThenInclude(x => x.Items))
.ShopEntries) { entry };
.ShopEntries)
{
entry
};
uow.GuildConfigsForId(ctx.Guild.Id, set => set).ShopEntries = entries;
uow.SaveChanges();
}
@@ -270,7 +276,10 @@ public partial class Gambling
index -= 1;
if (index < 0)
return;
var item = new ShopEntryItem { Text = itemText };
var item = new ShopEntryItem
{
Text = itemText
};
ShopEntry entry;
var rightType = false;
var added = false;
@@ -414,7 +423,6 @@ public partial class Gambling
var embed = _eb.Create().WithOkColor();
if (entry.Type == ShopEntryType.Role)
{
return embed
.AddField(GetText(strs.name),
GetText(strs.shop_role(Format.Bold(ctx.Guild.GetRole(entry.RoleId)?.Name
@@ -422,14 +430,11 @@ public partial class Gambling
true)
.AddField(GetText(strs.price), entry.Price.ToString(), true)
.AddField(GetText(strs.type), entry.Type.ToString(), true);
}
if (entry.Type == ShopEntryType.List)
{
return embed.AddField(GetText(strs.name), entry.Name, true)
.AddField(GetText(strs.price), entry.Price.ToString(), true)
.AddField(GetText(strs.type), GetText(strs.random_unique_item), true);
}
//else if (entry.Type == ShopEntryType.Infinite_List)
// return embed.AddField(GetText(strs.name), GetText(strs.shop_role(Format.Bold(entry.RoleName)), true))

View File

@@ -211,7 +211,7 @@ public partial class Gambling
}
finally
{
_= Task.Run(async () =>
_ = Task.Run(async () =>
{
await Task.Delay(1000);
_runningUsers.Remove(ctx.User.Id);
@@ -238,7 +238,8 @@ public partial class Gambling
public static SlotResult Pull()
{
var numbers = new int[3];
for (var i = 0; i < numbers.Length; i++) numbers[i] = new NadekoRandom().Next(0, MAX_VALUE + 1);
for (var i = 0; i < numbers.Length; i++)
numbers[i] = new NadekoRandom().Next(0, MAX_VALUE + 1);
var multi = 0;
foreach (var t in _winningCombos)
{

View File

@@ -37,7 +37,8 @@ public class VoteRewardService : INService, IReadyExecutor
var http = new HttpClient(new HttpClientHandler
{
AllowAutoRedirect = false, ServerCertificateCustomValidationCallback = delegate { return true; }
AllowAutoRedirect = false,
ServerCertificateCustomValidationCallback = delegate { return true; }
});
while (true)

View File

@@ -112,7 +112,8 @@ public partial class Gambling
public partial Task Divorce([Leftover] string target)
{
var waifuUserId = _service.GetWaifuUserId(ctx.User.Id, target);
if (waifuUserId == default) return ReplyErrorLocalizedAsync(strs.waifu_not_yours);
if (waifuUserId == default)
return ReplyErrorLocalizedAsync(strs.waifu_not_yours);
return Divorce(waifuUserId);
}

View File

@@ -55,7 +55,8 @@ public class WaifuService : INService
}
else // if not, pay 10% fee
{
if (!await _cs.RemoveAsync(owner.Id, waifu.Price / 10, new("waifu", "transfer"))) return false;
if (!await _cs.RemoveAsync(owner.Id, waifu.Price / 10, new("waifu", "transfer")))
return false;
waifu.Price = (int)(waifu.Price * 0.95); // half of 10% = 5% price reduction
if (waifu.Price < settings.Waifu.MinPrice)
@@ -150,10 +151,19 @@ public class WaifuService : INService
}
else
{
uow.WaifuInfo.Add(w = new() { Waifu = waifu, Claimer = claimer, Affinity = null, Price = amount });
uow.WaifuInfo.Add(w = new()
{
Waifu = waifu,
Claimer = claimer,
Affinity = null,
Price = amount
});
uow.WaifuUpdates.Add(new()
{
User = waifu, Old = null, New = claimer, UpdateType = WaifuUpdateType.Claimed
User = waifu,
Old = null,
New = claimer,
UpdateType = WaifuUpdateType.Claimed
});
result = WaifuClaimResult.Success;
}
@@ -173,7 +183,10 @@ public class WaifuService : INService
uow.WaifuUpdates.Add(new()
{
User = w.Waifu, Old = oldClaimer, New = w.Claimer, UpdateType = WaifuUpdateType.Claimed
User = w.Waifu,
Old = oldClaimer,
New = w.Claimer,
UpdateType = WaifuUpdateType.Claimed
});
}
}
@@ -192,7 +205,10 @@ public class WaifuService : INService
uow.WaifuUpdates.Add(new()
{
User = w.Waifu, Old = oldClaimer, New = w.Claimer, UpdateType = WaifuUpdateType.Claimed
User = w.Waifu,
Old = oldClaimer,
New = w.Claimer,
UpdateType = WaifuUpdateType.Claimed
});
}
}
@@ -226,12 +242,21 @@ public class WaifuService : INService
else if (w is null)
{
var thisUser = uow.GetOrCreateUser(user);
uow.WaifuInfo.Add(new() { Affinity = newAff, Waifu = thisUser, Price = 1, Claimer = null });
uow.WaifuInfo.Add(new()
{
Affinity = newAff,
Waifu = thisUser,
Price = 1,
Claimer = null
});
success = true;
uow.WaifuUpdates.Add(new()
{
User = thisUser, Old = null, New = newAff, UpdateType = WaifuUpdateType.AffinityChanged
User = thisUser,
Old = null,
New = newAff,
UpdateType = WaifuUpdateType.AffinityChanged
});
}
else
@@ -243,7 +268,10 @@ public class WaifuService : INService
uow.WaifuUpdates.Add(new()
{
User = w.Waifu, Old = oldAff, New = newAff, UpdateType = WaifuUpdateType.AffinityChanged
User = w.Waifu,
Old = oldAff,
New = newAff,
UpdateType = WaifuUpdateType.AffinityChanged
});
}
@@ -304,7 +332,10 @@ public class WaifuService : INService
uow.WaifuUpdates.Add(new()
{
User = w.Waifu, Old = oldClaimer, New = null, UpdateType = WaifuUpdateType.Claimed
User = w.Waifu,
Old = oldClaimer,
New = null,
UpdateType = WaifuUpdateType.Claimed
});
}
@@ -316,19 +347,27 @@ public class WaifuService : INService
public async Task<bool> GiftWaifuAsync(IUser from, IUser giftedWaifu, WaifuItemModel itemObj)
{
if (!await _cs.RemoveAsync(from, itemObj.Price, new("waifu", "item"))) return false;
if (!await _cs.RemoveAsync(from, itemObj.Price, new("waifu", "item")))
return false;
await using var uow = _db.GetDbContext();
var w = uow.WaifuInfo.ByWaifuUserId(giftedWaifu.Id, set => set.Include(x => x.Items).Include(x => x.Claimer));
if (w is null)
uow.WaifuInfo.Add(w = new()
{
Affinity = null, Claimer = null, Price = 1, Waifu = uow.GetOrCreateUser(giftedWaifu)
Affinity = null,
Claimer = null,
Price = 1,
Waifu = uow.GetOrCreateUser(giftedWaifu)
});
if (!itemObj.Negative)
{
w.Items.Add(new() { Name = itemObj.Name.ToLowerInvariant(), ItemEmoji = itemObj.ItemEmoji });
w.Items.Add(new()
{
Name = itemObj.Name.ToLowerInvariant(),
ItemEmoji = itemObj.ItemEmoji
});
if (w.Claimer?.UserId == from.Id)
w.Price += (int)(itemObj.Price * _gss.Data.Waifu.Multipliers.GiftEffect);

View File

@@ -31,7 +31,11 @@ public class WheelOfFortuneGame
if (amount > 0)
await _cs.AddAsync(_userId, amount, new("wheel", "win"));
return new() { Index = result, Amount = amount };
return new()
{
Index = result,
Amount = amount
};
}
public class Result

View File

@@ -18,9 +18,18 @@ public class Betroll
var pair = _thresholdPairs.FirstOrDefault(x => x.WhenAbove < roll);
if (pair is null)
return new() { Multiplier = 0, Roll = roll };
return new()
{
Multiplier = 0,
Roll = roll
};
return new() { Multiplier = pair.MultiplyBy, Roll = roll, Threshold = pair.WhenAbove };
return new()
{
Multiplier = pair.MultiplyBy,
Roll = roll,
Threshold = pair.WhenAbove
};
}
public class Result

View File

@@ -98,7 +98,8 @@ public class Deck
/// </summary>
private void Shuffle()
{
if (CardPool.Count <= 1) return;
if (CardPool.Count <= 1)
return;
var orderedPool = CardPool.Shuffle();
CardPool ??= orderedPool.ToList();
}
@@ -128,7 +129,8 @@ public class Deck
if (cards.GroupBy(card => card.Number).Count() != cards.Count())
return false;
var toReturn = cards.Max(card => card.Number) - cards.Min(card => card.Number) == 4;
if (toReturn || cards.All(c => c.Number != 1)) return toReturn;
if (toReturn || cards.All(c => c.Number != 1))
return toReturn;
var newCards = cards.Select(c => c.Number == 1 ? new(c.Suit, 14) : c).ToArray();
return newCards.Max(card => card.Number) - newCards.Min(card => card.Number) == 4;
@@ -194,8 +196,9 @@ public class Deck
{
if (handValues is null)
InitHandValues();
foreach (var kvp in handValues.Where(x => x.Value(cards))) return kvp.Key;
foreach (var kvp in handValues.Where(x => x.Value(cards)))
return kvp.Key;
return "High card " + (cards.FirstOrDefault(c => c.Number == 1)?.GetValueText() ?? cards.Max().GetValueText());
}
@@ -203,7 +206,10 @@ public class Deck
{
private static readonly IReadOnlyDictionary<CardSuit, string> _suitToSuitChar = new Dictionary<CardSuit, string>
{
{ CardSuit.Diamonds, "♦" }, { CardSuit.Clubs, "♣" }, { CardSuit.Spades, "♠" }, { CardSuit.Hearts, "♥" }
{ CardSuit.Diamonds, "♦" },
{ CardSuit.Clubs, "♣" },
{ CardSuit.Spades, "♠" },
{ CardSuit.Hearts, "♥" }
};
private static readonly IReadOnlyDictionary<string, CardSuit> _suitCharToSuit = new Dictionary<string, CardSuit>
@@ -272,7 +278,8 @@ public class Deck
public int CompareTo(object obj)
{
if (obj is not Card card) return 0;
if (obj is not Card card)
return 0;
return Number - card.Number;
}