mirror of
https://github.com/barelyprofessional/KfChatDotNet.git
synced 2026-05-02 04:22:04 -04:00
fix board size, some fixes to auto cashout from cursor (#75)
* cursor fixes cursor fixes * Improve cashout condition validation Refactor cashout condition to check for success and non-empty value. * cursor cursor * Update BotServices.cs * Update board size limit from 10 to 9 Update board size limit from 10 to 9 81 characters instead of 100 12 bytes per character per powershell, down from 1200 bytes to 972 * Implement message deletion for active games Added logic to delete messages associated with active games.
This commit is contained in:
@@ -80,7 +80,8 @@ public class MinesCommand : ICommand
|
||||
return;
|
||||
}
|
||||
bool cashout = false;
|
||||
if (arguments.TryGetValue("cashout", out var cashOut)||message.Message.Contains("cashout")) cashout = true;
|
||||
if (arguments.TryGetValue("cashout", out var cashOut) && cashOut.Success && !string.IsNullOrWhiteSpace(cashOut.Value))
|
||||
cashout = true;
|
||||
|
||||
if (!Regex.IsMatch(message.Message, @"\d") && cashout) //if the message has no ints its a cashout attempt
|
||||
{
|
||||
@@ -173,9 +174,9 @@ public class MinesCommand : ICommand
|
||||
return;
|
||||
}
|
||||
int boardSize = Convert.ToInt32(size.Value);
|
||||
if (boardSize < 2 || boardSize > 10)
|
||||
if (boardSize < 2 || boardSize > 9)
|
||||
{
|
||||
await botInstance.SendChatMessageAsync($"{user.FormatUsername()}, board size must be between 2 and 10.",true, autoDeleteAfter: cleanupDelay);
|
||||
await botInstance.SendChatMessageAsync($"{user.FormatUsername()}, board size must be between 2 and 9.",true, autoDeleteAfter: cleanupDelay);
|
||||
return;
|
||||
}
|
||||
int minesCount = Convert.ToInt32(mines.Value);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json;
|
||||
using Humanizer;
|
||||
using KfChatDotNetBot.Extensions;
|
||||
using KfChatDotNetBot.Models;
|
||||
|
||||
@@ -101,9 +101,10 @@ public class KasinoMines
|
||||
for (int r = 0; r < Size; r++)
|
||||
{
|
||||
await Task.Delay(100);
|
||||
revealedSpace = false;
|
||||
|
||||
for (int c = 0; c < Size; c++)
|
||||
{
|
||||
revealedSpace = false;
|
||||
foreach (var bet in BetsPlaced)
|
||||
{
|
||||
if (bet.r == r && bet.c == c) revealedSpace = true;
|
||||
@@ -150,6 +151,7 @@ public class KasinoMines
|
||||
|
||||
await Task.Delay(TimeSpan.FromSeconds(10));
|
||||
await _kfChatBot.KfClient.DeleteMessageAsync(msg.ChatMessageId!.Value);
|
||||
LastMessageId = 0;
|
||||
|
||||
(int vertical, int horizontal) DistanceFromMine((int r, int c) coord)
|
||||
{
|
||||
@@ -291,6 +293,8 @@ public class KasinoMines
|
||||
public async Task RemoveGame(int gamblerId)
|
||||
{
|
||||
await GetSavedGames(gamblerId);
|
||||
//attempt to delete the message if its there
|
||||
if (ActiveGames[gamblerId].LastMessageId != 0) _kfChatBot.KfClient.DeleteMessage(ActiveGames[gamblerId].LastMessageId);
|
||||
ActiveGames?.Remove(gamblerId);
|
||||
await SaveActiveGames(gamblerId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user