Exemplo n.º 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 text = "❓ Выберите раздел на клавиатуре";
            var kb   = new KeyboardBuilder(bot);

            kb.AddButton("🚗 Автомобили", "autostore");
            kb.AddButton("🔧 Гаражи", "garagestore");
            kb.AddButton("🏢 Бизнесы", "businessstore");
            kb.AddLine();
            kb.AddButton("♻ Разное", "otherstore");
            kb.AddLine();
            kb.AddButton(ButtonsHelper.ToHomeButton());

            sender.Text(text, msg.ChatId, kb.Build());
            // throw new NotImplementedException();
        }
Exemplo n.º 2
0
 public EditableListBox()
 {
     InitializeComponent();
     listboxHelper = new ListboxHelper(listbox);
     textboxHelper = new TextboxHelper(textbox);
     buttonsHelper = new ButtonsHelper(new Button[5] { buttonSort, buttonUp, buttonDown, buttonAdd, buttonRemove });
 }
Exemplo n.º 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);

            using (var db = new Database())
            {
                var us = db.Users.Single(u => u.Id == user.Id);
                us.SubOnNews = false;
                db.SaveChanges();
            }
            var kb = new KeyboardBuilder(bot);

            kb.AddButton(ButtonsHelper.ToHomeButton());
            sender.Text("✔ Вы отписались от рассылки.", msg.ChatId, kb.Build());
        }
Exemplo n.º 4
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            var user = Main.Api.Users.GetUser(msg);
            var text = "💎 Донат:" +
                       "\n 💸 Валюта - 1 донат рубль = 1 Российкий рубль." +
                       "\n ⭐ Опыт - 1000 опыта = 1 донат рубль." +
                       "\n 🏆 VIP - 49 донат рублей." +
                       "\n 🏎 Кастомный авто - 123 донат рублей.";

            var kb = new KeyboardBuilder(bot);

            kb.AddButton("💸 Валюта", "moneyDonate", new List <string>()
            {
                "0"
            });
            kb.AddLine();
            kb.AddButton("⭐ Опыт", "expDonate", new List <string>()
            {
                "0"
            });
            kb.AddLine();
            kb.AddButton("🏆 VIP", "vipDonate", new List <string>()
            {
                "0"
            });
            kb.AddLine();
            kb.AddButton("🏎 Кастомный авто", "carDonate", new List <string>()
            {
                "0"
            });
            kb.AddLine();
            kb.AddButton(ButtonsHelper.ToHomeButton());
            sender.Text(text, msg.ChatId, kb.Build());
        }
Exemplo n.º 5
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 kb   = new KeyboardBuilder(bot);

            kb.AddButton("🚕 Таксист", "taxiwork");
            kb.AddButton("🚚 Дальнобойщик", "truckerwork");
            kb.AddLine();
            kb.AddButton("🚌 Водитель автобуса", "busdriverwork");
            kb.AddButton("📦 Курьер", "courierwork");
            kb.AddLine();
            // kb.AddButton("🚂 Машинист поезда", "traindriverwork");
            // kb.AddLine();
            kb.AddButton(ButtonsHelper.ToHomeButton());
            sender.Text(text, msg.ChatId, kb.Build());
        }
 void UpdateButtons(object sender, EventArgs args)
 {
     timer.Stop();
     ButtonsHelper.RadioButtonUpdate(m_identifyButton);
     ButtonsHelper.RadioButtonUpdate(m_singleModeButton);
     ButtonsHelper.RadioButtonUpdate(m_multipleModeButton);
 }
Exemplo n.º 7
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);
            var kb   = new KeyboardBuilder(bot);

            if (user.SubOnNews)
            {
                kb.AddButton("📰 Отписаться от рассылки", "unsubNewsLetter", color: KeyboardButtonColor.Negative);
            }
            else
            {
                kb.AddButton("📰 Подписаться на рассылку", "subOnNewsLetter", color: KeyboardButtonColor.Positive);
            }

            kb.AddLine();
            kb.AddButton(ButtonsHelper.ToHomeButton());

            sender.Text(text, msg.ChatId, kb.Build());
        }
Exemplo n.º 8
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());
        }
Exemplo n.º 9
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            var user = Main.Api.Users.GetUser(msg);
            var text = string.Empty;
            var kb   = new KeyboardBuilder(bot);

            if (msg.Payload.Arguments[0] == "0")
            {
                text = "👑 VIP привелегия:" +
                       "\n ❓ У вас появится возможность:" +
                       "\n ✒ Максимально символов в нике - 20." +
                       "\n 💳 Вклады в банке до 75 млн." +
                       "\n 📱 Кастомный номер телефона" +
                       "\n ⭐ Получение X2 опыта в гонках" +
                       "\n 💰 Получение Х2 приза в гонках" +
                       "\n" +
                       "\n ✔ Цена: 45 донат рублей.";
                kb = new KeyboardBuilder(bot);
                kb.AddButton("💲 Купить", "vipDonate", new List <string>()
                {
                    "1"
                }, color: KeyboardButtonColor.Positive);
                kb.AddLine();
            }
            else
            {
                if (user.DonateMoney < 45)
                {
                    text = "❌ У Вас недостаточно донат рублей для покупки.";
                }
                else
                {
                    if (user.Access >= 1)
                    {
                        text = "❌ У Вас уже куплен VIP или привлегия выше.";
                    }
                    else
                    {
                        using (var db = new Database())
                        {
                            var usr = db.Users.Single(u => u.Id == user.Id);
                            usr.DonateMoney -= 45;
                            usr.Access       = 1;
                            usr.Prefix       = "VIP";
                            db.SaveChanges();
                        }

                        text = "👑 Поздравляю с покупкой! Вы теперь VIP!";
                    }
                }
            }

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

            sender.Text(text, msg.ChatId, kb.Build());
        }
Exemplo n.º 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 = Main.Api.Users.GetUser(msg);
            var text = "🚗 Автошкола." +
                       $"{(user.DriverLicense != "" ? $"\n📃 Ваши категории прав: {user.DriverLicense}" : "")}" +
                       "\n ❓ Выберите категорию на клавиатуре ниже";

            var kb = new KeyboardBuilder(bot);

            if (!(user.DriverLicense.Split(",").Any(s => s == "A")))
            {
                kb.AddButton("A (1.000 руб.)", "catA", new List <string> {
                    "0", "0", "0"
                });
            }
            if (!(user.DriverLicense.Split(",").Any(s => s == "B")))
            {
                kb.AddButton("B (3.500 руб.)", "catB", new List <string> {
                    "0", "0", "0"
                });
            }
            if (!(user.DriverLicense.Split(",").Any(s => s == "A" || s == "B")))
            {
                kb.AddLine();
            }
            if (!(user.DriverLicense.Split(",").Any(s => s == "C")))
            {
                kb.AddButton("C (8.500 руб.)", "catC", new List <string> {
                    "0", "0", "0"
                });
            }
            if (!(user.DriverLicense.Split(",").Any(s => s == "D")))
            {
                kb.AddButton("D (10.000 руб.)", "catD", new List <string> {
                    "0", "0", "0"
                });
            }
            if (!(user.DriverLicense.Split(",").Any(s => s == "C" || s == "D")))
            {
                kb.AddLine();
            }
            kb.AddButton(ButtonsHelper.ToHomeButton());
            sender.Text(text, msg.ChatId, kb.Build());
        }
Exemplo n.º 11
0
 public EditableListBox()
 {
     InitializeComponent();
     listboxHelper = new ListboxHelper(listbox);
     textboxHelper = new TextboxHelper(textbox);
     buttonsHelper = new ButtonsHelper(new Button[5] {
         buttonSort, buttonUp, buttonDown, buttonAdd, buttonRemove
     });
 }
Exemplo n.º 12
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 kb   = new KeyboardBuilder(bot);

            kb.AddButton("🏁 В раздел гонок", "race");
            kb.AddLine();
            kb.AddButton(ButtonsHelper.ToHomeButton());


            if (user.Race <= 0)
            {
                sender.Text($"❌ У Вас нет новых запросов на гонку", msg.ChatId, kb.Build());
                return;
            }

            using (var db = new Database())
            {
                var race = db.Races.FirstOrDefault(r => r.Enemy == user.Id && r.IsRequest == true);
                race.IsRequest = false;
                race.Winner    = -1;
                var  helper  = new UsersHelper();
                var  creator = db.Users.Single(u => u.Id == race.Creator);
                long chatId  = 0;

                if (sender.Platform == MessengerPlatform.Vkontakte)
                {
                    chatId = creator.VkId;
                }
                else
                {
                    chatId = creator.TgId;
                }

                creator.Race = 0;

                sender.Text($"🏁 Пользователь {helper.GetLink(creator)} отклонил ваше предложение!", chatId, kb.Build());

                db.SaveChanges();
            }

            sender.Text($"✔ Вы не приняли гонку", msg.ChatId, kb.Build());
        }
Exemplo n.º 13
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 text = string.Empty;
            var kb   = new KeyboardBuilder(bot);

            if (user.Gang == 0)
            {
                text = "❌ Вы не являетесь участником команды. Но Вы можете создать свою!";
                kb.AddButton("➕ Создать команду (500.000 руб.)", "creategang");
                kb.AddLine();
                kb.AddButton(ButtonsHelper.ToHomeButton());
                sender.Text(text, msg.ChatId, kb.Build());
                return;
            }

            var gang        = api.Gangs.GetGang(user.Gang);
            var creatorUser = api.Users.GetUserFromId(gang.Creator);
            var helper      = new UsersHelper();
            var creatorLink = helper.GetLink(creatorUser);

            text = $"👥 Название команды: {gang.Name}" +
                   $"\n 🔝 ID: {gang.Id}" +
                   $"\n ⭐ Основатель: {creatorLink}" +
                   $"\n 📖 Участники:";

            foreach (var m in gang.Members)
            {
                var member = api.Users.GetUserFromId(m);
                text += $"\n ▶ {helper.GetLink(member)}";
            }

            kb.AddButton("🔁 Переименовать команду", "renamegang");
            kb.AddLine();
            kb.AddButton("💱 Передать команду", "transfergang");
            kb.AddLine();
            kb.AddButton("❌ Удалить команду", "deletegang", color: KeyboardButtonColor.Negative);
            kb.AddLine();
            kb.AddButton(ButtonsHelper.ToHomeButton());
            sender.Text(text, msg.ChatId, kb.Build());
        }
Exemplo n.º 14
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);
            Skills skills;

            using var db = new Database();
            try
            {
                skills = db.Skillses.Single(u => u.UserId == user.Id);
            }
            catch
            {
                skills        = new Skills();
                skills.UserId = user.Id;
                db.Skillses.Add(skills);
                db.SaveChanges();
            }

            var text = string.Empty;

            var helper = new UsersHelper();

            text = $"🎮 Навыки пользователя {helper.GetLink(user)}";
            if (skills.Driving != 0)
            {
                text += $"\n🚕 Вождение автомобиля: {skills.Driving} уровень.";
            }

            if (skills.Driving == 0)
            {
                text += "🤔 У Вас нет никаких навыков.";
            }

            var kb = new KeyboardBuilder(bot);

            kb.AddButton("🧨 Улучшить навыки", "skillupgrate");
            kb.AddLine();
            kb.AddButton(ButtonsHelper.ToHomeButton());
            sender.Text(text, msg.ChatId, kb.Build());
        }
Exemplo n.º 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);
            var kb   = new KeyboardBuilder(bot);

            kb.AddButton(ButtonsHelper.ToHomeButton());
            if (user.BusinessIds == "")
            {
                sender.Text($"🤨 У вас нет ни одного бизнеса.", msg.ChatId, kb.Build());
                return;
            }

            var textBusiness = "";
            var ids          = user.BusinessIds.Split(",");

            if (ids.Any(w => w == "1"))
            {
                var count = ids.Count(w => w == "1");
                textBusiness += $"\n⚙ Шиномонтаж: Количество: {count} Доход - {100 * count} руб./час";
            }

            if (ids.Any(w => w == "2"))
            {
                var count = ids.Count(w => w == "2");
                textBusiness += $"\n🚗 Автомойка:  Количество: {count} Доход - {100 * count} руб./час";
            }

            if (ids.Any(w => w == "3"))
            {
                var count = ids.Count(w => w == "3");

                textBusiness += $"\n🔧 Автосервис: Количество: {count} Доход - {100 * count} руб./час";
            }
            sender.Text($"🏢 Ваши бизнесы:\n {textBusiness}", msg.ChatId, kb.Build());
        }
Exemplo n.º 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;
            }

            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);
        }
Exemplo n.º 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 numberId = long.Parse(msg.Payload.Arguments[1]);
            var carId    = long.Parse(msg.Payload.Arguments[0]);

            using (var db = new Database())
            {
                var car = db.Cars.Single(c => c.Id == carId);
                if (car.Number != 0)
                {
                    var num = db.NumbersCars.Single(n => n.Id == car.Number);
                    num.CarId = 0;
                }
                car.Number = numberId;
                var number = db.NumbersCars.Single(n => n.Id == numberId);
                if (number.CarId != 0)
                {
                    var ca = db.Cars.Single(c => c.Id == number.CarId);
                    ca.Number = 0;
                }
                number.CarId = car.Id;
                db.SaveChanges();
            }

            var kb = new KeyboardBuilder(bot);

            kb.AddButton(ButtonsHelper.ToHomeButton());
            sender.Text("✔ Номер успешно установлен", msg.ChatId, kb.Build());
        }
Exemplo n.º 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 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();
        }
Exemplo n.º 19
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());
        }
Exemplo n.º 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 money = msg.Payload.Arguments[0].ToLong();
            var user  = Main.Api.Users.GetUser(msg);

            Main.Api.Users.AddMoney(user.Id, money);
            var kb = new KeyboardBuilder(bot);

            kb.AddButton(ButtonsHelper.ToHomeButton());
            sender.Text($"💰 Вы продали содержимое контейнера за {money}  руб.", msg.ChatId, kb.Build());
        }
Exemplo n.º 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);

            if (user.OnWork)
            {
                sender.Text("❌ Вы уже на работе, дождитесь завершения и возвращайтесь!", msg.ChatId);
                return;
            }
            var text = "⌛ Выберите время поездки:";
            var kb   = new KeyboardBuilder(bot);

            if (!user.DriverLicense.Contains("A"))
            {
                text = "❌ Для того, чтобы работать курьером, Вам необходимы права категории A.";
                kb.AddButton(ButtonsHelper.ToHomeButton());
                sender.Text(text, msg.ChatId, kb.Build());
                return;
            }

            if (msg.Payload.Arguments != null)
            {
                var time = msg.Payload.Arguments[0].ToLong();
                text = $"✔ Вы устроились на работу курьера. Вы освободитесь через: {time} минут";
                kb.AddButton(ButtonsHelper.ToHomeButton());
                sender.Text(text, msg.ChatId, kb.Build());

                using (var db = new Database())
                {
                    var u = db.Users.Single(uu => uu.Id == user.Id);
                    u.OnWork = true;
                    db.SaveChanges();
                }
                Task.Run(() =>
                {
                    Thread.Sleep(TimeSpan.FromMinutes(time));

                    using (var db = new Database())
                    {
                        var u    = db.Users.Single(uu => uu.Id == user.Id);
                        u.OnWork = false;
                        db.SaveChanges();
                    }

                    text = $"✔ Вы закончили работу курьера.\n" +
                           $"💰 Вы заработали: {time * 1000} руб.";
                    Main.Api.Users.AddMoney(user.Id, time * 1000);
                    sender.Text(text, msg.ChatId, kb.Build());
                });
            }
            else
            {
                kb.AddButton("⌚ 10 Минут", "courierwork", new List <string>()
                {
                    "10"
                });
                kb.AddButton("⌚ 15 Минут", "courierwork", new List <string>()
                {
                    "15"
                });
                kb.AddLine();
                kb.AddButton("⌚ 30 Минут", "courierwork", new List <string>()
                {
                    "30"
                });
                kb.AddButton("⌚ 1 Час", "courierwork", new List <string>()
                {
                    "60"
                });
                kb.AddLine();
                kb.AddButton("↩ Назад к списку работы", "work");
                sender.Text(text, msg.ChatId, kb.Build());
            }
        }
Exemplo n.º 22
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;
            }

            Models.Race race        = null;
            User        userEnemy   = null;
            User        userCreator = null;

            Models.Garage garageEnemy        = null;
            Models.Garage garageCreator      = null;
            var           kb                 = new KeyboardBuilder(bot);
            Car           carCreator         = null;
            Car           carEnemy           = null;
            bool          sendMessageToEnemy = true;
            bool          isBot              = false;
            bool          isFriendStart      = false;

            if (msg.Payload.Arguments.Count == 0)
            {
                if (msg.Payload.Arguments[0] == "222")
                {
                    isFriendStart = true;
                }
                userEnemy = Main.Api.Users.GetUser(msg);
                if (userEnemy.OnWork)
                {
                    sender.Text("❌ Вы не можете идти в гонку, пока находитесь на работе, дождитесь завершения и возвращайтесь!", msg.ChatId);
                    return;
                }
                //Пользователь принимает гонку.
                isBot = false;
                using (var db = new Database())
                {
                    try
                    {
                        race = db.Races.FirstOrDefault(r => r.Enemy == userEnemy.Id && r.IsRequest == true);
                    }catch
                    {
                        kb.AddButton(ButtonsHelper.ToHomeButton());
                        sender.Text("❌ Ваш противник уже отменил гонку!", msg.ChatId, kb.Build());
                        var a = db.Users.Single(u => u.Id == userEnemy.Id);
                        a.Race = 0;
                        db.SaveChanges();
                        return;
                    }

                    if (race is null)
                    {
                        kb.AddButton(ButtonsHelper.ToHomeButton());
                        sender.Text("❌ Мы не смогли найти эту гонку в базе данных.", msg.ChatId, kb.Build());
                        var a = db.Users.Single(u => u.Id == userEnemy.Id);
                        a.Race = 0;
                        db.SaveChanges();
                        return;
                    }

                    userCreator   = db.Users.Single(u => u.Id == race.Creator);
                    garageCreator = db.Garages.Single(g => g.UserId == userCreator.Id);
                    carCreator    = db.Cars.Single(c => c.Id == garageCreator.SelectCar);

                    race.IsRequest = false;
                    garageEnemy    = db.Garages.Single(g => g.UserId == userEnemy.Id);
                    var usrE = db.Users.Single(u => u.Id == userEnemy.Id);
                    carEnemy  = db.Cars.Single(c => c.Id == garageEnemy.SelectCar);
                    usrE.Race = race.Id;
                    db.SaveChanges();
                }
            }
            else
            {
                //если какой-то тип
                var typeRace = msg.Payload.Arguments[0].ToLong();
                if (typeRace == 1) //если это быстрая гонка
                {
                    var enemyId = msg.Payload.Arguments[1].ToLong();

                    race           = new Models.Race();
                    userCreator    = Main.Api.Users.GetUser(msg);
                    garageCreator  = Main.Api.Garages.GetGarage(userCreator.Id);
                    race.Creator   = userCreator.Id;
                    race.Enemy     = enemyId;
                    race.IsRequest = false;

                    using (var db = new Database())
                    {
                        carCreator = db.Cars.Single(c => c.Id == garageCreator.SelectCar);
                        race.Id    = db.Races.Count() + 1;
                        db.Races.Add(race);
                        db.SaveChanges();
                    }



                    if (enemyId == -2) //генерим бота
                    {
                        sendMessageToEnemy = false;
                        isBot          = true;
                        userEnemy      = new User();
                        userEnemy.Id   = -2;
                        userEnemy.Name = "Бот без имени";

                        garageEnemy           = new Models.Garage();
                        carEnemy              = new Car();
                        carEnemy.Id           = -2;
                        carEnemy.Manufacturer = "abc";
                        carEnemy.Model        = "def";

                        var r = new Random();

                        int a = r.Next(1, 3);

                        carEnemy.Power = a == 2 ? carCreator.Power + 1 : carCreator.Power - 1;

                        int b = r.Next(1, 3);
                    }
                    else
                    {
                        using (var db = new Database())
                        {
                            userEnemy   = db.Users.Single(u => u.Id == enemyId);
                            garageEnemy = db.Garages.Single(g => g.UserId == enemyId);
                            carEnemy    = db.Cars.Single(c => c.Id == garageEnemy.SelectCar);
                        }
                    }
                }
            }

            long enemyChatId   = 0;
            long creatorChatId = 0;

            if (sender.Platform == Fooxboy.NucleusBot.Enums.MessengerPlatform.Vkontakte)
            {
                if (sendMessageToEnemy && !isBot)
                {
                    enemyChatId = userEnemy.VkId;
                }
                creatorChatId = userCreator.VkId;
            }
            else
            {
                if (sendMessageToEnemy && !isBot)
                {
                    enemyChatId = userEnemy.TgId;
                }
                creatorChatId = userCreator.TgId;
            }
            if (sendMessageToEnemy && !isBot)
            {
                Task.Run(() => sender.Text($"🏁 Гонка с игроком {userCreator.Name} на автомобиле {carCreator.Manufacturer} {carCreator.Model} ({carCreator.Number}) началась! Не переходите по разделам во время гонки", enemyChatId));
            }
            Task.Run(() => sender.Text($"🏁 Гонка с игроком {userEnemy.Name} на автомобиле {carEnemy.Manufacturer} {carEnemy.Model} ({carEnemy.Number}) началась! Не переходите по разделам во время гонки", creatorChatId));


            Task.Run(() =>
            {
                Thread.Sleep(TimeSpan.FromSeconds(5));
                long scoreCreator = 0;
                long scoreEnemy   = 0;
                if (carEnemy.Power > carCreator.Power)
                {
                    scoreEnemy += 5;
                }
                else
                {
                    scoreCreator += 5;
                }

                if (carEnemy.Weight > carCreator.Weight)
                {
                    scoreCreator += 3;
                }
                else
                {
                    scoreEnemy += 3;
                }

                Skills skillsCretor = null;
                Skills skillsEnemy  = null;

                using (var db = new Database())
                {
                    try
                    {
                        skillsCretor = db.Skillses.Single(s => s.UserId == userCreator.Id);
                    }
                    catch
                    {
                        skillsCretor = new Skills();
                    }

                    try
                    {
                        if (isBot)
                        {
                            //генерируем рандомный скилл
                            skillsEnemy         = new Skills();
                            var r               = new Random();
                            int i               = r.Next(1, 3);
                            skillsEnemy.Driving = i == 2? skillsCretor.Driving - 1 : skillsCretor.Driving + 1;
                        }
                        else
                        {
                            skillsEnemy = db.Skillses.Single(s => s.UserId == userEnemy.Id);
                        }
                    }
                    catch
                    {
                        if (isBot)
                        {
                            //генерируем рандомный скилл
                            skillsEnemy         = new Skills();
                            skillsEnemy.Driving = 0;
                        }
                        else
                        {
                            skillsEnemy = new Skills();
                        }
                    }
                }

                //тут считаем навыки

                scoreCreator += skillsCretor.Driving;
                scoreEnemy   += skillsEnemy.Driving;

                var winner = scoreEnemy > scoreCreator ? userEnemy : userCreator;

                using (var db = new Database())
                {
                    var raceLocal = db.Races.Single(r => r.Id == race.Id);
                    if (raceLocal.Winner != 0)
                    {
                        winner = db.Users.Single(u => u.Id == raceLocal.Winner);
                    }
                    raceLocal.Winner = winner.Id;

                    if (winner.Id != -2)
                    {
                        if (!isFriendStart)
                        {
                            //Добавляем опыта и денег победителю.
                            var winnerLocal = db.Users.Single(u => u.Id == winner.Id);
                            int factor      = 1;
                            if (winnerLocal.Access >= 1)
                            {
                                factor = 2;
                            }
                            winnerLocal.Money += (winnerLocal.Level * factor * 50);
                            winnerLocal.Score += (10 * factor);
                        }
                    }
                    var usr1 = db.Users.Single(u => u.Id == raceLocal.Creator);
                    var gar1 = db.Garages.Single(u => u.UserId == usr1.Id);
                    var car1 = db.Cars.Single(c => c.Id == carCreator.Id);
                    //gar1.Fuel = gar1.Fuel - 5;
                    car1.Health = car1.Health - 5;
                    if (!isBot)
                    {
                        var usr2 = db.Users.Single(u => u.Id == raceLocal.Enemy);
                        var gar2 = db.Garages.Single(u => u.UserId == usr2.Id);
                        var car2 = db.Cars.Single(c => c.Id == carEnemy.Id);
                        // gar2.Fuel = gar2.Fuel - 5;
                        car2.Health = car2.Health - 5;
                        usr2.Race   = 0;
                    }
                    usr1.Race = 0;
                    db.SaveChanges();
                }

                if (winner.Id != -2)
                {
                    Task.Run(() =>
                    {
                        var kb1 = new KeyboardBuilder(bot);
                        kb1.AddButton("🏁 Назад в гонки", "race");
                        var t = isFriendStart
                            ? "🎉 Поздравляю с победой  над своим другом!"
                            : $"🎉 Поздравляю с победой! Вы получили: 💵 {(winner.Access >=1? $"{winner.Level *50 *2}": $"{winner.Level * 50}")} рублей и ⭐ {(winner.Access >=1? $"{10 *2}": $"{10}")} опыта";
                        sender.Text(
                            t,
                            winner.Id == userEnemy.Id ? enemyChatId : creatorChatId, kb1.Build());

                        sender.Text($"🏁 Вы проиграли в этой гонке.", winner.Id == userEnemy.Id ? creatorChatId : enemyChatId, kb1.Build());
                    });
                }
Exemplo n.º 23
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);
        }
Exemplo n.º 24
0
        public void Init(IBot bot, ILoggerService logger)
        {
            _items = new List <ItemsContainer>();
            _items.Add(new ItemsContainer()
            {
                Item = "Недорогая одежда", Price = new Random().Next(1000, 3500), Weight = 12
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Дорогая одежда", Price = new Random().Next(50000, 150000), Weight = 25
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Удочка", Price = new Random().Next(5000, 10000), Weight = 2
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Телевизор", Price = new Random().Next(10000, 35000), Weight = 5
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Холодильник", Price = new Random().Next(25000, 50000), Weight = 30
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Картина", Price = new Random().Next(4000, 5000), Weight = 1
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Пианино", Price = new Random().Next(50000, 50002), Weight = 45
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Оружие", Price = new Random().Next(20000, 35000), Weight = 10
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Компьютер", Price = new Random().Next(20000, 40000), Weight = 5
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Телефон", Price = new Random().Next(15000, 30000), Weight = 1
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Сейф с деньгами", Price = new Random().Next(10000, 100000), Weight = 25
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Серебро", Price = new Random().Next(35000, 35002), Weight = 1
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Золото", Price = new Random().Next(250000, 2500000), Weight = 1
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Лодка", Price = new Random().Next(20000, 20005), Weight = 10
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Двигатель", Price = new Random().Next(70000, 200000), Weight = 200
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Колесо", Price = new Random().Next(10000, 10005), Weight = 4
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Рояль", Price = new Random().Next(700000, 1500000), Weight = 55
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Чемодан", Price = 3000, Weight = 2
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Шкаф", Price = 20000, Weight = 15
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Коллекция монет", Price = 34000, Weight = 5
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Золотые украшения", Price = 65000, Weight = 2
            });
            _items.Add(new ItemsContainer()
            {
                Item = "Металлолом", Price = 1950, Weight = 15
            });


            Containers = new List <Container>();
            var c1 = _items[Convert.ToInt32(new Random().Next(0, _items.Count()))];
            var c2 = _items[Convert.ToInt32(new Random().Next(0, _items.Count()))];
            var c3 = _items[Convert.ToInt32(new Random().Next(0, _items.Count()))];

            Containers.Add(new Container()
            {
                Country = "Россия", LastNamePrice = "Новый", Name = "без имени", Prize = c1.Price, Price = 1000, UserId = 0, Items = c1.Item, Weight = c3.Weight
            });
            Containers.Add(new Container()
            {
                Country = "Россия", LastNamePrice = "Новый", Name = "без имени", Prize = c2.Price, Price = 1000, UserId = 0, Items = c2.Item, Weight = c3.Weight
            });
            Containers.Add(new Container()
            {
                Country = "Россия", LastNamePrice = "Новый", Name = "без имени", Prize = c3.Price, Price = 1000, UserId = 0, Items = c3.Item, Weight = c3.Weight
            });
            Time = 5;
            Task.Run((() =>
            {
                while (true)
                {
                    Thread.Sleep(TimeSpan.FromMinutes(1));
                    if (Time < 1)
                    {
                        Time = 5;

                        foreach (var container in Containers)
                        {
                            var winner = container.UserId;
                            if (winner != 0)
                            {
                                using (var db = new Database())
                                {
                                    var text = string.Empty;
                                    var kb = new KeyboardBuilder(bot);
                                    var user = db.Users.Single(u => u.Id == winner);
                                    if (user.Money < container.Price)
                                    {
                                        text = "❌ У Вас недостаточно денег, для выкупа контейнера.";
                                    }
                                    user.Money -= container.Price;
                                    text = "✔ Вы открыли контейнер! Вам выпало:";
                                    text += $"\n 📦 {container.Items} " +
                                            $"\n 💸 На сумму {container.Prize}";
                                    kb.AddButton("💰 Продать все ", "sellContainer", new List <string>()
                                    {
                                        container.Prize.ToString()
                                    });
                                    kb.AddLine();
                                    kb.AddButton(ButtonsHelper.ToHomeButton());

                                    //TODO: выдаем кэш.

                                    if (user.VkId != 0)
                                    {
                                        if (_sender.Platform == MessengerPlatform.Vkontakte)
                                        {
                                            _sender.Text(text, user.VkId, kb.Build());
                                        }
                                    }
                                    db.SaveChanges();
                                }
                            }
                        }

                        Containers.Clear();
                        Containers.Add(new Container()
                        {
                            Country = "Россия", LastNamePrice = "Новый", Name = "без имени", UserId = 0, Price = 1000
                        });
                        Containers.Add(new Container()
                        {
                            Country = "Россия", LastNamePrice = "Новый", Name = "без имени", UserId = 0, Price = 1000
                        });
                        Containers.Add(new Container()
                        {
                            Country = "Россия", LastNamePrice = "Новый", Name = "без имени", UserId = 0, Price = 1000
                        });
                    }
                    Time -= 1;
                }
            }));
        }
Exemplo n.º 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 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());
        }
Exemplo n.º 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 text = string.Empty;

            var garage = Main.Api.Garages.GetGarage(msg);

            var kb = new KeyboardBuilder(bot);

            if (sender.Platform == Fooxboy.NucleusBot.Enums.MessengerPlatform.Vkontakte)
            {
                if (msg.ChatId > 2000000000)
                {
                    text = "❌ Заходить в раздел гонок можно только в личных сообщениях.";
                    kb.AddButton(ButtonsHelper.ToHomeButton());
                    sender.Text(text, msg.ChatId, kb.Build());
                    return;
                }
            }

            if (garage.IsPhone)
            {
                if (garage.SelectCar <= 0)
                {
                    text = "❌ Вы не выбрали автомобиль для гонок, перейдите в гараж.";
                    kb.AddButton("🔧 В гараж", "garage");
                }
                else
                {
                    text = "❓ Выберите действие на клавиатуре.";
                    kb.AddButton("📱 Открыть телефон", "openphone");
                    kb.AddLine();
                    kb.AddButton("🏁 Быстрая гонка", "racefast", new List <string>()
                    {
                        "0"
                    });
                    kb.AddLine();
                    kb.AddButton("🎭 Гонка с другом", "racefriend");
                    kb.AddLine();
                    kb.AddButton(ButtonsHelper.ToHomeButton());
                }
            }
            else
            {
                text = "❌ Для участия в гонках нужен телефон. Зайдите в магазин за ним!";
                kb.AddButton("🏪 Перейти в магазин", "store");
            }

            sender.Text(text, msg.ChatId, kb.Build());
        }
Exemplo n.º 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 api               = Main.Api;
            var user              = api.Users.GetUser(msg);
            var q                 = int.Parse(msg.Payload.Arguments[0]);
            var response          = long.Parse(msg.Payload.Arguments[1]);
            var countTrueResponse = long.Parse(msg.Payload.Arguments[2]);
            var text              = string.Empty;
            var kb                = new KeyboardBuilder(bot);

            if (q == 5)
            {
                kb.AddButton(ButtonsHelper.ToHomeButton());
                if (countTrueResponse < 4)
                {
                    sender.Text($"❌ Вы провалили экзамен! Вы ответили на {countTrueResponse} вопросов из 5", msg.ChatId, kb.Build());
                }
                else
                {
                    using (var db = new Database())
                    {
                        var userDb = db.Users.Single(u => u.Id == user.Id);
                        userDb.DriverLicense += "D,";
                        db.SaveChanges();
                    }
                    text = "✔ Вы получили права категории D!";
                    sender.Text(text, msg.ChatId, kb.Build());
                }

                return;
            }

            if (q != 0)
            {
                var backQuestion = Questions[q - 1];
                if (response == backQuestion.Response)
                {
                    countTrueResponse += 1;
                }
            }
            else
            {
                api.Users.RemoveMoney(user.Id, 10000);
            }
            var question = Questions[q];

            text += $"❗| Вопрос №{q + 1}";
            text += $"\n❓| {question.Question}";
            int counter = 0;

            foreach (var resp in question.Responses)
            {
                counter++;
                text += $"\n ▶ {counter}) {resp}";
            }

            kb.AddButton($"{q} - Ответ 1", "catD", new List <string>()
            {
                $"{q + 1}", "1", countTrueResponse.ToString()
            });
            kb.AddButton($"{q} - Ответ 2", "catD", new List <string>()
            {
                $"{q + 1}", "2", countTrueResponse.ToString()
            });
            kb.AddLine();
            kb.AddButton($"{q} - Ответ 3", "catD", new List <string>()
            {
                $"{q + 1}", "3", countTrueResponse.ToString()
            });
            kb.AddButton($"{q} - Ответ 4", "catD", new List <string>()
            {
                $"{q + 1}", "4", countTrueResponse.ToString()
            });

            kb.AddLine();
            kb.AddButton("❌ Отменить экзамен", "drivingschool", color: KeyboardButtonColor.Negative);

            kb.SetOneTime();


            sender.Text(text, msg.ChatId, kb.Build());
        }
Exemplo n.º 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);
            var promocodetext = string.Empty;

            try
            {
                promocodetext = msg.Text.Split(" ")[1];
            }
            catch
            {
                sender.Text("Вы не указали промокод. Пример: промокод 1234", msg.ChatId);
                return;
            }

            var text = string.Empty;
            var kb   = new KeyboardBuilder(bot);

            kb.AddButton(ButtonsHelper.ToHomeButton());
            using (var db = new Database())
            {
                var promocode = db.Promocodes.SingleOrDefault(p => p.Text == promocodetext);
                if (promocode is null)
                {
                    text = "❌ Такого промокода не существует.";
                }
                else
                {
                    if (promocode.IsActivate)
                    {
                        text = "❌ Данный промокод был уже активирован.";
                    }
                    else
                    {
                        var usr = db.Users.Single(u => u.Id == user.Id);
                        usr.DonateMoney += promocode.DonateMoney;
                        usr.Money       += promocode.Money;
                        usr.Score       += promocode.Experience;

                        text = "✔ Вы активировали промокод. Вы получили:";
                        if (promocode.DonateMoney != 0)
                        {
                            text += $"\n💰 Донат рублей: {promocode.DonateMoney}";
                        }
                        if (promocode.Money != 0)
                        {
                            text += $"\n💵 Рублей: {promocode.Money}";
                        }
                        if (promocode.Experience != 0)
                        {
                            text += $"\n🌟 Опыт: {promocode.Experience}";
                        }

                        promocode.IsActivate = true;

                        db.SaveChanges();
                    }
                }
            }

            sender.Text(text, msg.ChatId, kb.Build());
        }
Exemplo n.º 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;
            }

            _sender = sender;
            var text    = $"📦 Порт с контейнерами (новые через {Time} мин.):";
            int counter = 1;

            foreach (var container in Containers)
            {
                text += $"\n 📦 Контейнер #{counter}:" +
                        $"\n 🏳 Страна: {container.Country}" +
                        $"\n ⚖ Вес: {container.Weight} " +
                        $"\n 💰 Ставка: {container.Price} руб. от {container.LastNamePrice}" +
                        $"\n";
                counter++;
            }

            var kb = new KeyboardBuilder(bot);

            kb.AddButton($"📦 #1 ({Containers[0].Price + 1000} руб.)", "port", new List <string>()
            {
                "0"
            });
            kb.AddLine();
            kb.AddButton($"📦 #2 ({Containers[1].Price + 1000} руб.)", "port", new List <string>()
            {
                "1"
            });
            kb.AddLine();
            kb.AddButton($"📦 #3 ({Containers[2].Price + 1000} руб.)", "port", new List <string>()
            {
                "2"
            });
            kb.AddLine();
            kb.AddButton("🔃 Обновить", "port");
            kb.AddLine();
            kb.AddButton(ButtonsHelper.ToHomeButton());

            if (msg.Payload.Arguments != null)
            {
                var number    = Int32.Parse(msg.Payload.Arguments[0]);
                var container = Containers[number];

                var user = Main.Api.Users.GetUser(msg);
                if (Containers.Any(c => c.UserId == user.Id))
                {
                    sender.Text("❌ Вы можете сделать только одну ставку.", msg.ChatId);
                    return;
                }

                var price = container.Price + 1000;
                if (user.Money < price)
                {
                    sender.Text("❌ У Вас недостаточно денег для ставки.", msg.ChatId);
                }
                else
                {
                    container.Price         = price;
                    container.LastNamePrice = user.Name;
                    container.UserId        = user.Id;
                    sender.Text("✔ Вы сделали ставку", msg.ChatId);
                }
            }

            sender.Text(text, msg.ChatId, kb.Build());
        }
        DispatcherTimer timer; //this is a hack to be able to update the buttons correctly

        public UIPadsController(wgssSTU.UsbDevices m_usbDevices, Canvas lcanvas, Grid root, StackPanel tbar,
                                CONFIG config, Window w)
        {
            timer = new DispatcherTimer();
            timer.Stop();
            timer.Interval = TimeSpan.FromMilliseconds(30);
            timer.Tick    += UpdateButtons;

            PadPixelHeight = 117;
            PadPixelWidth  = 100;
            canvas         = lcanvas;
            LayoutRoot     = root;
            m_bitmapRes    = new List <BitmapResource>();
            m_padsUI       = new List <UIPadHandle>();
            m_padsControl  = new List <PadHandle>();

            tbar.Height = 60;
            //////////////////////////////////////////////
            m_identifyButton           = new RadioButton();
            m_identifyButton.GroupName = "Identify";
            m_identifyButton.Height    = tbar.Height - 6;

            Image       im  = new Image();
            BitmapImage bmp = new BitmapImage();

            bmp.BeginInit();
            bmp.UriSource = new Uri(@"pictures/move.png", UriKind.Relative);
            //bmp.DecodePixelHeight = (int)(m_identifyButton.Height * 2*DpiInfo.GetDpi());
            bmp.EndInit();

            im.SnapsToDevicePixels = true;
            im.UseLayoutRounding   = true;
            im.Source = bmp;

            m_identifyButton.Content     = im;
            m_identifyButton.MouseEnter += delegate { ButtonsHelper.RadioButtonUpdate(m_identifyButton); };
            m_identifyButton.MouseLeave += delegate { ButtonsHelper.RadioButtonUpdate(m_identifyButton); };

            tbar.Children.Add(m_identifyButton);

            m_identifyButton.Click  += delegate { IdentifyButtonClick(); };
            m_identifyButton.ToolTip = "Position and identify pads";

            ////////////////////////////////////////////////////////////////

            Separator sep = new Separator();

            sep.SetResourceReference(Control.StyleProperty, "VerticalSeparatorStyle");

            tbar.Children.Add(sep);


            /////////////////////////////////////////////
            m_singleModeButton = new RadioButton();
            //m_identifyButton.GroupName = "Selection Mode";
            m_singleModeButton.Height = tbar.Height - 6;


            m_singleModeButton.MouseEnter += delegate
            {
                ButtonsHelper.RadioButtonUpdate(m_singleModeButton);
                ButtonsHelper.RadioButtonUpdate(m_multipleModeButton);
            };
            m_singleModeButton.MouseLeave += delegate
            {
                ButtonsHelper.RadioButtonUpdate(m_singleModeButton);
                ButtonsHelper.RadioButtonUpdate(m_multipleModeButton);
            };

            RadioGifControl gifSingle = new RadioGifControl("pictures/select_singleBIG.gif", m_singleModeButton);

            m_singleModeButton.MouseEnter += delegate { gifSingle.Play(); };
            m_singleModeButton.MouseLeave += delegate { gifSingle.Stop(); };

            tbar.Children.Add(m_singleModeButton);

            m_singleModeButton.ToolTip = "Select single pad";
            m_singleModeButton.Click  += delegate
            {
                ChangeSelectionMode(m_singleModeButton, new EventArgs());
            };


            //////////////////////////////////////////////

            m_multipleModeButton = new RadioButton();
            //m_multipleModeButton.GroupName = "Selection Mode";
            m_multipleModeButton.Height = tbar.Height - 6;

            m_multipleModeButton.MouseEnter += delegate
            {
                ButtonsHelper.RadioButtonUpdate(m_multipleModeButton);
                ButtonsHelper.RadioButtonUpdate(m_singleModeButton);
            };
            m_multipleModeButton.MouseLeave += delegate
            {
                ButtonsHelper.RadioButtonUpdate(m_multipleModeButton);
                ButtonsHelper.RadioButtonUpdate(m_singleModeButton);
            };


            RadioGifControl gifMultiple = new RadioGifControl("pictures/select_multipleBIG.gif", m_multipleModeButton);

            m_multipleModeButton.MouseEnter += delegate { gifMultiple.Play(); };
            m_multipleModeButton.MouseLeave += delegate { gifMultiple.Stop(); };

            tbar.Children.Add(m_multipleModeButton);
            m_multipleModeButton.ToolTip = "Select multiple pads";


            m_multipleModeButton.Click += delegate
            {
                ChangeSelectionMode(m_multipleModeButton, new EventArgs());
            };

            ///////////////////////////////////////////////

            for (int i = 0; i < m_usbDevices.Count; i++)
            {
                m_padsControl.Add(new PadHandle(this, m_usbDevices[i], m_state, i));
            }

            loadBitmaps();

            if (m_usbDevices.Count != 0)
            {
                loadPads(m_usbDevices);
                noOverlappingOnStart();
            }

            m_state = AppState.Selection_Mode;
            m_singleModeButton.IsChecked = true;
            IdentifyButtonClick();
            SetConfig(config);
        }
Exemplo n.º 31
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);

            if (user.OnWork)
            {
                sender.Text("❌ Вы уже на работе, дождитесь завершения и возвращайтесь!", msg.ChatId);
                return;
            }
            var text = "⌛ Доступные заказы:";
            var r    = new Random();

            var index1 = r.Next(0, Items.Count);
            var index2 = r.Next(0, Items.Count);
            var index3 = r.Next(0, Items.Count);
            var index4 = r.Next(0, Items.Count);

            text += $"🚚 1. Перевоз: {Items[index1].Item} весом {Items[index1].Weight} тонн на расстояние {Items[index1].Distance} за {Items[index1].Money} руб. за {Items[index1].Time} минут.";
            text += $"🚚 2. Перевоз: {Items[index2].Item} весом {Items[index2].Weight} тонн на расстояние {Items[index2].Distance} за {Items[index2].Money} руб. за {Items[index2].Time} минут.";
            text += $"🚚 3. Перевоз: {Items[index3].Item} весом {Items[index3].Weight} тонн на расстояние {Items[index3].Distance} за {Items[index3].Money} руб. за {Items[index3].Time} минут.";
            text += $"🚚 4. Перевоз: {Items[index4].Item} весом {Items[index4].Weight} тонн на расстояние {Items[index4].Distance} за {Items[index4].Money} руб. за {Items[index4].Time} минут.";

            var kb = new KeyboardBuilder(bot);

            if (!user.DriverLicense.Contains("C"))
            {
                text = "❌ Для того, чтобы работать дальнобойщиком, Вам необходимы права категории C.";
                kb.AddButton(ButtonsHelper.ToHomeButton());
                sender.Text(text, msg.ChatId, kb.Build());
                return;
            }

            if (msg.Payload.Arguments != null)
            {
                var time = msg.Payload.Arguments[0].ToLong();
                text = $"✔ Вы устроились на работу дальнобойщика. Вы освободитесь через: {time} минут";
                kb.AddButton(ButtonsHelper.ToHomeButton());
                sender.Text(text, msg.ChatId, kb.Build());

                using (var db = new Database())
                {
                    var u = db.Users.Single(uu => uu.Id == user.Id);
                    u.OnWork = true;
                    db.SaveChanges();
                }
                Task.Run(() =>
                {
                    Thread.Sleep(TimeSpan.FromMinutes(time));

                    using (var db = new Database())
                    {
                        var u    = db.Users.Single(uu => uu.Id == user.Id);
                        u.OnWork = false;
                        db.SaveChanges();
                    }

                    text = $"✔ Вы закончили работу дальнобойщика.\n" +
                           $"💰 Вы заработали: {time * 1100} руб.";
                    Main.Api.Users.AddMoney(user.Id, time * 1100);
                    sender.Text(text, msg.ChatId, kb.Build());
                });
            }
            else
            {
                kb.AddButton("🚚 1", "truckerwork", new List <string>()
                {
                    $"{Items[index1].Time}"
                });
                kb.AddButton("🚚 2", "truckerwork", new List <string>()
                {
                    $"{Items[index2].Time}"
                });
                kb.AddLine();
                kb.AddButton("🚚 3", "truckerwork", new List <string>()
                {
                    $"{Items[index3].Time}"
                });
                kb.AddButton("🚚 4", "truckerwork", new List <string>()
                {
                    $"{Items[index4].Time}"
                });
                kb.AddLine();
                kb.AddButton("↩ Назад к списку работы", "work");
                sender.Text(text, msg.ChatId, kb.Build());
            }
        }