public async Task KnbSinglePlayerCommand(CommandContext ctx) { await ctx.TriggerTypingAsync(); var result = KnbGame.Play(); var response = FormKnbResultResponse(result, ctx.User.Mention, "Бот"); try { await ctx.RespondAsync(response); } catch (Exception e) { Console.WriteLine(e.Message); } }
public async Task KnbMultiPlayerCommand(CommandContext ctx) { await ctx.TriggerTypingAsync(); if (KnbState == null) { KnbState = new KnbState(ctx.Member, new CancellationTokenSource()); await ctx.RespondAsync($"Player 1 = {KnbState.FirstPlayer.Mention}. Ждем второго игрока {KnbSessionWaitTime} секунд. Для присоединения напишите !knb2p."); await Task.Run(() => ResetPlayer(ctx, TimeSpan.FromSeconds(KnbSessionWaitTime), KnbState.Cts.Token)); return; } else { KnbState.Cts.Cancel(); if (KnbState.FirstPlayer.Id == ctx.Member.Id) { await ctx.RespondAsync("Необходим второй игрок! Игровая сессия отменена."); } else { var result = KnbGame.Play(); var response = FormKnbResultResponse(result, KnbState.FirstPlayer.Mention, ctx.User.Mention); try { await ctx.RespondAsync(response); } catch (Exception e) { Console.WriteLine(e.Message); } } KnbState = null; } }