コード例 #1
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());
        }
コード例 #2
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());
        }
コード例 #3
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());
         }
     }
 }
コード例 #4
0
ファイル: WFNotificationHandler.cs プロジェクト: Aecine/WFBot
        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());
        }
コード例 #5
0
ファイル: RMSearcher.cs プロジェクト: qiutong123/WFBot-1
 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, "经过我们的多次尝试, 依然无法访问紫卡市场. 如果你不能谅解, 有本事顺着网线来打我呀.");
     }
 }
コード例 #6
0
ファイル: WMSearcher.cs プロジェクト: OldDemonKing/WFBot
        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));
        }
コード例 #7
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());
        }