示例#1
0
        /// <summary>
        ///     Выход из очереди на любую игру
        /// </summary>
        /// <param name="userId">UserId пользователя</param>
        /// <param name="messageId">MessageId сообщения, которое отправляется пользователю, когда он вступает в очередь на игру</param>
        public static void ExitTurn(string userId, int messageId)
        {
            var flag = false;

            for (var i = 0; i < TurnWaitPlayer.Length; i++)
            {
                var info = GameBotOnline.CheckIndex(userId, TurnWaitPlayer[i]);
                if (info[1] != -1)
                {
                    TurnWaitPlayer[i][info[0]].Users.RemoveAt(info[1]);
                    if (TurnWaitPlayer[i][info[0]].Users.Count == 0)
                    {
                        TurnWaitPlayer[i].RemoveAt(info[0]);
                    }
                    flag = true;
                    break;
                }
            }

            if (flag)
            {
                Program.Bot.SendTextMessageAsync(userId, "Вы успешно вышли из очереди!",
                                                 replyMarkup: Keyboards.Keyboard);
                Program.Bot.DeleteMessageAsync(userId, messageId);
            }
        }
示例#2
0
        /// <summary>
        ///     Обработка сообщений пользователей
        /// </summary>
        /// <param name="message">Сообщение пользователя</param>
        public void PerformMessage(Message message)
        {
            var ask = new GameBotOnline().CheckGame(message.Chat.Id.ToString());

            if (ask != null)
            {
                if (message.Text.ToLower() == "!стоп")
                {
                    GameBotOnline.Quits[ask.NumberGame](message, ask);
                }
                else if (ask.NumberGame != 2)
                {
                    GameDo[ask.NumberGame](message, ask).Wait();
                }
            }
            else if (!CheckingInTurnGamePersonal(message.From.Id.ToString()))
            {
                var a = ":();'!, .?".ToCharArray();
                switch (message.Text.ToLower().Trim(a).Split(' ')[0])
                {
                case "/start":
                    Start(message.From.Id.ToString());
                    break;

                case "общаться":
                    new Anonymchat().NewSession(message.Chat.Id.ToString(), message.From.FirstName,
                                                Anonymchat.Answers, Anonymchat.NumberGame, 0, -1).Wait();
                    break;

                case "быкануть":
                    BullAndCows.AddUsers(message.From.Id);
                    break;

                case "выйти":
                    ExitTurn(message.From.Id.ToString(), message.MessageId);
                    break;

                case "занулить":
                    new CrossZero().NewSession(message.From.Id.ToString(), message.From.FirstName,
                                               CrossZero.Answers, CrossZero.NumberGame, 0, -1).Wait();
                    break;

                case "дурак":
                    new Durak().Start(message);
                    break;

                case "поддержка":
                    Program.Bot.SendTextMessageAsync(message.Chat.Id,
                                                     "Если обнаружите какой-то баг в играх - отпишите мне @palyon\n\n Приятного использования :)",
                                                     replyMarkup: Keyboards.Keyboard);
                    break;
                }
            }
        }
示例#3
0
        /// <summary>
        ///     Проверка пользователя на нахождение в очереди на игру.
        /// </summary>
        /// <param name="you">UserId пользователя</param>
        /// <returns>True, если пользователь находится в очереди ожидания соперника.</returns>
        private static bool CheckingInTurnGamePersonal(string you)
        {
            for (var i = 0; i < TurnWaitPlayer.Length; i++)
            {
                var info = GameBotOnline.CheckIndex(you, TurnWaitPlayer[i]);
                if (info[1] != -1)
                {
                    return(true);
                }
            }

            return(false);
        }