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(); }
public EditableListBox() { InitializeComponent(); listboxHelper = new ListboxHelper(listbox); textboxHelper = new TextboxHelper(textbox); buttonsHelper = new ButtonsHelper(new Button[5] { buttonSort, buttonUp, buttonDown, buttonAdd, buttonRemove }); }
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()); }
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()); }
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); }
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()); }
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()); }
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()); }
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()); }
public EditableListBox() { InitializeComponent(); listboxHelper = new ListboxHelper(listbox); textboxHelper = new TextboxHelper(textbox); buttonsHelper = new ButtonsHelper(new Button[5] { buttonSort, buttonUp, buttonDown, buttonAdd, buttonRemove }); }
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()); }
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()); }
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()); }
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()); }
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); }
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()); }
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(); }
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()); }
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()); }
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()); } }
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()); }); }
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); }
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; } })); }
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()); }
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()); }
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) { 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()); }
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); }
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()); } }