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;
|
return;
|
||||||
}
|
}
|
||||||
bool cashout = false;
|
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
|
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;
|
return;
|
||||||
}
|
}
|
||||||
int boardSize = Convert.ToInt32(size.Value);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
int minesCount = Convert.ToInt32(mines.Value);
|
int minesCount = Convert.ToInt32(mines.Value);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using Humanizer;
|
using Humanizer;
|
||||||
using KfChatDotNetBot.Extensions;
|
using KfChatDotNetBot.Extensions;
|
||||||
using KfChatDotNetBot.Models;
|
using KfChatDotNetBot.Models;
|
||||||
|
|||||||
@@ -101,9 +101,10 @@ public class KasinoMines
|
|||||||
for (int r = 0; r < Size; r++)
|
for (int r = 0; r < Size; r++)
|
||||||
{
|
{
|
||||||
await Task.Delay(100);
|
await Task.Delay(100);
|
||||||
revealedSpace = false;
|
|
||||||
for (int c = 0; c < Size; c++)
|
for (int c = 0; c < Size; c++)
|
||||||
{
|
{
|
||||||
|
revealedSpace = false;
|
||||||
foreach (var bet in BetsPlaced)
|
foreach (var bet in BetsPlaced)
|
||||||
{
|
{
|
||||||
if (bet.r == r && bet.c == c) revealedSpace = true;
|
if (bet.r == r && bet.c == c) revealedSpace = true;
|
||||||
@@ -150,6 +151,7 @@ public class KasinoMines
|
|||||||
|
|
||||||
await Task.Delay(TimeSpan.FromSeconds(10));
|
await Task.Delay(TimeSpan.FromSeconds(10));
|
||||||
await _kfChatBot.KfClient.DeleteMessageAsync(msg.ChatMessageId!.Value);
|
await _kfChatBot.KfClient.DeleteMessageAsync(msg.ChatMessageId!.Value);
|
||||||
|
LastMessageId = 0;
|
||||||
|
|
||||||
(int vertical, int horizontal) DistanceFromMine((int r, int c) coord)
|
(int vertical, int horizontal) DistanceFromMine((int r, int c) coord)
|
||||||
{
|
{
|
||||||
@@ -291,6 +293,8 @@ public class KasinoMines
|
|||||||
public async Task RemoveGame(int gamblerId)
|
public async Task RemoveGame(int gamblerId)
|
||||||
{
|
{
|
||||||
await GetSavedGames(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);
|
ActiveGames?.Remove(gamblerId);
|
||||||
await SaveActiveGames(gamblerId);
|
await SaveActiveGames(gamblerId);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user