public void CastleQuest() { QuestsPage.CastleQuest(this); }
private static async void BotOnMessageReceived(object sender, MessageEventArgs messageEventArgs) { try { Player currentSession; var message = messageEventArgs.Message; if (message == null || message.Type != MessageType.TextMessage) { return; } string username; username = message.Chat.Username == null ? "UnnamedPlayer" : message.Chat.Username; currentSession = sessions.GetSession(message.Chat.Id, username); //Console.WriteLine("{0} Message by username: {1}, chatId: {2}, message body: {3}", DateTime.Now.ToString("HH:mm:ss tt"), username, message.Chat.Id, message.Text); _logger.LogInformation("{0} Message by username: {1}, chatId: {2}, message body: {3}", DateTime.Now.ToString("HH:mm:ss tt"), username, message.Chat.Id, message.Text); if (message.Text.StartsWith("/broadcast")) { if (admins.Contains(message.Chat.Id)) { var txt = message.Text; if (txt.Contains(' ')) { string msg = txt.Substring(txt.IndexOf(' ') + 1); sessions.Broadcast(msg); } } } if (message.Text.StartsWith("/start")) { if (currentSession.Name == null) { await currentSession.SendMessage("Как тебя зовут?"); } else { await currentSession.SendMessage("Привет, " + currentSession.Name, MainPage.GetKeyboard()); } } if (!message.Text.StartsWith("/start") && currentSession.Name == null) { currentSession.Name = message.Text; await currentSession.SendMessage("Ваш пол?" + currentSession.Name, Helper.GetKeyboard(new string[] { "♂ Мужской", "♀ Женский" })); currentSession.Persist(); } if (message.Text.StartsWith("♂ Мужской")) { currentSession.Gender = true; await currentSession.SendMessage("Приветствую, сэр " + currentSession.Name, MainPage.GetKeyboard()); currentSession.Persist(); } if (message.Text.StartsWith("♀ Женский")) { currentSession.Gender = false; await currentSession.SendMessage("Приветствую, леди " + currentSession.Name, MainPage.GetKeyboard()); currentSession.Persist(); } if (message.Text.StartsWith("Приключения")) { if (!currentSession.GetInQuest()) { currentSession.SendInlineMessage("Вы видите огромный столб, а на нём куча указателей.", QuestsPage.GetKeyboard()); } else { await currentSession.SendMessage("Вы уже на задании."); } } if (message.Text.StartsWith("Инвентарь")) { currentSession.ShowBackpack(); } if (!currentSession.GetInQuest()) { if (message.Text.StartsWith("Магазин")) { await currentSession.SendMessage("Здоровенный бугай смотрит на вас с ленивым интересом.\n-Будешь покупать что, или так просто зенки пыришь?", Helper.GetKeyboard(new string[] { "Купить", "Продать" }, new string[] { "Назад" })); } if (message.Text.StartsWith("Купить")) { Shop.BuyItems(currentSession); } if (message.Text.StartsWith("Оружие")) { Shop.BuyItems(currentSession); } if (message.Text.StartsWith("Броня")) { Shop.BuyItems(currentSession); } if (message.Text.StartsWith("Одноручное оружие")) { Shop.BuyItems(currentSession); } if (message.Text.StartsWith("Двуручное оружие")) { Shop.BuyItems(currentSession); } if (message.Text.StartsWith("Шлемы")) { Shop.BuyItems(currentSession); } if (message.Text.StartsWith("Шлемы")) { Shop.BuyItems(currentSession); } if (message.Text.StartsWith("Продать")) { Shop.SellItems(currentSession); } } if (message.Text.StartsWith("Статус")) { //var watch = System.Diagnostics.Stopwatch.StartNew(); ////var msg = await BotClient.Instance.SendTextMessageAsync(currentSession.id, "Статус", replyMarkup: MainPage.GetKeyboard(), parseMode: ParseMode.Html); ////await BotClient.Instance.EditMessageReplyMarkupAsync(currentSession.id, msg.MessageId, currentSession.GetStatusKeyboard()); currentSession.SendInlineMessage(currentSession.GetFullStatus(), currentSession.GetStatusKeyboard()); //watch.Stop(); //var elapsedMs = watch.ElapsedMilliseconds; //Console.WriteLine("Get full status, {0}, {1}: {2}", currentSession.id, currentSession.name, elapsedMs); } if (message.Text.StartsWith("/info")) { var txt = message.Text; if (txt.Contains('_')) { var id = int.Parse(txt.Split('_')[1]); await currentSession.SendMessage(Items.GetItemInfo(id)); } } if (message.Text.StartsWith("/on")) { var txt = message.Text; if (txt.Contains('_')) { var id = int.Parse(txt.Split('_')[1]); currentSession.EquipItem(id); } } if (message.Text.StartsWith("/off")) { var txt = message.Text; if (txt.Contains('_')) { var id = int.Parse(txt.Split('_')[1]); currentSession.UnequipItem(id); } } if (message.Text.StartsWith("/buy")) { var txt = message.Text; if (txt.Contains('_')) { var id = int.Parse(txt.Split('_')[1]); currentSession.BuyItem(id); } } if (message.Text.StartsWith("/sell")) { var txt = message.Text; if (txt.Contains('_')) { var id = int.Parse(txt.Split('_')[1]); currentSession.SellItem(id); } } if (message.Text.StartsWith("/setTitle")) { var txt = message.Text; if (txt.Contains('_')) { var id = int.Parse(txt.Split('_')[1]); currentSession.SetTitle(id); } } if (message.Text.StartsWith("/levelUp")) { if (currentSession.AttributePoints != 0) { await currentSession.SendMessage("У вас [" + currentSession.AttributePoints + "] свободных очков характеристик.\nКакую характеристику вы хотите улучшить?", Helper.GetKeyboard(new string[][] { new string[] { "+1 💪Сила", "+1 🎯Ловкость" }, new string[] { "+1 🚜Выносливость" }, new string[] { "Назад" } })); } } if (message.Text.StartsWith("+1")) { var txt = message.Text; if (txt.Contains(' ')) { var attr = txt.Split(' ')[1]; currentSession.AddAttribute(attr); } } if (message.Text.StartsWith("/name")) { var txt = message.Text; if (txt.Contains(' ')) { var name = txt.Split(' ')[1]; currentSession.SetName(name); } } if (message.Text.StartsWith("/gender")) { await currentSession.SendMessage("Ваш пол?", Helper.GetKeyboard(new string[] { "♂ Мужской", "♀ Женский" })); } if (message.Text.StartsWith("Назад") || message.Text.StartsWith("/back")) { await currentSession.SendMessage(currentSession.GetStatus(), MainPage.GetKeyboard()); } if (message.Text.StartsWith("/who")) { var txt = message.Text; if (txt.Contains(' ')) { var name = txt.Split(' ')[1]; await currentSession.SendMessage(sessions.GetPlayerByName(name, currentSession).GetAlienStatus()); } } } catch (Exception ex) { _logger.LogError(String.Format("{0} {1}", ex.Message, ex.StackTrace)); //foreach (var admin in admins)//отсылаем логи админам //{ // // BotClient.Instance.SendTextMessageAsync(admin, String.Format("{0} {1}",ex.Message,ex.StackTrace), parseMode: ParseMode.Html).ConfigureAwait(false); //} } }
public void ForestQuest() { QuestsPage.ForestQuest(this); }