Esempio n. 1
0
        // private List<Fissure> _fissures = api.GetFissures();

        public void SendCycles(GroupNumber group)
        {
            var cetuscycle  = api.GetCetusCycle();
            var valliscycle = api.GetVallisCycle();
            var earthcycle  = api.GetEarthCycle();
            var msg         = $"{WFFormatter.ToString(cetuscycle)}\r\n" +
                              $"{WFFormatter.ToString(valliscycle)}\r\n" +
                              $"{WFFormatter.ToString(earthcycle)}";

            Messenger.SendGroup(group, msg.AddPlatformInfo().AddRemainCallCount(group));
        }
Esempio n. 2
0
        public void SendWMInfo(string item, string group)
        {
            var searchword   = translator.TranslateSearchWord(item);
            var formateditem = item;

            if (item == searchword)
            {
                searchword   = translator.TranslateSearchWord(item + "一套");
                formateditem = item + "一套";
                if (formateditem == searchword)
                {
                    searchword   = translator.TranslateSearchWord(item.Replace("p", "prime").Replace("总图", "蓝图"));
                    formateditem = item.Replace("p", "prime").Replace("总图", "蓝图");
                    if (formateditem == searchword)
                    {
                        searchword   = translator.TranslateSearchWord(item.Replace("p", "prime") + "一套");
                        formateditem = item.Replace("p", "prime") + "一套";
                        if (formateditem == searchword)
                        {
                            var sb          = new StringBuilder();
                            var similarlist = translator.GetSimilarItem(item.Format());
                            sb.AppendLine($"物品{item}不存在或格式错误.");
                            sb.AppendLine($"请问这下面有没有你要找的物品呢?:");
                            foreach (var similarresult in similarlist)
                            {
                                sb.AppendLine($"    {similarresult}");
                            }
                            Messenger.SendGroup(group, sb.ToString().Trim());
                            return;
                        }
                    }
                }
            }

            var msg = "";

            if (isWFA)
            {
                var infoEx = GetWMINfoEx(searchword);
                OrderWMInfoEx(infoEx);
                translator.TranslateWMOrderEx(infoEx, searchword);
                msg = WFFormatter.ToString(infoEx);
            }
            else
            {
                var info = GetWMInfo(searchword);
                OrderWMInfo(info);
                translator.TranslateWMOrder(info, searchword);
                msg = WFFormatter.ToString(info);
            }

            Messenger.SendGroup(group, msg);
        }
        public void SendAllPersistentEnemies(string group)
        {
            var enemies = api.GetPersistentEnemies();
            var sb      = new StringBuilder();

            sb.AppendLine("下面是全太阳系内的小小黑,快去锤爆?");
            foreach (var enemy in enemies)
            {
                sb.AppendLine(WFFormatter.ToString(enemy));
            }
            Messenger.SendGroup(group, sb.ToString().Trim());
        }
Esempio n. 4
0
        public void SendEvent(string group)
        {
            var events = api.GetEvents();

            if (events.Count > 0)
            {
                var msg = WFFormatter.ToString(events);
                Messenger.SendGroup(group, msg + $"\r\n机器人目前运行的平台是: {platform}");
            }
            else
            {
                Messenger.SendGroup(group, "目前游戏内没有任何活动(尸鬼,豺狼,舰队)." + $"\r\n机器人目前运行的平台是: {platform}");
            }
        }
Esempio n. 5
0
        public void SendKuvaMissions(GroupNumber group)
        {
            var sb    = new StringBuilder();
            var kuvas = api.GetKuvaMissions();

            sb.AppendLine("以下是所有赤毒任务: \n\n");
            // foreach (var kuva in kuvas.Where(k => k.missiontype.Contains("KuvaMission") && k.start < DateTime.Now && DateTime.Now < k.end))
            foreach (var kuva in kuvas)
            {
                sb.AppendLine(WFFormatter.ToString(kuva));
                sb.AppendLine();
            }
            Messenger.SendGroup(group, sb.ToString().Trim());
        }
        public void SendAllAlerts(string group)
        {
            var alerts = api.GetAlerts();
            var sb     = new StringBuilder();

            sb.AppendLine("指挥官, 下面是太阳系内所有的警报任务, 供您挑选.");
            foreach (var alert in alerts)
            {
                sb.AppendLine(WFFormatter.ToString(alert));
                sb.AppendLine();
            }

            Messenger.SendGroup(group, sb.ToString().Trim() + $"\r\n机器人目前运行的平台是: {platform}");
        }
Esempio n. 7
0
        public void SendEvent(GroupNumber group)
        {
            var events = api.GetEvents();

            if (events.Any())
            {
                var msg = WFFormatter.ToString(events);
                Messenger.SendGroup(group, msg.AddPlatformInfo().AddRemainCallCount(group));
            }
            else
            {
                Messenger.SendGroup(group, "目前游戏内没有任何活动 (尸鬼, 豺狼, 舰队).".AddPlatformInfo().AddRemainCallCount(group));
            }
        }
Esempio n. 8
0
        public void SendAllAlerts(string group)
        {
            var alerts = api.GetAlerts();
            var sb     = new StringBuilder();

            sb.AppendLine("查询到当前时间的警报如下:");
            foreach (var alert in alerts)
            {
                sb.AppendLine(WFFormatter.ToString(alert));
                sb.AppendLine();
            }

            Messenger.SendGroup(group, sb.ToString().Trim());
        }
Esempio n. 9
0
        public void SendAllAlerts(GroupNumber group)
        {
            UpdateAlertPool();
            var alerts = AlertPool;
            var sb     = new StringBuilder();

            sb.AppendLine("指挥官, 下面是太阳系内所有的警报任务, 供您挑选.");
            foreach (var alert in alerts)
            {
                sb.AppendLine(WFFormatter.ToString(alert));
                sb.AppendLine();
            }

            Messenger.SendGroup(group, sb.ToString().Trim().AddPlatformInfo());
        }
Esempio n. 10
0
 private void SendWFAlert(WFAlert alert)
 {
     lock (WFAlertLocker)
     {
         var reward = alert.Mission.Reward;
         if (reward.Items.Any() || reward.CountedItems.Any())
         {
             var result = "指挥官, Ordis拦截到了一条警报, 您要开始另一项光荣的打砸抢任务了吗?\r\n" +
                          WFFormatter.ToString(alert) +
                          "\r\n可使用: /help来查看机器人的更多说明.";
             Messenger.Broadcast(result);
             sendedAlertsSet.Add(alert.Id);
         }
     }
 }
Esempio n. 11
0
        public void SendAllInvasions(string group)
        {
            var invasions = api.GetInvasions();
            var sb        = new StringBuilder();

            sb.AppendLine("指挥官, 下面是太阳系内所有的入侵任务.");

            foreach (var invasion in invasions.Where(invasion => !invasion.completed))
            {
                sb.AppendLine(WFFormatter.ToString(invasion));
                sb.AppendLine();
            }

            Messenger.SendGroup(group, sb.ToString().Trim());
        }
Esempio n. 12
0
        public void SendAllInvasions(GroupNumber group)
        {
            UpdateInvasionPool();
            var invasions = InvasionPool;
            var sb        = new StringBuilder();

            sb.AppendLine("指挥官, 下面是太阳系内所有的入侵任务.");

            foreach (var invasion in invasions.Where(invasion => !invasion.completed))
            {
                sb.AppendLine(WFFormatter.ToString(invasion));
                sb.AppendLine();
            }

            Messenger.SendGroup(group, sb.ToString().Trim().AddPlatformInfo());
        }
Esempio n. 13
0
        public void SendAllPersistentEnemies(GroupNumber group)
        {
            var enemies = StalkerPool;

            if (!enemies.Any())
            {
                Messenger.SendGroup(group, "目前没有小小黑出现.");
                return;
            }

            var sb = new StringBuilder();

            sb.AppendLine("下面是全太阳系内的小小黑, 快去锤爆?");
            foreach (var enemy in enemies)
            {
                sb.AppendLine(WFFormatter.ToString(enemy));
            }
            Messenger.SendGroup(group, sb.ToString().Trim());
        }
Esempio n. 14
0
        public void SendRivenInfos(GroupNumber group, string weapon)
        {
            var sb = new StringBuilder();

            try
            {
                if (isWFA)
                {
                    if (translator.ContainsWeapon(weapon))
                    {
                        Messenger.SendGroup(group, "好嘞, 等着, 着啥急啊, 这不帮你查呢.");
                        var info = GetRivenInfos(weapon);
                        var data = GetRivenDatas().Where(d => d.compatibility.Format() == weapon).ToList();
                        var msg  = info.Any() ? WFFormatter.ToString(info, data) : $"抱歉, 目前紫卡市场没有任何出售: {weapon} 紫卡的用户.".AddRemainCallCount(group);
                        sb.AppendLine(msg.AddPlatformInfo());
                    }
                    else
                    {
                        sb.AppendLine($"武器 {weapon} 不存在.");
                        var similarlist = translator.GetSimilarItem(weapon, "rm");
                        if (similarlist.Any())
                        {
                            sb.AppendLine("请问这下面有没有你要找的武器呢?(可尝试复制下面的名称来进行搜索)");
                            foreach (var item in similarlist)
                            {
                                sb.AppendLine($"    {item}");
                            }
                        }
                    }
                }
                else
                {
                    sb.AppendLine("本机器人没有 WFA 授权, 本功能无法使用, 请联系机器人管理员.");
                }
            }
            catch (WebException)
            {
                sb.AppendLine("经过我们的多次尝试, 依然无法访问紫卡市场. 如果你不能谅解, 有本事顺着网线来打我呀.");
            }
            Messenger.SendGroup(group, sb.ToString().Trim());
        }
Esempio n. 15
0
        private void CheckPersistentEnemies()
        {
            var enemies = StalkerPool;

            if (!enemies.Any(enemy => enemy.isDiscovered && !sendedStalkerSet.Contains(enemy.lastDiscoveredTime)))
            {
                return;
            }

            var sb = new StringBuilder();

            sb.AppendLine("我看到有小小黑冒头了? 干!");

            foreach (var enemy in enemies.Where(enemy => enemy.isDiscovered && !sendedStalkerSet.Contains(enemy.lastDiscoveredTime)))
            {
                sb.AppendLine(WFFormatter.ToString(enemy));
                sendedStalkerSet.Add(enemy.lastDiscoveredTime);
            }

            Messenger.Broadcast(sb.ToString().Trim());
        }
Esempio n. 16
0
 private void UpdatePersistentEnemies()
 {
     lock (StalkerLocker)
     {
         var enemies = api.GetPersistentEnemies();
         var sb      = new StringBuilder();
         if (enemies.Any(enemy => enemy.isDiscovered && !sendedStalkerSet.Contains(enemy.lastDiscoveredTime)))
         {
             sb.AppendLine("我看到有小小黑冒头了?干!");
             foreach (var enemy in enemies)
             {
                 if (enemy.isDiscovered && !sendedStalkerSet.Contains(enemy.lastDiscoveredTime))
                 {
                     sb.AppendLine(WFFormatter.ToString(enemy));
                     sendedStalkerSet.Add(enemy.lastDiscoveredTime);
                 }
             }
             Messenger.Broadcast(sb.ToString().Trim());
         }
     }
 }
Esempio n. 17
0
 public void SendRiveninfos(string group, string weapon)
 {
     try
     {
         if (isWFA)
         {
             if (translator.ContainsWeapon(weapon))
             {
                 Messenger.SendGroup(group, "好嘞, 等着, 着啥急啊, 这不帮你查呢.");
                 var info = GetRiveninfos(weapon);
                 var msg  = "";
                 if (info.Count > 0)
                 {
                     msg = WFFormatter.ToString(info);
                 }
                 else
                 {
                     msg = $"抱歉, 目前紫卡市场没有任何出售: {weapon} 紫卡的用户.";
                 }
                 Messenger.SendGroup(group, msg + $"\r\n机器人目前运行的平台是: {platform}");
             }
             else
             {
                 Messenger.SendGroup(group, $"武器{weapon}不存在, 请检查格式(请注意: 悦音prime)");
             }
         }
         else
         {
             Messenger.SendGroup(group, "本机器人没有WFA授权, 本功能无法使用, 请联系机器人管理员.");
         }
     }
     catch (WebException)
     {
         Messenger.SendGroup(group, "经过我们的多次尝试, 依然无法访问紫卡市场. 如果你不能谅解, 有本事顺着网线来打我呀.");
     }
 }
Esempio n. 18
0
        public void SendWMInfo(string item, GroupNumber group, bool quickReply)
        {
            // 下面 你将要 看到的 是 本项目 最大的  粪山
            var words = new List <string> {
                "prime", "p", "甲"
            };
            var heads = new List <string> {
                "头部神经光", "头部神经", "头部神", "头部", "头"
            };

            foreach (var word in words)
            {
                foreach (var head in heads)
                {
                    if (!item.Contains("头部神经光元"))
                    {
                        if (item.Contains(word + head))
                        {
                            item = item.Replace(word + head, word + "头部神经光元");
                            break;
                        }
                    }
                }
            }
            var searchword   = translator.TranslateSearchWord(item);
            var formateditem = item;

            if (item == searchword)
            {
                searchword   = translator.TranslateSearchWord(item + "一套");
                formateditem = item + "一套";
                if (formateditem == searchword)
                {
                    searchword   = translator.TranslateSearchWord(item.Replace("p", "prime").Replace("总图", "蓝图"));
                    formateditem = item.Replace("p", "prime").Replace("总图", "蓝图");
                    if (formateditem == searchword)
                    {
                        searchword   = translator.TranslateSearchWord(item.Replace("p", "prime") + "一套");
                        formateditem = item.Replace("p", "prime") + "一套";
                        if (formateditem == searchword)
                        {
                            var sb          = new StringBuilder();
                            var similarlist = translator.GetSimilarItem(item.Format());
                            sb.AppendLine($"物品 {item} 不存在或格式错误.");
                            sb.AppendLine($"请问这下面有没有你要找的物品呢?(可尝试复制下面的名称来进行搜索)");
                            foreach (var similarresult in similarlist)
                            {
                                sb.AppendLine($"    {similarresult}");
                            }

                            sb.AppendLine("注: 这个命令是用来查询 WarframeMarket 上面的物品的, 不是其他什么东西.");
                            Messenger.SendGroup(group, sb.ToString().Trim().AddRemainCallCount(group));
                            return;
                        }
                    }
                }
            }

            var msg = string.Empty;

            Messenger.SendGroup(group, "好嘞, 等着, 着啥急啊, 这不帮你查呢.");

            var failed = false;

            if (Config.Instance.IsThirdPartyWM)
            {
                try
                {
                    if (isWFA)
                    {
                        var infoEx = GetWMINfoEx(searchword);
                        if (infoEx.orders.Any())
                        {
                            OrderWMInfoEx(infoEx);
                            translator.TranslateWMOrderEx(infoEx, searchword);
                            msg = WFFormatter.ToString(infoEx, quickReply);
                        }
                        else
                        {
                            msg = $"抱歉, WarframeMarket 上目前还没有售卖 {item} 的用户";
                        }
                    }
                    else
                    {
                        msg = "很抱歉, 本机器人没有 WFA 授权, 无法使用第三方 WM, 这很可能是由于错误设置导致的. 请联系机器人负责人.";
                    }
                }
                catch (Exception)
                {
                    Messenger.SendGroup(group, "很抱歉, 在使用第三方 API 时遇到了网络问题. 正在为您转官方 API.");
                    failed = true;
                }
            }

            if (!Config.Instance.IsThirdPartyWM || failed)
            {
                var info = GetWMInfo(searchword);
                if (info.payload.orders.Any())
                {
                    OrderWMInfo(info);
                    translator.TranslateWMOrder(info, searchword);
                    msg = WFFormatter.ToString(info, quickReply);
                }
                else
                {
                    msg = $"抱歉, WarframeMarket 上目前还没有售卖 {item} 的用户";
                }
            }

            if (!quickReply)
            {
                msg = $"{msg}\n\n如果你需要快捷回复, 请使用指令 <查询 {item} -QR>";
            }

            Messenger.SendGroup(group, msg.AddPlatformInfo().AddRemainCallCount(group));
        }
Esempio n. 19
0
        public void SendWMInfo(string item, GroupNumber group)
        {
            var searchword   = translator.TranslateSearchWord(item);
            var formateditem = item;

            if (item == searchword)
            {
                searchword   = translator.TranslateSearchWord(item + "一套");
                formateditem = item + "一套";
                if (formateditem == searchword)
                {
                    searchword   = translator.TranslateSearchWord(item.Replace("p", "prime").Replace("总图", "蓝图"));
                    formateditem = item.Replace("p", "prime").Replace("总图", "蓝图");
                    if (formateditem == searchword)
                    {
                        searchword   = translator.TranslateSearchWord(item.Replace("p", "prime") + "一套");
                        formateditem = item.Replace("p", "prime") + "一套";
                        if (formateditem == searchword)
                        {
                            var sb          = new StringBuilder();
                            var similarlist = translator.GetSimilarItem(item.Format());
                            sb.AppendLine($"物品 {item} 不存在或格式错误.");
                            sb.AppendLine($"请问这下面有没有你要找的物品呢?(可尝试复制下面的名称来进行搜索)");
                            foreach (var similarresult in similarlist)
                            {
                                sb.AppendLine($"    {similarresult}");
                            }
                            Messenger.SendGroup(group, sb.ToString().Trim());
                            return;
                        }
                    }
                }
            }

            var msg = string.Empty;

            Messenger.SendGroup(group, "好嘞, 等着, 着啥急啊, 这不帮你查呢.");

            var failed = false;

            if (Config.Instance.IsThirdPartyWM)
            {
                try
                {
                    if (isWFA)
                    {
                        var infoEx = GetWMINfoEx(searchword);
                        if (infoEx.orders.Any())
                        {
                            OrderWMInfoEx(infoEx);
                            translator.TranslateWMOrderEx(infoEx, searchword);
                            msg = WFFormatter.ToString(infoEx);
                        }
                        else
                        {
                            msg = $"抱歉, WarframeMarket 上目前还没有售卖 {item} 的用户";
                        }
                    }
                    else
                    {
                        msg = "很抱歉, 本机器人没有 WFA 授权, 无法使用第三方 WM, 这很可能是由于错误设置导致的. 请联系机器人负责人.";
                    }
                }
                catch (Exception)
                {
                    Messenger.SendGroup(group, "很抱歉, 在使用第三方 API 时遇到了网络问题. 正在为您转官方 API.");
                    failed = true;
                }
            }

            if (!Config.Instance.IsThirdPartyWM || failed)
            {
                var info = GetWMInfo(searchword);
                if (info.payload.orders.Any())
                {
                    OrderWMInfo(info);
                    translator.TranslateWMOrder(info, searchword);
                    msg = WFFormatter.ToString(info);
                }
                else
                {
                    msg = $"抱歉, WarframeMarket 上目前还没有售卖 {item} 的用户";
                }
            }

            Messenger.SendGroup(group, msg.AddPlatformInfo());
        }