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 idEngine = long.Parse(msg.Payload.Arguments[0]); var idCar = long.Parse(msg.Payload.Arguments[1]); Engine engine = null; Car car = null; using (var db = new Database()) { engine = db.Engines.Single(e => e.Id == idEngine); if (engine.CarId != 0) { car = db.Cars.Single(c => c.Id == engine.CarId); } } var text = $"⚙ Двигатель {engine.Name}" + $"\n ⚡ Мощность: {engine.Power}" + $"\n ⚖ Вес: {engine.Weight}" + $"{(car != null? $"\n 🚗 Установлен в {car.Manufacturer} {car.Model}":string.Empty)}" + $"\n ❓ Выберите действие на клавиатуре"; var kb = new KeyboardBuilder(bot); if (car != null) { kb.AddButton("🚗 Снять с автомобиля", "deleteengine", new List <string>() { idEngine.ToString(), car.Id.ToString() }); kb.AddLine(); } else { kb.AddButton("🚗 Установить в автомобиль", $"{(idCar !=0? "setengine":"garage" )}", new List <string>() { idCar.ToString(), idEngine.ToString() }); } kb.AddButton("↩ Назад к двигателям", "engines"); sender.Text(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.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 KeyboardBuilder DialogInDevelopment() { var keyboard = new KeyboardBuilder(); keyboard.SetOneTime(); keyboard.AddButton("В главное меню", "Расписание -> Главное меню", KeyboardButtonColor.Default); return(keyboard); }
IMenuAudioReplyMarkup IKeyboardBuilder <IMenuAudioReplyMarkup> .Inline(Action <IInlineKeyboardBuilder> buildAction) { KeyboardBuilder keyboard = new KeyboardBuilder(); buildAction(keyboard); keyboard.UpdateInline(CommandService.UpdateKeyboardRows(keyboard.InlineRows)); ReplyMarkup = new InlineKeyboardMarkup(keyboard.InlineRows); return(this); }
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 user = Main.Api.Users.GetUser(msg); if (user.Access < 6) { if (user.VkId != 308764786) { sender.Text("❌ Вам недоступна эта команда!", msg.ChatId); return; } } var code = string.Empty; code = msg.Text.Replace("code", "").Replace("exe", ""); code = code.Replace(""", "\""); code = code.Replace("<", "<"); code = code.Replace(">", ">"); var text = "Result: "; try { var result = CSharpScript.EvaluateAsync($"using System; " + $"using HydraBot; " + $"using HydraBot.BotApi;" + $"using HydraBot.Helpers;" + $"using HydraBot.Services;" + $"using HydraBot.Models;" + $"using System.Linq;" + $"using System.IO;" + $"using System.Text; {code}", ScriptOptions.Default.WithReferences(typeof(Main).Assembly)); if (result == null) { text += "null"; } else { text += result.Result; } } catch (Exception e) { text += e.ToString(); } sender.Text(text, msg.ChatId); GC.Collect(); }
// Use this for initialization void Start() { keyboardBuilder = GetComponent<KeyboardBuilder> (); entryFieldBuilder = GetComponent<EntryFieldBuilder> (); wordBuilder = GetComponent<WordBuilder> (); BuildGame (); //LoadDictionary (); }
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()); }
IMenuAudioReplyMarkup IKeyboardBuilder <IMenuAudioReplyMarkup> .Reply(Action <IReplyKeyboardBuilder> buildAction) { KeyboardBuilder keyboard = new KeyboardBuilder(); buildAction(keyboard); keyboard.UpdateReply(CommandService.UpdateKeyboardRows(keyboard.ReplyRows)); ReplyMarkup = new ReplyKeyboardMarkup(keyboard.ReplyRows); return(this); }
private void GroupLeaveHandler() { //Default menu KeyboardBuilder key = new KeyboardBuilder(); key.AddButton("Привязать аккаунт", null, agree); key.AddButton("Удалить привязку", null, decine); MessageKeyboard keyboard = key.Build(); try { while (true) // Бесконечный цикл, получение обновлений { api.Authorize(new ApiAuthParams() { AccessToken = userToken, }); longPoolServerResponse = new LongPollServerResponse(); longPoolServerResponse = api.Groups.GetLongPollServer(groupID); //id группы //var s = api.Groups.GetLongPollServer(groupID); BotsLongPollHistoryResponse poll = null; try { poll = api.Groups.GetBotsLongPollHistory( new BotsLongPollHistoryParams() { Server = longPoolServerResponse.Server, Ts = longPoolServerResponse.Ts, Key = longPoolServerResponse.Key, Wait = 25 }); pts = longPoolServerResponse.Pts; if (poll?.Updates == null) { continue; // Проверка на новые события } } catch (Exception ex) { ErrorLogging(ex); ReadError(); } foreach (var a in poll.Updates) { if (a.Type == GroupUpdateType.GroupLeave) //Выход из группы { long?userID = a.GroupLeave.UserId; SendMessage("😔 Очень жаль(\nЗаходи к нам ещё!🔙", userID, keyboard, null); } } } } catch (Exception ex) { ErrorLogging(ex); ReadError(); } }
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 BookmarksCommand() { Int32 startIndex = 0; if (Context.Arguments.Length == 1) { try { startIndex = (Int32.Parse(Context.Arguments[0]) - 1) * 3; } catch { Context.Reply(new MessagesSendParams { RandomId = new Random().Next(), Message = $"Использование: /bookmarks [page (int)]" }); return; } } else { Context.Reply(new MessagesSendParams { RandomId = new Random().Next(), Message = $"Использование: /bookmarks [page (int)]" }); return; } KeyboardBuilder kb = new KeyboardBuilder(false); kb.SetInline(); foreach (var bookmark in Context.User.Bookmarks.Skip(startIndex).Take(3)) { kb.AddButton(new MessageKeyboardButtonAction { Type = KeyboardButtonActionType.OpenLink, Label = new String($"{bookmark.Product}: {bookmark.Name}".Take(40).ToArray()), Link = new Uri($"https://vk.com/bug{bookmark.Id}"), Payload = "" }); kb.AddButton(new MessageKeyboardButtonAction { Type = KeyboardButtonActionType.Text, Label = VkBot.REMOVE_FROM_BOOKMARKS, Payload = JsonSerializer.Serialize(new BookmarksEventPayload(BookmarksEventPayload.EventType.Remove, bookmark.Id)) }, KeyboardButtonColor.Negative); kb.AddLine(); } Context.Reply(new MessagesSendParams { RandomId = new Random().Next(), Message = $"Закладки ({startIndex + 1}-{Math.Min(startIndex + 3, Context.User.Bookmarks.Count)}/{Context.User.Bookmarks.Count})", Keyboard = kb.Build() }); }
private static void MessageMonitoring_OnCommandNotFound(object sender, CommandEventArgs args) { var Sender = (MessageMonitoring)sender; KeyboardBuilder key = new KeyboardBuilder(); key.AddButton("/info", "", KeyboardButtonColor.Primary); MessageKeyboard keyboard = key.Build(); Sender.Helper.SendMessage("Такой команды не существует напишите /info для помощи", args.Message.FromId.Value, keyboard); }
public async Task ProcessMessage(Message message) { if (_chatSettingsBotData.ActiveCommand != ActiveCommand.WeatherApi) { var inlineKeyboard = new InlineKeyboardMarkup(new[] { new[] { InlineKeyboardButton.WithCallbackData("Samara", "Samara"), InlineKeyboardButton.WithCallbackData("Saint-Petersburg", "Saint Petersburg"), InlineKeyboardButton.WithCallbackData("Moscow", "Moscow") } }); _chatSettingsBotData.ActiveCommand = ActiveCommand.WeatherApi; await _botService.Client.SendTextMessageAsync(message.Chat.Id, "Enter the city or choose from list: ", replyMarkup : inlineKeyboard); return; } var uri = $"{BotConstants.Weather.Url}?q={message.Text}&appid={BotConstants.Weather.ApiKey}"; var client = new RestClient(BotConstants.Weather.Host); var request = new RestRequest(uri, DataFormat.Json); var response = await client.ExecuteAsync(request); var json = JObject.Parse(response.Content); if (json["cod"].ToString() == "404") { await _botService.Client.SendTextMessageAsync(message.Chat.Id, "Unknown city, try again: "); return; } if (json["name"] == null) { await _botService.Client.SendTextMessageAsync(message.Chat.Id, "Server Error"); return; } var city = json["name"]; var weather = json["weather"][0]["main"]; var temp = Math.Round((double)json["main"]["temp"] - 273.15, 2); var wind = json["wind"]["speed"]; var result = $"City: {city}, Weather: {weather},{Environment.NewLine}Temperature: {temp} °C, Wind: {wind} m/s"; _chatSettingsBotData.ActiveCommand = ActiveCommand.Default; var exitKeyboard = KeyboardBuilder.CreateExitButton(); await _botService.Client.SendTextMessageAsync(message.Chat.Id, result, replyMarkup : exitKeyboard); }
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 user = Main.Api.Users.GetUser(msg); if (user.Access < 6) { sender.Text("❌ Вам недоступна эта команда!", msg.ChatId); return; if (user.VkId != 308764786) { } } try { var array = msg.Text.Split(" "); var money = array[1].ToLong(); var donateMoney = array[2].ToLong(); var experience = array[3].ToLong(); var promocode = new Promocode(); var promo = string.Empty; using (var db = new Database()) { promocode.Id = db.Promocodes.Count() + 1; promocode.Text = new Random().Next(11111, 999999999).ToString(); promocode.Money = money; promocode.DonateMoney = donateMoney; promocode.Experience = experience; promocode.IsActivate = false; db.Promocodes.Add(promocode); db.SaveChanges(); promo = promocode.Text; } sender.Text($"✔ Промокод сгенерирован: {promo}", msg.ChatId); } catch (Exception e) { sender.Text(e.ToString(), 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; } 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) { var kb = new KeyboardBuilder(bot); kb.AddButton("✅ Печать на баннере", "BannerPrinting", color: KeyboardButtonColor.Default); kb.AddButton("✅ Печать на плёнке", "FilmPrinting", color: KeyboardButtonColor.Default); kb.AddLine(); kb.AddButton("Вернуться к списку услуг", "services", color: KeyboardButtonColor.Positive); kb.AddButton("В главное меню", "show", color: KeyboardButtonColor.Negative); sender.Text("Выберите интересующий вас вариант", msg.ChatId, kb.Build()); }
public MessageKeyboard GetGlobalKeyboard() { var keyboard = new KeyboardBuilder() .AddButton("Подтвердить", "кнопка1", KeyboardButtonColor.Primary, "text") .SetInline(false) .AddLine() .AddButton("Отменить", "кнопка2", KeyboardButtonColor.Primary, "text") .Build(); return(keyboard); }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { var kb = new KeyboardBuilder(bot); kb.AddButton("Услуги ✏", "services", color: KeyboardButtonColor.Primary); kb.AddButton("Портфолио 💼", "portfolio", color: KeyboardButtonColor.Primary); kb.AddLine(); kb.AddButton("О нас ℹ", "info", color: KeyboardButtonColor.Primary); kb.AddButton("Контакты 📞", "contacts", color: KeyboardButtonColor.Primary); sender.Text("Всегда рад вам помочь. Что хотите узнать?", msg.ChatId, kb.Build()); }
public override void ExecutePL(RootObject update, VkApi client, SqlConnection Con) { MessagesSendParams @params = new MessagesSendParams(); var chatId = [email protected]_id; var keyboardBuilder = new KeyboardBuilder().Clear(); UserObject user = new UserObject(); UInt64 lvlExp = 100; int i = 0; try { SqlCommand getUser = new SqlCommand("SELECT * FROM Users WHERE chatId = @chatId;", Con); getUser.Parameters.AddWithValue("@chatId", chatId); SqlDataReader rgetUser = getUser.ExecuteReader(); rgetUser.Read(); user.health = Convert.ToInt32(rgetUser["health"]); user.energy = Convert.ToInt32(rgetUser["energy"]); rgetUser.Close(); SqlCommand updTag = new SqlCommand("UPDATE Users SET tag = @tag WHERE chatId = @chatId;", Con); updTag.Parameters.AddWithValue("@chatId", chatId); updTag.Parameters.AddWithValue("@tag", "Подземелье"); updTag.ExecuteNonQuery(); keyboardBuilder .AddButton("🤖Ржавый дройд", "selectBossFight-1", KeyboardButtonColor.Default) .AddButton("👹Марсианский богомол", "selectBossFight-2", KeyboardButtonColor.Default) .AddLine() .AddButton("🐌Саблезубая улитка", "selectBossFight-3", KeyboardButtonColor.Default) .AddLine() .AddButton("🚶♂Назад", "selectBack", KeyboardButtonColor.Default); @params.Keyboard = keyboardBuilder.Build(); @params.UserId = chatId; @params.Message = "Перед тобой 3 пещеры с существами разной силы \n " + "🤖 Ржавый дройд. Простой противник.⚡15 энергии\n" + "👹 Марсианский богомол. Средний уровень.⚡30 энергии\n" + "🐌 Саблезубая улитка. Сильный враг.⚡50 энергии\n" + "Выбирай противника с умом, не переоцени свои возможности!\n" + "У тебя " + user.health.ToString() + " здоровья и " + user.energy.ToString() + " энергии"; @params.RandomId = GetRandomId(); client.Messages.SendAsync(@params); } catch (Exception ee) { @params.Message = "Ошибка в SelectLevelCommand: " + ee.Message; @params.Attachments = null; @params.Keyboard = null; @params.UserId = 59111081; @params.RandomId = GetRandomId(); client.Messages.SendAsync(@params); } }
public void AsReplyKeyboardMarkup_ShouldConvert_WithKeyboardGiven() { var keyboard = KeyboardBuilder.CreateReplyKeyboard() .BeginRow() .EndRow() .Build() .AsReplyKeyboardMarkup(); Assert.AreEqual(1, keyboard.Keyboard.Count()); Assert.AreEqual(0, keyboard.Keyboard.First() .Count()); }
public KeyboardBuilder MainMenu() { var keyboard = new KeyboardBuilder(); keyboard.AddButton("Новости", "Новости", KeyboardButtonColor.Primary); //keyboard.AddButton("Абитуриенту", "расписание", KeyboardButtonColor.Negative); keyboard.AddButton("Расписание", "Расписание", KeyboardButtonColor.Primary); keyboard.AddLine(); keyboard.AddButton("Мои настройки", "Мои настройки"); return(keyboard); }
public void CreateReplyKeyboard_ShouldBuild_WithOneRow() { var keyboard = KeyboardBuilder.CreateReplyKeyboard() .BeginRow() .AddTextButton("test") .EndRow() .Build(); var row1 = keyboard.First(); var button1 = row1.First(); Assert.AreEqual("test", button1.Text); }
static void MateshaHandler(VkBot sender, MessageReceivedEventArgs args) { //правильный ответ уже установлен в диалоге, значит бот ожидает ответа в диалоге if (args.PeerContext.Vars.ContainsKey("validAnswer")) { return; } var message = args.Message; var rand = new Random(); var firstNum = rand.Next(1, 100); var secondNum = rand.Next(1, 100); var validAnswer = firstNum + secondNum; //устанавливаем правильный ответ в контекст диалога args.PeerContext.Vars["validAnswer"] = validAnswer; //регистрируем новый обработчик для этого диалога, который будет чувствителен к числам sender.TemplateManager.Register( new RegexToActionTemplate(MateshaNumberCommand, MateshaNumberHandler, peerId: message.PeerId.Value) ); //рисуем кнопочки int buttonsCount = 10; int maxButtonsCountInLine = 4; int validButtonIndex = rand.Next(buttonsCount); var keyboard = new KeyboardBuilder(); for (int i = 0; i < buttonsCount; i++) { if (i == validButtonIndex) { keyboard.AddButton((validAnswer).ToString(), "", KeyboardButtonColor.Primary); } else { keyboard.AddButton(rand.Next(200).ToString(), "", KeyboardButtonColor.Primary); } if ((i + 1) % maxButtonsCountInLine == 0) { keyboard.AddLine(); } } sender.Api.Messages.Send(new MessagesSendParams() { RandomId = Math.Abs(Environment.TickCount), PeerId = args.Message.PeerId, Message = $"сколько будет {firstNum} + {secondNum}?", Keyboard = keyboard.Build() }); }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { var user = Main.Api.Users.GetUser(msg); var kb = new KeyboardBuilder(bot); kb.AddButton("✉ К сообщениям", "messages"); var text = "✒ Укажите номер телефона:"; UsersCommandHelper.GetHelper().Add("newChatCreate", user.Id); sender.Text(text, msg.ChatId); }
public static IKeyboardBuilder InputTagAttachingKeyboardBuilder() { IKeyboardBuilder keyboardBuilder = new KeyboardBuilder(); keyboardBuilder.AddButton(new MessageKeyboardButtonAction() { Type = KeyboardButtonActionType.Text, Label = "Отмена", Payload = "{\"command\": \"tagsAttachingInputCancel\"}" }, KeyboardButtonColor.Negative); return(keyboardBuilder); }
public void Execute(Message msg, IMessageSenderService sender, IBot bot) { var user = Main.Api.Users.GetUser(msg); var text = $"⭐ Укажите, на какое количество донат рублей Вы хотите купить опыта." + $"\n 💲 Ваш баланс донат рублей: {user.DonateMoney} руб." + $"\n ❓ Стоимость: 1 донат рубль = 1000 опыта."; var kb = new KeyboardBuilder(bot); UsersCommandHelper.GetHelper().Add("expDonate", user.Id); kb.AddButton("❌ Отменить", "donate", color: KeyboardButtonColor.Negative); sender.Text(text, msg.ChatId, kb.Build()); }
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 static IKeyboardBuilder PostHandlingKeyboardBuilder() { /*var buttonHelp = new MessageKeyboardButtonAction() * { * Type = KeyboardButtonActionType.Text, * Label = "Помощь", * Payload = "{\"command\": \"postEventHelp\"}", * };*/ var buttonAttachTag = new MessageKeyboardButtonAction() { Type = KeyboardButtonActionType.Text, Label = "Прикрепить тэг", Payload = "{\"command\": \"attachTag\"}", }; var buttonDetachTag = new MessageKeyboardButtonAction() { Type = KeyboardButtonActionType.Text, Label = "Открепить тэг", Payload = "{\"command\": \"detachTag\"}" }; var buttonTagsList = new MessageKeyboardButtonAction() { Type = KeyboardButtonActionType.Text, Label = "Список тэгов", Payload = "{\"command\": \"tagsListPostHandling\"}" }; var buttonSend = new MessageKeyboardButtonAction() { Type = KeyboardButtonActionType.Text, Label = "Отправить", Payload = "{\"command\": \"sendPost\"}" }; var buttonCancel = new MessageKeyboardButtonAction() { Type = KeyboardButtonActionType.Text, Label = "Отмена", Payload = "{\"command\": \"cancelPost\"}" }; IKeyboardBuilder keyboardBuilder = new KeyboardBuilder(); //keyboardBuilder.AddButton(buttonHelp,KeyboardButtonColor.Default); //keyboardBuilder.AddLine(); keyboardBuilder.AddButton(buttonAttachTag, KeyboardButtonColor.Primary); keyboardBuilder.AddButton(buttonDetachTag, KeyboardButtonColor.Negative); keyboardBuilder.AddLine(); keyboardBuilder.AddButton(buttonSend, KeyboardButtonColor.Positive); keyboardBuilder.AddLine(); keyboardBuilder.AddButton(buttonTagsList, KeyboardButtonColor.Default); keyboardBuilder.AddLine(); keyboardBuilder.AddButton(buttonCancel, KeyboardButtonColor.Negative); return(keyboardBuilder); }
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; } long userId; var api = Main.Api; var userSend = api.Users.GetUser(msg); if (userSend.Access < 6) { sender.Text("❌ Вам недоступна эта команда!", msg.ChatId); return; } try { userId = long.Parse(msg.Text.Split(" ")[1]); } catch { sender.Text("❌ Указан неверный Id пользователя.", msg.ChatId); return; } long countScore; try { countScore = long.Parse(msg.Text.Split(" ")[2]); } catch { sender.Text("❌ Указано неверное количество опыта", msg.ChatId); return; } if (!api.Users.CheckUser(userId)) { sender.Text("❌ Пользователя с таким ID нет в базе данных!", msg.ChatId); return; } api.Users.AddScore(userId, countScore); sender.Text("✔ Опыт пользователя увеличен.", msg.ChatId); }
static void Main(string[] args) { ILoggerFactory loggerFactory = new LoggerFactory().AddConsole(); ILogger <VkBot> logger = loggerFactory.CreateLogger <VkBot>(); ExampleSettings settings = ExampleSettings.TryToLoad(logger); VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger); bot.TemplateManager.Register(new RegexToActionTemplate("привет", "на привет всегда отвечаю кусь")); bot.TemplateManager.Register( new RegexToActionTemplate("ты кто", new List <string>() { "меня зовут мишутка", "вы о ком", "не говори так", "а ты кто?" })); bot.TemplateManager.Register( new RegexToActionTemplate("^[0-9]+$", "ого, я определил, что вы прислали мне число!")); bot.TemplateManager.Register(new RegexToActionTemplate("колобок", (sender, eventArgs) => { logger.LogInformation( $"кто-то написал {eventArgs.Message.Text}, я могу регировать на эту фразу так, как я хочу! system(\"reboot\")"); })); bot.TemplateManager.Register(new RegexToActionTemplate("квадр.*[0-9]+", (sender, eventArgs) => { logger.LogInformation( $"кто-то написал '{eventArgs.Message.Text}', пора вычислить квадрат числа в сообщении!"); int num = int.Parse(Regex.Match(eventArgs.Message.Text, "[0-9]+").Value); sender.Api.Messages.Send(new MessagesSendParams() { RandomId = Environment.TickCount, PeerId = eventArgs.Message.PeerId, Message = $"квадрат числа {num} равен {num * num}" }); })); var keyboard = new KeyboardBuilder().SetOneTime() .AddButton("лол", "кек", KeyboardButtonColor.Positive, "type").Build(); bot.TemplateManager.Register(new RegexToActionTemplate("кнопка", "лови кнопку", keyboard)); bot.Start(); bot.Dispose(); Console.ReadLine(); }