Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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));
            }
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
        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, "Список доступных игр:");
            }
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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));
        }