public void Execute(Message msg, IMessageSenderService sender, IBot bot) { if (msg.ChatId != msg.MessageVK.FromId) { sender.Text("⛔ Эту команду нельзя вызывать в беседах. Чтобы узнать список всех команд - напишите \"команды\" ", msg.ChatId); return; } var file = File.ReadAllText("AdminsConfig.json"); var admins = JsonConvert.DeserializeObject <Models.AdminsModels>(file); if (!(admins.Users.Any(u => u == msg.MessageVK.FromId))) { sender.Text("🛑 У вас нет прав администратора для вызова этой команды.", msg.ChatId); return; } var kb = new KeyboardBuilder(bot); kb.AddButton("Репорты", "reportlist"); kb.AddLine(); kb.AddButton("Список администраторов", "adminlist"); kb.AddLine(); kb.AddButton("🔙 В меню", "menu"); kb.SetOneTime(); sender.Text("🤴 Админ меню: ", msg.ChatId, kb.Build()); }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { //проверка и подписка на рассылку, если пользователь пользуется ботом первый раз. var usrs1 = JsonConvert.DeserializeObject <MailingModel>(File.ReadAllText("MailingUsers.json")); if (usrs1.Users.All(u => u.UserId != msg.MessageVK.FromId.Value)) { usrs1.Users.Add(new ValuesMail() { IsActive = true, UserId = msg.MessageVK.FromId.Value }); File.WriteAllText("MailingUsers.json", JsonConvert.SerializeObject(usrs1)); } var model = JsonConvert.DeserializeObject <ChangelogModel>(File.ReadAllText("Changelog.json")); if (msg.ChatId != msg.MessageVK.FromId) { sender.Text(model.Text, msg.ChatId); } else { var kb = new KeyboardBuilder(bot); kb.AddButton("🔙 В меню", "menu"); kb.SetOneTime(); sender.Text(model.Text, msg.ChatId, kb.Build()); } }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { //проверка и подписка на рассылку, если пользователь пользуется ботом первый раз. var usrs1 = JsonConvert.DeserializeObject <MailingModel>(File.ReadAllText("MailingUsers.json")); if (usrs1.Users.All(u => u.UserId != msg.MessageVK.FromId.Value)) { usrs1.Users.Add(new ValuesMail() { IsActive = true, UserId = msg.MessageVK.FromId.Value }); File.WriteAllText("MailingUsers.json", JsonConvert.SerializeObject(usrs1)); } if (msg.ChatId != msg.MessageVK.FromId) { sender.Text("⛔ Эту команду нельзя вызывать в беседах. Чтобы узнать список всех команд - напишите \"команды\" ", msg.ChatId); return; } var kb = new KeyboardBuilder(bot); kb.AddButton("➕ Добавить объявление", "AddAds", color: KeyboardButtonColor.Positive); kb.AddLine(); kb.AddButton("🔍 Список объявлений", "ads"); kb.SetOneTime(); kb.AddLine(); kb.AddButton("🔙 В меню", "menu"); sender.Text("❓ Выберите действие на клавиатуре", msg.ChatId, kb.Build()); }
public static void AddPartTwo(long userId, long chatId, IMessageSenderService sender, string text, IBot bot) { if (text.Length > 300) { var kb = new KeyboardBuilder(bot); kb.AddButton("Попробовать ещё раз", "AddAds", color: KeyboardButtonColor.Positive); kb.SetOneTime(); sender.Text($"⛔ Объявление не может быть больше 300х символов. В Вашем объявлении {text.Length} символов.", chatId, kb.Build()); return; } using (var db = new BotData()) { var server = StaticContent.SelectUserServer.SingleOrDefault(u => u.Key == userId); db.Ads.Add(new Ad() { AdId = new Random().Next(0, 99999999), Owner = userId, DateCreate = Convert.ToInt64(DateTime.Now.Subtract(new DateTime(1970, 1, 1)).TotalSeconds), Server = server.Value, Time = 3, Text = text }); db.SaveChanges(); StaticContent.SelectUserServer.Remove(userId); } sender.Text("✔ Ваше объявление добавлено.", chatId); }
public KeyboardBuilder DialogInDevelopment() { var keyboard = new KeyboardBuilder(); keyboard.SetOneTime(); keyboard.AddButton("В главное меню", "Расписание -> Главное меню", KeyboardButtonColor.Default); return(keyboard); }
public KeyboardBuilder Schedule() { var keyboard = new KeyboardBuilder(); keyboard.SetOneTime(); //keyboard.AddButton("Сегодня", "Расписание -> Сегодня", KeyboardButtonColor.Primary); keyboard.AddButton("Завтра", "Расписание -> Завтра", KeyboardButtonColor.Primary); keyboard.AddButton("Неделя", "Расписание -> Неделя", KeyboardButtonColor.Primary); keyboard.AddLine(); keyboard.AddButton("В главное меню", "Расписание -> Главное меню", KeyboardButtonColor.Default); return(keyboard); }
public TicTacToeKeyboards() { var builder = new KeyboardBuilder(); builder.SetOneTime(); Empty = builder.Build(); builder = new KeyboardBuilder(); builder.AddButton("Новая комната", "NewRoom", KeyboardButtonColor.Positive); builder.AddButton("Подключиться", "ConnectToRoom", KeyboardButtonColor.Positive); builder.SetOneTime(); Main = builder.Build(); }
public static MessageKeyboard FromCoreToVk(CoreKeyboard coreKeyboard, bool isInlineKeyboardAllowed = false) { if (coreKeyboard is null) { return(null); } var kb = new KeyboardBuilder(); var inlineKeyboardEnabled = coreKeyboard.IsInline && isInlineKeyboardAllowed; if (!isInlineKeyboardAllowed) { if (coreKeyboard.IsOneTime) { kb.SetOneTime(); } } else { coreKeyboard.RemoveReturnToMenuButton(); } kb.SetInline(inlineKeyboardEnabled); var isFirst = true; foreach (var line in coreKeyboard.Buttons) { if (!isFirst) { kb.AddLine(); } foreach (var button in line) { var color = FromCoreColorToVk(button.Color); kb.AddButton(new MessageKeyboardButtonAction() { Label = button.Title, Payload = button.Payload, Type = inlineKeyboardEnabled ? KeyboardButtonActionType.Callback : KeyboardButtonActionType.Text, }, color); // kb.AddButton(button.Title, button.PayloadValue, color, button.PayloadKey); } isFirst = false; } return(kb.Build()); }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { //проверка и подписка на рассылку, если пользователь пользуется ботом первый раз. var usrs1 = JsonConvert.DeserializeObject <MailingModel>(File.ReadAllText("MailingUsers.json")); if (usrs1.Users.All(u => u.UserId != msg.MessageVK.FromId.Value)) { usrs1.Users.Add(new ValuesMail() { IsActive = true, UserId = msg.MessageVK.FromId.Value }); File.WriteAllText("MailingUsers.json", JsonConvert.SerializeObject(usrs1)); } var carTarget = long.Parse(msg.Payload.Arguments[0]); using (var db = new BotData()) { var targetInfo = db.Targets.SingleOrDefault(t => t.UserId == msg.MessageVK.FromId); var kb = new KeyboardBuilder(bot); kb.AddButton("🔙 Назад к авто", "carinfo", new List <string>() { carTarget.ToString() }); kb.AddLine(); kb.AddButton("🔙 В меню", "menu"); kb.SetOneTime(); if (targetInfo is null) { targetInfo = new Target(); targetInfo.UserId = msg.ChatId; targetInfo.Count = 0; targetInfo.CarId = carTarget; db.Targets.Add(targetInfo); sender.Text("✔ Цель добавлена", msg.ChatId, kb.Build()); } else { targetInfo.CarId = carTarget; sender.Text("✔ Цель обновлена", msg.ChatId, kb.Build()); } db.SaveChanges(); } }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { //проверка и подписка на рассылку, если пользователь пользуется ботом первый раз. var usrs1 = JsonConvert.DeserializeObject <MailingModel>(File.ReadAllText("MailingUsers.json")); if (usrs1.Users.All(u => u.UserId != msg.MessageVK.FromId.Value)) { usrs1.Users.Add(new ValuesMail() { IsActive = true, UserId = msg.MessageVK.FromId.Value }); File.WriteAllText("MailingUsers.json", JsonConvert.SerializeObject(usrs1)); } if (msg.ChatId != msg.MessageVK.FromId) { sender.Text("⛔ Эту команду нельзя вызывать в беседах. Чтобы узнать список всех команд - напишите \"команды\" ", msg.ChatId); return; } var file = File.ReadAllText("AdminsConfig.json"); var admins = JsonConvert.DeserializeObject <Models.AdminsModels>(file); var isAdmin = admins.Users.Any(u => u == msg.MessageVK.FromId); var kb = new KeyboardBuilder(bot); kb.AddButton("🔍 Поиск машин", "searchMenu", color: KeyboardButtonColor.Primary); kb.AddLine(); kb.AddButton("📮 Объявления", "adsmenu"); kb.AddButton("🎞 Changelog", "changelog"); if (isAdmin) { kb.AddButton("🤴 Админ-панель", "adminmenu"); } kb.AddLine(); kb.AddButton("⚙ Настройки", "settings"); kb.SetOneTime(); sender.Text("🎈 Главное меню: ", msg.ChatId, kb.Build()); }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { //проверка и подписка на рассылку, если пользователь пользуется ботом первый раз. var usrs1 = JsonConvert.DeserializeObject <MailingModel>(File.ReadAllText("MailingUsers.json")); if (usrs1.Users.All(u => u.UserId != msg.MessageVK.FromId.Value)) { usrs1.Users.Add(new ValuesMail() { IsActive = true, UserId = msg.MessageVK.FromId.Value }); File.WriteAllText("MailingUsers.json", JsonConvert.SerializeObject(usrs1)); } StaticContent.UsersCommand.Remove(msg.MessageVK.FromId.Value); if (msg.ChatId != msg.MessageVK.FromId) { sender.Text("⛔ Эту команду нельзя вызывать в беседах. Чтобы узнать список всех команд - напишите \"команды\" ", msg.ChatId); return; } var kb = new KeyboardBuilder(bot); kb.AddButton("🚗 Каталог машин", "catalog"); kb.AddLine(); kb.AddButton("🔍 Поиск по названию", "search"); kb.SetOneTime(); kb.AddLine(); kb.AddButton("🔙 В меню", "menu"); sender.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 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()); }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { //проверка и подписка на рассылку, если пользователь пользуется ботом первый раз. var usrs1 = JsonConvert.DeserializeObject <MailingModel>(File.ReadAllText("MailingUsers.json")); if (usrs1.Users.All(u => u.UserId != msg.MessageVK.FromId.Value)) { usrs1.Users.Add(new ValuesMail() { IsActive = true, UserId = msg.MessageVK.FromId.Value }); File.WriteAllText("MailingUsers.json", JsonConvert.SerializeObject(usrs1)); } long carid = 0; if (msg.Payload is null) { carid = long.Parse(msg.Text.Split(" ")[1]); } else { carid = long.Parse(msg.Payload.Arguments[0]); } var file = File.ReadAllText("AdminsConfig.json"); var admins = JsonConvert.DeserializeObject <Models.AdminsModels>(file); bool isAdmin = admins.Users.Any(u => u == msg.MessageVK.FromId); using (var db = new BotData()) { var car = db.Cars.SingleOrDefault(c => c.CarId == carid); var adminText = string.Empty; if (isAdmin) { adminText = $"\n ⚙ ID автомобиля: {carid}"; } var tuningText = string.Empty; var tunings = car.TuningPacks.Split(","); var ids = new List <long>(); foreach (var tuning in tunings) { if (tuning != "") { ids.Add(long.Parse(tuning)); } } var tuningsT = new List <TuningPack>(); foreach (var id in ids) { var t = db.TuningPacks.SingleOrDefault(t => t.PackId == id); if (t != null) { tuningsT.Add(t); } } foreach (var pack in tuningsT) { var packId = string.Empty; if (isAdmin) { packId = $"({pack.PackId})"; } tuningText += $"🔶 {pack.Name} - {pack.Price.ToString("N1").Split(",")[0]} ₽ {packId}\n"; } long priceRub = 0; long priceDoll = 0; long priceEuro = 0; string priceStr = ""; var courseText = File.ReadAllText("CourceConfig.json"); var course = JsonConvert.DeserializeObject <CourseModel>(courseText); if (car.Currency == 1) //руб { priceRub = car.Price; priceDoll = Convert.ToInt64(Convert.ToSingle(car.Price) / course.Dollar); priceEuro = Convert.ToInt64(Convert.ToSingle(car.Price) / course.Euro); priceStr = $"{priceRub.ToString("N1").Split(",")[0]}₽"; } else if (car.Currency == 2) //долл { priceRub = Convert.ToInt64(course.Dollar * Convert.ToSingle(car.Price)); priceDoll = car.Price; priceEuro = Convert.ToInt64(Convert.ToSingle(priceRub) / course.Euro); priceStr = $"{priceRub.ToString("N1").Split(",")[0]}₽ (${priceDoll.ToString("N1").Split(",")[0]})"; } else if (car.Currency == 3) //евро { priceRub = Convert.ToInt64(course.Euro * Convert.ToSingle(car.Price)); priceEuro = car.Price; priceDoll = Convert.ToInt64(Convert.ToSingle(priceRub) / course.Dollar); priceStr = $"{priceRub.ToString("N1").Split(",")[0]}₽ ({priceEuro.ToString("N1").Split(",")[0]}€)"; } var price1 = Convert.ToDecimal(priceRub); var price2 = Convert.ToInt64(Decimal.Multiply(price1, decimal.Parse("0,84"))); var price3 = Convert.ToInt64(Decimal.Multiply(price1, decimal.Parse("0,7"))); var showroomStr = ""; if (car.Showroom == 1) { showroomStr = "Европа"; } else if (car.Showroom == 2) { showroomStr = "Япония"; } else if (car.Showroom == 3) { showroomStr = "Toyota"; } else if (car.Showroom == 4) { showroomStr = "Mercedes-Benz"; } else if (car.Showroom == 5) { showroomStr = "BMW"; } else if (car.Showroom == 6) { showroomStr = "Лада"; } else if (car.Showroom == 7) { showroomStr = "Яхты"; } else if (car.Showroom == 8) { showroomStr = "Вертолеты"; } else if (car.Showroom == 9) { showroomStr = "Америка"; } else if (car.Showroom == 10) { showroomStr = "Коммерческий"; } var text = $"🚘 Модель: {car.Model}" + $"\n 💵 Цена с салона: {priceStr}" + $"\n 💰 Цена с б/у: {price2.ToString("N1").Split(",")[0]}₽" + $"\n 💳 Слив с б/у: {price3.ToString("N1").Split(",")[0]}₽" + $"\n 💎 Цена за донат-валюту: {car.PriceDonate.ToString("N1").Split(",")[0]}" + $"\n 🚗 Автосалон: {showroomStr}" + $"\n ⚙ Максимальная скорость: {car.MaxSpeed}" + $"{adminText}" + $"\n " + $"\n 🔧 Комплекты тюнинга:" + $"\n {tuningText}"; var kb = new KeyboardBuilder(bot); kb.AddButton("✔ Добавить в цель", "addtarget", new List <string>() { car.CarId.ToString() }); kb.AddLine(); kb.AddButton("🔙 В меню", "menu"); kb.SetOneTime(); if (msg.ChatId != msg.MessageVK.FromId) { sender.TextImage(text, msg.ChatId, car.Image); } else { sender.TextImage(text, msg.ChatId, car.Image, kb.Build()); } } }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { //проверка и подписка на рассылку, если пользователь пользуется ботом первый раз. var usrs1 = JsonConvert.DeserializeObject <MailingModel>(File.ReadAllText("MailingUsers.json")); if (usrs1.Users.All(u => u.UserId != msg.MessageVK.FromId.Value)) { usrs1.Users.Add(new ValuesMail() { IsActive = true, UserId = msg.MessageVK.FromId.Value }); File.WriteAllText("MailingUsers.json", JsonConvert.SerializeObject(usrs1)); } StaticContent.UsersCommand.Remove(msg.MessageVK.FromId.Value); bool isChat = msg.ChatId != msg.MessageVK.FromId.Value; using (var db = new BotData()) { var target = db.Targets.SingleOrDefault(t => t.UserId == msg.MessageVK.FromId); if (target is null) { var kb1 = new KeyboardBuilder(bot); kb1.AddButton("🔙 В меню", "menu"); kb1.SetOneTime(); if (isChat) { sender.Text("✈ Вы пока что не установили цель", msg.ChatId); } else { sender.Text("✈ Вы пока что не установили цель", msg.ChatId, kb1.Build()); } return; } var car = db.Cars.SingleOrDefault(c => c.CarId == target.CarId); long priceRub = 0; long priceDoll = 0; long priceEuro = 0; var courseText = File.ReadAllText("CourceConfig.json"); var course = JsonConvert.DeserializeObject <CourseModel>(courseText); if (car.Currency == 1) //руб { priceRub = car.Price; priceDoll = Convert.ToInt64(Convert.ToSingle(car.Price) / course.Dollar); priceEuro = Convert.ToInt64(Convert.ToSingle(car.Price) / course.Euro); } else if (car.Currency == 2) //долл { priceRub = Convert.ToInt64(course.Dollar * Convert.ToSingle(car.Price)); priceDoll = car.Price; priceEuro = Convert.ToInt64(Convert.ToSingle(priceRub) / course.Euro); } else if (car.Currency == 3) //евро { priceRub = Convert.ToInt64(course.Euro * Convert.ToSingle(car.Price)); priceEuro = car.Price; priceDoll = Convert.ToInt64(Convert.ToSingle(priceRub) / course.Dollar); } var kb = new KeyboardBuilder(bot); kb.AddButton("➕ Изменить собранную сумму", "targetedit"); kb.AddLine(); kb.AddButton("🔙 В меню", "menu"); kb.SetOneTime(); var text = $"✈ Ваша цель: " + $"\n 🚗 {car.Model}" + $"\n 💎 Собрано {target.Count.ToString("N1")} из {priceRub.ToString("N1")} ₽ ({target.Count/(priceRub/100)}%)"; if (isChat) { sender.Text(text, msg.ChatId); } else { sender.Text(text, msg.ChatId, kb.Build()); } } }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { //проверка и подписка на рассылку, если пользователь пользуется ботом первый раз. var usrs1 = JsonConvert.DeserializeObject <MailingModel>(File.ReadAllText("MailingUsers.json")); if (usrs1.Users.All(u => u.UserId != msg.MessageVK.FromId.Value)) { usrs1.Users.Add(new ValuesMail() { IsActive = true, UserId = msg.MessageVK.FromId.Value }); File.WriteAllText("MailingUsers.json", JsonConvert.SerializeObject(usrs1)); } var file = File.ReadAllText("AdminsConfig.json"); var admins = JsonConvert.DeserializeObject <Models.AdminsModels>(file); bool isAdmin = admins.Users.Any(u => u == msg.MessageVK.FromId); int offset, server = 0; if (msg.Text.Split("-")[0] == "com") { offset = (int.Parse(msg.Text.Split("-")[1]) - 1) * 10; server = int.Parse(msg.Text.Split("-")[2]); } else { var argument = msg.Payload.Arguments[0]; offset = int.Parse(msg.Payload.Arguments[1]); server = int.Parse(argument); } var vkNet = new VkApi(); vkNet.Authorize(new ApiAuthParams() { AccessToken = "e7980081cccad8d0df1ce342355da76e6e0d8de37509d76fb08ff1f065823dc19e5f4ed7f4578314cc772" }); var ids = new List <long>(); var kb = new KeyboardBuilder(bot); using (var db = new BotData()) { var ads = db.Ads.Where(a => a.Server == server); string s = string.Empty; var stringText = string.Empty; if (ads.Count() != 0) { bool isAddNextCommand = true; int counter = 0; for (int i = offset; i < offset + 10; i++) { try { var ad = ads.OrderByDescending(a => a.DateCreate).ToList()[i]; var id = $"| ID:{ad.AdId}"; ids.Add(ad.Owner); stringText += $"💎[{i}] -{ad.Owner}- сервер - {ad.Server} {id} : {ad.Text} \n"; kb.AddButton(i.ToString(), "showad", new List <string>() { ad.AdId.ToString() }); if (counter == 4) { kb.AddLine(); counter = 0; } } catch { isAddNextCommand = false; } } kb.AddLine(); kb.SetOneTime(); if (offset > 0) { kb.AddButton("⏮ Назад", "adsFilter", new List <string>() { server.ToString(), $"{offset-10}" }); } if (isAddNextCommand) { kb.AddButton("⏭ Вперед", "adsFilter", new List <string>() { server.ToString(), $"{offset + 10}" }); } var usrs = vkNet.Users.Get(ids); foreach (var usr in usrs) { stringText = stringText.Replace($"-{usr.Id}-", $"{usr.FirstName} {usr.LastName}"); } } else { stringText += "Объявлений нет."; } kb.AddLine(); kb.AddButton("🔙 Назад в меню", "ads"); if (msg.ChatId != msg.MessageVK.FromId) { sender.Text($"🎫 Объявления: \n {stringText}", msg.ChatId); } else { sender.Text($"🎫 Объявления: \n {stringText}", 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); if (UserRace.All(r => r.UserId != user.Id)) { UserRace.Add(new RaceUser() { UserId = user.Id, Users = new List <long>() }); } if (user.OnWork) { sender.Text("❌ Вы не можете идти в гонку, пока находитесь на работе, дождитесь завершения и возвращайтесь!", msg.ChatId); return; } var garageUser = Main.Api.Garages.GetGarage(user.Id); sender.Text("⌛ Подождите, мы подбираем Вам противника", msg.ChatId); var enemys = new List <RaceFindModel>(); long scoreUser; using (var db = new Database()) { var userCar = db.Cars.Single(c => c.Id == garageUser.SelectCar); scoreUser = userCar.Power + userCar.Weight; foreach (var enemyGarage in db.Garages) { if (enemyGarage.SelectCar != 0) { if (enemyGarage.UserId != user.Id) { if (enemyGarage.SelectCar != -1) { var carEnemy = db.Cars.Single(c => c.Id == enemyGarage.SelectCar); var scoreEnemy = carEnemy.Power + carEnemy.Weight; var rusr = UserRace.Single(r => r.UserId == user.Id); if (rusr.Users.Any(r => r != enemyGarage.UserId)) { enemys.Add(new RaceFindModel() { UserId = enemyGarage.UserId, Score = scoreEnemy }); } } } } } } RaceFindModel ememyRaceModel = null; for (long i = 1; i < 4; i++) { for (long b = 0; b < 100; b++) { var enemy = enemys.SingleOrDefault(e => e.Score == scoreUser + b * i); ememyRaceModel = enemy; if (enemy != null) { var garage = Main.Api.Garages.GetGarage(enemy.UserId); if (garage.SelectCar != 0) { break; } } } if (ememyRaceModel is null) { for (long b = 0; b < 100; b++) { var enemy = enemys.SingleOrDefault(e => e.Score == scoreUser - i); ememyRaceModel = enemy; if (enemy != null) { var garage = Main.Api.Garages.GetGarage(enemy.UserId); if (garage.SelectCar != 0) { break; } } } } else { break; } } if (ememyRaceModel is null) { ememyRaceModel = new RaceFindModel() { Score = 0, UserId = -2 }; } var kb = new KeyboardBuilder(bot); kb.SetOneTime(); kb.AddButton("🏎 Начать гонку", "RaceStart", new List <string>() { "1", $"{ememyRaceModel.UserId}" }); sender.Text("✔ Мы нашли Вам противника", msg.ChatId, kb.Build()); }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { //проверка и подписка на рассылку, если пользователь пользуется ботом первый раз. var usrs1 = JsonConvert.DeserializeObject <MailingModel>(File.ReadAllText("MailingUsers.json")); if (usrs1.Users.All(u => u.UserId != msg.MessageVK.FromId.Value)) { usrs1.Users.Add(new ValuesMail() { IsActive = true, UserId = msg.MessageVK.FromId.Value }); File.WriteAllText("MailingUsers.json", JsonConvert.SerializeObject(usrs1)); } var kb = new KeyboardBuilder(bot); kb.AddButton("Европа", "showroom", new List <string>() { "1", "0" }); kb.AddButton("Япония", "showroom", new List <string>() { "2", "0" }); kb.AddButton("Toyota", "showroom", new List <string>() { "3", "0" }); kb.AddLine(); kb.AddButton("Mercedes-Benz", "showroom", new List <string>() { "4", "0" }); kb.AddButton("BMW", "showroom", new List <string>() { "5", "0" }); kb.AddButton("Лада", "showroom", new List <string>() { "6", "0" }); kb.AddButton("Яхты", "showroom", new List <string>() { "7", "0" }); kb.AddLine(); kb.AddButton("Вертолеты", "showroom", new List <string>() { "8", "0" }); kb.AddButton("Америка", "showroom", new List <string>() { "9", "0" }); kb.AddButton("Коммерческий", "showroom", new List <string>() { "10", "0" }); kb.AddButton("🔙 Назад ", "searchmenu"); kb.SetOneTime(); sender.Text("Выберите необходимый автосалон.", msg.ChatId, kb.Build()); }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { //проверка и подписка на рассылку, если пользователь пользуется ботом первый раз. var usrs1 = JsonConvert.DeserializeObject <MailingModel>(File.ReadAllText("MailingUsers.json")); if (usrs1.Users.All(u => u.UserId != msg.MessageVK.FromId.Value)) { usrs1.Users.Add(new ValuesMail() { IsActive = true, UserId = msg.MessageVK.FromId.Value }); File.WriteAllText("MailingUsers.json", JsonConvert.SerializeObject(usrs1)); } if (msg.Text.Split(" ")[1].ToLower() != "объявление" && msg.Payload == null) { return; } if (msg.ChatId != msg.MessageVK.FromId) { sender.Text("⛔ Эта команда недоступна в беседе", msg.ChatId); return; } using (var db = new BotData()) { var adsFromUser = db.Ads.Where(ad => ad.Owner == msg.MessageVK.FromId); if (adsFromUser.Count() == 3) { sender.Text("⛔ Вы уже создали 3 объявления.", msg.ChatId); return; } } var kb = new KeyboardBuilder(bot); kb.AddButton("1", "excecuteCommand", new List <string>() { "adsAdd", "1" }); kb.AddButton("2", "excecuteCommand", new List <string>() { "adsAdd", "2" }); kb.AddButton("3", "excecuteCommand", new List <string>() { "adsAdd", "3" }); kb.AddLine(); kb.AddButton("4", "excecuteCommand", new List <string>() { "adsAdd", "4" }); kb.AddButton("5", "excecuteCommand", new List <string>() { "adsAdd", "5" }); kb.AddButton("6", "excecuteCommand", new List <string>() { "adsAdd", "6" }); kb.SetOneTime(); sender.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); if (msg.Payload?.Arguments is null) { var text = $"⚜ Количество фишек: {user.Chips}" + "\n🃏 Выберите игру на клавиатуре"; var kb = new KeyboardBuilder(bot); kb.AddButton("🎲 Рулетка", "casino", new List <string>() { "1" }); kb.AddLine(); kb.AddButton("⚜ Купить фишки", "buychips", color: KeyboardButtonColor.Positive); kb.AddButton("💰 Обменять фишки", "exchangechips", color: KeyboardButtonColor.Positive); kb.AddLine(); kb.AddButton(ButtonsHelper.ToHomeButton()); sender.Text(text, msg.ChatId, kb.Build()); } else { if (msg.Payload.Arguments[0] == "1") { if (msg.Payload.Arguments.Count < 2) { var text = "❓ Выберите цвет, на который вы хотите сделать ставку." + "\n ❗ При выгрыше Ваша ставка увеличивается в 2 раза. При ставке на зеленое в 16 раз."; var kb = new KeyboardBuilder(bot); kb.SetOneTime(); kb.AddButton("⬛ Черное 1 фишка", "casino", new List <string>() { "1", "1", "1" }); kb.AddButton("🟥 Красное 1 фишка", "casino", new List <string>() { "1", "2", "1" }); kb.AddButton("🟩 Зеленое 1 фишка", "casino", new List <string>() { "1", "3", "1" }); kb.AddLine(); kb.AddButton("⬛ Черное 3 фишки", "casino", new List <string>() { "1", "1", "3" }); kb.AddButton("🟥 Красное 3 фишки", "casino", new List <string>() { "1", "2", "3" }); kb.AddButton("🟩 Зеленое 3 фишки", "casino", new List <string>() { "1", "3", "3" }); kb.AddLine(); kb.AddButton("⬛ Черное 5 фишки", "casino", new List <string>() { "1", "1", "5" }); kb.AddButton("🟥 Красное 5 фишки", "casino", new List <string>() { "1", "2", "5" }); kb.AddButton("🟩 Зеленое 5 фишки", "casino", new List <string>() { "1", "3", "5" }); kb.AddLine(); kb.AddButton(ButtonsHelper.ToHomeButton()); sender.Text(text, msg.ChatId, kb.Build()); } else { var color = msg.Payload.Arguments[1].ToLong(); var count = msg.Payload.Arguments[2].ToLong(); if (user.Chips < count) { sender.Text("❌ У Вас недостаточно фишек для ставки!", msg.ChatId); return; } using (var db = new Database()) { var usr = db.Users.Single(u => u.Id == user.Id); usr.Chips -= count; db.SaveChanges(); } var r = new Random(); int number = r.Next(1, 4); sender.Text("♻ Вы сделали ставку. Крутим рулетку...", msg.ChatId); Thread.Sleep(TimeSpan.FromSeconds(5)); if (number == 1 && color == 1) { using (var db = new Database()) { var usr = db.Users.Single(u => u.Id == user.Id); user.Chips += count * 2; db.SaveChanges(); } var kb = new KeyboardBuilder(bot); kb.AddButton("🎲 Назад в казино", "casino"); kb.AddLine(); kb.AddButton("♣ Назад в рулетку", "casino", new List <string>() { "1" }); kb.AddLine(); kb.AddButton(ButtonsHelper.ToHomeButton()); sender.Text($"🎉 Вы выграли {count *2} фишек, поставив на черное!", msg.ChatId, kb.Build()); } else if (number == 2 && color == 2) { using (var db = new Database()) { var usr = db.Users.Single(u => u.Id == user.Id); user.Chips += count * 2; db.SaveChanges(); } var kb = new KeyboardBuilder(bot); kb.AddButton("🎲 Назад в казино", "casino"); kb.AddLine(); kb.AddButton("♣ Назад в рулетку", "casino", new List <string>() { "1" }); kb.AddLine(); kb.AddButton(ButtonsHelper.ToHomeButton()); sender.Text($"🎉 Вы выграли {count *2} фишек, поставив на красное!", msg.ChatId, kb.Build()); } else if (number == 4) { var r2 = new Random(); var number2 = r2.Next(1, 8); if (number2 == 5) { using (var db = new Database()) { var usr = db.Users.Single(u => u.Id == user.Id); user.Chips += count * 16; db.SaveChanges(); } var kb = new KeyboardBuilder(bot); kb.AddButton("🎲 Назад в казино", "casino"); kb.AddLine(); kb.AddButton("♣ Назад в рулетку", "casino", new List <string>() { "1" }); kb.AddLine(); kb.AddButton(ButtonsHelper.ToHomeButton()); sender.Text($"🎉 Вы выграли {count *16} фишек, поставив на зеленое!", msg.ChatId, kb.Build()); } } else { var kb = new KeyboardBuilder(bot); kb.AddButton("🎲 Назад в казино", "casino"); kb.AddLine(); kb.AddButton("♣ Назад в рулетку", "casino", new List <string>() { "1" }); kb.AddLine(); kb.AddButton(ButtonsHelper.ToHomeButton()); sender.Text($"😥 Вы проиграли! Может попробуйте ещё раз, точно повезёт!", msg.ChatId, kb.Build()); } } } } }