private void UncorrectMaxPlayersCallback(Message message, TelegramBotClient Bot, object arg) { var user = UserDatabase.GetUser(message.Chat.Id); if (message.Text == "« Назад в главное меню") { user.CommandRegex = LocalUser.DefaultRegex; CommandsCenter.GetMenu("StartMenu").ShowAsync(message.Chat.Id, Bot, "", true); return; } else { var menu = new ReplyMenu("", true, new KeyboardButton[][] { new KeyboardButton[] { new KeyboardButton("« Назад в главное меню") } }); Bot.SendTextMessageAsync(message.Chat.Id, "*Неверное количество*. Укажите максимальное количество игроков (4-19 игроков):", ParseMode.Markdown, false, false, 0, menu.Keyboard); } }
private void UncorrectNameCallback(Message message, TelegramBotClient Bot, object arg) { var user = UserDatabase.GetUser(message.Chat.Id); if (message.Text == "« Назад в главное меню") { user.CommandRegex = LocalUser.DefaultRegex; CommandsCenter.GetMenu("StartMenu").ShowAsync(message.Chat.Id, Bot, "", true); return; } else { var menu = new ReplyMenu("", true, new KeyboardButton[][] { new KeyboardButton[] { new KeyboardButton("« Назад в главное меню") } }); Bot.SendTextMessageAsync(message.Chat.Id, "*Слишком длинное название игры!* Введите название игры (до 20 символов):", ParseMode.Markdown, false, false, 0, menu.Keyboard); } }
private async void CreateGameCallback(Message message, TelegramBotClient Bot, object arg) { var user = UserDatabase.GetUser(message.Chat.Id); if (user.User.ActiveGameId != null) { await Bot.SendTextMessageAsync(message.Chat.Id, "Вы уже участвуете в игре. Закончите предыдущую игру или введите команду /exit", ParseMode.Markdown); return; } else { var menu = new ReplyMenu("", true, new KeyboardButton[][] { new KeyboardButton[] { new KeyboardButton("« Назад в главное меню") } }); await Bot.SendTextMessageAsync(message.Chat.Id, "Введите *название* игры (до 20 символов):", ParseMode.Markdown, false, false, 0, menu.Keyboard); user.CommandRegex = (new Regex(".{0,20}"), new ReplyCallback(CorrectNameCallback), new ReplyCallback(UncorrectNameCallback)); } }
private void GameNotFound(Message message, TelegramBotClient bot, LocalUser user) { var menu = new ReplyMenu("", true, new KeyboardButton[][] { new KeyboardButton[] { new KeyboardButton("« Назад в главное меню") }, new KeyboardButton[] { new KeyboardButton("🌃 Создать игру") } }); bot.SendTextMessageAsync(message.Chat.Id, "Сначала создайте игру, чтобы её настроить", ParseMode.Markdown, false, false, 0, menu.Keyboard); return; }
private async void JoinGameCallback(Message message, TelegramBotClient Bot, object arg) { var user = UserDatabase.GetUser(message.Chat.Id); if (user.User.ActiveGameId != null) { await Bot.SendTextMessageAsync(message.Chat.Id, "Вы уже участвуете в игре. Закончите предыдущую игру или введите команду /exit", ParseMode.Markdown); return; } var games = service.Games.GetAllGamesAsync().Result.Select(g => g.ToGameRoom()) .ToArray(); if (!games.Any()) { var menu = new ReplyMenu("", true, new KeyboardButton[][] { new KeyboardButton[] { new KeyboardButton("« Назад в главное меню") }, new KeyboardButton[] { new KeyboardButton("🌃 Создать игру") } }); await Bot.SendTextMessageAsync(message.Chat.Id, "Список игр *пуст* ", ParseMode.Markdown, false, false, 0, menu.Keyboard); return; } else { await new GamesListGenerator(games).GenerateMenu().ShowAsync(message.Chat.Id, Bot, "Список доступных игр:"); } }
protected override Task Default() { var replyMenu = new ReplyMenu { Text = "Main menu", Keyboard = new ReplyKeyboardMarkup(new[] { new[] { new KeyboardButton("Create document") }, new[] { new KeyboardButton("My documents") } }, true) }; viewModel.SendReplyKeyboard?.Execute(replyMenu); return(Task.CompletedTask); }
private void CorrectNameCallback(Message message, TelegramBotClient Bot, object arg) { var user = UserDatabase.GetUser(message.Chat.Id); user.GameRoomCreation = new GameRoomCreation() { Name = message.Text, AdminId = message.Chat.Id }; var menu = new ReplyMenu("", true, new KeyboardButton[][] { new KeyboardButton[] { new KeyboardButton("« Назад в главное меню") } }, user.GameRoomCreation.ToString()); menu.ShowAsync(message.Chat.Id, Bot, "Укажите *максимальное количество игроков* игры (4-19 игроков):", true); user.CommandRegex = (new Regex("[4-9]|([1][1-9])"), new ReplyCallback(CorrectMaxPlayersCallback), new ReplyCallback(UncorrectMaxPlayersCallback)); }