//public void SendFissures(string group, List<string> words) public void SendFissures(GroupNumber group) { var fissures = api.GetFissures().Where(fissure => fissure.active).ToList(); var msg = WFFormatter.ToString(fissures); Messenger.SendGroup(group, msg.AddPlatformInfo()); }
public void SendVoidTrader(GroupNumber group) { var trader = api.GetVoidTrader(); var msg = WFFormatter.ToString(trader); Messenger.SendGroup(group, msg.AddPlatformInfo().AddRemainCallCount(group)); }
public static void SendGroup(GroupNumber g, string content) { if (MessageAlternateHandler != null) { MessageAlternateHandler(content); return; } var qq = g.QQ; if (previousMessageDic.ContainsKey(qq) && content == previousMessageDic[qq]) { return; } previousMessageDic[qq] = content; IncreaseCallCounts(qq); using (var robotSession = MahuaRobotManager.Instance.CreateSession()) { var api = robotSession.MahuaApi; api.SendGroupMessage(qq, content); } //Thread.Sleep(1000); //我真的很生气 为什么傻逼tencent服务器就不能让我好好地发通知 NMSL }
public static void SendBotStatus(GroupNumber group) { var sb = new StringBuilder(); var apistat = WebHelper.TryGet("https://warframestat.us"); var wmstat = WebHelper.TryGet("https://api.warframe.market/v1/items/valkyr_prime_set/orders?include=item"); var wfastat = WebHelper.TryGet("https://api.richasy.cn/wfa/rm/riven"); if (apistat.IsOnline && wmstat.IsOnline && wfastat.IsOnline) { sb.AppendLine("机器人状态: 一切正常"); } else { sb.AppendLine("机器人状态: 错误"); } if (InitEvent1.onlineBuild) { sb.AppendLine($"插件版本: {InitEvent1.localVersion}"); } else { sb.AppendLine($"插件版本: 非官方"); } sb.AppendLine($" 任务API: {apistat.Latency}ms [{(apistat.IsOnline? "在线" : "离线")}]"); sb.AppendLine($" WarframeMarket: {wmstat.Latency}ms [{(wmstat.IsOnline ? "在线" : "离线")}]"); sb.AppendLine($" WFA紫卡市场: {wfastat.Latency}ms [{(wfastat.IsOnline ? "在线" : "离线")}]"); var commit = CommitsGetter.Get("https://api.github.com/repos/TRKS-Team/WFBot/commits"); sb.AppendLine(ToString(commit)); sb.ToString().Trim().AddPlatformInfo().SendToGroup(group); }
public void SendNightWave(GroupNumber group) { var nightwave = api.GetNightWave(); var msg = WFFormatter.ToString(nightwave).AddPlatformInfo().AddRemainCallCount(group); Messenger.SendGroup(group, msg); }
public void SendRivenInfos(GroupNumber group, string weapon) { try { if (isWFA) { if (translator.ContainsWeapon(weapon)) { Messenger.SendGroup(group, "好嘞, 等着, 着啥急啊, 这不帮你查呢."); var info = GetRivenInfos(weapon); var msg = info.Any() ? WFFormatter.ToString(info) : $"抱歉, 目前紫卡市场没有任何出售: {weapon} 紫卡的用户."; Messenger.SendGroup(group, msg.AddPlatformInfo()); } else { Messenger.SendGroup(group, $"武器 {weapon} 不存在, 请检查格式(请注意: 悦音prime)"); } } else { Messenger.SendGroup(group, "本机器人没有 WFA 授权, 本功能无法使用, 请联系机器人管理员."); } } catch (WebException) { Messenger.SendGroup(group, "经过我们的多次尝试, 依然无法访问紫卡市场. 如果你不能谅解, 有本事顺着网线来打我呀."); } }
public void SendSortie(GroupNumber group) { var sortie = api.GetSortie(); var msg = WFFormatter.ToString(sortie); Messenger.SendGroup(group, msg.AddPlatformInfo().AddRemainCallCount(group)); }
public void SendRelicInfo(GroupNumber group, string word) { var relics = translator.GetRelicInfo(word); var msg = $"{WFFormatter.ToString(relics)}\n\n" + $"你正在查看与 {word} 有关的所有遗物."; Messenger.SendGroup(group, msg.AddPlatformInfo().AddRemainCallCount(group)); }
public void SendCycles(GroupNumber group) { var cetuscycle = api.GetCetusCycle(); var valliscycle = api.GetVallisCycle(); var msg = $"{WFFormatter.ToString(cetuscycle)}\r\n" + $"{WFFormatter.ToString(valliscycle)}"; Messenger.SendGroup(group, msg.AddPlatformInfo()); }
public void SendCetusMissions(GroupNumber group, int index) { var missions = api.GetSyndicateMissions(); var sb = new StringBuilder(); sb.AppendLine(WFFormatter.ToString(missions.First(mission => mission.syndicate == "Ostrons"), index)); sb.AppendLine("您正在查看 希图斯 的全部赏金任务, 使用: /金星赏金 来查询 福尔图娜 的赏金任务."); Messenger.SendGroup(group, sb.ToString().AddPlatformInfo()); }
public void SendFortunaMissions(GroupNumber group, int index) { var missions = api.GetSyndicateMissions(); var sb = new StringBuilder(); sb.AppendLine(WFFormatter.ToString(missions.First(mission => mission.syndicate == "Solaris United"), index)); sb.AppendLine($"您正在查看 福尔图娜 的全部赏金任务, 使用: /地球赏金 来查询希图斯的赏金任务."); Messenger.SendGroup(group, sb.ToString().AddPlatformInfo()); }
public void SendArbitrationMission(GroupNumber group) { var sb = new StringBuilder(); var ar = api.GetArbitrationMission(); // var mission = kuvas.First(k => k.missiontype == "EliteAlertMission" && k.start < DateTime.Now && DateTime.Now < k.end); sb.AppendLine("以下是仲裁警报的信息: "); sb.AppendLine(WFFormatter.ToString(ar)); Messenger.SendGroup(group, sb.ToString().Trim()); }
public void SendAllPersistentEnemies(GroupNumber group) { var enemies = StalkerPool; var sb = new StringBuilder(); sb.AppendLine("下面是全太阳系内的小小黑, 快去锤爆?"); foreach (var enemy in enemies) { sb.AppendLine(WFFormatter.ToString(enemy)); } Messenger.SendGroup(group, sb.ToString().Trim()); }
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)); } }
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(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()); }
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()); }
public static void SendHelpdoc(GroupNumber group) { SendGroup(@group, @"欢迎查看机器人唯一指定帮助文档 宣传贴地址: https://warframe.love/thread-230.htm 在线最新文档: https://github.com/TRKS-Team/WFBot/blob/master/README.md (绝对最新的文档) ↑这个文档你们多读一读,机器人最新最好玩的功能都写在里面了. 开源地址: https://github.com/TRKS-Team/WFBot 赞助(乞讨)地址: https://afdian.net/@TheRealKamisama 您的赞助会用来维持公用机器人,也能推动我继续维护本插件. 本机器人为公益项目,持续维护中."); if (File.Exists("data/image/帮助文档.png")) { SendGroup(@group, @"[CQ:image,file=\帮助文档.png]"); } else { SendGroup(@group, @"欢迎查看破机器人的帮助文档,如有任何bug和崩溃请多多谅解. 作者: TheRealKamisama 开源地址: https://github.com/TRKS-Team/WFBot 如果群里没有自动通知 请务必检查是否启用了通知功能 午夜电波: /午夜电波 每日每周即将过期的挑战 机器人状态: /机器人状态 机器人目前的运行状态. 警报: /警报 当前的所有警报. 入侵: /入侵 当前的所有入侵. 突击: /突击 当前的所有突击. 平原时间: /平原 地球平原 现在的时间 和 金星平原 现在的温度. 活动: /活动 目前的所有活动 虚空商人信息: /虚空商人 奸商的状态. 如果虚空商人已经抵达将会输出所有的商品和价格, 长度较长. WarframeMarket: /查询 [物品名称] 查询未开紫卡请输入: 手枪未开紫卡 紫卡市场: /紫卡 [武器名称] 数据来自 WFA 紫卡市场 地球赏金: /地球赏金 地球平原的全部/单一赏金任务. 金星赏金: /金星赏金 金星平原的全部/单一赏金任务. 裂隙: /裂隙 来查询全部裂隙. 遗物: /遗物 [关键词] (eg. 后纪 s3, 前纪 B3) 所有与关键词有关的遗物. 翻译: /翻译 [关键词](eg. 致残突击 犀牛prime) 中 -> 英 / 英 -> 中 翻译. 小小黑:/小小黑 目前小小黑的信息. 私聊管理命令: 启用群通知: 默认可使用 添加群 ******* 群号 来启用[群号]对应的群的通知功能. 禁用群通知: 默认可使用 删除群 ******* 群号 来禁用[群号]对应的群的通知功能. 不启用通知功能新的任务将不会通知到群内. "); } }
public static void SendHelpdoc(GroupNumber group) { SendGroup(@group, @"欢迎查看机器人唯一指定帮助文档 宣传贴地址: https://warframe.love/thread-230.htm 在线最新文档: https://github.com/TRKS-Team/WFBot/blob/master/README.md 项目地址: https://github.com/TRKS-Team/WFBot 赞助(乞讨)地址: https://afdian.net/@TheRealKamisama 您的赞助会用来维持公用机器人, 也能推动我继续维护本插件. 本机器人为公益项目, 持续维护中. 如果你见到有人使用本插件盈利, 请在上方项目地址反馈. 如果你想给你的群也整个机器人, 请在上方项目地址了解"); if (File.Exists("data/image/帮助文档.png")) { SendGroup(@group, @"[CQ:image,file=\帮助文档.png]"); } else { SendGroup(@group, @"作者: TheRealKamisama 如果群里没有自动通知 请务必检查是否启用了通知功能 /wiki [关键词] | 搜索 wiki 上的页面 /午夜电波 | 每日每周即将过期的挑战 /机器人状态 | 机器人目前的运行状态 /警报 | 当前的所有警报 /入侵 | 当前的所有入侵 /突击 | 当前的所有突击 /活动 | 当前的所有活动 /虚空商人 | 奸商的状态 /平原 | 地球平原 现在的时间 和 金星平原 现在的温度 /查询 [物品名称] | 查询 WarframeMarket, 查询未开紫卡请输入: 手枪未开紫卡 /紫卡 [武器名称] | 紫卡市场 数据来自 WFA 紫卡市场 /地球赏金 | 地球平原的全部/单一赏金任务 /金星赏金 | 金星平原的全部/单一赏金任务 /裂隙 | 查询全部裂隙 /遗物 [关键词] | (eg. 后纪 s3 前纪 B3) 所有与关键词有关的遗物 /翻译 [关键词] |(eg. 致残突击 犀牛prime) 中 -> 英 / 英 -> 中 翻译 /小小黑 目前小小黑的信息 *私聊*管理命令: /添加群 ******* 群号 | 启用 [群号] 对应的群的通知功能 /删除群 ******* 群号 | 禁用 [群号] 对应的群的通知功能 不启用通知功能新的任务将不会通知到群内 "); } }
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()); }
public static void SendBotStatus(GroupNumber group) { var sb = new StringBuilder(); var q1 = Task.Run(() => WebHelper.TryGet("https://warframestat.us")); var q2 = Task.Run(() => WebHelper.TryGet("https://api.warframe.market/v1/items/valkyr_prime_set/orders?include=item")); var q3 = Task.Run(() => WebHelper.TryGet("https://api.richasy.cn/wfa/rm/riven")); var q4 = Task.Run(() => WebHelper.TryGet("https://10o.io/kuvalog.json")); Task.WaitAll(q1, q2, q3, q4); var apistat = q1.Result; var wmstat = q2.Result; var wfastat = q3.Result; var kuvastat = q4.Result; if (apistat.IsOnline && wmstat.IsOnline && wfastat.IsOnline && kuvastat.IsOnline) { sb.AppendLine("机器人状态: 一切正常"); } else { sb.AppendLine("机器人状态: 不正常"); } if (InitEvent1.onlineBuild) { sb.AppendLine($"插件版本: {InitEvent1.localVersion}"); } else { sb.AppendLine($"插件版本: 非官方"); } sb.AppendLine($" 任务API: {apistat.Latency}ms [{(apistat.IsOnline ? "在线" : "离线")}]"); sb.AppendLine($" WarframeMarket: {wmstat.Latency}ms [{(wmstat.IsOnline ? "在线" : "离线")}]"); sb.AppendLine($" WFA紫卡市场: {wfastat.Latency}ms [{(wfastat.IsOnline ? "在线" : "离线")}]"); sb.AppendLine($" 赤毒/仲裁API: {kuvastat.Latency}ms [{(kuvastat.IsOnline ? "在线" : "离线")}]"); var commit = CommitsGetter.Get("https://api.github.com/repos/TRKS-Team/WFBot/commits")?.Format() ?? "GitHub Commit 获取异常, 可能是请求次数过多, 如果你是机器人主人, 解决方案请查看 FAQ."; sb.AppendLine(commit); sb.ToString().Trim().AddPlatformInfo().SendToGroup(group); }
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)); }
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()); }
/* 当麻理解不了下面的代码 */ // 现在可以了 public static void SendToGroup(this string content, GroupNumber qq) { SendGroup(qq, content); }
public void SendTranslateResult(GroupNumber group, string str) { var msg = translator.GetTranslateResult(str); Messenger.SendGroup(group, msg); }
public void SendTranslateResult(GroupNumber group, string str) { var msg = translator.GetTranslateResult(str).AddRemainCallCount(group); Messenger.SendGroup(group, msg); }