Пример #1
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }
            var user = Main.Api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("buychips", user.Id);
            var text = "⚜ Покупка фишек для казино:" +
                       "♣ 1 фишка = 1000 рублей" +
                       "\n" +
                       "\n ❓ Укажите количество фишек, которое Вы хотите купить.";
            var kb = new KeyboardBuilder(bot);

            kb.AddButton("❌ Назад в казино", "casino");
            sender.Text(text, msg.ChatId, kb.Build());
        }
Пример #2
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            var user        = Main.Api.Users.GetUser(msg);
            var phoneNumber = msg.Payload.Arguments[0];
            var text        = "✒ Чат с пользователем ";
            var kb          = new KeyboardBuilder(bot);

            using (var db = new Database())
            {
                var gar = db.Garages.SingleOrDefault(g => g.PhoneNumber == phoneNumber);
                if (gar is null)
                {
                    kb.AddButton("✉ К сообщениям", "messages");
                    sender.Text("❌ Пользователь не найден. Возможно он сменил номер телефона", msg.ChatId, kb.Build());
                    return;
                }


                var garage = db.Garages.Single(g => g.UserId == user.Id);
                var usr    = db.Users.Single(u => u.Id == gar.UserId);
                text += $"[{usr.Prefix}] {usr.Name}";
                ChatsTemp.Add(new ChatTemp()
                {
                    UserId = user.Id, ChatUserId = usr.Id, NumberUser = garage.PhoneNumber
                });
            }

            text += "\n❓ Напишите сообщение пользователю";
            UsersCommandHelper.GetHelper().Add("chatSend", user.Id);
            kb.AddButton("✉ К сообщениям", "messages");
            sender.Text(text, msg.ChatId, kb.Build());
        }
Пример #3
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            var user = Main.Api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("sellcar", user.Id);

            sender.Text("⌛ Укажите Id пользователя (в боте), которому хотите продать авто и цену." +
                        "\n ❓ Например: 123 10000", msg.ChatId);

            using (var db = new Database())
            {
                var carSell = new SellCar();
                carSell.Id      = db.SellCars.Count() + 1;
                carSell.CarId   = msg.Payload.Arguments[0].ToLong();
                carSell.OwnerId = user.Id;
                db.SellCars.Add(carSell);
                db.SaveChanges();
            }
        }
Пример #4
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }
            var api   = Main.Api;
            var user  = api.Users.GetUser(msg);
            var price = 500000;
            var kb    = new KeyboardBuilder(bot);

            if (user.Money < price)
            {
                kb.AddButton(ButtonsHelper.ToHomeButton());
                sender.Text("❌ У Вас недостаточно наличных денег для создания команды.", msg.ChatId, kb.Build());
                return;
            }

            UsersCommandHelper.GetHelper().Add("creategang", user.Id);
            kb.AddButton("❌ Отменить", "menu", color: KeyboardButtonColor.Negative);
            sender.Text("👥 Напишите название Вашей команды", msg.ChatId, kb.Build());
        }
Пример #5
0
        public static string Open(long userId, long count, long days)
        {
            if (count <= 0)
            {
                return("❌ Указана неверная сумма");
            }
            if (days < 1)
            {
                return("❌ Указано неверное количество дней.");
            }

            var user = Main.Api.Users.GetUserFromId(userId);

            if (user.MoneyInBank < count)
            {
                return("❌ У Вас недостаточно денег в банке.");
            }

            using (var db = new Database())
            {
                var contr = new Contribution()
                {
                    UserId   = userId,
                    CountDay = days,
                    Money    = count
                };
                db.Contributions.Add(contr);
                db.SaveChanges();
                UsersCommandHelper.GetHelper().Add("", user.Id);
                return($"✔ Вы открыли вклад на сумму {count} руб., на {days} дн.");
            }
        }
Пример #6
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            var user = Main.Api.Users.GetUser(msg);
            var text = $"⭐ Укажите, на какое количество донат рублей Вы хотите купить опыта." +
                       $"\n 💲 Ваш баланс донат рублей: {user.DonateMoney} руб." +
                       $"\n ❓ Стоимость: 1 донат рубль = 1000 опыта.";
            var kb = new KeyboardBuilder(bot);

            UsersCommandHelper.GetHelper().Add("expDonate", user.Id);
            kb.AddButton("❌ Отменить", "donate", color:  KeyboardButtonColor.Negative);
            sender.Text(text, msg.ChatId, kb.Build());
        }
Пример #7
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            var user = Main.Api.Users.GetUser(msg);
            var kb   = new KeyboardBuilder(bot);

            kb.AddButton("✉ К сообщениям", "messages");
            var text = "✒ Укажите номер телефона:";

            UsersCommandHelper.GetHelper().Add("newChatCreate", user.Id);

            sender.Text(text, msg.ChatId);
        }
Пример #8
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            var user        = Main.Api.Users.GetUser(msg);
            var customCarId = msg.Payload.Arguments[0].ToLong();
            var text        = "Укажите мощность и массу двигателя через пробел." +
                              "\n Пример: 234 2000";

            UsersCommandHelper.GetHelper().Add("expDonate", user.Id);
            TempCarAccepts.Add(new TempCarAccept()
            {
                UserId = user.Id, IsAccepted = false, CustomCarId = customCarId
            });
            sender.Text(text, msg.ChatId);
        }
Пример #9
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            var user = Main.Api.Users.GetUser(msg);
            var text = "🏎 Укажите название автомобиля." +
                       "\n ❓ Заявка на автомобиль отправляется модераторам и они подберут для Вас мощность и вес двигателя." +
                       "\n ❓ Стоимость авто: 30 донат рублей.";

            UsersCommandHelper.GetHelper().Add("carDonate", user.Id);

            var kb = new KeyboardBuilder(bot);

            kb.AddButton("↩ К донатам", "donate");

            sender.Text(text, msg.ChatId, kb.Build());
        }
Пример #10
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            var user = _api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("", user.Id);

            //проверяем: отправлял ли пользователь уже репорты
            if (ReportService.Times.Any(t => t.Id == user.Id))
            {
                var time = ReportService.Times.Single(t => t.Id == user.Id);
                if (time.Time < 0)
                {
                    sender.Text($"❌ Вы уже отправляли репорт. Подождите {time.Time} минут.", msg.ChatId);
                    return;
                }
            }

            var result = _api.Reports.AddReport(msg.Text.Replace("репорт", "").Replace("report", ""), user.Id);
            var kb     = new KeyboardBuilder(bot);

            kb.AddButton(ButtonsHelper.ToHomeButton());
            if (result)
            {
                sender.Text("✔ Ваш репор был отправлен администрации!", msg.ChatId, kb.Build());
            }
            else
            {
                sender.Text("✔ Ваше сообщение не было отправлено администрации из-за технической ошибки.", msg.ChatId, kb.Build());
            }
            ReportService.AddToTimer(user.Id);
        }
Пример #11
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }
            var user = Main.Api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("addfriend", user.Id);
            sender.Text("❓ Укажите Id (в боте) друга, мы отправим ему запрос.", msg.ChatId);
        }
Пример #12
0
        public static string PutMoney(User user, long count)
        {
            if (user.Money < count)
            {
                return($"❌ У Вас недостаточно наличных, чтобы положить их на банковский счет. \n" +
                       $"💵 У Вас наличных: {user.Money}");
            }

            if (count <= 0)
            {
                return("❌ Неверное количество");
            }
            var cash   = Main.Api.Users.RemoveMoney(user.Id, count);
            var inBank = Main.Api.Users.AddMoneyToBank(user.Id, count);

            UsersCommandHelper.GetHelper().Add("", user.Id);
            return($"✔ Вы положили деньги на банковский счет!" +
                   $"\n 💳 На счету: {inBank} руб." +
                   $"\n 💵 Наличных: {cash} руб.");
        }
Пример #13
0
        public static string Rename(User user, string name)
        {
            var api  = Main.Api;
            var gang = api.Gangs.GetGang(user.Gang);

            if (gang.Creator != user.Id)
            {
                return("❌ Вы не являетесь создателем команды!");
            }

            using (var db = new Database())
            {
                var g = db.Gangs.Single(gan => gan.Id == gang.Id);
                g.Name = name;
                db.SaveChanges();
            }

            UsersCommandHelper.GetHelper().Add("", user.Id);
            return($"✔ Имя команды изменено на {name}");
        }
Пример #14
0
        public static string Withdraw(User user, long count)
        {
            if (user.MoneyInBank < count)
            {
                return($"❌ У Вас недостаточно средств на счету для снятия. \n" +
                       $"💳 Баланс Вашего счета: {user.MoneyInBank}");
            }

            if (count <= 0)
            {
                return("❌ Указано неверное количество");
            }
            var inBank = Main.Api.Users.RemoveMoneyToBank(user.Id, count);
            var cash   = Main.Api.Users.AddMoney(user.Id, count);

            UsersCommandHelper.GetHelper().Add("", user.Id);
            return($"✔ Вы сняли с банковского счета деньги!" +
                   $"\n 💳 На счету: {inBank} руб." +
                   $"\n 💵 Наличных: {cash} руб.");
        }
Пример #15
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            var user = Main.Api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("", user.Id);
            var text = $"💳 У Вас в банке хранится {user.MoneyInBank} руб." +
                       $"\n 💵 У Вас наличных: {user.Money} руб." +
                       $"{(user.DonateMoney == 0 ? "" : $"\n 💰 У Вас донат рублей: { user.DonateMoney} руб.")}" +
                       $"\n ❓ Выберите действие на клавиатуре.";

            var kb = new KeyboardBuilder(bot);

            kb.AddButton("💸 Снять с банковского счета", "withdrawmoney", color: KeyboardButtonColor.Positive);
            kb.AddButton("💹 Положить на банковский счет", "putrawmoney", color: KeyboardButtonColor.Primary);
            kb.AddLine();
            if (user.DonateMoney > 0)
            {
                kb.AddButton("💲 Обменять донат рубли", "exchangedonate", color: KeyboardButtonColor.Positive);
                kb.AddLine();
            }

            kb.AddButton("💵 Вклад", "contribution");
            kb.AddLine();
            kb.AddButton(ButtonsHelper.ToHomeButton());

            sender.Text(text, msg.ChatId, kb.Build());
            //throw new NotImplementedException();
        }
Пример #16
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            User user = _api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("", user.Id);
            var text = "❓ Выберите раздел на клавиатуре";
            var kb   = new KeyboardBuilder(bot);

            kb.AddButton("💰 Банк", "bank");
            kb.AddButton("🏪 Магазин", "store");
            kb.AddButton("🔧 Гараж", "garage");
            kb.AddLine();
            kb.AddButton("🏁 Гонки", "race");
            kb.AddButton("👤 Профиль", "profile");
            kb.AddButton("🏫 Автошкола", "drivingschool");
            kb.AddLine();
            kb.AddButton("👥 Команда", "gang");
            kb.AddButton("🏢 Работа", "work");
            kb.AddButton("📦 Порт", "port");
            kb.AddLine();
            kb.AddButton("🎲 Казино", "casino");
            kb.AddButton("⚙ Настройки", "settings");
            kb.AddLine();
            kb.AddButton("👑 Донат", "donate", color: KeyboardButtonColor.Primary);

            sender.Text(text, msg.ChatId, kb.Build());
        }
Пример #17
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }
            var user = Main.Api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("opencontribution", user.Id);
            var kb = new KeyboardBuilder(bot);

            kb.AddButton("↩ Назад к вкладам", "contribution");
            sender.Text(" 💸 Укажите сумму и время в днях вклада", msg.ChatId);
        }
Пример #18
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            var userAnswer = _api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("", userAnswer.Id);

            if (userAnswer.Access < 4)
            {
                return;
            }
            var text    = "🚩 Неотвеченные репорты: \n";
            var reports = _api.Reports.GetReports();

            foreach (var report in reports)
            {
                text += $"▪ ID Репорта: {report.Id} \n" +
                        $"▪ Отправил: id пользователя {report.FromId}\n" +
                        $"▪ Сообщение: {report.Message} \n\n";
            }

            text += "❓ Для ответа на репорт, напишите arep <ID репорта> <Ваше сообщение> ";

            sender.Text(text, msg.ChatId);

            //throw new NotImplementedException();
        }
Пример #19
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }
            var user = Main.Api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("renamegang", user.Id);
            var kb = new KeyboardBuilder(bot);

            kb.AddButton("❌ Отменить", "gang");
            sender.Text("📃 Введите новое название Вашей команды", msg.ChatId, kb.Build());
        }
Пример #20
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }
            var user = Main.Api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("putrawmoney", user.Id);
            var text = "💳 Напишите сумму, которую хотите положить на банковский счет.";
            var kb   = new KeyboardBuilder(bot);

            kb.AddButton("Отмена", "bank", color: KeyboardButtonColor.Negative);
            sender.Text(text, msg.ChatId, kb.Build());
        }
Пример #21
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }
            var user = Main.Api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("exchangedonate", user.Id);
            var kb = new KeyboardBuilder(bot);

            kb.AddButton("↩ Назад в банк", "bank");
            sender.Text($"💲 Напишите сумму донат-рублей, которую Вы хотите перевести в рубли." +
                        $"\n 🛒 Курс обмена: 1 донат рубль = 5.000 руб." +
                        $"\n 💰 Ваш баланс: {user.DonateMoney}", msg.ChatId, kb.Build());
        }
Пример #22
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            var user = Main.Api.Users.GetUser(msg);
            var text = "Доступные запросы: ";
            var kb   = new KeyboardBuilder(bot);

            using (var db = new Database())
            {
                var customCars = db.CustomCars.Where(c => c.IsModerate);
                foreach (var customCar in customCars)
                {
                    text += $"\n ID: {customCar.Id} | Name: {customCar.Name}";
                    kb.AddButton($"{customCar.Id}", "customCarsActions", new List <string>()
                    {
                        $"{customCar.Id}"
                    });
                    kb.AddLine();
                }
            }

            kb.AddButton(ButtonsHelper.ToHomeButton());
            UsersCommandHelper.GetHelper().Add("customCarsAdmin", user.Id);
            sender.Text(text, msg.ChatId, kb.Build());
        }
Пример #23
0
        public static string Create(string name, long creator)
        {
            try
            {
                var api  = Main.Api;
                var gang = api.Gangs.CreateGang(creator, name);

                using (var db = new Database())
                {
                    var user = db.Users.Single(u => u.Id == creator);
                    user.Gang   = gang.Id;
                    user.Money -= 500000;
                    db.SaveChanges();
                }

                UsersCommandHelper.GetHelper().Add("", creator);
                return($"👥 Команда {name} создана!");
            }
            catch
            {
                UsersCommandHelper.GetHelper().Add("", creator);
                return("❌ Мы не смогли создать команду из-за системной ошибки!");
            }
        }
Пример #24
0
        public static string Exchange(Message msg, long count)
        {
            var user = Main.Api.Users.GetUser(msg);

            if (user.DonateMoney < count)
            {
                return($"❌ На Вашем счету недостаточно донат рублей." +
                       $"\n 💰 Ваш баланс донат рублей: {user.DonateMoney}");
            }

            if (count <= 0)
            {
                return("❌ Неверное число");
            }
            var api = Main.Api;

            var donateMoney = api.Users.RemoveDonateMoney(user.Id, count);
            var money       = api.Users.AddMoney(user.Id, count * 5000);

            UsersCommandHelper.GetHelper().Add("", user.Id);
            return($"✔ Вы обменяли донат рубли!" +
                   $"\n 💵 Ваш баланс: {money} руб." +
                   $"\n 💰 Ваш баланс донат рублей: {donateMoney} руб.");
        }
Пример #25
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            var text = "❓ Напишите номер региона, который Вы хотите иметь.";
            var user = Main.Api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("buycarnumber", user.Id);
            var kb = new KeyboardBuilder(bot);

            kb.AddButton("↩ Назад в магазин", "otherstore");
            sender.Text(text, msg.ChatId);
        }
Пример #26
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            var kb = new KeyboardBuilder(bot);

            if (sender.Platform == MessengerPlatform.Vkontakte)
            {
                if (msg.ChatId > 2000000000)
                {
                    var t = "❌ Заходить в раздел гонок можно только в личных сообщениях.";

                    kb.AddButton(ButtonsHelper.ToHomeButton());
                    sender.Text(t, msg.ChatId, kb.Build());
                    return;
                }
            }

            var user = Main.Api.Users.GetUser(msg);

            if (user.OnWork)
            {
                sender.Text("❌ Вы не можете идти в гонку, пока находитесь на работе, дождитесь завершения и возвращайтесь!", msg.ChatId);
                return;
            }

            var garage = Main.Api.Garages.GetGarage(user.Id);

            if (!garage.IsPhone)
            {
                var t = "❌ Для участия в гонках необходим телефон. Загляните в магазин!";

                kb.AddButton("🏪 Перейти в магазин", "store");
                sender.Text(t, msg.ChatId, kb.Build());
                return;
            }


            if (msg.Payload.Arguments is null)
            {
                var text = "🏁 Ваши последние 6 друзей:";

                var friends = FriendsHelper.GetFriends(user.Friends);

                int counter  = 0;
                int counter2 = 0;
                foreach (var friend in friends)
                {
                    if (counter2 >= 6)
                    {
                        break;
                    }
                    var frd = Main.Api.Users.GetUserFromId(friend);
                    text += $"\n [{frd.Prefix}] {frd.Name} (ур. {frd.Level})";
                    kb.AddButton($"{frd.Name}", "raceFriendStart", new List <string>()
                    {
                        $"{frd.Id}"
                    });
                    counter++;
                    counter2++;
                    if (counter == 2)
                    {
                        kb.AddLine();
                        counter = 0;
                    }
                }

                kb.AddButton("➕ Указать Id друга вручную", "racefriend", new List <string>()
                {
                    "123"
                });
                sender.Text(text, msg.ChatId, kb.Build());
            }
            else
            {
                var text = "🏁 Укажите id (в боте) своего друга (друг должен быть в списке Ваших друзей).";

                kb.AddButton("↩ Вернуться в меню гонок", "race");
                if (user.Race != 0)
                {
                    text = "❌ А ну стоять. Ты уже находишься в гонке!";
                    kb.AddLine();
                    kb.AddButton("❌ Отменить гонку", "racestop");
                }
                else
                {
                    UsersCommandHelper.GetHelper().Add("racefriend", user.Id);
                }
                sender.Text(text, msg.ChatId, kb.Build());
            }
        }
Пример #27
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            var  user       = Main.Api.Users.GetUser(msg);
            var  garage     = Main.Api.Garages.GetGarage(user.Id);
            var  car        = CarsHelper.GetHelper().GetCarFromId(long.Parse(msg.Payload.Arguments[0]));
            var  text       = string.Empty;
            var  kb         = new KeyboardBuilder(bot);
            bool isAvalible = true;

            if (user.Money < car.Price)
            {
                text = $"❌ У Вас недостаточно наличных на покупку этого автомобиля." +
                       $"\n 💵 Ваш баланс: {user.Money}";
                isAvalible = false;
            }


            if ((garage.ParkingPlaces - garage.Cars.Split(";").Length - 1) <= 0)
            {
                text = $"❌ У Вас недостаточно парковочных мест в гараже. Освободите место и попробуйте ещё раз!";
                kb.AddButton("🔧 Перейти в гараж", "garage");
                kb.AddLine();
                isAvalible = false;
            }

            if (isAvalible)
            {
                Main.Api.Users.RemoveMoney(user.Id, car.Price);
                using (var db = new Database())
                {
                    car.Id = db.Cars.Count() + 1;

                    var engine = new Engine();
                    engine.Id     = db.Engines.Count() + 1;
                    engine.Name   = car.Manufacturer + " " + car.Model;
                    engine.Power  = car.Power;
                    engine.Weight = car.Weight;
                    engine.CarId  = car.Id;
                    db.Engines.Add(engine);

                    car.Engine = engine.Id;
                    car.Health = 100;
                    db.Cars.Add(car);

                    var gar = db.Garages.Single(g => g.UserId == user.Id);
                    gar.Engines = gar.Engines + $"{engine.Id};";
                    gar.Cars    = gar.Cars + $"{car.Id};";
                    db.SaveChanges();
                }
                text = $"🚗 Поздравляем с покупкой! Ваш новенький {car.Manufacturer} {car.Model} уже стоит в гараже!" +
                       $"\n ❗ Теперь укажите номер региона для автомобильного номера:";

                UsersCommandHelper.GetHelper().Add("buycarnumber", user.Id);
            }
            else
            {
                kb.AddButton("🚘 Перейти в автосалон", "autostore");
            }


            sender.Text(text, msg.ChatId, kb.Build());
        }
Пример #28
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            var user = Main.Api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("", user.Id);
            var nickname = string.Empty;
            var array    = msg.Text.Split(" ");

            for (int i = 1; i < array.Length; i++)
            {
                nickname += $"{array[i]}";
            }
            //msg.Text.Replace("nick", "").Replace("ник", "").Replace("никнейм", "");

            var text      = string.Empty;
            var isAvaible = true;

            if (nickname.Length < 4)
            {
                text      = "❌ Вы не можете установить меньше четырех символов";
                isAvaible = false;
            }

            if (user.Access == 0 && nickname.Length > 15)
            {
                text      = "❌ Вы не можете установить ник длинее 15 символов.";
                isAvaible = false;
            }

            if ((user.Access == 1 || user.Access == 2) && nickname.Length > 20)
            {
                text      = "❌ Вы не можете установить ник длинее 20 символов.";
                isAvaible = false;
            }

            if ((user.Access == 3 || user.Access == 4 || user.Access == 5) && nickname.Length > 25)
            {
                text      = "❌ Вы не можете установить ник длинее 25 символов.";
                isAvaible = false;
            }

            if (isAvaible)
            {
                var result = Main.Api.Users.SetNickname(user, nickname);
                if (result)
                {
                    text = $"✔ Ваш никнейм успешно сменен на {nickname}";
                }
                else
                {
                    text = $"❌ Мы не смогли сменить никнейм из-за системной ошибки.";
                }
            }

            var kb = new KeyboardBuilder(bot);

            kb.AddButton(ButtonsHelper.ToHomeButton());
            sender.Text(text, msg.ChatId, kb.Build());
        }
Пример #29
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            var user    = Main.Api.Users.GetUser(msg);
            var command = UsersCommandHelper.GetHelper().Get(user.Id);

            //TODO: написать с использованием команд-менеджера.
            var text = string.Empty;

            if (command == "")
            {
                if (msg.ChatId > 2000000000)
                {
                    return;
                }
                sender.Text("❌ Неизвестная команда", msg.ChatId);
                return;
            }
            else if (command == "putrawmoney")
            {
                long count;
                try
                {
                    count = long.Parse(msg.Text);
                    text  = PutCommand.PutMoney(user, count);
                }
                catch
                {
                    text = "❌ Вы ввели неверное число. Попробуйте ещё раз.";
                }
            }
            else if (command == "withdrawmoney")
            {
                long count;
                try
                {
                    count = long.Parse(msg.Text);
                    text  = WithdrawCommand.Withdraw(user, count);
                }
                catch
                {
                    text = "❌ Вы ввели неверное число. Попробуйте ещё раз.";
                }
            }
            else if (command == "exchangedonate")
            {
                long count;
                try
                {
                    count = long.Parse(msg.Text);
                    text  = ExchangeDonateCommand.Exchange(msg, count);
                }catch
                {
                    text = "❌ Вы ввели неверное число. Попробуйте ещё раз.";
                }
            }
            else if (command == "creategang")
            {
                text = CreateCommand.Create(msg.Text, user.Id);
            }
            else if (command == "renamegang")
            {
                text = RenameCommand.Rename(user, msg.Text);
            }
            else if (command == "opencontribution")
            {
                try
                {
                    var array = msg.Text.Split(" ");

                    var count = long.Parse(array[0]);
                    var days  = long.Parse(array[1]);
                    text = OpenContributionCommand.Open(user.Id, count, days);
                }
                catch
                {
                    text = "❌ Вы указали неверные числа";
                }
            }
            else if (command == "racefriend")
            {
                try
                {
                    var array = msg.Text.Split(" ");
                    var id    = long.Parse(array[0]);
                    text = RaceFriendCommand.RunFriendBattle(user.Id, id, sender, bot, msg);
                }catch
                {
                    text = "Вы указали неверный id";
                }
            }
            else if (command == "addfriend")
            {
                try
                {
                    text = AddFriendCommand.AddFriend(user, msg.Text.ToLong(), sender);
                }
                catch
                {
                    text = "❌ Вы указали неверный Id.";
                }
            }
            else if (command == "removefriend")
            {
                try
                {
                    text = RemoveFriendCommand.RemoveFriend(user, msg.Text.ToLong());
                }
                catch
                {
                    text = "❌ Вы указали невеный Id.";
                }
            }
            else if (command == "sellcar")
            {
                try
                {
                    var array  = msg.Text.Split(" ");
                    var idUser = long.Parse(array[0]);
                    var price  = long.Parse(array[1]);

                    text = SellCarCommand.Sell(user, idUser, sender, price);
                }catch
                {
                    text = "❌ Произошла ошибка.";
                }
            }
            else if (command == "buycarnumber")
            {
                try
                {
                    var region = long.Parse(msg.Text);
                    if (region < 1 || region > 999)
                    {
                        text = "❌ Регион находится за пределом допустимого значения.";
                    }
                    else
                    {
                        text = BuyCarNumberCommand.BuyNumber(user, region);
                    }
                }
                catch
                {
                    text = "❌ Произошла ошибка.";
                }
            }
            else if (command == "sellnumber")
            {
                try
                {
                    var array  = msg.Text.Split(" ");
                    var idUser = long.Parse(array[0]);
                    var price  = long.Parse(array[1]);

                    text = SellNumberCommand.Sell(user, idUser, sender, price);
                }catch
                {
                    text = "❌ Произошла ошибка.";
                }
            }
            else if (command == "buychips")
            {
                try
                {
                    var count = msg.Text.ToLong();
                    text = BuyChipsCommand.BuyChips(user, count);
                }
                catch
                {
                    text = "❌ Произошла ошибка.";
                }
            }
            else if (command == "exchangechips")
            {
                try
                {
                    var count = msg.Text.ToLong();
                    text = ExchangeChipsCommand.ExchangeChips(user, count);
                }
                catch
                {
                    text = "❌ Произошла ошибка.";
                }
            }
            else if (command == "vipDonateBuy")
            {
                try
                {
                    var count = msg.Text.ToLong();
                    text = ExpDonateCommand.BuyExp(count, user);
                }
                catch
                {
                    text = "❌ Произошла ошибка.";
                }
            }
            else if (command == "carDonate")
            {
                try
                {
                    text = CarDonateCommand.CreateCar(msg.Text, user);
                }
                catch
                {
                    text = "❌ Произошла ошибка.";
                }
            }
            else if (command == "expDonate")
            {
                try
                {
                    var array  = msg.Text.Split(" ");
                    var power  = long.Parse(array[0]);
                    var weight = long.Parse(array[1]);

                    text = AcceptCustomCarCommand.SetParams(power, weight, user, sender);
                }catch
                {
                    text = "❌ Произошла ошибка.";
                }
            }
            else if (command == "customNumber")
            {
                try
                {
                    var number = msg.Text.ToLong();
                    text = BuyOtherItemCommand.CustomNumber(number.ToString(), user);
                }
                catch
                {
                    text = "❌ Произошла ошибка.";
                }
            }
            else if (command == "chatSend")
            {
                try
                {
                    var textMsg = msg.Text;
                    text = ChatCommand.Send(textMsg, user, sender);
                }
                catch (Exception e)
                {
                    text = $"❌ Произошла ошибка. {e}";
                }
            }
            else if (command == "newChatCreate")
            {
                try
                {
                    var number = msg.Text;
                    text = NewChatCommand.CreateChat(number, user, sender, bot);
                }
                catch
                {
                    text = "❌ Произошла ошибка.";
                }
            }

            var kb = new KeyboardBuilder(bot);

            kb.AddButton(ButtonsHelper.ToHomeButton());
            sender.Text(text, msg.ChatId, kb.Build());
            // UsersCommandHelper.GetHelper().Add("", user.Id);
        }
Пример #30
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            var api    = Main.Api;
            var item   = long.Parse(msg.Payload.Arguments[0]);
            var user   = api.Users.GetUser(msg);
            var garage = api.Garages.GetGarage(user.Id);
            var text   = string.Empty;

            if (item == 1)
            {
                if (garage.IsPhone)
                {
                    text = "❌ У Вас уже куплен телефон.";
                }
                else
                {
                    if (user.Money < 5000)
                    {
                        text = "❌ У Вас недостаточно наличных денег.";
                    }
                    else
                    {
                        text = "✔ Вы купили телефон";
                        api.Users.RemoveMoney(user.Id, 2500);
                        api.Garages.SetPhone(user.Id, true);
                    }
                }
            }
            else if (item == 2)
            {
                api.Users.RemoveMoney(user.Id, 500);

                using (var db = new Database())
                {
                    var gar = db.Garages.Single(g => g.UserId == user.Id);
                    var r   = new Random();
                    gar.PhoneNumber = $"{r.Next(100000, 999999)}";
                    db.SaveChanges();
                    text = $"✔ Вы купили сим карту. Ваш номер телефона: {gar.PhoneNumber}";
                }
            }
            else if (item == 3)
            {
                text = "❓ Укажите желаемый номер телефона (6 цифр):";
                UsersCommandHelper.GetHelper().Add("customNumber", user.Id);
            }

            var kb = new KeyboardBuilder(bot);

            kb.AddButton("↩ Назад в магазин", "otherstore");
            sender.Text(text, msg.ChatId, kb.Build());
        }