public void Execute(Message msg, IMessageSenderService sender, IBot bot) { 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); if (user.Access < 6) { sender.Text("❌ Вам недоступна эта команда.", msg.ChatId); return; } var array = msg.Text.Split(" "); long userId = 0; try { userId = long.Parse(array[1]); }catch { sender.Text("❌ Вы ввели неверный ID пользователя.", msg.ChatId); return; } Car car; try { var carId = long.Parse(array[2]); car = CarsHelper.GetHelper().Cars.Single(c => c.Id == carId); } catch { sender.Text("❌ Вы ввели неверный ID автомобиля.", msg.ChatId); return; } var garage = api.Garages.GetGarage(userId); if ((garage.ParkingPlaces - garage.Cars.Length) == 0) { sender.Text("❌ У пользователя нет свободного места в гараже.", msg.ChatId); return; } var str = CarsHelper.GetHelper().AddCarToString(garage.Cars, car.Id); Main.Api.Garages.SetCars(user.Id, str); sender.Text($"✔ Вы выдали {car.Manufacturer} {car.Model} игроку с ID {userId}", msg.ChatId); }
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; } long carId; try { carId = Int64.Parse(msg.Payload.Arguments[0]); } catch { sender.Text("❌ Эту команду можно вызывать только с клавиатуры!", msg.ChatId); return; } var car = CarsHelper.GetHelper().GetCarFromId(carId); var text = $"🚗 Информация о автомобиле:" + $"\n 🚘 Производитель: {car.Manufacturer}" + $"\n 🏎 Модель: {car.Model}" + $"\n ⚡ Мощность: {car.Power} л.с" + $"\n 🅱 Масса: {car.Weight}" + $"\n 💰 Цена: {car.Price}"; var kb = new KeyboardBuilder(bot); kb.AddButton("💵 Купить автомобиль", "buycar", new List <string>() { car.Id.ToString() }, color: KeyboardButtonColor.Positive); kb.AddLine(); kb.AddButton("↩ Назад к автомобилям", "getcars", new List <string>() { car.Manufacturer, "0" }); sender.Text(text, msg.ChatId, kb.Build()); }
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()); }
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; } if (msg.Payload != null) { if (msg.Payload.Arguments != null) { var text = "🚘 Список автомобилей:\n"; var kb = new KeyboardBuilder(bot); var manufacture = string.Empty; try { manufacture = msg.Payload.Arguments[0]; }catch { sender.Text("❌ Эту команду можно вызвать только с аргументом через кнопку.", msg.ChatId); return; } List <Car> cars; if (manufacture == "Rus") { var l1 = CarsHelper.GetHelper().Cars.Where(c => c.Manufacturer == "ВАЗ").ToList(); var l2 = CarsHelper.GetHelper().Cars.Where(c => c.Manufacturer == "Лада").ToList(); var l3 = CarsHelper.GetHelper().Cars.Where(c => c.Manufacturer == "Нива").ToList(); var l4 = CarsHelper.GetHelper().Cars.Where(c => c.Manufacturer == "Москвич").ToList(); var l5 = CarsHelper.GetHelper().Cars.Where(c => c.Manufacturer == "УАЗ").ToList(); cars = new List <Car>(); foreach (var car in l1) { cars.Add(car); } foreach (var car in l2) { cars.Add(car); } foreach (var car in l3) { cars.Add(car); } foreach (var car in l4) { cars.Add(car); } foreach (var car in l5) { cars.Add(car); } } else { cars = CarsHelper.GetHelper().Cars.Where(c => c.Manufacturer == manufacture).ToList(); } try { var offset = Int32.Parse(msg.Payload.Arguments[1]); var countCars = cars.Count; for (var i = 0; i < 10; i++) { try { var car = cars[i + (offset * 10)]; text += $"\n🚘 [{i + (offset * 10)}] {car.Manufacturer} {car.Model}" + $"| ⚡ {car.Power} лс., | ⚖ {car.Weight} кг." + $"\n💰 Цена: {car.Price} руб.\n"; if (sender.Platform == Fooxboy.NucleusBot.Enums.MessengerPlatform.Vkontakte) { kb.AddButton($"🚗 {i + (offset * 10)}", "infocar", new List <string>() { car.Id.ToString() }); } if (sender.Platform == Fooxboy.NucleusBot.Enums.MessengerPlatform.Telegam) { kb.AddButton($"🚗 {i + (offset * 10)} [{car.Model}]", "infocar", new List <string>() { car.Id.ToString() }); } if ((i == 3 && (countCars > 4 || countCars > 14 || countCars > 24)) || (i == 7 && (countCars > 8 || countCars > 18 || countCars > 28))) { kb.AddLine(); } }catch { break; } } kb.AddLine(); if (offset > 0) { kb.AddButton($"◀ На страницу {offset - 1}", "getcars", new List <string>() { manufacture, $"{offset - 1}" }); } kb.AddButton("↩ Назад в автосалон", "autostore"); if (countCars > ((offset + 1) * 10)) { kb.AddButton($"На страницу {offset + 1} ▶", "getcars", new List <string>() { manufacture, $"{offset + 1}" }); } }catch { for (var i = 0; i < 10; i++) { try { var car = cars[i]; text += $"\n🚘 [{i}] {car.Manufacturer} {car.Model}" + $"| ⚡ {car.Power} лс., | ⚖ {car.Weight} кг." + $"\n💰 Цена: {car.Price} руб.\n"; kb.AddButton($"🚗 {i}", "infocar", new List <string>() { car.Id.ToString() }); if (i == 4 || i == 8) { kb.AddLine(); } } catch { break; } } kb.AddLine(); kb.AddButton("↩ Назад в автомагазин", "autostore"); if (cars.Count > 10) { kb.AddButton("На страницу 2 ▶", "getcars", new List <string>() { manufacture, $"1" }); } } if (cars.Count == 0) { text = "⚡ Автомобили от этого производителя скоро появятся!"; } sender.Text(text, msg.ChatId, kb.Build()); } } }
public void Init(IBot bot, ILoggerService logger) { CarsHelper.GetHelper().InitCars(logger); }