├── README.md ├── .gitignore ├── App ├── bin │ └── Debug │ │ └── net6.0 │ │ ├── App.dll │ │ ├── App.exe │ │ ├── App.pdb │ │ ├── Flurl.dll │ │ ├── Model.dll │ │ ├── Model.pdb │ │ ├── DnsClient.dll │ │ ├── Flurl.Http.dll │ │ ├── Manganese.dll │ │ ├── Mirai.Net.dll │ │ ├── MongoDB.Bson.dll │ │ ├── LibControllers.dll │ │ ├── LibControllers.pdb │ │ ├── MongoDB.Driver.dll │ │ ├── Newtonsoft.Json.dll │ │ ├── SharpCompress.dll │ │ ├── System.Reactive.dll │ │ ├── Websocket.Client.dll │ │ ├── MongoDB.Driver.Core.dll │ │ ├── MongoDB.Libmongocrypt.dll │ │ ├── App.runtimeconfig.json │ │ └── App.deps.json ├── App.csproj └── Program.cs ├── Model ├── bin │ └── Debug │ │ └── net6.0 │ │ ├── Model.dll │ │ ├── Model.pdb │ │ ├── System.Reactive.dll │ │ └── Model.deps.json ├── ObjectHelper.cs ├── Model.csproj ├── Attributes.cs ├── Entity │ ├── GameEntity.cs │ └── Info.cs ├── DllHelper.cs ├── MonoPool.cs ├── UnOrderMultiMap.cs └── EventSystem.cs ├── LibControllers ├── LibControllers.csproj ├── ApiDateTime.cs ├── DB │ ├── ADBManager.cs │ └── ADBAccessor.cs ├── Controllers │ ├── FriendControllers.cs │ ├── GroupControllers.cs │ └── GameControllers.cs ├── Helpers.cs ├── DBHelper.cs └── GroupHelper.cs └── App.sln /README.md: -------------------------------------------------------------------------------- 1 | 感谢不愿透露姓名的 串老 同学提供的代码 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /App/obj 2 | /LibControllers/bin 3 | /LibControllers/obj 4 | /Model/obj 5 | -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/App.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/App.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/App.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/App.exe -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/App.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/App.pdb -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/Flurl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/Flurl.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/Model.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/Model.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/Model.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/Model.pdb -------------------------------------------------------------------------------- /Model/bin/Debug/net6.0/Model.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/Model/bin/Debug/net6.0/Model.dll -------------------------------------------------------------------------------- /Model/bin/Debug/net6.0/Model.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/Model/bin/Debug/net6.0/Model.pdb -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/DnsClient.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/DnsClient.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/Flurl.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/Flurl.Http.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/Manganese.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/Manganese.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/Mirai.Net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/Mirai.Net.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/MongoDB.Bson.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/MongoDB.Bson.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/LibControllers.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/LibControllers.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/LibControllers.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/LibControllers.pdb -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/MongoDB.Driver.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/MongoDB.Driver.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/SharpCompress.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/SharpCompress.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/System.Reactive.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/System.Reactive.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/Websocket.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/Websocket.Client.dll -------------------------------------------------------------------------------- /Model/bin/Debug/net6.0/System.Reactive.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/Model/bin/Debug/net6.0/System.Reactive.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/MongoDB.Driver.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/MongoDB.Driver.Core.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/MongoDB.Libmongocrypt.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkingli/QQRobot/HEAD/App/bin/Debug/net6.0/MongoDB.Libmongocrypt.dll -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/App.runtimeconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "tfm": "net6.0", 4 | "framework": { 5 | "name": "Microsoft.NETCore.App", 6 | "version": "6.0.0" 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /Model/ObjectHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace App 8 | { 9 | public static class ObjectHelper 10 | { 11 | public static void Swap(ref T t1, ref T t2) 12 | { 13 | (t1, t2) = (t2, t1); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Model/Model.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | enable 6 | enable 7 | App 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /LibControllers/LibControllers.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | enable 6 | enable 7 | App 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Model/Attributes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | public class BaseAttribute : Attribute 8 | { 9 | public string name; 10 | public BaseAttribute(string name) 11 | { 12 | this.name = name; 13 | } 14 | } 15 | 16 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)] 17 | public class GroupMessageAttribute : BaseAttribute 18 | { 19 | public GroupMessageAttribute(string name = "") : base(name) 20 | { 21 | } 22 | } 23 | public class FriendMessageAttribute : BaseAttribute 24 | { 25 | public FriendMessageAttribute(string name = "") : base(name) 26 | { 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /App/App.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | net6.0 6 | enable 7 | enable 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /LibControllers/ApiDateTime.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace App 8 | { 9 | public static class ApiDateTime 10 | { 11 | private static readonly DateTime time_begin19700101 = new DateTime(1970, 1, 1); 12 | public static long MillionSecondsFromBegin() 13 | { 14 | return (DateTime.Now - time_begin19700101).Ticks / 10000; 15 | } 16 | public static long SecondsFromBegin() 17 | { 18 | return MillionSecondsFromBegin() / 1000; 19 | } 20 | public static DateTime ToTime(long sec) 21 | { 22 | return time_begin19700101.AddSeconds(sec); 23 | } 24 | private const int DaySecond = 24 * 3600; 25 | public static bool IsToday(long time) 26 | { 27 | return time / DaySecond == SecondsFromBegin() / DaySecond; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Model/Entity/GameEntity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace App 8 | { 9 | public class JuedouCell 10 | { 11 | public string id; 12 | private string _name; 13 | public Info info; 14 | public string Name 15 | { 16 | get 17 | { 18 | return $"【{_name}】"; 19 | } 20 | set 21 | { 22 | _name = value; 23 | } 24 | } 25 | } 26 | 27 | public class Juedou 28 | { 29 | public Juedou() 30 | { 31 | startt = DateTime.Now; 32 | } 33 | 34 | public JuedouCell A; 35 | public JuedouCell B; 36 | public DateTime startt; 37 | public bool Valid 38 | { 39 | get 40 | { 41 | return (DateTime.Now - startt).TotalSeconds < WaitSec; 42 | } 43 | } 44 | public const int WaitSec = 60; 45 | public bool LimitJingjie = true; 46 | } 47 | 48 | 49 | } 50 | -------------------------------------------------------------------------------- /Model/DllHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Reflection; 5 | using System.Runtime.Loader; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace App 10 | { 11 | public static class DllHelper 12 | { 13 | private static AssemblyLoadContext assemblyLoadContext; 14 | 15 | public static Assembly GetHotfixAssembly() 16 | { 17 | assemblyLoadContext?.Unload(); 18 | System.GC.Collect(); 19 | assemblyLoadContext = new AssemblyLoadContext("LibControllers", true); 20 | byte[] dllBytes = File.ReadAllBytes("./LibControllers.dll"); 21 | byte[] pdbBytes = File.ReadAllBytes("./LibControllers.pdb"); 22 | Assembly assembly = assemblyLoadContext.LoadFromStream(new MemoryStream(dllBytes), new MemoryStream(pdbBytes)); 23 | return assembly; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Model/MonoPool.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace App 8 | { 9 | public class MonoPool : IDisposable 10 | { 11 | private readonly Dictionary> pool = new Dictionary>(); 12 | 13 | public static MonoPool Instance = new MonoPool(); 14 | 15 | private MonoPool() 16 | { 17 | } 18 | 19 | public object Fetch(Type type) 20 | { 21 | Queue queue = null; 22 | if (!pool.TryGetValue(type, out queue)) 23 | { 24 | return Activator.CreateInstance(type); 25 | } 26 | 27 | if (queue.Count == 0) 28 | { 29 | return Activator.CreateInstance(type); 30 | } 31 | return queue.Dequeue(); 32 | } 33 | 34 | public void Recycle(object obj) 35 | { 36 | Type type = obj.GetType(); 37 | Queue queue = null; 38 | if (!pool.TryGetValue(type, out queue)) 39 | { 40 | queue = new Queue(); 41 | pool.Add(type, queue); 42 | } 43 | queue.Enqueue(obj); 44 | } 45 | 46 | public void Dispose() 47 | { 48 | this.pool.Clear(); 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /LibControllers/DB/ADBManager.cs: -------------------------------------------------------------------------------- 1 | using MongoDB.Driver; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Web; 6 | using MongoDB.Bson; 7 | using System.Threading; 8 | 9 | public static class ADBManager 10 | { 11 | private static Dictionary dDbPool = new Dictionary(); 12 | public static ADBAccessor Get(string dbConnect, string dbName) 13 | { 14 | if (!dDbPool.ContainsKey(dbConnect + "." + dbName)) 15 | { 16 | var _DB = new ADBAccessor(dbConnect, dbName); 17 | dDbPool.Add(dbConnect + "." + dbName, _DB); 18 | } 19 | return dDbPool[dbConnect + "." + dbName]; 20 | } 21 | 22 | private static Dictionary m_vMongoServer = new Dictionary(); 23 | private static MongoClient GetMongoServer(String sInitString) 24 | { 25 | if (!m_vMongoServer.ContainsKey(sInitString)) 26 | { 27 | MongoClient mc = new MongoClient(sInitString); 28 | m_vMongoServer.Add(sInitString, mc); 29 | } 30 | return m_vMongoServer[sInitString]; 31 | } 32 | public static IMongoDatabase GetDB(string sConnect, string sDbName) 33 | { 34 | try 35 | { 36 | return GetMongoServer(sConnect).GetDatabase(sDbName); 37 | } 38 | catch 39 | { 40 | return null; 41 | } 42 | } 43 | public static void RemoteRequestDB(Action remoteAction) 44 | { 45 | ThreadPool.QueueUserWorkItem(new WaitCallback(remoteAction)); 46 | } 47 | } -------------------------------------------------------------------------------- /Model/Entity/Info.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace App 8 | { 9 | public class Info 10 | { 11 | public string id; 12 | public string name; 13 | public long CreateTime; 14 | public long UpdateTime; 15 | public long Energy; 16 | public long MaxEnergy; 17 | public int Dazuo; 18 | public long DazuoStartT; 19 | public long DailyCheckT; 20 | public long XunbaoT; 21 | public long XunbaoEndT; 22 | public int Gongli; 23 | public int JuedouWin; 24 | public int Jingjie; 25 | public int Lingqi; 26 | public int DongtianLingqi; 27 | public long DongtianStartT; 28 | public long DongtianEndT; 29 | public int DujieExtra; 30 | public static int[] JingjieFenduan = { 10, 100, 1_000, 10_000, 100_000, 1_000_000, 10_000_000 }; 31 | public static string[] JingjieDescs = { "炼气", "先天", "金丹", "元婴", "化神", "返虚", "合道" }; 32 | public string JingjieDes 33 | { 34 | get 35 | { 36 | if (Jingjie >= JingjieDescs.Length) 37 | return JingjieDescs[Jingjie - 1]; 38 | return JingjieDescs[Jingjie]; 39 | } 40 | } 41 | public int MaxGongli 42 | { 43 | get 44 | { 45 | if (Jingjie >= JingjieFenduan.Length) 46 | return JingjieFenduan[Jingjie - 1]; 47 | return JingjieFenduan[Jingjie]; 48 | } 49 | } 50 | public bool NeedTupo 51 | { 52 | get 53 | { 54 | if (Jingjie >= JingjieFenduan.Length) 55 | return true; 56 | return Gongli >= JingjieFenduan[Jingjie]; 57 | } 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /LibControllers/Controllers/FriendControllers.cs: -------------------------------------------------------------------------------- 1 | using Mirai.Net.Data.Messages; 2 | using Mirai.Net.Data.Messages.Concretes; 3 | using Mirai.Net.Data.Shared; 4 | using Mirai.Net.Sessions.Http.Managers; 5 | using Mirai.Net.Utils.Scaffolds; 6 | using System; 7 | using System.Collections.Generic; 8 | using System.Linq; 9 | using System.Text; 10 | using System.Text.Json; 11 | using System.Threading.Tasks; 12 | 13 | namespace App 14 | { 15 | public static class FriendControllers 16 | { 17 | static Random rdm = new Random(); 18 | 19 | [FriendMessage] 20 | public static async void Echo(Friend friend, string content) 21 | { 22 | await friend.SendFriendMessageAsync(content); 23 | } 24 | [FriendMessage] 25 | public static async void Task(Friend friend, string content) 26 | { 27 | /*var image = new ImageMessage() 28 | { 29 | Url = "https://ilikecomix.com/comic/2022/05/Team-Players-6-Alison-Hale.jpg" 30 | };*/ 31 | var msg = new PlainMessage() 32 | { 33 | Text = $"http://www.kcwork.gq/webcn/?task/{content}" 34 | }; 35 | var builder = new MessageChainBuilder(); 36 | //builder.Append(image); 37 | builder.Append(msg); 38 | await friend.SendFriendMessageAsync(builder.Build()); 39 | } 40 | [FriendMessage] 41 | public static void Normal(Friend friend, string content) 42 | { 43 | Chat(friend, content); 44 | } 45 | [FriendMessage("对话")] 46 | public static async void Chat(Friend friend, string content) 47 | { 48 | if (string.IsNullOrEmpty(content)) 49 | return; 50 | await friend.SendFriendMessageAsync(await HttpHelper.GetRobotReply(content)); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /App.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.2.32505.173 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App", "App\App.csproj", "{CAD0CB0B-00FD-439D-B15C-D4D562A1E36E}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibControllers", "LibControllers\LibControllers.csproj", "{532655EE-7352-429B-A633-F798079A029D}" 9 | EndProject 10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Model", "Model\Model.csproj", "{3B947DF8-9E83-4804-A778-138DCB50A6D7}" 11 | EndProject 12 | Global 13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 14 | Debug|Any CPU = Debug|Any CPU 15 | Release|Any CPU = Release|Any CPU 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {CAD0CB0B-00FD-439D-B15C-D4D562A1E36E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {CAD0CB0B-00FD-439D-B15C-D4D562A1E36E}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {CAD0CB0B-00FD-439D-B15C-D4D562A1E36E}.Release|Any CPU.ActiveCfg = Release|Any CPU 21 | {CAD0CB0B-00FD-439D-B15C-D4D562A1E36E}.Release|Any CPU.Build.0 = Release|Any CPU 22 | {532655EE-7352-429B-A633-F798079A029D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 23 | {532655EE-7352-429B-A633-F798079A029D}.Debug|Any CPU.Build.0 = Debug|Any CPU 24 | {532655EE-7352-429B-A633-F798079A029D}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {532655EE-7352-429B-A633-F798079A029D}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {3B947DF8-9E83-4804-A778-138DCB50A6D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 27 | {3B947DF8-9E83-4804-A778-138DCB50A6D7}.Debug|Any CPU.Build.0 = Debug|Any CPU 28 | {3B947DF8-9E83-4804-A778-138DCB50A6D7}.Release|Any CPU.ActiveCfg = Release|Any CPU 29 | {3B947DF8-9E83-4804-A778-138DCB50A6D7}.Release|Any CPU.Build.0 = Release|Any CPU 30 | EndGlobalSection 31 | GlobalSection(SolutionProperties) = preSolution 32 | HideSolutionNode = FALSE 33 | EndGlobalSection 34 | GlobalSection(ExtensibilityGlobals) = postSolution 35 | SolutionGuid = {9276D008-53A5-4720-9B6B-5531034BA184} 36 | EndGlobalSection 37 | EndGlobal 38 | -------------------------------------------------------------------------------- /LibControllers/Helpers.cs: -------------------------------------------------------------------------------- 1 | using Mirai.Net.Data.Messages; 2 | using Mirai.Net.Data.Messages.Concretes; 3 | using Mirai.Net.Utils.Scaffolds; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Text.Json; 9 | using System.Threading.Tasks; 10 | 11 | namespace App 12 | { 13 | public static class ExceptionHandler 14 | { 15 | private static bool Caught; 16 | public static void CatchUnhandle() 17 | { 18 | if (Caught) 19 | return; 20 | Caught = true; 21 | AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; 22 | void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) 23 | { 24 | Console.WriteLine($"[CurrentDomain_UnhandledException]{e.ExceptionObject}"); 25 | } 26 | TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; 27 | void TaskScheduler_UnobservedTaskException(object? sender, UnobservedTaskExceptionEventArgs e) 28 | { 29 | Console.WriteLine($"[TaskScheduler_UnobservedTaskException]{e.Exception}"); 30 | } 31 | 32 | } 33 | } 34 | public static class HttpHelper 35 | { 36 | public static async Task GetRobotReply(string content) 37 | { 38 | var hc = new HttpClient(); 39 | var resp = await hc.GetAsync($"http://api.qingyunke.com/api.php?key=free&appid=0&msg={content}"); 40 | var res = await resp.Content.ReadAsStringAsync(); 41 | var j = JsonDocument.Parse(res); 42 | return j.RootElement.GetProperty("content").GetString().Replace("{br}", "\n"); 43 | } 44 | public static async Task GetHttpReq(string url) 45 | { 46 | var hc = new HttpClient(); 47 | var resp = await hc.GetAsync(url); 48 | return await resp.Content.ReadAsStringAsync(); 49 | } 50 | 51 | private static async Task ImageGetHttpReq(string v) 52 | { 53 | var hc = new HttpClient(); 54 | var resp = await hc.GetAsync(v); 55 | return System.Convert.ToBase64String(await resp.Content.ReadAsByteArrayAsync()); 56 | } 57 | } 58 | public static class RandomHelper 59 | { 60 | public static System.Random random = new Random(); 61 | public static int Next(int maxValue) 62 | { 63 | return random.Next(maxValue); 64 | } 65 | public static int Next(int minValue, int maxValue) 66 | { 67 | return random.Next(minValue, maxValue); 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /LibControllers/DBHelper.cs: -------------------------------------------------------------------------------- 1 | using MongoDB.Bson; 2 | using MongoDB.Driver; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Reflection; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace App 11 | { 12 | public static class DBHelper 13 | { 14 | private static ADBAccessor DB 15 | { 16 | get 17 | { 18 | return ADBManager.Get("mongodb://127.0.0.1:27018", "xiuxian"); 19 | } 20 | } 21 | private static Dictionary dCache = new Dictionary(); 22 | public static Info Get(string id) 23 | { 24 | if (dCache.ContainsKey(id)) 25 | return dCache[id]; 26 | return DB.FindOneData(id); 27 | } 28 | public static Info GetOrCreateOne(string id, string name) 29 | { 30 | if (dCache.ContainsKey(id)) 31 | return dCache[id]; 32 | var info = DB.FindOneData(id); 33 | if (info == null) 34 | { 35 | info = new Info(); 36 | info.id = id; 37 | info.name = name; 38 | if (info.CreateTime == 0) 39 | info.CreateTime = ApiDateTime.SecondsFromBegin(); 40 | info.UpdateTime = ApiDateTime.SecondsFromBegin(); 41 | Save(info); 42 | } 43 | else if (!string.IsNullOrEmpty(name)) 44 | info.name = name; 45 | dCache[id] = info; 46 | return info; 47 | } 48 | public static void Save(this Info info) 49 | { 50 | DB.UpdateOneData(info); 51 | dCache[info.id] = info; 52 | } 53 | internal static Dictionary GetRank(string v) 54 | { 55 | var res = DB.FindManyData("Info", ADBAccessor.filter_Gt(v, 0), ADBAccessor.projections("name", v), 9, 0, ADBAccessor.sort_Descending(v)); 56 | var l = new Dictionary(); 57 | for (var i = 0; i < res.Count; i++) 58 | { 59 | var info = new Info(); 60 | l[i] = info; 61 | info.name = res[i]["name"]?.ToString(); 62 | switch (v) 63 | { 64 | case nameof(info.Gongli): 65 | info.Gongli = res[i]["Gongli"].ToInt32(); 66 | break; 67 | case nameof(info.Energy): 68 | info.Energy = res[i]["Energy"].ToInt32(); 69 | break; 70 | case nameof(info.JuedouWin): 71 | info.JuedouWin = res[i]["JuedouWin"].ToInt32(); 72 | break; 73 | case nameof(info.Jingjie): 74 | info.Jingjie = res[i]["Jingjie"].ToInt32(); 75 | break; 76 | } 77 | } 78 | return l; 79 | } 80 | public static Info GetRandomCache() 81 | { 82 | if (dCache.Count == 0) 83 | return null; 84 | var keys = dCache.Keys.ToArray(); 85 | return dCache[keys[RandomHelper.Next(keys.Length)]]; 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /Model/UnOrderMultiMap.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace App 8 | { 9 | public class UnOrderMultiMap : Dictionary> 10 | { 11 | private readonly List Empty = new List(); 12 | 13 | public void Add(T t, K k) 14 | { 15 | List list; 16 | this.TryGetValue(t, out list); 17 | if (list == null) 18 | { 19 | list = MonoPool.Instance.Fetch(typeof(List)) as List; 20 | list.Clear(); 21 | base[t] = list; 22 | } 23 | list.Add(k); 24 | } 25 | 26 | public bool Remove(T t, K k) 27 | { 28 | List list; 29 | this.TryGetValue(t, out list); 30 | if (list == null) 31 | { 32 | return false; 33 | } 34 | if (!list.Remove(k)) 35 | { 36 | return false; 37 | } 38 | if (list.Count == 0) 39 | { 40 | this.Remove(t); 41 | MonoPool.Instance.Recycle(list); 42 | } 43 | return true; 44 | } 45 | 46 | public new bool Remove(T t) 47 | { 48 | List list; 49 | this.TryGetValue(t, out list); 50 | if (list == null) 51 | { 52 | return false; 53 | } 54 | 55 | base.Remove(t); 56 | 57 | list.Clear(); 58 | MonoPool.Instance.Recycle(list); 59 | return true; 60 | } 61 | 62 | /// 63 | /// 不返回内部的list,copy一份出来 64 | /// 65 | /// 66 | /// 67 | public K[] GetAll(T t) 68 | { 69 | List list; 70 | this.TryGetValue(t, out list); 71 | if (list == null) 72 | { 73 | return Array.Empty(); 74 | } 75 | return list.ToArray(); 76 | } 77 | 78 | /// 79 | /// 返回内部的list 80 | /// 81 | /// 82 | /// 83 | public new List this[T t] 84 | { 85 | get 86 | { 87 | List list; 88 | if (this.TryGetValue(t, out list)) 89 | { 90 | return list; 91 | } 92 | return this.Empty; 93 | } 94 | } 95 | 96 | public K GetOne(T t) 97 | { 98 | List list; 99 | this.TryGetValue(t, out list); 100 | if (list != null && list.Count > 0) 101 | { 102 | return list[0]; 103 | } 104 | return default(K); 105 | } 106 | 107 | public bool Contains(T t, K k) 108 | { 109 | List list; 110 | this.TryGetValue(t, out list); 111 | if (list == null) 112 | { 113 | return false; 114 | } 115 | return list.Contains(k); 116 | } 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /Model/EventSystem.cs: -------------------------------------------------------------------------------- 1 | using Mirai.Net.Data.Shared; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Reflection; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace App 10 | { 11 | public class EventSystem 12 | { 13 | private static EventSystem sinstance; 14 | public static EventSystem Instance 15 | { 16 | get 17 | { 18 | if (sinstance == null) 19 | sinstance = new EventSystem(); 20 | return sinstance; 21 | } 22 | } 23 | private readonly Dictionary allMethod = new Dictionary(); 24 | private readonly Dictionary assemblies = new Dictionary(); 25 | public void Add(Assembly assembly) 26 | { 27 | assemblies[$"{assembly.GetName().Name}.dll"] = assembly; 28 | allMethod.Clear(); 29 | 30 | foreach (Assembly ass in this.assemblies.Values) 31 | { 32 | foreach (Type type in ass.GetTypes()) 33 | { 34 | var amethods = type.GetMethods(); 35 | foreach (var m in amethods) 36 | { 37 | var attribute = m.GetCustomAttribute(); 38 | if (attribute == null) 39 | continue; 40 | allMethod[(string.IsNullOrEmpty(attribute.name) ? m.Name : attribute.name).ToLower()] = m; 41 | } 42 | } 43 | } 44 | Console.WriteLine($"Loaded {allMethod.Count} methods"); 45 | } 46 | public void InvokeMothod(Friend friend, string name, string extra) 47 | { 48 | try 49 | { 50 | var m = GetMothod(name); 51 | if (m == null) 52 | { 53 | m = GetMothod("Normal"); 54 | extra = name + " " + extra; 55 | if (m == null) 56 | return; 57 | } 58 | 59 | var objs = new object[m.GetParameters().Length]; 60 | objs[0] = friend; 61 | if (objs.Length > 1) 62 | objs[1] = extra; 63 | m.Invoke(null, objs); 64 | } 65 | catch (Exception ex) 66 | { 67 | Console.WriteLine($"[InvokeMothod - friend]{name} Invoke Error:{ex.Message}"); 68 | Console.WriteLine(ex.StackTrace); 69 | } 70 | } 71 | public void InvokeMothod(Group group, Member member, string name, string extra) 72 | { 73 | try 74 | { 75 | var m = GetMothod(name); 76 | if (m == null) 77 | { 78 | m = GetMothod("Normal"); 79 | extra = name + " " + extra; 80 | if (m == null) 81 | return; 82 | } 83 | 84 | var objs = new object[m.GetParameters().Length]; 85 | objs[0] = group; 86 | objs[1] = member; 87 | if (objs.Length > 2) 88 | objs[2] = extra; 89 | m.Invoke(null, objs); 90 | } 91 | catch (Exception ex) 92 | { 93 | Console.WriteLine($"[InvokeMothod - member]{name} Invoke Error:{ex.Message}"); 94 | Console.WriteLine(ex.StackTrace); 95 | } 96 | } 97 | public MethodInfo GetMothod(string name) 98 | { 99 | MethodInfo m = null; 100 | if (allMethod.TryGetValue(name.ToLower(), out m)) 101 | return m; 102 | return null; 103 | } 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /App/Program.cs: -------------------------------------------------------------------------------- 1 | using Mirai.Net.Data.Messages.Concretes; 2 | using Mirai.Net.Data.Messages.Receivers; 3 | using Mirai.Net.Sessions; 4 | using Mirai.Net.Sessions.Http.Managers; 5 | using Mirai.Net.Utils.Scaffolds; 6 | using System.Reactive.Linq; 7 | using App; 8 | using Mirai.Net.Data.Events.Concretes.Group; 9 | 10 | AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; 11 | void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) 12 | { 13 | Console.WriteLine($"[CurrentDomain_UnhandledException]{e.ExceptionObject}"); 14 | } 15 | TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; 16 | void TaskScheduler_UnobservedTaskException(object? sender, UnobservedTaskExceptionEventArgs e) 17 | { 18 | Console.WriteLine($"[TaskScheduler_UnobservedTaskException]{e.Exception}"); 19 | } 20 | 21 | Random rdm = new Random(); 22 | const string jdcloudkey = "758408c8351085593c85b08730d71bcf"; 23 | async void ConnectMirai() 24 | { 25 | try 26 | { 27 | EventSystem.Instance.Add(DllHelper.GetHotfixAssembly()); 28 | 29 | var exit = new ManualResetEvent(false); 30 | using var bot = new MiraiBot 31 | { 32 | Address = "127.0.0.1:8080", 33 | //QQ = "2531650036",//310683yuese 34 | QQ = "844013495", 35 | VerifyKey = "174291464" 36 | }; 37 | 38 | await bot.LaunchAsync(); 39 | 40 | bot.MessageReceived 41 | .OfType() 42 | .Subscribe(r => 43 | { 44 | SaveToLocal(r); 45 | var at = ""; 46 | foreach (var c in r.MessageChain) 47 | { 48 | if (c is AtMessage atMessage) 49 | { 50 | if (atMessage.Target == bot.QQ) 51 | { 52 | EventSystem.Instance.InvokeMothod(r.Sender.Group, r.Sender, "闲聊", r.MessageChain.GetPlainMessage()); 53 | return; 54 | } 55 | else 56 | { 57 | at = atMessage.Target; 58 | } 59 | } 60 | } 61 | var amsg = r.MessageChain.GetPlainMessage().Split(' ', 2); 62 | EventSystem.Instance.InvokeMothod(r.Sender.Group, r.Sender, amsg[0], amsg.Length > 1 ? amsg[1].Trim() : at); 63 | }); 64 | 65 | bot.MessageReceived 66 | .OfType() 67 | .Subscribe(async r => 68 | { 69 | Console.WriteLine($"[Friend][{r.Sender.Id}][Lv:{r.Sender.FriendProfile.Level}]{r.Sender.NickName}:{r.MessageChain.GetPlainMessage()}"); 70 | Console.WriteLine(""); 71 | var amsg = r.MessageChain.GetPlainMessage().Split(' ', 2); 72 | EventSystem.Instance.InvokeMothod(r.Sender, amsg[0], amsg.Length > 1 ? amsg[1].Trim() : ""); 73 | }); 74 | 75 | bot.EventReceived 76 | .OfType() 77 | .Subscribe(async r => 78 | { 79 | EventSystem.Instance.InvokeMothod(r.Member.Group, r.Member, "入群", ""); 80 | }); 81 | 82 | 83 | Console.WriteLine(bot.QQ); 84 | exit.WaitOne(); 85 | } 86 | catch (Exception ex) 87 | { 88 | Console.WriteLine(ex); 89 | } 90 | } 91 | 92 | void SaveToLocal(GroupMessageReceiver r) 93 | { 94 | try 95 | { 96 | var msg = r.MessageChain.GetPlainMessage(); 97 | if (string.IsNullOrEmpty(msg)) 98 | return; 99 | if (!Directory.Exists("logs")) 100 | Directory.CreateDirectory("logs"); 101 | if (!Directory.Exists($"logs/{r.GroupName}")) 102 | Directory.CreateDirectory($"logs/{r.GroupName}"); 103 | var f = $"logs/{r.GroupName}/{DateTime.Now.ToString("yyyy-MM-dd")}.txt"; 104 | File.AppendAllText(f, $"{r}\r\n[{DateTime.Now.ToString("HH:mm:ss")}]{msg}\r\n"); 105 | } 106 | catch (Exception ex) 107 | { 108 | Console.WriteLine($"[SaveToLocal]Error:{ex.Message}\r\n{ex.StackTrace}"); 109 | } 110 | } 111 | 112 | Task.Run(() => 113 | { 114 | ConnectMirai(); 115 | }); 116 | while (true) 117 | { 118 | var r = Console.ReadLine(); 119 | var acmd = r.Split(' '); 120 | if (acmd[0] == "r") 121 | EventSystem.Instance.Add(DllHelper.GetHotfixAssembly()); 122 | else if (acmd[0] == "c") 123 | return; 124 | } 125 | -------------------------------------------------------------------------------- /LibControllers/GroupHelper.cs: -------------------------------------------------------------------------------- 1 | using Mirai.Net.Data.Messages; 2 | using Mirai.Net.Data.Messages.Concretes; 3 | using Mirai.Net.Sessions.Http.Managers; 4 | using Mirai.Net.Utils.Scaffolds; 5 | using System; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | 11 | namespace App 12 | { 13 | public static class GroupHelper 14 | { 15 | private const string groupfile = "groups.txt"; 16 | private static List lValidGroups; 17 | public static bool Invalid(string groupid) 18 | { 19 | if (lValidGroups == null) 20 | { 21 | if (!File.Exists(groupfile)) 22 | return true; 23 | lValidGroups = File.ReadAllLines(groupfile).ToList(); 24 | } 25 | return !lValidGroups.Contains(groupid); 26 | } 27 | private const string setufile = "setus.txt"; 28 | private static List lValidSetus; 29 | public static bool InvalidSetu(string groupid) 30 | { 31 | if (lValidSetus == null) 32 | { 33 | if (!File.Exists(setufile)) 34 | return true; 35 | lValidSetus = File.ReadAllLines(setufile).ToList(); 36 | } 37 | return !lValidSetus.Contains(groupid); 38 | } 39 | 40 | private static string[] files = new string[] 41 | { 42 | "gifs", 43 | }; 44 | private static Dictionary> _dTagFiles; 45 | private static Dictionary> dTagFiles 46 | { 47 | get 48 | { 49 | if (_dTagFiles == null) 50 | { 51 | _dTagFiles = new Dictionary>(); 52 | foreach (var file in files) 53 | { 54 | var f = file; 55 | if (!f.EndsWith(".txt")) 56 | f = f + ".txt"; 57 | 58 | if (!File.Exists(f)) 59 | { 60 | Console.WriteLine($"File {f} not exist."); 61 | continue; 62 | } 63 | _dTagFiles[f] = File.ReadAllLines(f).ToList(); 64 | } 65 | Console.WriteLine($"Loaded {_dTagFiles.Count} files"); 66 | } 67 | return _dTagFiles; 68 | } 69 | } 70 | public static string GetTaged(string f) 71 | { 72 | if (!f.EndsWith(".txt")) 73 | f = f + ".txt"; 74 | if (!dTagFiles.ContainsKey(f)) 75 | return ""; 76 | var fs = dTagFiles[f]; 77 | return fs[RandomHelper.random.Next(fs.Count)]; 78 | } 79 | 80 | private const string atfile = "ats.txt"; 81 | private static List lValidAts; 82 | public static bool ValidAt(string groupid) 83 | { 84 | if (lValidAts == null) 85 | { 86 | if (!File.Exists(atfile)) 87 | return false; 88 | lValidAts = File.ReadAllLines(atfile).ToList(); 89 | } 90 | return lValidAts.Contains(groupid); 91 | } 92 | 93 | private static Dictionary lRobotReply; 94 | private static string robotreplyfile = "robotreply.txt"; 95 | public static string GetRobotReply(string keyword) 96 | { 97 | if (lRobotReply == null) 98 | { 99 | lRobotReply = new Dictionary(); 100 | if (!File.Exists(robotreplyfile)) 101 | return ""; 102 | var all = File.ReadAllLines(robotreplyfile); 103 | foreach (var line in all) 104 | { 105 | var aline = line.Split(new char[] { '=' }, 2); 106 | if (aline.Length != 2) 107 | continue; 108 | lRobotReply[aline[0]] = aline[1]; 109 | } 110 | } 111 | if (lRobotReply.ContainsKey(keyword)) 112 | return lRobotReply[keyword]; 113 | return ""; 114 | } 115 | public static async Task OnSendMessage(this Mirai.Net.Data.Shared.Group g, string content) 116 | { 117 | await SendMessage(g.Id, content); 118 | } 119 | public static async Task SendMessage(this Mirai.Net.Data.Shared.Group g, MessageChain content) 120 | { 121 | try 122 | { 123 | await MessageManager.SendGroupMessageAsync(g.Id, content); 124 | } 125 | catch (Exception ex) 126 | { 127 | Console.WriteLine($"[SendMessageFailed]{ex}"); 128 | } 129 | } 130 | 131 | public static async Task SendMessage(string gid, string content) 132 | { 133 | try 134 | { 135 | await MessageManager.SendGroupMessageAsync(gid, content); 136 | } 137 | catch (Exception ex) 138 | { 139 | Console.WriteLine($"[SendMessageFailed]{ex}"); 140 | } 141 | } 142 | public static async Task SendMessage(this Mirai.Net.Data.Shared.Group g, List lprocess) 143 | { 144 | await SendMessage(g.Id, lprocess); 145 | } 146 | public static async Task SendMessage(string gid, List lprocess) 147 | { 148 | try 149 | { 150 | var b = new MessageChainBuilder(); 151 | foreach (var pro in lprocess) 152 | b.Append(new PlainMessage() { Text = pro + "\n" }); 153 | await MessageManager.SendGroupMessageAsync(gid, b.Build()); 154 | } 155 | catch (Exception ex) 156 | { 157 | Console.WriteLine($"[SendMessageFailed]{ex}"); 158 | } 159 | } 160 | } 161 | } 162 | -------------------------------------------------------------------------------- /Model/bin/Debug/net6.0/Model.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETCoreApp,Version=v6.0", 4 | "signature": "" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETCoreApp,Version=v6.0": { 9 | "Model/1.0.0": { 10 | "dependencies": { 11 | "Mirai.Net": "2.4.1", 12 | "System.Reactive.Reference": "4.3.0.0" 13 | }, 14 | "runtime": { 15 | "Model.dll": {} 16 | } 17 | }, 18 | "Flurl/3.0.4": { 19 | "runtime": { 20 | "lib/netstandard2.0/Flurl.dll": { 21 | "assemblyVersion": "3.0.4.0", 22 | "fileVersion": "3.0.4.0" 23 | } 24 | } 25 | }, 26 | "Flurl.Http/3.2.2": { 27 | "dependencies": { 28 | "Flurl": "3.0.4", 29 | "Newtonsoft.Json": "13.0.1", 30 | "System.Text.Encoding.CodePages": "4.5.1" 31 | }, 32 | "runtime": { 33 | "lib/netstandard2.0/Flurl.Http.dll": { 34 | "assemblyVersion": "3.2.2.0", 35 | "fileVersion": "3.2.2.0" 36 | } 37 | } 38 | }, 39 | "Manganese/1.2.1": { 40 | "dependencies": { 41 | "Newtonsoft.Json": "13.0.1" 42 | }, 43 | "runtime": { 44 | "lib/net6.0/Manganese.dll": { 45 | "assemblyVersion": "1.0.0.0", 46 | "fileVersion": "1.0.0.0" 47 | } 48 | } 49 | }, 50 | "Microsoft.NETCore.Platforms/2.1.2": {}, 51 | "Mirai.Net/2.4.1": { 52 | "dependencies": { 53 | "Flurl": "3.0.4", 54 | "Flurl.Http": "3.2.2", 55 | "Manganese": "1.2.1", 56 | "Websocket.Client": "4.4.43" 57 | }, 58 | "runtime": { 59 | "lib/net6.0/Mirai.Net.dll": { 60 | "assemblyVersion": "1.0.0.0", 61 | "fileVersion": "1.0.0.0" 62 | } 63 | } 64 | }, 65 | "Newtonsoft.Json/13.0.1": { 66 | "runtime": { 67 | "lib/netstandard2.0/Newtonsoft.Json.dll": { 68 | "assemblyVersion": "13.0.0.0", 69 | "fileVersion": "13.0.1.25517" 70 | } 71 | } 72 | }, 73 | "System.Reactive/4.3.2": {}, 74 | "System.Runtime.CompilerServices.Unsafe/4.5.2": {}, 75 | "System.Text.Encoding.CodePages/4.5.1": { 76 | "dependencies": { 77 | "Microsoft.NETCore.Platforms": "2.1.2", 78 | "System.Runtime.CompilerServices.Unsafe": "4.5.2" 79 | } 80 | }, 81 | "System.Threading.Channels/4.7.0": {}, 82 | "Websocket.Client/4.4.43": { 83 | "dependencies": { 84 | "System.Reactive": "4.3.2", 85 | "System.Threading.Channels": "4.7.0" 86 | }, 87 | "runtime": { 88 | "lib/net6.0/Websocket.Client.dll": { 89 | "assemblyVersion": "4.4.0.0", 90 | "fileVersion": "4.4.0.0" 91 | } 92 | } 93 | }, 94 | "System.Reactive.Reference/4.3.0.0": { 95 | "runtime": { 96 | "System.Reactive.dll": { 97 | "assemblyVersion": "4.3.0.0", 98 | "fileVersion": "4.3.2.55399" 99 | } 100 | } 101 | } 102 | } 103 | }, 104 | "libraries": { 105 | "Model/1.0.0": { 106 | "type": "project", 107 | "serviceable": false, 108 | "sha512": "" 109 | }, 110 | "Flurl/3.0.4": { 111 | "type": "package", 112 | "serviceable": true, 113 | "sha512": "sha512-2bgCzOs3TGwRkfcijCiH+7o9Pz4pyVnt4yyLX2vD3wlMSekpmGhqe2zA4988qSMmPa6AqeekX13CY4FvsjsDJQ==", 114 | "path": "flurl/3.0.4", 115 | "hashPath": "flurl.3.0.4.nupkg.sha512" 116 | }, 117 | "Flurl.Http/3.2.2": { 118 | "type": "package", 119 | "serviceable": true, 120 | "sha512": "sha512-zVen69D8Qr1uZN4ua0ZnOMuDZol66w04AnwOSCyE5Kqy5GGbAtk0m7bKXaU+FJJ9R7ByVIKAG/kpGbGMGdt2/Q==", 121 | "path": "flurl.http/3.2.2", 122 | "hashPath": "flurl.http.3.2.2.nupkg.sha512" 123 | }, 124 | "Manganese/1.2.1": { 125 | "type": "package", 126 | "serviceable": true, 127 | "sha512": "sha512-ihTUlomK7w4QKSZEzR2OQU4Dv6CTgUU8yyoymiYCcQsNmy8xGkRiRjA0YMtnruJMa3fDMxa7+aZGBU1FjJKBnA==", 128 | "path": "manganese/1.2.1", 129 | "hashPath": "manganese.1.2.1.nupkg.sha512" 130 | }, 131 | "Microsoft.NETCore.Platforms/2.1.2": { 132 | "type": "package", 133 | "serviceable": true, 134 | "sha512": "sha512-mOJy3M0UN+LUG21dLGMxaWZEP6xYpQEpLuvuEQBaownaX4YuhH6NmNUlN9si+vNkAS6dwJ//N1O4DmLf2CikVg==", 135 | "path": "microsoft.netcore.platforms/2.1.2", 136 | "hashPath": "microsoft.netcore.platforms.2.1.2.nupkg.sha512" 137 | }, 138 | "Mirai.Net/2.4.1": { 139 | "type": "package", 140 | "serviceable": true, 141 | "sha512": "sha512-U54BIK/7QCBVOXs4kYEtJ6bAjPWKBRKceMTtOjb06Rj5cxXXR1WxXg1PB8vntLln+DHhGHBUV7HPVtjDCblQ/w==", 142 | "path": "mirai.net/2.4.1", 143 | "hashPath": "mirai.net.2.4.1.nupkg.sha512" 144 | }, 145 | "Newtonsoft.Json/13.0.1": { 146 | "type": "package", 147 | "serviceable": true, 148 | "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", 149 | "path": "newtonsoft.json/13.0.1", 150 | "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" 151 | }, 152 | "System.Reactive/4.3.2": { 153 | "type": "package", 154 | "serviceable": true, 155 | "sha512": "sha512-WhGkScPWxw2pp7UwRW8M1OvYZ3WUDPC2wJ0aiuaB4KRD3bt4wLkgHgYnOUu87WRhsurvv5LN0E63iWOEza2o8g==", 156 | "path": "system.reactive/4.3.2", 157 | "hashPath": "system.reactive.4.3.2.nupkg.sha512" 158 | }, 159 | "System.Runtime.CompilerServices.Unsafe/4.5.2": { 160 | "type": "package", 161 | "serviceable": true, 162 | "sha512": "sha512-wprSFgext8cwqymChhrBLu62LMg/1u92bU+VOwyfBimSPVFXtsNqEWC92Pf9ofzJFlk4IHmJA75EDJn1b2goAQ==", 163 | "path": "system.runtime.compilerservices.unsafe/4.5.2", 164 | "hashPath": "system.runtime.compilerservices.unsafe.4.5.2.nupkg.sha512" 165 | }, 166 | "System.Text.Encoding.CodePages/4.5.1": { 167 | "type": "package", 168 | "serviceable": true, 169 | "sha512": "sha512-4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", 170 | "path": "system.text.encoding.codepages/4.5.1", 171 | "hashPath": "system.text.encoding.codepages.4.5.1.nupkg.sha512" 172 | }, 173 | "System.Threading.Channels/4.7.0": { 174 | "type": "package", 175 | "serviceable": true, 176 | "sha512": "sha512-gdOOXBhtt2UpTxYJm1DRmoqNfYg5ypvhzhVt0vxKhzxXFjS81r8yIOSFsJYLRa1Jc14GBAqCnjxJstO3zBN7gg==", 177 | "path": "system.threading.channels/4.7.0", 178 | "hashPath": "system.threading.channels.4.7.0.nupkg.sha512" 179 | }, 180 | "Websocket.Client/4.4.43": { 181 | "type": "package", 182 | "serviceable": true, 183 | "sha512": "sha512-h0sS4zsnXrVkYyMYDaRc0k/oV54uXXBlN/HOHAK5d/RWleLTmWS6bxtt0l3D5Q2rgtfLinkHLdf4sOqdrxZ0NA==", 184 | "path": "websocket.client/4.4.43", 185 | "hashPath": "websocket.client.4.4.43.nupkg.sha512" 186 | }, 187 | "System.Reactive.Reference/4.3.0.0": { 188 | "type": "reference", 189 | "serviceable": false, 190 | "sha512": "" 191 | } 192 | } 193 | } -------------------------------------------------------------------------------- /LibControllers/Controllers/GroupControllers.cs: -------------------------------------------------------------------------------- 1 | using Mirai.Net.Data.Messages; 2 | using Mirai.Net.Data.Messages.Concretes; 3 | using Mirai.Net.Data.Shared; 4 | using Mirai.Net.Sessions.Http.Managers; 5 | using Mirai.Net.Utils.Scaffolds; 6 | using System; 7 | using System.Collections.Generic; 8 | using System.Linq; 9 | using System.Text; 10 | using System.Text.Json; 11 | using System.Threading.Tasks; 12 | 13 | namespace App 14 | { 15 | public static class GroupControllers 16 | { 17 | static Random rdm = new Random(); 18 | 19 | [GroupMessage("入群")] 20 | public static async void JoinGroup(Group group, Member Member) 21 | { 22 | if (GroupHelper.Invalid(group.Id)) 23 | return; 24 | if (!GroupHelper.ValidAt(group.Id)) 25 | return; 26 | Console.WriteLine($"[JoinGroup]{Member.Name}-{Member.Id}"); 27 | var at = new AtMessage() 28 | { 29 | Target = Member.Id, 30 | Type = Messages.At 31 | }; 32 | var msg = new PlainMessage() 33 | { 34 | Text = @"【快到碗裡來】欢迎您来到【huatuo c#热更新】大家庭 35 | 下面的信息可能对你有用 36 | 项目地址: 37 | 解释器:https://github.com/focus-creative-games/huatuo 38 | IL2CPP:https://github.com/pirunxi/il2cpp_huatuo 39 | 示例:https://github.com/focus-creative-games/huatuo_trial 40 | 请注意Unity版本和IL2CPP版本哦 41 | 教程: 42 | 图文版:https://zhuanlan.zhihu.com/p/513834841 43 | 视频版:https://www.bilibili.com/video/BV13a411a7SQ 44 | 工具地址: 45 | 1:https://github.com/focus-creative-games/huatuo_upm", 46 | }; 47 | var b = new MessageChainBuilder(); 48 | b.Append(at).Append(msg); 49 | await group.SendMessage(b.Build()); 50 | } 51 | [GroupMessage("签到")] 52 | public static async void DailyCheck(Group group, Member friend) 53 | { 54 | if (GroupHelper.Invalid(group.Id)) 55 | return; 56 | var info = DBHelper.GetOrCreateOne(friend.Id, friend.Name); 57 | if (ApiDateTime.IsToday(info.DailyCheckT)) 58 | { 59 | await group.OnSendMessage($"今天已经签到过了"); 60 | return; 61 | } 62 | info.DailyCheckT = ApiDateTime.SecondsFromBegin(); 63 | info.Energy += 10; 64 | info.Dazuo = 0; 65 | DBHelper.Save(info); 66 | await group.SendGroupMessageAsync($"{friend.Name}签到成功,精力+10,目前有精力{info.Energy}"); 67 | } 68 | [GroupMessage("摇点")] 69 | public static async void Dice(Group group, Member friend, string extra) 70 | { 71 | if (GroupHelper.Invalid(group.Id)) 72 | return; 73 | var dice = new DiceMessage(); 74 | if (friend.Id == "63419182") 75 | dice.Value = (extra == "我不能输" ? 6 : rdm.Next(4) + 3).ToString(); 76 | else 77 | dice.Value = (rdm.Next(6) + 1).ToString(); 78 | await group.SendGroupMessageAsync(dice); 79 | } 80 | [GroupMessage("文章")] 81 | public static async void WenZhang(Group group, Member friend, string content) 82 | { 83 | if (GroupHelper.Invalid(group.Id)) 84 | return; 85 | await group.SendGroupMessageAsync($"http://www.kcwork.gq/webcn/?task/{content}"); 86 | } 87 | [GroupMessage("@月色")] 88 | public static async void ChatWithMe(Group group, Member friend, string content) 89 | { 90 | if (GroupHelper.Invalid(group.Id)) 91 | return; 92 | Chat(group, friend, content); 93 | } 94 | [GroupMessage("闲聊")] 95 | public static async void Chat(Group group, Member friend, string content) 96 | { 97 | Normal(group, friend, content); 98 | if (GroupHelper.Invalid(group.Id)) 99 | return; 100 | if (string.IsNullOrEmpty(content)) 101 | return; 102 | if (content.Contains("废话")) 103 | { 104 | await group.OnSendMessage( "这种事情我见的多了,我只想说懂得都懂,不懂的我也不多说了,细细品吧,你也别来问我怎么回事,这里面利益牵扯太大了,说了对你我都没有好处,你就当不知道就行了,其余的我只能说这里水很深,牵扯到很多东西,详细情况你们很难找到的,网上大部分都删干净了,所以我说懂得都懂。"); 105 | return; 106 | } 107 | if (content.Contains("聊骚")) 108 | { 109 | await group.OnSendMessage( "去死吧!!!"); 110 | return; 111 | } 112 | var reply = GroupHelper.GetRobotReply(content); 113 | await group.OnSendMessage( await HttpHelper.GetRobotReply(content)); 114 | } 115 | 116 | [GroupMessage("acg")] 117 | public static async void Acg(Group group, Member m, string content) 118 | { 119 | try 120 | { 121 | if (GroupHelper.InvalidSetu(group.Id)) 122 | return; 123 | var res = await HttpHelper.GetHttpReq("https://api.xiaobaibk.com/api/pic/acg-1/?return=json"); 124 | var img = JsonDocument.Parse(res).RootElement.GetProperty("imgurl").ToString().Split('?')[0]; 125 | Console.WriteLine($"AcgPic {img}"); 126 | var reply = new ImageMessage() 127 | { 128 | Url = img, 129 | }; 130 | await group.SendMessage( reply); 131 | } 132 | catch 133 | { 134 | await group.OnSendMessage( "获取图片失败"); 135 | } 136 | } 137 | [GroupMessage("cos")] 138 | public static async void Cosplay(Group group, Member m, string content) 139 | { 140 | try 141 | { 142 | if (GroupHelper.InvalidSetu(group.Id)) 143 | return; 144 | var res = await HttpHelper.GetHttpReq("https://api.dzzui.com/api/cosplay?format=json"); 145 | var img = JsonDocument.Parse(res).RootElement.GetProperty("imgurl").ToString().Split('?')[0]; 146 | Console.WriteLine($"GirlPic {img}"); 147 | var reply = new ImageMessage() 148 | { 149 | Url = img, 150 | }; 151 | await group.SendMessage( reply); 152 | } 153 | catch 154 | { 155 | await group.OnSendMessage( "获取图片失败"); 156 | } 157 | } 158 | [GroupMessage("mjx")] 159 | public static async void Mjx(Group group, Member m, string content) 160 | { 161 | try 162 | { 163 | if (GroupHelper.InvalidSetu(group.Id)) 164 | return; 165 | var res = await HttpHelper.GetHttpReq("https://api.dzzui.com/api/imgtaobao?format=json"); 166 | var img = JsonDocument.Parse(res).RootElement.GetProperty("imgurl").ToString(); 167 | Console.WriteLine($"GirlPic {img}"); 168 | var reply = new ImageMessage() 169 | { 170 | Url = img, 171 | }; 172 | await group.SendMessage( reply); 173 | } 174 | catch 175 | { 176 | await group.OnSendMessage( "获取图片失败"); 177 | } 178 | } 179 | [GroupMessage("美图")] 180 | public static async void GirlPic(Group group, Member m, string content) 181 | { 182 | if (GroupHelper.InvalidSetu(group.Id)) 183 | return; 184 | try 185 | { 186 | var res = await HttpHelper.GetHttpReq("http://api.btstu.cn/sjbz/?lx=m_meizi&format=json"); 187 | var img = JsonDocument.Parse(res).RootElement.GetProperty("imgurl").ToString(); 188 | Console.WriteLine($"MeituPic {img}"); 189 | var reply = new ImageMessage() 190 | { 191 | Url = img, 192 | }; 193 | await group.SendMessage( reply); 194 | } 195 | catch 196 | { 197 | await group.OnSendMessage( "获取图片失败"); 198 | } 199 | } 200 | 201 | [GroupMessage("电影")] 202 | public static async void MovieWeb(Group group, Member m) 203 | { 204 | await group.OnSendMessage( "https://www.subaibaiys.com/movie/39921.html"); 205 | } 206 | 207 | [GroupMessage] 208 | public static void Normal(Group group, Member friend, string content) 209 | { 210 | Console.WriteLine($"[Group-{group.Id}-{group.Name}][QQ-{friend.Id}][Lv:{friend.MmeberProfile.Level}]{friend.Name}({friend.MmeberProfile.NickName}):{content}"); 211 | } 212 | 213 | [GroupMessage("青楼")] 214 | public static async void OnQinglou(Group group, Member friend) 215 | { 216 | await group.SendGroupMessageAsync($"{friend.Name} 独上青楼听艳曲,手擎玉箫无人吹。"); 217 | } 218 | 219 | } 220 | } 221 | -------------------------------------------------------------------------------- /LibControllers/DB/ADBAccessor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using App; 6 | using MongoDB.Bson; 7 | using MongoDB.Driver; 8 | 9 | public class ADBAccessor 10 | { 11 | IMongoDatabase db; 12 | public ADBAccessor(string connect, string dbName) 13 | { 14 | db = ADBManager.GetDB(connect, dbName); 15 | } 16 | public void BuildIndex(string tableName, params string[] indexes) 17 | { 18 | var c = db.GetCollection(tableName); 19 | var builder = new IndexKeysDefinitionBuilder(); 20 | foreach (var index in indexes) 21 | { 22 | c.Indexes.CreateOne(builder.Text(index)); 23 | } 24 | } 25 | public static FilterDefinition filter_empty() 26 | { 27 | return Builders.Filter.Empty; 28 | } 29 | public static FilterDefinition filter_contains(string param) 30 | { 31 | return Builders.Filter.Exists(param); 32 | } 33 | public static FilterDefinition filter_eq(string param, T value) 34 | { 35 | return Builders.Filter.Eq(param, value); 36 | } 37 | public static FilterDefinition filter_Gt(string param, T value) 38 | { 39 | return Builders.Filter.Gt(param, value); 40 | } 41 | public static FilterDefinition filter_Gte(string param, T value) 42 | { 43 | return Builders.Filter.Gte(param, value); 44 | } 45 | public static FilterDefinition filter_Lt(string param, T value) 46 | { 47 | return Builders.Filter.Lt(param, value); 48 | } 49 | public static FilterDefinition filter_Lte(string param, T value) 50 | { 51 | return Builders.Filter.Lte(param, value); 52 | } 53 | /// 54 | /// 降序 55 | /// 56 | /// 降序属性 57 | /// 58 | public static SortDefinition sort_Descending(params string[] param) 59 | { 60 | SortDefinition[] sorts = new SortDefinition[param.Length]; 61 | for (var i = 0; i < param.Length; i++) 62 | sorts[i] = Builders.Sort.Descending(param[i]); 63 | return Builders.Sort.Combine(sorts); 64 | } 65 | /// 66 | /// 升序 67 | /// 68 | /// 升序属性 69 | /// 70 | public static SortDefinition sort_Ascending(params string[] param) 71 | { 72 | SortDefinition[] sorts = new SortDefinition[param.Length]; 73 | for (var i = 0; i < param.Length; i++) 74 | sorts[i] = Builders.Sort.Ascending(param[i]); 75 | return Builders.Sort.Combine(sorts); 76 | } 77 | 78 | public static SortDefinition sort_Combine(params SortDefinition[] sorts) 79 | { 80 | return Builders.Sort.Combine(sorts); 81 | 82 | } 83 | 84 | public static UpdateDefinition updates_build(params UpdateDefinition[] updates) 85 | { 86 | var updateBuilder = Builders.Update; 87 | var u = new List>(); 88 | foreach (var up in updates) 89 | { 90 | u.Add(up); 91 | } 92 | return updateBuilder.Combine(u); 93 | } 94 | public static UpdateDefinition update(string param, T value) 95 | { 96 | return Builders.Update.Set(param, value); 97 | } 98 | public static UpdateDefinition update_unset(string param) 99 | { 100 | return Builders.Update.Unset(param); 101 | } 102 | public static ProjectionDefinition projections(params string[] sparams) 103 | { 104 | ProjectionDefinition p = null; 105 | foreach (var s in sparams) 106 | { 107 | if (p == null) 108 | { 109 | p = Builders.Projection.Include(s); 110 | } 111 | else 112 | { 113 | p = Builders.Projection.Combine(Builders.Projection.Include(s), p); 114 | } 115 | } 116 | return p; 117 | } 118 | public bool InsertOneData(string collectionName 119 | , BsonDocument document) 120 | { 121 | bool bSuccess = true; 122 | string serror = ""; 123 | try 124 | { 125 | var col = db.GetCollection(collectionName); 126 | col.InsertOne(document); 127 | } 128 | catch (Exception ex) 129 | { 130 | bSuccess = false; 131 | serror = ex.Message; 132 | } 133 | return bSuccess; 134 | } 135 | public bool DeleteOneData(string collectionName 136 | , FilterDefinition filter 137 | ) 138 | { 139 | bool bSuccess = true; 140 | string serror = ""; 141 | try 142 | { 143 | var collection = db.GetCollection(collectionName); 144 | var result = collection.DeleteOne(filter); 145 | } 146 | catch (Exception ex) 147 | { 148 | bSuccess = false; 149 | serror = ex.Message; 150 | } 151 | return bSuccess; 152 | } 153 | public bool UpdateOneData(string collectionName 154 | , FilterDefinition filter 155 | , UpdateDefinition update 156 | , bool upsert = false) 157 | { 158 | bool bSuccess = true; 159 | string serror = ""; 160 | try 161 | { 162 | var collection = db.GetCollection(collectionName); 163 | UpdateOptions uo = new UpdateOptions(); 164 | uo.IsUpsert = upsert; 165 | if (filter == null) 166 | { 167 | filter = FilterDefinition.Empty; 168 | } 169 | var result = collection.UpdateOne(filter, update, uo); 170 | } 171 | catch (Exception ex) 172 | { 173 | bSuccess = false; 174 | serror = ex.Message; 175 | Console.WriteLine($"UpdateOneData {ex.Message}"); 176 | } 177 | return bSuccess; 178 | } 179 | public long UpdateManyData(string collectionName 180 | , FilterDefinition filter 181 | , UpdateDefinition update 182 | , bool upsert) 183 | { 184 | bool bSuccess = true; 185 | string serror = ""; 186 | long modifiedNum = 0; 187 | try 188 | { 189 | var collection = db.GetCollection(collectionName); 190 | UpdateOptions uo = new UpdateOptions(); 191 | uo.IsUpsert = upsert; 192 | var result = collection.UpdateMany(filter, update, uo); 193 | modifiedNum = result.ModifiedCount; 194 | } 195 | catch (Exception ex) 196 | { 197 | bSuccess = false; 198 | serror = ex.Message; 199 | } 200 | return modifiedNum; 201 | } 202 | public BsonDocument FindOneData(string collectionName 203 | , FilterDefinition filter = null 204 | , ProjectionDefinition projection = null) 205 | { 206 | bool bSuccess = true; 207 | string serror = ""; 208 | BsonDocument bsonElement = null; 209 | try 210 | { 211 | var collection = db.GetCollection(collectionName); 212 | if (filter == null) 213 | { 214 | filter = FilterDefinition.Empty; 215 | } 216 | var doc = collection.Find(filter); 217 | if (projection != null) 218 | { 219 | doc = doc.Project(projection); 220 | } 221 | bsonElement = doc.FirstOrDefault(); 222 | } 223 | catch (Exception ex) 224 | { 225 | bSuccess = false; 226 | serror = ex.Message; 227 | } 228 | return bsonElement; 229 | } 230 | public long Count(string collectionName 231 | , FilterDefinition filter = null 232 | ) 233 | { 234 | var collection = db.GetCollection(collectionName); 235 | if (filter == null) 236 | { 237 | filter = FilterDefinition.Empty; 238 | } 239 | return collection.Count(filter); 240 | } 241 | public List FindManyData(string collectionName 242 | , FilterDefinition filter = null 243 | , ProjectionDefinition projection = null 244 | , int limit = 0, int skip = 0 245 | , SortDefinition sort = null) 246 | { 247 | string serror = ""; 248 | List lBsonElement = new List(); 249 | try 250 | { 251 | var collection = db.GetCollection(collectionName); 252 | if (filter == null) 253 | { 254 | filter = FilterDefinition.Empty; 255 | } 256 | var doc = collection.Find(filter); 257 | if (sort != null) 258 | { 259 | doc = doc.Sort(sort); 260 | } 261 | if (projection != null) 262 | { 263 | doc = doc.Project(projection); 264 | } 265 | if (limit > 0) 266 | { 267 | doc = doc.Limit(limit); 268 | } 269 | if (skip > 0) 270 | { 271 | doc = doc.Skip(skip); 272 | } 273 | var cursor = doc.ToCursor(); 274 | foreach (var d in cursor.ToEnumerable()) 275 | { 276 | lBsonElement.Add(d); 277 | } 278 | } 279 | catch (Exception ex) 280 | { 281 | serror = ex.Message; 282 | } 283 | return lBsonElement; 284 | } 285 | public T FindOneData(string id) where T : Info 286 | { 287 | string collectionName = typeof(T).Name; 288 | var collection = db.GetCollection(collectionName); 289 | var doc = collection.Find(info => info.id == id); 290 | return doc.FirstOrDefault(); 291 | } 292 | public void UpdateOneData(T t, string collectionName = null) where T : Info 293 | { 294 | if (collectionName == null) 295 | collectionName = t.GetType().Name; 296 | var collection = db.GetCollection(collectionName); 297 | var doc = collection.ReplaceOne(d => d.id == t.id, t, new ReplaceOptions() { IsUpsert = true }); 298 | } 299 | } 300 | -------------------------------------------------------------------------------- /LibControllers/Controllers/GameControllers.cs: -------------------------------------------------------------------------------- 1 | using Mirai.Net.Data.Messages.Concretes; 2 | using Mirai.Net.Data.Shared; 3 | using Mirai.Net.Sessions.Http.Managers; 4 | using Mirai.Net.Utils.Scaffolds; 5 | 6 | namespace App 7 | { 8 | public static class GameControllers 9 | { 10 | [GroupMessage("修炼")] 11 | public static async void OnXiulian(Group group, Member friend, string target) 12 | { 13 | if (GroupHelper.Invalid(group.Id)) 14 | return; 15 | var info = DBHelper.GetOrCreateOne(friend.Id, friend.Name); 16 | if (info.Jingjie < 1) 17 | { 18 | await group.OnSendMessage($"洞天之行危险至极,至少把你的境界提升到先天之境再来吧"); 19 | return; 20 | } 21 | var cd = info.DongtianEndT - ApiDateTime.SecondsFromBegin(); 22 | if (cd > 0) 23 | { 24 | await group.OnSendMessage($"【{info.name}】洞天中汲取的外来灵气鼓荡全身,需一段时间静修,大约{cd / 60 + 1}分钟之后可彻底稳固修为"); 25 | return; 26 | } 27 | Info dongtian = null; 28 | if (string.IsNullOrEmpty(target)) 29 | { 30 | dongtian = info; 31 | } 32 | else 33 | { 34 | dongtian = DBHelper.Get(target); 35 | if (dongtian == null) 36 | return; 37 | } 38 | if (info.Energy <= 0) 39 | { 40 | await group.OnSendMessage($"{info.name}已经精疲力尽了,明日再来吧"); 41 | return; 42 | } 43 | if (dongtian.DongtianLingqi <= 0) 44 | { 45 | if (dongtian.DongtianStartT == 0) 46 | await group.OnSendMessage($"【{dongtian.name}】还没有探索过洞天"); 47 | else 48 | await group.OnSendMessage($"【{dongtian.name}】探索到的这处洞天已经枯竭了"); 49 | } 50 | else 51 | { 52 | var jd = Info.JingjieFenduan[info.Jingjie - 1]; 53 | var irdm = RandomHelper.Next(jd / 2) + 1; 54 | if (irdm > info.Energy) 55 | irdm = (int)info.Energy; 56 | if (irdm > dongtian.DongtianLingqi) 57 | irdm = dongtian.DongtianLingqi; 58 | info.Energy -= irdm; 59 | dongtian.DongtianLingqi -= irdm; 60 | info.Lingqi += irdm; 61 | string str; 62 | var sec = irdm * 60; 63 | if (info.Lingqi > jd) 64 | { 65 | info.Lingqi -= jd; 66 | if (info.NeedTupo) 67 | { 68 | info.DujieExtra++; 69 | if (info.DujieExtra < 3) 70 | str = $"【{info.name}】在洞天中消耗{irdm}精力汲取了{irdm}灵气,感觉境界瓶颈松动了【少许】, {irdm}分钟后可再次修炼"; 71 | else if (info.DujieExtra < 6) 72 | str = $"【{info.name}】在洞天中消耗{irdm}精力汲取了{irdm}灵气,感觉境界瓶颈松动了【一些】, {irdm}分钟后可再次修炼"; 73 | else 74 | str = $"【{info.name}】在洞天中消耗{irdm}精力汲取了{irdm}灵气,感觉境界瓶颈松动了【很多】, {irdm}分钟后可再次修炼"; 75 | } 76 | else 77 | { 78 | info.Gongli++; 79 | str = $"【{info.name}】在洞天中修炼良久,消耗{irdm}精力汲取了{irdm}灵气,终于有所感悟,功力+1, {irdm}分钟后可再次修炼"; 80 | } 81 | } 82 | else 83 | { 84 | str = $"【{info.name}】在洞天中全心修炼,消耗{irdm}精力汲取了{irdm}灵气,似有所得, {irdm}分钟后可再次修炼"; 85 | } 86 | info.DongtianEndT = ApiDateTime.SecondsFromBegin() + irdm * 60; 87 | dongtian.Save(); 88 | info.Save(); 89 | await group.OnSendMessage(str); 90 | } 91 | } 92 | [GroupMessage("洞天")] 93 | public static async void OnDongtian(Group group, Member friend, string content) 94 | { 95 | if (GroupHelper.Invalid(group.Id)) 96 | return; 97 | if (string.IsNullOrEmpty(content)) 98 | { 99 | await group.OnSendMessage($"·输入“洞天 新建”可以开始探索新的洞天\n·探索到洞天后输入“修炼”可以消耗精力汲取灵气\n·输入“修炼”后at洞天主人可以进入其已经开启的洞天汲取灵气"); 100 | return; 101 | } 102 | var info = DBHelper.GetOrCreateOne(friend.Id, friend.Name); 103 | if (info.Jingjie < 1) 104 | { 105 | await group.OnSendMessage($"洞天之行危险至极,至少把你的境界提升到先天之境再来吧"); 106 | return; 107 | } 108 | if (ApiDateTime.IsToday(info.DongtianStartT)) 109 | { 110 | await group.OnSendMessage($"今日的洞天之行很辛苦,好好休息一下,明日再来吧"); 111 | return; 112 | } 113 | if (content == "新建") 114 | { 115 | var dt = RandomHelper.Next(info.Gongli) + (int)(info.Gongli * 1.1); 116 | info.DongtianLingqi = dt; 117 | info.DongtianStartT = ApiDateTime.SecondsFromBegin(); 118 | DBHelper.Save(info); 119 | await group.OnSendMessage($"【{info.name}】探索到了一个灵气值为{dt}的洞天宝地。"); 120 | } 121 | } 122 | private static int juedouid; 123 | private static Juedou juedou; 124 | 125 | [GroupMessage("决斗")] 126 | public static async void OnJuedou(Group group, Member friend, string content) 127 | { 128 | if (GroupHelper.Invalid(group.Id)) 129 | return; 130 | if (juedou != null && juedou.Valid) 131 | { 132 | await group.OnSendMessage("有已经开启的决斗了,请稍候再试。"); 133 | return; 134 | } 135 | 136 | juedouid++; 137 | var jid = juedouid; 138 | juedou = new Juedou() { A = new JuedouCell() { id = friend.Id, Name = friend.Name } }; 139 | if (content == "还有谁") 140 | juedou.LimitJingjie = false; 141 | var info = DBHelper.GetOrCreateOne(friend.Id, friend.Name); 142 | juedou.A.info = info; 143 | await group.OnSendMessage($"{friend.Name}发起了{(!juedou.LimitJingjie ? "【不限境界】的" : $"只限【{info.JingjieDes}境】的")}决斗,请于{Juedou.WaitSec}秒内回复“接受决斗”开启决斗。"); 144 | 145 | await Task.Delay(Juedou.WaitSec * 1000); 146 | if (juedou == null || (juedou.A != null && juedou.B != null)) 147 | return; 148 | if (jid != juedouid) 149 | return; 150 | await group.OnSendMessage("无人响应,决斗取消"); 151 | } 152 | [GroupMessage("接受决斗")] 153 | public static async void OnAcceptJuedou(Group group, Member friend, string content) 154 | { 155 | if (juedou == null || !juedou.Valid) 156 | { 157 | await group.OnSendMessage("没有等待接受的决斗"); 158 | return; 159 | } 160 | if (juedou.A.id == friend.Id) 161 | { 162 | await group.OnSendMessage("禁止自杀"); 163 | return; 164 | } 165 | if (juedou.B != null) 166 | { 167 | await group.OnSendMessage("决斗已经开始了"); 168 | return; 169 | } 170 | var info = DBHelper.GetOrCreateOne(friend.Id, friend.Name); 171 | if (juedou.LimitJingjie && juedou.A.info.Jingjie != info.Jingjie) 172 | { 173 | await group.OnSendMessage($"本次决斗只限{info.JingjieDes}境界"); 174 | return; 175 | } 176 | juedou.startt = DateTime.Now.AddDays(1); 177 | juedou.B = new JuedouCell() { id = friend.Id, Name = friend.Name }; 178 | JuedouCell killer = null; 179 | JuedouCell bekill = null; 180 | if (RandomHelper.Next(100) > 50) 181 | { 182 | killer = juedou.A; 183 | bekill = juedou.B; 184 | } 185 | else 186 | { 187 | killer = juedou.B; 188 | bekill = juedou.A; 189 | } 190 | killer.info = DBHelper.GetOrCreateOne(killer.id, ""); 191 | bekill.info = DBHelper.GetOrCreateOne(bekill.id, ""); 192 | await group.OnSendMessage($"{juedou.B.Name}({juedou.B.info.JingjieDes})接受了{juedou.A.Name}({juedou.A.info.JingjieDes})发起的决斗,双方开始轮流出杀。"); 193 | 194 | juedouid++; 195 | await Task.Delay(1000); 196 | 197 | var all = killer.info.Gongli + bekill.info.Gongli + 2; 198 | 199 | var lprocess = new List(); 200 | lprocess.Add($"{killer.Name}将率先向{bekill.Name}发起攻击"); 201 | 202 | var round = 0; 203 | while (true) 204 | { 205 | round++; 206 | var success = RandomHelper.Next(all) < killer.info.Gongli + 1; 207 | if (success) 208 | { 209 | success = RandomHelper.Next(all) < killer.info.Gongli + 1; 210 | if (success) 211 | { 212 | if (round > 5) 213 | lprocess.Add($"{killer.Name}击中了{bekill.Name},{bekill.Name}想了想,还是输了算了,{killer.Name}胜出。"); 214 | else 215 | lprocess.Add($"{killer.Name}击中了{bekill.Name},{bekill.Name}一个躲闪不及被打翻在地,{killer.Name}胜出。"); 216 | killer.info.JuedouWin++; 217 | DBHelper.Save(killer.info); 218 | juedou = null; 219 | break; 220 | } 221 | else 222 | { 223 | lprocess.Add(GetRandomDesc(killer, bekill)); 224 | } 225 | } 226 | else 227 | { 228 | lprocess.Add(GetRandomDesc(killer, bekill)); 229 | } 230 | ObjectHelper.Swap(ref killer, ref bekill); 231 | } 232 | await group.SendMessage(lprocess); 233 | if (killer.info.Jingjie <= bekill.info.Jingjie && killer.info.NeedTupo) 234 | { 235 | var success = RandomHelper.Next(10) > 3; 236 | if (success) 237 | { 238 | killer.info.Jingjie++; 239 | DBHelper.Save(killer.info); 240 | await group.OnSendMessage($"{killer.info.name}在决斗的生死压迫中感受到了命运的召唤,成功突破境界。"); 241 | } 242 | } 243 | if (bekill.info.Jingjie <= killer.info.Jingjie && bekill.info.NeedTupo) 244 | { 245 | var success = RandomHelper.Next(10) > 7; 246 | if (success) 247 | { 248 | bekill.info.Jingjie++; 249 | DBHelper.Save(bekill.info); 250 | await group.OnSendMessage($"{bekill.info.name}虽然惜败,但是在决斗的生死压迫中也感受到了命运的召唤,成功突破境界。"); 251 | } 252 | } 253 | if (RandomHelper.Next(2) == 0) 254 | return; 255 | var lucky = DBHelper.GetRandomCache(); 256 | if (lucky == null) 257 | return; 258 | if (lucky.Jingjie < killer.info.Jingjie) 259 | { 260 | var b = new MessageChainBuilder(); 261 | var atmsg = new AtMessage() 262 | { 263 | Target = lucky.id 264 | }; 265 | PlainMessage msg = null; 266 | if (lucky.NeedTupo) 267 | { 268 | lucky.Jingjie++; 269 | DBHelper.Save(lucky); 270 | msg = new PlainMessage() 271 | { 272 | Text = $"{lucky.name}在旁观决斗时忽然心有所悟,成功突破到了{lucky.JingjieDes}境界" 273 | }; 274 | } 275 | else 276 | { 277 | lucky.Gongli++; 278 | DBHelper.Save(lucky); 279 | msg = new PlainMessage() 280 | { 281 | Text = $"{lucky.name}被决斗的余威扫中,身受重伤,不过伤愈后功力竟然略有增长(功力+1({lucky.Gongli}))" 282 | }; 283 | } 284 | b.Append(atmsg).Append(msg); 285 | await group.SendMessage(b.Build()); 286 | } 287 | } 288 | 289 | private static string GetRandomDesc(JuedouCell killer, JuedouCell bekill) 290 | { 291 | var irdm = RandomHelper.Next(6); 292 | switch (irdm) 293 | { 294 | case 0: 295 | return $"{bekill.Name}使出【临门一脚】闪过了{killer.Name}的一击。"; 296 | case 1: 297 | return $"{killer.Name}击中了{bekill.Name},{bekill.Name}依靠顽强的意志使出了【朝申大那多】,化险为夷。"; 298 | case 2: 299 | return $"{killer.Name}一枪打中了{bekill.Name}的心口,但是被{bekill.Name}未来的女朋友送的怀表挡住了这致命一击。"; 300 | case 3: 301 | return $"{bekill.Name}被{killer.Name}爆头了,好在{bekill.Name}还有个备用的,换上以后跟新的一样。"; 302 | case 4: 303 | return $"{killer.Name}把【方天画戟】耍的天昏地暗,日月无光,但可惜没打着{bekill.Name}"; 304 | case 5: 305 | default: 306 | return $"{bekill.Name}掏出多啦B萌的随意门,躲过了{killer.Name}的攻击"; 307 | } 308 | } 309 | 310 | [GroupMessage("打坐")] 311 | public static async void OnDazuo(Group group, Member friend) 312 | { 313 | if (GroupHelper.Invalid(group.Id)) 314 | return; 315 | var info = DBHelper.GetOrCreateOne(friend.Id, friend.Name); 316 | if (info.Dazuo >= 100) 317 | { 318 | await group.OnSendMessage($"{friend.Name}今天打坐次数已经很多了,修仙为逆天行事,不可操之过急,明日签到之后再继续吧"); 319 | return; 320 | } 321 | if (info.XunbaoT > 0) 322 | { 323 | await group.OnSendMessage($"{friend.Name}正在寻宝中,不能打坐"); 324 | return; 325 | } 326 | if (info.DazuoStartT == 0) 327 | { 328 | info.DazuoStartT = ApiDateTime.SecondsFromBegin(); 329 | DBHelper.Save(info); 330 | await group.OnSendMessage($"{friend.Name}开始打坐"); 331 | return; 332 | } 333 | if (ApiDateTime.SecondsFromBegin() - info.DazuoStartT < 60) 334 | { 335 | info.DazuoStartT = 0; 336 | DBHelper.Save(info); 337 | await group.OnSendMessage($"{friend.Name}打坐不足一分钟"); 338 | return; 339 | } 340 | var s = (int)(ApiDateTime.SecondsFromBegin() - info.DazuoStartT); 341 | var ic = s / 60; 342 | if (ic > 10) 343 | ic = 10; 344 | info.DazuoStartT = 0; 345 | info.Dazuo += ic; 346 | info.Energy += ic; 347 | var dunwu = false; 348 | if (!info.NeedTupo && RandomHelper.Next(s) >= 600) 349 | { 350 | dunwu = true; 351 | info.Gongli++; 352 | } 353 | DBHelper.Save(info); 354 | await group.OnSendMessage($"{friend.Name}打坐{s}秒,精力+{ic},目前有精力{info.Energy}" + (dunwu ? $"\n打坐中顿悟,想通了人和宇宙以及植物和僵尸之间的紧密关系,功力+1({info.Gongli})" : "")); 355 | } 356 | 357 | [GroupMessage("寻宝")] 358 | public static async void OnXunbao(Group group, Member friend) 359 | { 360 | try 361 | { 362 | if (GroupHelper.Invalid(group.Id)) 363 | return; 364 | var info = DBHelper.GetOrCreateOne(friend.Id, friend.Name); 365 | if (info.DazuoStartT != 0) 366 | { 367 | await group.OnSendMessage($"{friend.Name}正在打坐,不能寻宝"); 368 | return; 369 | } 370 | if (info.XunbaoT != 0) 371 | { 372 | if (info.XunbaoEndT < ApiDateTime.SecondsFromBegin()) 373 | { 374 | info.XunbaoT = 0; 375 | info.XunbaoEndT = 0; 376 | 377 | var irdm = RandomHelper.Next(10); 378 | if (irdm == 0) 379 | { 380 | info.Gongli += 3; 381 | await group.OnSendMessage($"{friend.Name}逛街的时候买了一个高达10厘米的手办,功力大增(功力+3({info.Gongli}))"); 382 | } 383 | else if (irdm == 1) 384 | { 385 | info.Gongli += 2; 386 | await group.OnSendMessage($"{friend.Name}机缘巧合下解开了鸡兔同笼谜题,得到了【兔笼宝刀】一把,功力大增(功力+2({info.Gongli}))"); 387 | } 388 | else if (irdm == 2) 389 | { 390 | info.Gongli += 2; 391 | await group.OnSendMessage($"{friend.Name}只花了一天时间就逛遍了整个仙界,得到了【一天见】称号,功力大增(功力+2({info.Gongli}))"); 392 | } 393 | else if (irdm == 3) 394 | { 395 | info.Gongli++; 396 | await group.OnSendMessage($"{friend.Name}寻宝的时候掉下悬崖,摔得遍体鳞伤,不过捡到了一包【因祸德福巧克力】,吃了之后功力+1({info.Gongli})"); 397 | } 398 | else if (irdm == 4) 399 | { 400 | info.Gongli++; 401 | await group.OnSendMessage($"{friend.Name}寻宝的时候在D站刷到一个修仙指南视频,看完之后颇有心得,功力+1({info.Gongli})"); 402 | } 403 | else if (irdm == 5) 404 | { 405 | info.Energy += 5; 406 | await group.OnSendMessage($"{friend.Name}寻宝累了回自己的洞府美美睡了一觉,精力恢复了5点({info.Energy})"); 407 | } 408 | else 409 | { 410 | await group.OnSendMessage(GetRandomXunbaoDesc(friend.Name)); 411 | } 412 | DBHelper.Save(info); 413 | } 414 | else 415 | { 416 | await group.OnSendMessage($"{friend.Name}寻宝中,目前一无所获"); 417 | } 418 | return; 419 | } 420 | if (info.Energy < 10) 421 | { 422 | await group.OnSendMessage($"{friend.Name}精力不足10点,不能寻宝"); 423 | return; 424 | } 425 | if (info.NeedTupo) 426 | { 427 | await group.OnSendMessage($"{friend.Name}功力达到瓶颈,需要突破当前境界之后才能继续寻宝。"); 428 | return; 429 | } 430 | info.Energy -= 10; 431 | info.XunbaoT = ApiDateTime.SecondsFromBegin(); 432 | info.XunbaoEndT = info.XunbaoT + RandomHelper.Next(300) + 300; 433 | DBHelper.Save(info); 434 | var t = ApiDateTime.ToTime(info.XunbaoEndT); 435 | await group.OnSendMessage($"{friend.Name}开始寻宝,精力-10(目前剩余{info.Energy}),大概{t.ToString("HH:mm")}寻宝结束"); 436 | } 437 | catch (Exception ex) 438 | { 439 | Console.WriteLine($"[寻宝Error]{ex}"); 440 | } 441 | } 442 | 443 | [GroupMessage("打招呼")] 444 | public static async void OnDujie(Group group, Member friend, string target) 445 | { 446 | if (string.IsNullOrEmpty(target)) 447 | return; 448 | var info = DBHelper.Get(target); 449 | if (info == null) 450 | return; 451 | var p1 = new PlainMessage($"{friend.Name}向"); 452 | var at = new AtMessage() { Target = target }; 453 | var p2 = new PlainMessage($"招了招手"); 454 | var b = new MessageChainBuilder(); 455 | b.Append(p1).Append(at).Append(p2); 456 | await group.SendMessage(b.Build()); 457 | } 458 | 459 | [GroupMessage("渡劫")] 460 | public static async void OnDujie(Group group, Member friend) 461 | { 462 | var info = DBHelper.GetOrCreateOne(friend.Id, friend.Name); 463 | if (!info.NeedTupo) 464 | { 465 | await group.OnSendMessage($"道友功力尚浅,贸然渡劫恐伤及仙根,影响日后的修行。"); 466 | return; 467 | } 468 | var success = RandomHelper.Next(info.MaxGongli) + 5 < 10 + info.DujieExtra * 0.1 * info.MaxGongli; 469 | if (success) 470 | { 471 | info.Jingjie++; 472 | info.DujieExtra = 0; 473 | DBHelper.Save(info); 474 | await group.OnSendMessage($"{friend.Name}渡劫成功,晋升{info.JingjieDes}境,喜大普奔,红旗招展,鞭炮齐鸣,人山人海,一举成为全村最靓的仔。"); 475 | return; 476 | } 477 | info.Gongli = info.MaxGongli - 1; 478 | DBHelper.Save(info); 479 | await group.OnSendMessage($"{friend.Name}渡劫失败,遭受反噬,功力大减({info.Gongli})。"); 480 | } 481 | 482 | private static string GetRandomXunbaoDesc(string name) 483 | { 484 | var irdm = RandomHelper.Next(10); 485 | switch (irdm) 486 | { 487 | case 0: 488 | return $"{name}寻宝一天,只从隔壁王奶奶家翻到破袜子一只。"; 489 | case 1: 490 | return $"{name}在隔壁李二狗家看了一天蚂蚁搬家,寻宝结束。"; 491 | case 2: 492 | return $"{name}在D站刷了一天钢琴视频,寻宝结束。"; 493 | case 3: 494 | return $"{name}在山顶吹了一天风,也没找到什么有用的东西。"; 495 | case 4: 496 | return $"{name}在树林里找到了一根白杆杆的红伞伞,吃完之后发现什么也没发生。"; 497 | case 5: 498 | case 6: 499 | return $"{name}寻宝过程中偶遇一只菜虚鲲,跟它玩儿了一天篮球。"; 500 | case 7: 501 | case 8: 502 | return $"{name}在寻宝过程中突发奇想,美美地睡了一觉,发现地球原来是圆的,成为了一代知名大画家。"; 503 | } 504 | return $"{name}寻宝一天,只从隔壁王奶奶家翻到吃剩的大闸蟹一只。"; 505 | } 506 | 507 | [GroupMessage("青楼")] 508 | public static async void OnQinglou(Group group, Member friend) 509 | { 510 | await group.OnSendMessage($"{friend.Name} 独上青楼听艳曲,手擎玉箫无人吹!"); 511 | } 512 | 513 | [GroupMessage("信息")] 514 | public static async void OnXinxi(Group group, Member friend, string target) 515 | { 516 | if (GroupHelper.Invalid(group.Id)) 517 | return; 518 | Info info = null; 519 | if (!string.IsNullOrEmpty(target)) 520 | info = DBHelper.Get(target); 521 | else 522 | info = DBHelper.GetOrCreateOne(friend.Id, friend.Name); 523 | if (info == null) 524 | return; 525 | var res = $"【{info.name}】\n" + 526 | $"功力:{info.Gongli}\n" + 527 | $"境界:{info.JingjieDes}\n" + 528 | $"精力:{info.Energy}\n" + 529 | $"决斗胜利:{info.JuedouWin}\n" + 530 | $"打坐进度:{info.Dazuo}/100\n" + 531 | $"灵气:{info.Lingqi}\n" + 532 | $"洞天灵气:{info.DongtianLingqi}\n" 533 | ; 534 | var b = new MessageChainBuilder(); 535 | var m = new ImageMessage() { Base64 = Convert.ToBase64String(System.IO.File.ReadAllBytes("logo.png")) }; 536 | b.Append(m).Append(new PlainMessage() { Text = res }); 537 | await group.SendMessage(b.Build()); 538 | } 539 | 540 | [GroupMessage("功力榜")] 541 | public static async void OnGonglibang(Group group, Member friend) 542 | { 543 | var ress = DBHelper.GetRank("Gongli"); 544 | var res = "《烦人修仙传》功力榜\n"; 545 | foreach (var kv in ress) 546 | { 547 | res += $"【{kv.Key + 1}】{kv.Value.name} 功力:({kv.Value.Gongli})\n"; 548 | } 549 | var b = new MessageChainBuilder(); 550 | var m = new ImageMessage() { Base64 = Convert.ToBase64String(System.IO.File.ReadAllBytes("logo.png")) }; 551 | b.Append(m).Append(new PlainMessage() { Text = res }); 552 | await group.SendMessage(b.Build()); 553 | } 554 | 555 | [GroupMessage("精力榜")] 556 | public static async void OnJinglibang(Group group, Member friend) 557 | { 558 | var ress = DBHelper.GetRank("Energy"); 559 | var res = "《烦人修仙传》精力榜\n"; 560 | foreach (var kv in ress) 561 | { 562 | res += $"【{kv.Key + 1}】{kv.Value.name} 精力:({kv.Value.Energy})\n"; 563 | } 564 | var b = new MessageChainBuilder(); 565 | var m = new ImageMessage() { Base64 = Convert.ToBase64String(System.IO.File.ReadAllBytes("logo.png")) }; 566 | b.Append(m).Append(new PlainMessage() { Text = res }); 567 | await group.SendMessage(b.Build()); 568 | } 569 | 570 | [GroupMessage("决斗榜")] 571 | public static async void OnJuedoubang(Group group, Member friend) 572 | { 573 | var ress = DBHelper.GetRank("JuedouWin"); 574 | var res = "《烦人修仙传》决斗榜\n"; 575 | foreach (var kv in ress) 576 | { 577 | res += $"【{kv.Key + 1}】{kv.Value.name} 决斗胜利 {kv.Value.JuedouWin} 次\n"; 578 | } 579 | var b = new MessageChainBuilder(); 580 | var m = new ImageMessage() { Base64 = Convert.ToBase64String(System.IO.File.ReadAllBytes("logo.png")) }; 581 | b.Append(m).Append(new PlainMessage() { Text = res }); 582 | await group.SendMessage(b.Build()); 583 | } 584 | 585 | [GroupMessage("境界榜")] 586 | public static async void OnJingjiebang(Group group, Member friend) 587 | { 588 | var ress = DBHelper.GetRank("Jingjie"); 589 | var res = "《烦人修仙传》境界榜\n"; 590 | foreach (var kv in ress) 591 | { 592 | res += $"【{kv.Key + 1}】{kv.Value.name} 境界:{kv.Value.JingjieDes}\n"; 593 | } 594 | var b = new MessageChainBuilder(); 595 | var m = new ImageMessage() { Base64 = Convert.ToBase64String(System.IO.File.ReadAllBytes("logo.png")) }; 596 | b.Append(m).Append(new PlainMessage() { Text = res }); 597 | await group.SendMessage(b.Build()); 598 | } 599 | 600 | [GroupMessage("功能")] 601 | public static async void OnFunctions(Group group, Member friend) 602 | { 603 | var b = new MessageChainBuilder(); 604 | var m = new ImageMessage() { Base64 = Convert.ToBase64String(System.IO.File.ReadAllBytes("logo.png")) }; 605 | var res = "【打坐】开始/结束打坐,可以增加精力\n" + 606 | "\t打坐时间越长,越可能顿悟额外增加功力\n" + 607 | "【寻宝】开始/结束寻宝,消耗精力概率涨功力\n" + 608 | "\t寻宝10点精力可以获取0~3点功力\n" + 609 | "【签到】每天一次,增加精力并重置打坐进度\n" + 610 | "【信息】查看自己的信息\n" + 611 | "【洞天】探索洞天,通过修炼提升功力或渡劫成功率\n" + 612 | "\t修炼10点精力可以固定获取1点功力,如果是需要突破了,则转化为10%渡劫成功率\n" + 613 | "【功力榜】【精力榜】【决斗榜】【境界榜】\n" + 614 | "更多功能敬请期待\n" + 615 | "《烦人修仙传》烦人,我们是认真的!"; 616 | b.Append(m).Append(new PlainMessage() { Text = res }); 617 | await group.SendMessage(b.Build()); 618 | } 619 | } 620 | } 621 | -------------------------------------------------------------------------------- /App/bin/Debug/net6.0/App.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETCoreApp,Version=v6.0", 4 | "signature": "" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETCoreApp,Version=v6.0": { 9 | "App/1.0.0": { 10 | "dependencies": { 11 | "Mirai.Net": "2.4.1", 12 | "Model": "1.0.0", 13 | "MongoDB.Bson": "2.10.4", 14 | "MongoDB.Driver": "2.10.4", 15 | "MongoDB.Driver.Core": "2.10.4", 16 | "System.Reactive.Reference": "4.3.0.0" 17 | }, 18 | "runtime": { 19 | "App.dll": {} 20 | } 21 | }, 22 | "DnsClient/1.3.1": { 23 | "runtime": { 24 | "lib/netstandard2.1/DnsClient.dll": { 25 | "assemblyVersion": "1.3.1.0", 26 | "fileVersion": "1.3.1.0" 27 | } 28 | } 29 | }, 30 | "Flurl/3.0.4": { 31 | "runtime": { 32 | "lib/netstandard2.0/Flurl.dll": { 33 | "assemblyVersion": "3.0.4.0", 34 | "fileVersion": "3.0.4.0" 35 | } 36 | } 37 | }, 38 | "Flurl.Http/3.2.2": { 39 | "dependencies": { 40 | "Flurl": "3.0.4", 41 | "Newtonsoft.Json": "13.0.1", 42 | "System.Text.Encoding.CodePages": "4.5.1" 43 | }, 44 | "runtime": { 45 | "lib/netstandard2.0/Flurl.Http.dll": { 46 | "assemblyVersion": "3.2.2.0", 47 | "fileVersion": "3.2.2.0" 48 | } 49 | } 50 | }, 51 | "Manganese/1.2.1": { 52 | "dependencies": { 53 | "Newtonsoft.Json": "13.0.1" 54 | }, 55 | "runtime": { 56 | "lib/net6.0/Manganese.dll": { 57 | "assemblyVersion": "1.0.0.0", 58 | "fileVersion": "1.0.0.0" 59 | } 60 | } 61 | }, 62 | "Microsoft.NETCore.Platforms/2.1.2": {}, 63 | "Microsoft.NETCore.Targets/1.1.0": {}, 64 | "Microsoft.Win32.Primitives/4.3.0": { 65 | "dependencies": { 66 | "Microsoft.NETCore.Platforms": "2.1.2", 67 | "Microsoft.NETCore.Targets": "1.1.0", 68 | "System.Runtime": "4.3.0" 69 | } 70 | }, 71 | "Microsoft.Win32.Registry/4.0.0": { 72 | "dependencies": { 73 | "Microsoft.NETCore.Platforms": "2.1.2", 74 | "System.Collections": "4.3.0", 75 | "System.Globalization": "4.3.0", 76 | "System.Resources.ResourceManager": "4.3.0", 77 | "System.Runtime": "4.3.0", 78 | "System.Runtime.Extensions": "4.3.0", 79 | "System.Runtime.Handles": "4.3.0", 80 | "System.Runtime.InteropServices": "4.3.0" 81 | } 82 | }, 83 | "Mirai.Net/2.4.1": { 84 | "dependencies": { 85 | "Flurl": "3.0.4", 86 | "Flurl.Http": "3.2.2", 87 | "Manganese": "1.2.1", 88 | "Websocket.Client": "4.4.43" 89 | }, 90 | "runtime": { 91 | "lib/net6.0/Mirai.Net.dll": { 92 | "assemblyVersion": "1.0.0.0", 93 | "fileVersion": "1.0.0.0" 94 | } 95 | } 96 | }, 97 | "MongoDB.Bson/2.10.4": { 98 | "dependencies": { 99 | "NETStandard.Library": "1.6.1", 100 | "System.Collections.NonGeneric": "4.0.1", 101 | "System.Diagnostics.Process": "4.1.0", 102 | "System.Dynamic.Runtime": "4.0.11", 103 | "System.Reflection.Emit.Lightweight": "4.3.0", 104 | "System.Runtime.Serialization.Formatters": "4.3.0" 105 | }, 106 | "runtime": { 107 | "lib/netstandard1.5/MongoDB.Bson.dll": { 108 | "assemblyVersion": "2.10.4.0", 109 | "fileVersion": "2.10.4.0" 110 | } 111 | } 112 | }, 113 | "MongoDB.Driver/2.10.4": { 114 | "dependencies": { 115 | "MongoDB.Bson": "2.10.4", 116 | "MongoDB.Driver.Core": "2.10.4", 117 | "MongoDB.Libmongocrypt": "1.0.0", 118 | "NETStandard.Library": "1.6.1", 119 | "System.ComponentModel.TypeConverter": "4.1.0", 120 | "System.Linq.Queryable": "4.0.1" 121 | }, 122 | "runtime": { 123 | "lib/netstandard1.5/MongoDB.Driver.dll": { 124 | "assemblyVersion": "2.10.4.0", 125 | "fileVersion": "2.10.4.0" 126 | } 127 | } 128 | }, 129 | "MongoDB.Driver.Core/2.10.4": { 130 | "dependencies": { 131 | "DnsClient": "1.3.1", 132 | "MongoDB.Bson": "2.10.4", 133 | "MongoDB.Libmongocrypt": "1.0.0", 134 | "NETStandard.Library": "1.6.1", 135 | "SharpCompress": "0.23.0", 136 | "System.Collections.Specialized": "4.0.1", 137 | "System.Diagnostics.TextWriterTraceListener": "4.0.0", 138 | "System.Diagnostics.TraceSource": "4.3.0", 139 | "System.Net.NameResolution": "4.3.0", 140 | "System.Net.Security": "4.3.2", 141 | "System.Security.SecureString": "4.0.0", 142 | "System.Threading.Thread": "4.3.0" 143 | }, 144 | "runtime": { 145 | "lib/netstandard1.5/MongoDB.Driver.Core.dll": { 146 | "assemblyVersion": "2.10.4.0", 147 | "fileVersion": "2.10.4.0" 148 | } 149 | } 150 | }, 151 | "MongoDB.Libmongocrypt/1.0.0": { 152 | "dependencies": { 153 | "NETStandard.Library": "1.6.1" 154 | }, 155 | "runtime": { 156 | "lib/netstandard1.5/MongoDB.Libmongocrypt.dll": { 157 | "assemblyVersion": "1.0.0.0", 158 | "fileVersion": "1.0.0.0" 159 | } 160 | } 161 | }, 162 | "NETStandard.Library/1.6.1": { 163 | "dependencies": { 164 | "Microsoft.NETCore.Platforms": "2.1.2", 165 | "Microsoft.Win32.Primitives": "4.3.0", 166 | "System.AppContext": "4.3.0", 167 | "System.Collections": "4.3.0", 168 | "System.Collections.Concurrent": "4.3.0", 169 | "System.Console": "4.3.0", 170 | "System.Diagnostics.Debug": "4.3.0", 171 | "System.Diagnostics.Tools": "4.3.0", 172 | "System.Diagnostics.Tracing": "4.3.0", 173 | "System.Globalization": "4.3.0", 174 | "System.Globalization.Calendars": "4.3.0", 175 | "System.IO": "4.3.0", 176 | "System.IO.Compression": "4.3.0", 177 | "System.IO.Compression.ZipFile": "4.3.0", 178 | "System.IO.FileSystem": "4.3.0", 179 | "System.IO.FileSystem.Primitives": "4.3.0", 180 | "System.Linq": "4.3.0", 181 | "System.Linq.Expressions": "4.3.0", 182 | "System.Net.Http": "4.3.0", 183 | "System.Net.Primitives": "4.3.0", 184 | "System.Net.Sockets": "4.3.0", 185 | "System.ObjectModel": "4.3.0", 186 | "System.Reflection": "4.3.0", 187 | "System.Reflection.Extensions": "4.3.0", 188 | "System.Reflection.Primitives": "4.3.0", 189 | "System.Resources.ResourceManager": "4.3.0", 190 | "System.Runtime": "4.3.0", 191 | "System.Runtime.Extensions": "4.3.0", 192 | "System.Runtime.Handles": "4.3.0", 193 | "System.Runtime.InteropServices": "4.3.0", 194 | "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", 195 | "System.Runtime.Numerics": "4.3.0", 196 | "System.Security.Cryptography.Algorithms": "4.3.0", 197 | "System.Security.Cryptography.Encoding": "4.3.0", 198 | "System.Security.Cryptography.Primitives": "4.3.0", 199 | "System.Security.Cryptography.X509Certificates": "4.3.0", 200 | "System.Text.Encoding": "4.3.0", 201 | "System.Text.Encoding.Extensions": "4.3.0", 202 | "System.Text.RegularExpressions": "4.3.0", 203 | "System.Threading": "4.3.0", 204 | "System.Threading.Tasks": "4.3.0", 205 | "System.Threading.Timer": "4.3.0", 206 | "System.Xml.ReaderWriter": "4.3.0", 207 | "System.Xml.XDocument": "4.3.0" 208 | } 209 | }, 210 | "Newtonsoft.Json/13.0.1": { 211 | "runtime": { 212 | "lib/netstandard2.0/Newtonsoft.Json.dll": { 213 | "assemblyVersion": "13.0.0.0", 214 | "fileVersion": "13.0.1.25517" 215 | } 216 | } 217 | }, 218 | "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, 219 | "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, 220 | "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, 221 | "runtime.native.System/4.3.0": { 222 | "dependencies": { 223 | "Microsoft.NETCore.Platforms": "2.1.2", 224 | "Microsoft.NETCore.Targets": "1.1.0" 225 | } 226 | }, 227 | "runtime.native.System.IO.Compression/4.3.0": { 228 | "dependencies": { 229 | "Microsoft.NETCore.Platforms": "2.1.2", 230 | "Microsoft.NETCore.Targets": "1.1.0" 231 | } 232 | }, 233 | "runtime.native.System.Net.Http/4.3.0": { 234 | "dependencies": { 235 | "Microsoft.NETCore.Platforms": "2.1.2", 236 | "Microsoft.NETCore.Targets": "1.1.0" 237 | } 238 | }, 239 | "runtime.native.System.Net.Security/4.3.0": { 240 | "dependencies": { 241 | "Microsoft.NETCore.Platforms": "2.1.2", 242 | "Microsoft.NETCore.Targets": "1.1.0" 243 | } 244 | }, 245 | "runtime.native.System.Security.Cryptography.Apple/4.3.0": { 246 | "dependencies": { 247 | "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" 248 | } 249 | }, 250 | "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { 251 | "dependencies": { 252 | "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", 253 | "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", 254 | "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", 255 | "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", 256 | "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", 257 | "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", 258 | "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", 259 | "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", 260 | "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", 261 | "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" 262 | } 263 | }, 264 | "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, 265 | "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, 266 | "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, 267 | "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, 268 | "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, 269 | "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, 270 | "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, 271 | "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, 272 | "SharpCompress/0.23.0": { 273 | "dependencies": { 274 | "System.Text.Encoding.CodePages": "4.5.1" 275 | }, 276 | "runtime": { 277 | "lib/netstandard2.0/SharpCompress.dll": { 278 | "assemblyVersion": "0.23.0.0", 279 | "fileVersion": "0.23.0.0" 280 | } 281 | } 282 | }, 283 | "System.AppContext/4.3.0": { 284 | "dependencies": { 285 | "System.Runtime": "4.3.0" 286 | } 287 | }, 288 | "System.Buffers/4.3.0": { 289 | "dependencies": { 290 | "System.Diagnostics.Debug": "4.3.0", 291 | "System.Diagnostics.Tracing": "4.3.0", 292 | "System.Resources.ResourceManager": "4.3.0", 293 | "System.Runtime": "4.3.0", 294 | "System.Threading": "4.3.0" 295 | } 296 | }, 297 | "System.Collections/4.3.0": { 298 | "dependencies": { 299 | "Microsoft.NETCore.Platforms": "2.1.2", 300 | "Microsoft.NETCore.Targets": "1.1.0", 301 | "System.Runtime": "4.3.0" 302 | } 303 | }, 304 | "System.Collections.Concurrent/4.3.0": { 305 | "dependencies": { 306 | "System.Collections": "4.3.0", 307 | "System.Diagnostics.Debug": "4.3.0", 308 | "System.Diagnostics.Tracing": "4.3.0", 309 | "System.Globalization": "4.3.0", 310 | "System.Reflection": "4.3.0", 311 | "System.Resources.ResourceManager": "4.3.0", 312 | "System.Runtime": "4.3.0", 313 | "System.Runtime.Extensions": "4.3.0", 314 | "System.Threading": "4.3.0", 315 | "System.Threading.Tasks": "4.3.0" 316 | } 317 | }, 318 | "System.Collections.NonGeneric/4.0.1": { 319 | "dependencies": { 320 | "System.Diagnostics.Debug": "4.3.0", 321 | "System.Globalization": "4.3.0", 322 | "System.Resources.ResourceManager": "4.3.0", 323 | "System.Runtime": "4.3.0", 324 | "System.Runtime.Extensions": "4.3.0", 325 | "System.Threading": "4.3.0" 326 | } 327 | }, 328 | "System.Collections.Specialized/4.0.1": { 329 | "dependencies": { 330 | "System.Collections.NonGeneric": "4.0.1", 331 | "System.Globalization": "4.3.0", 332 | "System.Globalization.Extensions": "4.3.0", 333 | "System.Resources.ResourceManager": "4.3.0", 334 | "System.Runtime": "4.3.0", 335 | "System.Runtime.Extensions": "4.3.0", 336 | "System.Threading": "4.3.0" 337 | } 338 | }, 339 | "System.ComponentModel/4.0.1": { 340 | "dependencies": { 341 | "System.Runtime": "4.3.0" 342 | } 343 | }, 344 | "System.ComponentModel.Primitives/4.1.0": { 345 | "dependencies": { 346 | "System.ComponentModel": "4.0.1", 347 | "System.Resources.ResourceManager": "4.3.0", 348 | "System.Runtime": "4.3.0" 349 | } 350 | }, 351 | "System.ComponentModel.TypeConverter/4.1.0": { 352 | "dependencies": { 353 | "System.Collections": "4.3.0", 354 | "System.Collections.NonGeneric": "4.0.1", 355 | "System.Collections.Specialized": "4.0.1", 356 | "System.ComponentModel": "4.0.1", 357 | "System.ComponentModel.Primitives": "4.1.0", 358 | "System.Globalization": "4.3.0", 359 | "System.Linq": "4.3.0", 360 | "System.Reflection": "4.3.0", 361 | "System.Reflection.Extensions": "4.3.0", 362 | "System.Reflection.Primitives": "4.3.0", 363 | "System.Reflection.TypeExtensions": "4.3.0", 364 | "System.Resources.ResourceManager": "4.3.0", 365 | "System.Runtime": "4.3.0", 366 | "System.Runtime.Extensions": "4.3.0", 367 | "System.Threading": "4.3.0" 368 | } 369 | }, 370 | "System.Console/4.3.0": { 371 | "dependencies": { 372 | "Microsoft.NETCore.Platforms": "2.1.2", 373 | "Microsoft.NETCore.Targets": "1.1.0", 374 | "System.IO": "4.3.0", 375 | "System.Runtime": "4.3.0", 376 | "System.Text.Encoding": "4.3.0" 377 | } 378 | }, 379 | "System.Diagnostics.Debug/4.3.0": { 380 | "dependencies": { 381 | "Microsoft.NETCore.Platforms": "2.1.2", 382 | "Microsoft.NETCore.Targets": "1.1.0", 383 | "System.Runtime": "4.3.0" 384 | } 385 | }, 386 | "System.Diagnostics.DiagnosticSource/4.3.0": { 387 | "dependencies": { 388 | "System.Collections": "4.3.0", 389 | "System.Diagnostics.Tracing": "4.3.0", 390 | "System.Reflection": "4.3.0", 391 | "System.Runtime": "4.3.0", 392 | "System.Threading": "4.3.0" 393 | } 394 | }, 395 | "System.Diagnostics.Process/4.1.0": { 396 | "dependencies": { 397 | "Microsoft.NETCore.Platforms": "2.1.2", 398 | "Microsoft.Win32.Primitives": "4.3.0", 399 | "Microsoft.Win32.Registry": "4.0.0", 400 | "System.Collections": "4.3.0", 401 | "System.Diagnostics.Debug": "4.3.0", 402 | "System.Globalization": "4.3.0", 403 | "System.IO": "4.3.0", 404 | "System.IO.FileSystem": "4.3.0", 405 | "System.IO.FileSystem.Primitives": "4.3.0", 406 | "System.Resources.ResourceManager": "4.3.0", 407 | "System.Runtime": "4.3.0", 408 | "System.Runtime.Extensions": "4.3.0", 409 | "System.Runtime.Handles": "4.3.0", 410 | "System.Runtime.InteropServices": "4.3.0", 411 | "System.Text.Encoding": "4.3.0", 412 | "System.Text.Encoding.Extensions": "4.3.0", 413 | "System.Threading": "4.3.0", 414 | "System.Threading.Tasks": "4.3.0", 415 | "System.Threading.Thread": "4.3.0", 416 | "System.Threading.ThreadPool": "4.3.0", 417 | "runtime.native.System": "4.3.0" 418 | } 419 | }, 420 | "System.Diagnostics.TextWriterTraceListener/4.0.0": { 421 | "dependencies": { 422 | "System.Diagnostics.TraceSource": "4.3.0", 423 | "System.Globalization": "4.3.0", 424 | "System.IO": "4.3.0", 425 | "System.Resources.ResourceManager": "4.3.0", 426 | "System.Runtime": "4.3.0", 427 | "System.Threading": "4.3.0" 428 | } 429 | }, 430 | "System.Diagnostics.Tools/4.3.0": { 431 | "dependencies": { 432 | "Microsoft.NETCore.Platforms": "2.1.2", 433 | "Microsoft.NETCore.Targets": "1.1.0", 434 | "System.Runtime": "4.3.0" 435 | } 436 | }, 437 | "System.Diagnostics.TraceSource/4.3.0": { 438 | "dependencies": { 439 | "Microsoft.NETCore.Platforms": "2.1.2", 440 | "System.Collections": "4.3.0", 441 | "System.Diagnostics.Debug": "4.3.0", 442 | "System.Globalization": "4.3.0", 443 | "System.Resources.ResourceManager": "4.3.0", 444 | "System.Runtime": "4.3.0", 445 | "System.Runtime.Extensions": "4.3.0", 446 | "System.Threading": "4.3.0", 447 | "runtime.native.System": "4.3.0" 448 | } 449 | }, 450 | "System.Diagnostics.Tracing/4.3.0": { 451 | "dependencies": { 452 | "Microsoft.NETCore.Platforms": "2.1.2", 453 | "Microsoft.NETCore.Targets": "1.1.0", 454 | "System.Runtime": "4.3.0" 455 | } 456 | }, 457 | "System.Dynamic.Runtime/4.0.11": { 458 | "dependencies": { 459 | "System.Collections": "4.3.0", 460 | "System.Diagnostics.Debug": "4.3.0", 461 | "System.Globalization": "4.3.0", 462 | "System.Linq": "4.3.0", 463 | "System.Linq.Expressions": "4.3.0", 464 | "System.ObjectModel": "4.3.0", 465 | "System.Reflection": "4.3.0", 466 | "System.Reflection.Emit": "4.3.0", 467 | "System.Reflection.Emit.ILGeneration": "4.3.0", 468 | "System.Reflection.Primitives": "4.3.0", 469 | "System.Reflection.TypeExtensions": "4.3.0", 470 | "System.Resources.ResourceManager": "4.3.0", 471 | "System.Runtime": "4.3.0", 472 | "System.Runtime.Extensions": "4.3.0", 473 | "System.Threading": "4.3.0" 474 | } 475 | }, 476 | "System.Globalization/4.3.0": { 477 | "dependencies": { 478 | "Microsoft.NETCore.Platforms": "2.1.2", 479 | "Microsoft.NETCore.Targets": "1.1.0", 480 | "System.Runtime": "4.3.0" 481 | } 482 | }, 483 | "System.Globalization.Calendars/4.3.0": { 484 | "dependencies": { 485 | "Microsoft.NETCore.Platforms": "2.1.2", 486 | "Microsoft.NETCore.Targets": "1.1.0", 487 | "System.Globalization": "4.3.0", 488 | "System.Runtime": "4.3.0" 489 | } 490 | }, 491 | "System.Globalization.Extensions/4.3.0": { 492 | "dependencies": { 493 | "Microsoft.NETCore.Platforms": "2.1.2", 494 | "System.Globalization": "4.3.0", 495 | "System.Resources.ResourceManager": "4.3.0", 496 | "System.Runtime": "4.3.0", 497 | "System.Runtime.Extensions": "4.3.0", 498 | "System.Runtime.InteropServices": "4.3.0" 499 | } 500 | }, 501 | "System.IO/4.3.0": { 502 | "dependencies": { 503 | "Microsoft.NETCore.Platforms": "2.1.2", 504 | "Microsoft.NETCore.Targets": "1.1.0", 505 | "System.Runtime": "4.3.0", 506 | "System.Text.Encoding": "4.3.0", 507 | "System.Threading.Tasks": "4.3.0" 508 | } 509 | }, 510 | "System.IO.Compression/4.3.0": { 511 | "dependencies": { 512 | "Microsoft.NETCore.Platforms": "2.1.2", 513 | "System.Buffers": "4.3.0", 514 | "System.Collections": "4.3.0", 515 | "System.Diagnostics.Debug": "4.3.0", 516 | "System.IO": "4.3.0", 517 | "System.Resources.ResourceManager": "4.3.0", 518 | "System.Runtime": "4.3.0", 519 | "System.Runtime.Extensions": "4.3.0", 520 | "System.Runtime.Handles": "4.3.0", 521 | "System.Runtime.InteropServices": "4.3.0", 522 | "System.Text.Encoding": "4.3.0", 523 | "System.Threading": "4.3.0", 524 | "System.Threading.Tasks": "4.3.0", 525 | "runtime.native.System": "4.3.0", 526 | "runtime.native.System.IO.Compression": "4.3.0" 527 | } 528 | }, 529 | "System.IO.Compression.ZipFile/4.3.0": { 530 | "dependencies": { 531 | "System.Buffers": "4.3.0", 532 | "System.IO": "4.3.0", 533 | "System.IO.Compression": "4.3.0", 534 | "System.IO.FileSystem": "4.3.0", 535 | "System.IO.FileSystem.Primitives": "4.3.0", 536 | "System.Resources.ResourceManager": "4.3.0", 537 | "System.Runtime": "4.3.0", 538 | "System.Runtime.Extensions": "4.3.0", 539 | "System.Text.Encoding": "4.3.0" 540 | } 541 | }, 542 | "System.IO.FileSystem/4.3.0": { 543 | "dependencies": { 544 | "Microsoft.NETCore.Platforms": "2.1.2", 545 | "Microsoft.NETCore.Targets": "1.1.0", 546 | "System.IO": "4.3.0", 547 | "System.IO.FileSystem.Primitives": "4.3.0", 548 | "System.Runtime": "4.3.0", 549 | "System.Runtime.Handles": "4.3.0", 550 | "System.Text.Encoding": "4.3.0", 551 | "System.Threading.Tasks": "4.3.0" 552 | } 553 | }, 554 | "System.IO.FileSystem.Primitives/4.3.0": { 555 | "dependencies": { 556 | "System.Runtime": "4.3.0" 557 | } 558 | }, 559 | "System.Linq/4.3.0": { 560 | "dependencies": { 561 | "System.Collections": "4.3.0", 562 | "System.Diagnostics.Debug": "4.3.0", 563 | "System.Resources.ResourceManager": "4.3.0", 564 | "System.Runtime": "4.3.0", 565 | "System.Runtime.Extensions": "4.3.0" 566 | } 567 | }, 568 | "System.Linq.Expressions/4.3.0": { 569 | "dependencies": { 570 | "System.Collections": "4.3.0", 571 | "System.Diagnostics.Debug": "4.3.0", 572 | "System.Globalization": "4.3.0", 573 | "System.IO": "4.3.0", 574 | "System.Linq": "4.3.0", 575 | "System.ObjectModel": "4.3.0", 576 | "System.Reflection": "4.3.0", 577 | "System.Reflection.Emit": "4.3.0", 578 | "System.Reflection.Emit.ILGeneration": "4.3.0", 579 | "System.Reflection.Emit.Lightweight": "4.3.0", 580 | "System.Reflection.Extensions": "4.3.0", 581 | "System.Reflection.Primitives": "4.3.0", 582 | "System.Reflection.TypeExtensions": "4.3.0", 583 | "System.Resources.ResourceManager": "4.3.0", 584 | "System.Runtime": "4.3.0", 585 | "System.Runtime.Extensions": "4.3.0", 586 | "System.Threading": "4.3.0" 587 | } 588 | }, 589 | "System.Linq.Queryable/4.0.1": { 590 | "dependencies": { 591 | "System.Collections": "4.3.0", 592 | "System.Diagnostics.Debug": "4.3.0", 593 | "System.Linq": "4.3.0", 594 | "System.Linq.Expressions": "4.3.0", 595 | "System.Reflection": "4.3.0", 596 | "System.Reflection.Extensions": "4.3.0", 597 | "System.Resources.ResourceManager": "4.3.0", 598 | "System.Runtime": "4.3.0" 599 | } 600 | }, 601 | "System.Net.Http/4.3.0": { 602 | "dependencies": { 603 | "Microsoft.NETCore.Platforms": "2.1.2", 604 | "System.Collections": "4.3.0", 605 | "System.Diagnostics.Debug": "4.3.0", 606 | "System.Diagnostics.DiagnosticSource": "4.3.0", 607 | "System.Diagnostics.Tracing": "4.3.0", 608 | "System.Globalization": "4.3.0", 609 | "System.Globalization.Extensions": "4.3.0", 610 | "System.IO": "4.3.0", 611 | "System.IO.FileSystem": "4.3.0", 612 | "System.Net.Primitives": "4.3.0", 613 | "System.Resources.ResourceManager": "4.3.0", 614 | "System.Runtime": "4.3.0", 615 | "System.Runtime.Extensions": "4.3.0", 616 | "System.Runtime.Handles": "4.3.0", 617 | "System.Runtime.InteropServices": "4.3.0", 618 | "System.Security.Cryptography.Algorithms": "4.3.0", 619 | "System.Security.Cryptography.Encoding": "4.3.0", 620 | "System.Security.Cryptography.OpenSsl": "4.3.0", 621 | "System.Security.Cryptography.Primitives": "4.3.0", 622 | "System.Security.Cryptography.X509Certificates": "4.3.0", 623 | "System.Text.Encoding": "4.3.0", 624 | "System.Threading": "4.3.0", 625 | "System.Threading.Tasks": "4.3.0", 626 | "runtime.native.System": "4.3.0", 627 | "runtime.native.System.Net.Http": "4.3.0", 628 | "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" 629 | } 630 | }, 631 | "System.Net.NameResolution/4.3.0": { 632 | "dependencies": { 633 | "Microsoft.NETCore.Platforms": "2.1.2", 634 | "System.Collections": "4.3.0", 635 | "System.Diagnostics.Tracing": "4.3.0", 636 | "System.Globalization": "4.3.0", 637 | "System.Net.Primitives": "4.3.0", 638 | "System.Resources.ResourceManager": "4.3.0", 639 | "System.Runtime": "4.3.0", 640 | "System.Runtime.Extensions": "4.3.0", 641 | "System.Runtime.Handles": "4.3.0", 642 | "System.Runtime.InteropServices": "4.3.0", 643 | "System.Security.Principal.Windows": "4.3.0", 644 | "System.Threading": "4.3.0", 645 | "System.Threading.Tasks": "4.3.0", 646 | "runtime.native.System": "4.3.0" 647 | } 648 | }, 649 | "System.Net.Primitives/4.3.0": { 650 | "dependencies": { 651 | "Microsoft.NETCore.Platforms": "2.1.2", 652 | "Microsoft.NETCore.Targets": "1.1.0", 653 | "System.Runtime": "4.3.0", 654 | "System.Runtime.Handles": "4.3.0" 655 | } 656 | }, 657 | "System.Net.Security/4.3.2": { 658 | "dependencies": { 659 | "Microsoft.NETCore.Platforms": "2.1.2", 660 | "Microsoft.Win32.Primitives": "4.3.0", 661 | "System.Collections": "4.3.0", 662 | "System.Collections.Concurrent": "4.3.0", 663 | "System.Diagnostics.Tracing": "4.3.0", 664 | "System.Globalization": "4.3.0", 665 | "System.Globalization.Extensions": "4.3.0", 666 | "System.IO": "4.3.0", 667 | "System.Net.Primitives": "4.3.0", 668 | "System.Resources.ResourceManager": "4.3.0", 669 | "System.Runtime": "4.3.0", 670 | "System.Runtime.Extensions": "4.3.0", 671 | "System.Runtime.Handles": "4.3.0", 672 | "System.Runtime.InteropServices": "4.3.0", 673 | "System.Security.Claims": "4.3.0", 674 | "System.Security.Cryptography.Algorithms": "4.3.0", 675 | "System.Security.Cryptography.Encoding": "4.3.0", 676 | "System.Security.Cryptography.OpenSsl": "4.3.0", 677 | "System.Security.Cryptography.Primitives": "4.3.0", 678 | "System.Security.Cryptography.X509Certificates": "4.3.0", 679 | "System.Security.Principal": "4.3.0", 680 | "System.Text.Encoding": "4.3.0", 681 | "System.Threading": "4.3.0", 682 | "System.Threading.Tasks": "4.3.0", 683 | "System.Threading.ThreadPool": "4.3.0", 684 | "runtime.native.System": "4.3.0", 685 | "runtime.native.System.Net.Security": "4.3.0", 686 | "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" 687 | } 688 | }, 689 | "System.Net.Sockets/4.3.0": { 690 | "dependencies": { 691 | "Microsoft.NETCore.Platforms": "2.1.2", 692 | "Microsoft.NETCore.Targets": "1.1.0", 693 | "System.IO": "4.3.0", 694 | "System.Net.Primitives": "4.3.0", 695 | "System.Runtime": "4.3.0", 696 | "System.Threading.Tasks": "4.3.0" 697 | } 698 | }, 699 | "System.ObjectModel/4.3.0": { 700 | "dependencies": { 701 | "System.Collections": "4.3.0", 702 | "System.Diagnostics.Debug": "4.3.0", 703 | "System.Resources.ResourceManager": "4.3.0", 704 | "System.Runtime": "4.3.0", 705 | "System.Threading": "4.3.0" 706 | } 707 | }, 708 | "System.Reactive/4.3.2": {}, 709 | "System.Reflection/4.3.0": { 710 | "dependencies": { 711 | "Microsoft.NETCore.Platforms": "2.1.2", 712 | "Microsoft.NETCore.Targets": "1.1.0", 713 | "System.IO": "4.3.0", 714 | "System.Reflection.Primitives": "4.3.0", 715 | "System.Runtime": "4.3.0" 716 | } 717 | }, 718 | "System.Reflection.Emit/4.3.0": { 719 | "dependencies": { 720 | "System.IO": "4.3.0", 721 | "System.Reflection": "4.3.0", 722 | "System.Reflection.Emit.ILGeneration": "4.3.0", 723 | "System.Reflection.Primitives": "4.3.0", 724 | "System.Runtime": "4.3.0" 725 | } 726 | }, 727 | "System.Reflection.Emit.ILGeneration/4.3.0": { 728 | "dependencies": { 729 | "System.Reflection": "4.3.0", 730 | "System.Reflection.Primitives": "4.3.0", 731 | "System.Runtime": "4.3.0" 732 | } 733 | }, 734 | "System.Reflection.Emit.Lightweight/4.3.0": { 735 | "dependencies": { 736 | "System.Reflection": "4.3.0", 737 | "System.Reflection.Emit.ILGeneration": "4.3.0", 738 | "System.Reflection.Primitives": "4.3.0", 739 | "System.Runtime": "4.3.0" 740 | } 741 | }, 742 | "System.Reflection.Extensions/4.3.0": { 743 | "dependencies": { 744 | "Microsoft.NETCore.Platforms": "2.1.2", 745 | "Microsoft.NETCore.Targets": "1.1.0", 746 | "System.Reflection": "4.3.0", 747 | "System.Runtime": "4.3.0" 748 | } 749 | }, 750 | "System.Reflection.Primitives/4.3.0": { 751 | "dependencies": { 752 | "Microsoft.NETCore.Platforms": "2.1.2", 753 | "Microsoft.NETCore.Targets": "1.1.0", 754 | "System.Runtime": "4.3.0" 755 | } 756 | }, 757 | "System.Reflection.TypeExtensions/4.3.0": { 758 | "dependencies": { 759 | "System.Reflection": "4.3.0", 760 | "System.Runtime": "4.3.0" 761 | } 762 | }, 763 | "System.Resources.ResourceManager/4.3.0": { 764 | "dependencies": { 765 | "Microsoft.NETCore.Platforms": "2.1.2", 766 | "Microsoft.NETCore.Targets": "1.1.0", 767 | "System.Globalization": "4.3.0", 768 | "System.Reflection": "4.3.0", 769 | "System.Runtime": "4.3.0" 770 | } 771 | }, 772 | "System.Runtime/4.3.0": { 773 | "dependencies": { 774 | "Microsoft.NETCore.Platforms": "2.1.2", 775 | "Microsoft.NETCore.Targets": "1.1.0" 776 | } 777 | }, 778 | "System.Runtime.CompilerServices.Unsafe/4.5.2": {}, 779 | "System.Runtime.Extensions/4.3.0": { 780 | "dependencies": { 781 | "Microsoft.NETCore.Platforms": "2.1.2", 782 | "Microsoft.NETCore.Targets": "1.1.0", 783 | "System.Runtime": "4.3.0" 784 | } 785 | }, 786 | "System.Runtime.Handles/4.3.0": { 787 | "dependencies": { 788 | "Microsoft.NETCore.Platforms": "2.1.2", 789 | "Microsoft.NETCore.Targets": "1.1.0", 790 | "System.Runtime": "4.3.0" 791 | } 792 | }, 793 | "System.Runtime.InteropServices/4.3.0": { 794 | "dependencies": { 795 | "Microsoft.NETCore.Platforms": "2.1.2", 796 | "Microsoft.NETCore.Targets": "1.1.0", 797 | "System.Reflection": "4.3.0", 798 | "System.Reflection.Primitives": "4.3.0", 799 | "System.Runtime": "4.3.0", 800 | "System.Runtime.Handles": "4.3.0" 801 | } 802 | }, 803 | "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { 804 | "dependencies": { 805 | "System.Reflection": "4.3.0", 806 | "System.Reflection.Extensions": "4.3.0", 807 | "System.Resources.ResourceManager": "4.3.0", 808 | "System.Runtime": "4.3.0", 809 | "System.Runtime.InteropServices": "4.3.0", 810 | "System.Threading": "4.3.0", 811 | "runtime.native.System": "4.3.0" 812 | } 813 | }, 814 | "System.Runtime.Numerics/4.3.0": { 815 | "dependencies": { 816 | "System.Globalization": "4.3.0", 817 | "System.Resources.ResourceManager": "4.3.0", 818 | "System.Runtime": "4.3.0", 819 | "System.Runtime.Extensions": "4.3.0" 820 | } 821 | }, 822 | "System.Runtime.Serialization.Formatters/4.3.0": { 823 | "dependencies": { 824 | "System.Collections": "4.3.0", 825 | "System.Reflection": "4.3.0", 826 | "System.Resources.ResourceManager": "4.3.0", 827 | "System.Runtime": "4.3.0", 828 | "System.Runtime.Serialization.Primitives": "4.3.0" 829 | } 830 | }, 831 | "System.Runtime.Serialization.Primitives/4.3.0": { 832 | "dependencies": { 833 | "System.Resources.ResourceManager": "4.3.0", 834 | "System.Runtime": "4.3.0" 835 | } 836 | }, 837 | "System.Security.Claims/4.3.0": { 838 | "dependencies": { 839 | "System.Collections": "4.3.0", 840 | "System.Globalization": "4.3.0", 841 | "System.IO": "4.3.0", 842 | "System.Resources.ResourceManager": "4.3.0", 843 | "System.Runtime": "4.3.0", 844 | "System.Runtime.Extensions": "4.3.0", 845 | "System.Security.Principal": "4.3.0" 846 | } 847 | }, 848 | "System.Security.Cryptography.Algorithms/4.3.0": { 849 | "dependencies": { 850 | "Microsoft.NETCore.Platforms": "2.1.2", 851 | "System.Collections": "4.3.0", 852 | "System.IO": "4.3.0", 853 | "System.Resources.ResourceManager": "4.3.0", 854 | "System.Runtime": "4.3.0", 855 | "System.Runtime.Extensions": "4.3.0", 856 | "System.Runtime.Handles": "4.3.0", 857 | "System.Runtime.InteropServices": "4.3.0", 858 | "System.Runtime.Numerics": "4.3.0", 859 | "System.Security.Cryptography.Encoding": "4.3.0", 860 | "System.Security.Cryptography.Primitives": "4.3.0", 861 | "System.Text.Encoding": "4.3.0", 862 | "runtime.native.System.Security.Cryptography.Apple": "4.3.0", 863 | "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" 864 | } 865 | }, 866 | "System.Security.Cryptography.Cng/4.3.0": { 867 | "dependencies": { 868 | "Microsoft.NETCore.Platforms": "2.1.2", 869 | "System.IO": "4.3.0", 870 | "System.Resources.ResourceManager": "4.3.0", 871 | "System.Runtime": "4.3.0", 872 | "System.Runtime.Extensions": "4.3.0", 873 | "System.Runtime.Handles": "4.3.0", 874 | "System.Runtime.InteropServices": "4.3.0", 875 | "System.Security.Cryptography.Algorithms": "4.3.0", 876 | "System.Security.Cryptography.Encoding": "4.3.0", 877 | "System.Security.Cryptography.Primitives": "4.3.0", 878 | "System.Text.Encoding": "4.3.0" 879 | } 880 | }, 881 | "System.Security.Cryptography.Csp/4.3.0": { 882 | "dependencies": { 883 | "Microsoft.NETCore.Platforms": "2.1.2", 884 | "System.IO": "4.3.0", 885 | "System.Reflection": "4.3.0", 886 | "System.Resources.ResourceManager": "4.3.0", 887 | "System.Runtime": "4.3.0", 888 | "System.Runtime.Extensions": "4.3.0", 889 | "System.Runtime.Handles": "4.3.0", 890 | "System.Runtime.InteropServices": "4.3.0", 891 | "System.Security.Cryptography.Algorithms": "4.3.0", 892 | "System.Security.Cryptography.Encoding": "4.3.0", 893 | "System.Security.Cryptography.Primitives": "4.3.0", 894 | "System.Text.Encoding": "4.3.0", 895 | "System.Threading": "4.3.0" 896 | } 897 | }, 898 | "System.Security.Cryptography.Encoding/4.3.0": { 899 | "dependencies": { 900 | "Microsoft.NETCore.Platforms": "2.1.2", 901 | "System.Collections": "4.3.0", 902 | "System.Collections.Concurrent": "4.3.0", 903 | "System.Linq": "4.3.0", 904 | "System.Resources.ResourceManager": "4.3.0", 905 | "System.Runtime": "4.3.0", 906 | "System.Runtime.Extensions": "4.3.0", 907 | "System.Runtime.Handles": "4.3.0", 908 | "System.Runtime.InteropServices": "4.3.0", 909 | "System.Security.Cryptography.Primitives": "4.3.0", 910 | "System.Text.Encoding": "4.3.0", 911 | "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" 912 | } 913 | }, 914 | "System.Security.Cryptography.OpenSsl/4.3.0": { 915 | "dependencies": { 916 | "System.Collections": "4.3.0", 917 | "System.IO": "4.3.0", 918 | "System.Resources.ResourceManager": "4.3.0", 919 | "System.Runtime": "4.3.0", 920 | "System.Runtime.Extensions": "4.3.0", 921 | "System.Runtime.Handles": "4.3.0", 922 | "System.Runtime.InteropServices": "4.3.0", 923 | "System.Runtime.Numerics": "4.3.0", 924 | "System.Security.Cryptography.Algorithms": "4.3.0", 925 | "System.Security.Cryptography.Encoding": "4.3.0", 926 | "System.Security.Cryptography.Primitives": "4.3.0", 927 | "System.Text.Encoding": "4.3.0", 928 | "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" 929 | } 930 | }, 931 | "System.Security.Cryptography.Primitives/4.3.0": { 932 | "dependencies": { 933 | "System.Diagnostics.Debug": "4.3.0", 934 | "System.Globalization": "4.3.0", 935 | "System.IO": "4.3.0", 936 | "System.Resources.ResourceManager": "4.3.0", 937 | "System.Runtime": "4.3.0", 938 | "System.Threading": "4.3.0", 939 | "System.Threading.Tasks": "4.3.0" 940 | } 941 | }, 942 | "System.Security.Cryptography.X509Certificates/4.3.0": { 943 | "dependencies": { 944 | "Microsoft.NETCore.Platforms": "2.1.2", 945 | "System.Collections": "4.3.0", 946 | "System.Diagnostics.Debug": "4.3.0", 947 | "System.Globalization": "4.3.0", 948 | "System.Globalization.Calendars": "4.3.0", 949 | "System.IO": "4.3.0", 950 | "System.IO.FileSystem": "4.3.0", 951 | "System.IO.FileSystem.Primitives": "4.3.0", 952 | "System.Resources.ResourceManager": "4.3.0", 953 | "System.Runtime": "4.3.0", 954 | "System.Runtime.Extensions": "4.3.0", 955 | "System.Runtime.Handles": "4.3.0", 956 | "System.Runtime.InteropServices": "4.3.0", 957 | "System.Runtime.Numerics": "4.3.0", 958 | "System.Security.Cryptography.Algorithms": "4.3.0", 959 | "System.Security.Cryptography.Cng": "4.3.0", 960 | "System.Security.Cryptography.Csp": "4.3.0", 961 | "System.Security.Cryptography.Encoding": "4.3.0", 962 | "System.Security.Cryptography.OpenSsl": "4.3.0", 963 | "System.Security.Cryptography.Primitives": "4.3.0", 964 | "System.Text.Encoding": "4.3.0", 965 | "System.Threading": "4.3.0", 966 | "runtime.native.System": "4.3.0", 967 | "runtime.native.System.Net.Http": "4.3.0", 968 | "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" 969 | } 970 | }, 971 | "System.Security.Principal/4.3.0": { 972 | "dependencies": { 973 | "System.Runtime": "4.3.0" 974 | } 975 | }, 976 | "System.Security.Principal.Windows/4.3.0": { 977 | "dependencies": { 978 | "Microsoft.NETCore.Platforms": "2.1.2", 979 | "Microsoft.Win32.Primitives": "4.3.0", 980 | "System.Collections": "4.3.0", 981 | "System.Diagnostics.Debug": "4.3.0", 982 | "System.Reflection": "4.3.0", 983 | "System.Resources.ResourceManager": "4.3.0", 984 | "System.Runtime": "4.3.0", 985 | "System.Runtime.Extensions": "4.3.0", 986 | "System.Runtime.Handles": "4.3.0", 987 | "System.Runtime.InteropServices": "4.3.0", 988 | "System.Security.Claims": "4.3.0", 989 | "System.Security.Principal": "4.3.0", 990 | "System.Text.Encoding": "4.3.0", 991 | "System.Threading": "4.3.0" 992 | } 993 | }, 994 | "System.Security.SecureString/4.0.0": { 995 | "dependencies": { 996 | "Microsoft.NETCore.Platforms": "2.1.2", 997 | "System.Resources.ResourceManager": "4.3.0", 998 | "System.Runtime": "4.3.0", 999 | "System.Runtime.Handles": "4.3.0", 1000 | "System.Runtime.InteropServices": "4.3.0", 1001 | "System.Security.Cryptography.Primitives": "4.3.0", 1002 | "System.Text.Encoding": "4.3.0", 1003 | "System.Threading": "4.3.0" 1004 | } 1005 | }, 1006 | "System.Text.Encoding/4.3.0": { 1007 | "dependencies": { 1008 | "Microsoft.NETCore.Platforms": "2.1.2", 1009 | "Microsoft.NETCore.Targets": "1.1.0", 1010 | "System.Runtime": "4.3.0" 1011 | } 1012 | }, 1013 | "System.Text.Encoding.CodePages/4.5.1": { 1014 | "dependencies": { 1015 | "Microsoft.NETCore.Platforms": "2.1.2", 1016 | "System.Runtime.CompilerServices.Unsafe": "4.5.2" 1017 | } 1018 | }, 1019 | "System.Text.Encoding.Extensions/4.3.0": { 1020 | "dependencies": { 1021 | "Microsoft.NETCore.Platforms": "2.1.2", 1022 | "Microsoft.NETCore.Targets": "1.1.0", 1023 | "System.Runtime": "4.3.0", 1024 | "System.Text.Encoding": "4.3.0" 1025 | } 1026 | }, 1027 | "System.Text.RegularExpressions/4.3.0": { 1028 | "dependencies": { 1029 | "System.Runtime": "4.3.0" 1030 | } 1031 | }, 1032 | "System.Threading/4.3.0": { 1033 | "dependencies": { 1034 | "System.Runtime": "4.3.0", 1035 | "System.Threading.Tasks": "4.3.0" 1036 | } 1037 | }, 1038 | "System.Threading.Channels/4.7.0": {}, 1039 | "System.Threading.Tasks/4.3.0": { 1040 | "dependencies": { 1041 | "Microsoft.NETCore.Platforms": "2.1.2", 1042 | "Microsoft.NETCore.Targets": "1.1.0", 1043 | "System.Runtime": "4.3.0" 1044 | } 1045 | }, 1046 | "System.Threading.Tasks.Extensions/4.3.0": { 1047 | "dependencies": { 1048 | "System.Collections": "4.3.0", 1049 | "System.Runtime": "4.3.0", 1050 | "System.Threading.Tasks": "4.3.0" 1051 | } 1052 | }, 1053 | "System.Threading.Thread/4.3.0": { 1054 | "dependencies": { 1055 | "System.Runtime": "4.3.0" 1056 | } 1057 | }, 1058 | "System.Threading.ThreadPool/4.3.0": { 1059 | "dependencies": { 1060 | "System.Runtime": "4.3.0", 1061 | "System.Runtime.Handles": "4.3.0" 1062 | } 1063 | }, 1064 | "System.Threading.Timer/4.3.0": { 1065 | "dependencies": { 1066 | "Microsoft.NETCore.Platforms": "2.1.2", 1067 | "Microsoft.NETCore.Targets": "1.1.0", 1068 | "System.Runtime": "4.3.0" 1069 | } 1070 | }, 1071 | "System.Xml.ReaderWriter/4.3.0": { 1072 | "dependencies": { 1073 | "System.Collections": "4.3.0", 1074 | "System.Diagnostics.Debug": "4.3.0", 1075 | "System.Globalization": "4.3.0", 1076 | "System.IO": "4.3.0", 1077 | "System.IO.FileSystem": "4.3.0", 1078 | "System.IO.FileSystem.Primitives": "4.3.0", 1079 | "System.Resources.ResourceManager": "4.3.0", 1080 | "System.Runtime": "4.3.0", 1081 | "System.Runtime.Extensions": "4.3.0", 1082 | "System.Runtime.InteropServices": "4.3.0", 1083 | "System.Text.Encoding": "4.3.0", 1084 | "System.Text.Encoding.Extensions": "4.3.0", 1085 | "System.Text.RegularExpressions": "4.3.0", 1086 | "System.Threading.Tasks": "4.3.0", 1087 | "System.Threading.Tasks.Extensions": "4.3.0" 1088 | } 1089 | }, 1090 | "System.Xml.XDocument/4.3.0": { 1091 | "dependencies": { 1092 | "System.Collections": "4.3.0", 1093 | "System.Diagnostics.Debug": "4.3.0", 1094 | "System.Diagnostics.Tools": "4.3.0", 1095 | "System.Globalization": "4.3.0", 1096 | "System.IO": "4.3.0", 1097 | "System.Reflection": "4.3.0", 1098 | "System.Resources.ResourceManager": "4.3.0", 1099 | "System.Runtime": "4.3.0", 1100 | "System.Runtime.Extensions": "4.3.0", 1101 | "System.Text.Encoding": "4.3.0", 1102 | "System.Threading": "4.3.0", 1103 | "System.Xml.ReaderWriter": "4.3.0" 1104 | } 1105 | }, 1106 | "Websocket.Client/4.4.43": { 1107 | "dependencies": { 1108 | "System.Reactive": "4.3.2", 1109 | "System.Threading.Channels": "4.7.0" 1110 | }, 1111 | "runtime": { 1112 | "lib/net6.0/Websocket.Client.dll": { 1113 | "assemblyVersion": "4.4.0.0", 1114 | "fileVersion": "4.4.0.0" 1115 | } 1116 | } 1117 | }, 1118 | "Model/1.0.0": { 1119 | "dependencies": { 1120 | "Mirai.Net": "2.4.1" 1121 | }, 1122 | "runtime": { 1123 | "Model.dll": {} 1124 | } 1125 | }, 1126 | "System.Reactive.Reference/4.3.0.0": { 1127 | "runtime": { 1128 | "System.Reactive.dll": { 1129 | "assemblyVersion": "4.3.0.0", 1130 | "fileVersion": "4.3.2.55399" 1131 | } 1132 | } 1133 | } 1134 | } 1135 | }, 1136 | "libraries": { 1137 | "App/1.0.0": { 1138 | "type": "project", 1139 | "serviceable": false, 1140 | "sha512": "" 1141 | }, 1142 | "DnsClient/1.3.1": { 1143 | "type": "package", 1144 | "serviceable": true, 1145 | "sha512": "sha512-b9XczgqSjs3dd+OlV799jn+LXxdfirln1q36GKjs3QwWBhjhgIvgHLEG5s2VrBLcP4ogQjtA0PZ5+AmRJ35Vhg==", 1146 | "path": "dnsclient/1.3.1", 1147 | "hashPath": "dnsclient.1.3.1.nupkg.sha512" 1148 | }, 1149 | "Flurl/3.0.4": { 1150 | "type": "package", 1151 | "serviceable": true, 1152 | "sha512": "sha512-2bgCzOs3TGwRkfcijCiH+7o9Pz4pyVnt4yyLX2vD3wlMSekpmGhqe2zA4988qSMmPa6AqeekX13CY4FvsjsDJQ==", 1153 | "path": "flurl/3.0.4", 1154 | "hashPath": "flurl.3.0.4.nupkg.sha512" 1155 | }, 1156 | "Flurl.Http/3.2.2": { 1157 | "type": "package", 1158 | "serviceable": true, 1159 | "sha512": "sha512-zVen69D8Qr1uZN4ua0ZnOMuDZol66w04AnwOSCyE5Kqy5GGbAtk0m7bKXaU+FJJ9R7ByVIKAG/kpGbGMGdt2/Q==", 1160 | "path": "flurl.http/3.2.2", 1161 | "hashPath": "flurl.http.3.2.2.nupkg.sha512" 1162 | }, 1163 | "Manganese/1.2.1": { 1164 | "type": "package", 1165 | "serviceable": true, 1166 | "sha512": "sha512-ihTUlomK7w4QKSZEzR2OQU4Dv6CTgUU8yyoymiYCcQsNmy8xGkRiRjA0YMtnruJMa3fDMxa7+aZGBU1FjJKBnA==", 1167 | "path": "manganese/1.2.1", 1168 | "hashPath": "manganese.1.2.1.nupkg.sha512" 1169 | }, 1170 | "Microsoft.NETCore.Platforms/2.1.2": { 1171 | "type": "package", 1172 | "serviceable": true, 1173 | "sha512": "sha512-mOJy3M0UN+LUG21dLGMxaWZEP6xYpQEpLuvuEQBaownaX4YuhH6NmNUlN9si+vNkAS6dwJ//N1O4DmLf2CikVg==", 1174 | "path": "microsoft.netcore.platforms/2.1.2", 1175 | "hashPath": "microsoft.netcore.platforms.2.1.2.nupkg.sha512" 1176 | }, 1177 | "Microsoft.NETCore.Targets/1.1.0": { 1178 | "type": "package", 1179 | "serviceable": true, 1180 | "sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", 1181 | "path": "microsoft.netcore.targets/1.1.0", 1182 | "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" 1183 | }, 1184 | "Microsoft.Win32.Primitives/4.3.0": { 1185 | "type": "package", 1186 | "serviceable": true, 1187 | "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", 1188 | "path": "microsoft.win32.primitives/4.3.0", 1189 | "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" 1190 | }, 1191 | "Microsoft.Win32.Registry/4.0.0": { 1192 | "type": "package", 1193 | "serviceable": true, 1194 | "sha512": "sha512-q+eLtROUAQ3OxYA5mpQrgyFgzLQxIyrfT2eLpYX5IEPlHmIio2nh4F5bgOaQoGOV865kFKZZso9Oq9RlazvXtg==", 1195 | "path": "microsoft.win32.registry/4.0.0", 1196 | "hashPath": "microsoft.win32.registry.4.0.0.nupkg.sha512" 1197 | }, 1198 | "Mirai.Net/2.4.1": { 1199 | "type": "package", 1200 | "serviceable": true, 1201 | "sha512": "sha512-U54BIK/7QCBVOXs4kYEtJ6bAjPWKBRKceMTtOjb06Rj5cxXXR1WxXg1PB8vntLln+DHhGHBUV7HPVtjDCblQ/w==", 1202 | "path": "mirai.net/2.4.1", 1203 | "hashPath": "mirai.net.2.4.1.nupkg.sha512" 1204 | }, 1205 | "MongoDB.Bson/2.10.4": { 1206 | "type": "package", 1207 | "serviceable": true, 1208 | "sha512": "sha512-hLk3nlr2YMe8O5LBi6us9JQTEBT/Kabb92eAxgDIXlENS17FOFOmxbGnB5rvKEK1qOaoYWFfyEnLqTt/6hTlpw==", 1209 | "path": "mongodb.bson/2.10.4", 1210 | "hashPath": "mongodb.bson.2.10.4.nupkg.sha512" 1211 | }, 1212 | "MongoDB.Driver/2.10.4": { 1213 | "type": "package", 1214 | "serviceable": true, 1215 | "sha512": "sha512-RhARXhIRirbmXxNbokYn+TCmZXnVP/0XNQncz8wySmyUNmVGUhNxiHpUniBCu+wIR+LkZ77+tFHzc+38ShSFUg==", 1216 | "path": "mongodb.driver/2.10.4", 1217 | "hashPath": "mongodb.driver.2.10.4.nupkg.sha512" 1218 | }, 1219 | "MongoDB.Driver.Core/2.10.4": { 1220 | "type": "package", 1221 | "serviceable": true, 1222 | "sha512": "sha512-FF9Matyemmup3wvaicOm/ZKDJITI0mHA1G+9dF+A9lLuU6k3eo6mGvCXgBVPxTXqHHd70AgKwIOFvszIUxqpSA==", 1223 | "path": "mongodb.driver.core/2.10.4", 1224 | "hashPath": "mongodb.driver.core.2.10.4.nupkg.sha512" 1225 | }, 1226 | "MongoDB.Libmongocrypt/1.0.0": { 1227 | "type": "package", 1228 | "serviceable": true, 1229 | "sha512": "sha512-zkcsra5riDiKXqOiCKskycakpbO5RYkuUWG+z2AZML3A4NShvAs/D3InwkxH0OcbjZQOWo763Hjdmhr0AaylcA==", 1230 | "path": "mongodb.libmongocrypt/1.0.0", 1231 | "hashPath": "mongodb.libmongocrypt.1.0.0.nupkg.sha512" 1232 | }, 1233 | "NETStandard.Library/1.6.1": { 1234 | "type": "package", 1235 | "serviceable": true, 1236 | "sha512": "sha512-WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", 1237 | "path": "netstandard.library/1.6.1", 1238 | "hashPath": "netstandard.library.1.6.1.nupkg.sha512" 1239 | }, 1240 | "Newtonsoft.Json/13.0.1": { 1241 | "type": "package", 1242 | "serviceable": true, 1243 | "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", 1244 | "path": "newtonsoft.json/13.0.1", 1245 | "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" 1246 | }, 1247 | "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { 1248 | "type": "package", 1249 | "serviceable": true, 1250 | "sha512": "sha512-7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==", 1251 | "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.2", 1252 | "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" 1253 | }, 1254 | "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { 1255 | "type": "package", 1256 | "serviceable": true, 1257 | "sha512": "sha512-0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==", 1258 | "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.2", 1259 | "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" 1260 | }, 1261 | "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { 1262 | "type": "package", 1263 | "serviceable": true, 1264 | "sha512": "sha512-G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==", 1265 | "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.2", 1266 | "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" 1267 | }, 1268 | "runtime.native.System/4.3.0": { 1269 | "type": "package", 1270 | "serviceable": true, 1271 | "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", 1272 | "path": "runtime.native.system/4.3.0", 1273 | "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" 1274 | }, 1275 | "runtime.native.System.IO.Compression/4.3.0": { 1276 | "type": "package", 1277 | "serviceable": true, 1278 | "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", 1279 | "path": "runtime.native.system.io.compression/4.3.0", 1280 | "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512" 1281 | }, 1282 | "runtime.native.System.Net.Http/4.3.0": { 1283 | "type": "package", 1284 | "serviceable": true, 1285 | "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", 1286 | "path": "runtime.native.system.net.http/4.3.0", 1287 | "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" 1288 | }, 1289 | "runtime.native.System.Net.Security/4.3.0": { 1290 | "type": "package", 1291 | "serviceable": true, 1292 | "sha512": "sha512-M2nN92ePS8BgQ2oi6Jj3PlTUzadYSIWLdZrHY1n1ZcW9o4wAQQ6W+aQ2lfq1ysZQfVCgDwY58alUdowrzezztg==", 1293 | "path": "runtime.native.system.net.security/4.3.0", 1294 | "hashPath": "runtime.native.system.net.security.4.3.0.nupkg.sha512" 1295 | }, 1296 | "runtime.native.System.Security.Cryptography.Apple/4.3.0": { 1297 | "type": "package", 1298 | "serviceable": true, 1299 | "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", 1300 | "path": "runtime.native.system.security.cryptography.apple/4.3.0", 1301 | "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" 1302 | }, 1303 | "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { 1304 | "type": "package", 1305 | "serviceable": true, 1306 | "sha512": "sha512-QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", 1307 | "path": "runtime.native.system.security.cryptography.openssl/4.3.2", 1308 | "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" 1309 | }, 1310 | "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { 1311 | "type": "package", 1312 | "serviceable": true, 1313 | "sha512": "sha512-I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==", 1314 | "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.2", 1315 | "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" 1316 | }, 1317 | "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { 1318 | "type": "package", 1319 | "serviceable": true, 1320 | "sha512": "sha512-1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==", 1321 | "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.2", 1322 | "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" 1323 | }, 1324 | "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { 1325 | "type": "package", 1326 | "serviceable": true, 1327 | "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", 1328 | "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", 1329 | "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" 1330 | }, 1331 | "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { 1332 | "type": "package", 1333 | "serviceable": true, 1334 | "sha512": "sha512-6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==", 1335 | "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2", 1336 | "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" 1337 | }, 1338 | "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { 1339 | "type": "package", 1340 | "serviceable": true, 1341 | "sha512": "sha512-vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==", 1342 | "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.2", 1343 | "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" 1344 | }, 1345 | "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { 1346 | "type": "package", 1347 | "serviceable": true, 1348 | "sha512": "sha512-7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==", 1349 | "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2", 1350 | "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" 1351 | }, 1352 | "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { 1353 | "type": "package", 1354 | "serviceable": true, 1355 | "sha512": "sha512-xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==", 1356 | "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2", 1357 | "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" 1358 | }, 1359 | "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { 1360 | "type": "package", 1361 | "serviceable": true, 1362 | "sha512": "sha512-leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==", 1363 | "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2", 1364 | "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" 1365 | }, 1366 | "SharpCompress/0.23.0": { 1367 | "type": "package", 1368 | "serviceable": true, 1369 | "sha512": "sha512-HBbT47JHvNrsZX2dTBzUBOSzBt+EmIRGLIBkbxcP6Jef7DB4eFWQX5iHWV3Nj7hABFPCjISrZ8s0z72nF2zFHQ==", 1370 | "path": "sharpcompress/0.23.0", 1371 | "hashPath": "sharpcompress.0.23.0.nupkg.sha512" 1372 | }, 1373 | "System.AppContext/4.3.0": { 1374 | "type": "package", 1375 | "serviceable": true, 1376 | "sha512": "sha512-fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", 1377 | "path": "system.appcontext/4.3.0", 1378 | "hashPath": "system.appcontext.4.3.0.nupkg.sha512" 1379 | }, 1380 | "System.Buffers/4.3.0": { 1381 | "type": "package", 1382 | "serviceable": true, 1383 | "sha512": "sha512-ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==", 1384 | "path": "system.buffers/4.3.0", 1385 | "hashPath": "system.buffers.4.3.0.nupkg.sha512" 1386 | }, 1387 | "System.Collections/4.3.0": { 1388 | "type": "package", 1389 | "serviceable": true, 1390 | "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", 1391 | "path": "system.collections/4.3.0", 1392 | "hashPath": "system.collections.4.3.0.nupkg.sha512" 1393 | }, 1394 | "System.Collections.Concurrent/4.3.0": { 1395 | "type": "package", 1396 | "serviceable": true, 1397 | "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", 1398 | "path": "system.collections.concurrent/4.3.0", 1399 | "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" 1400 | }, 1401 | "System.Collections.NonGeneric/4.0.1": { 1402 | "type": "package", 1403 | "serviceable": true, 1404 | "sha512": "sha512-hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==", 1405 | "path": "system.collections.nongeneric/4.0.1", 1406 | "hashPath": "system.collections.nongeneric.4.0.1.nupkg.sha512" 1407 | }, 1408 | "System.Collections.Specialized/4.0.1": { 1409 | "type": "package", 1410 | "serviceable": true, 1411 | "sha512": "sha512-/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==", 1412 | "path": "system.collections.specialized/4.0.1", 1413 | "hashPath": "system.collections.specialized.4.0.1.nupkg.sha512" 1414 | }, 1415 | "System.ComponentModel/4.0.1": { 1416 | "type": "package", 1417 | "serviceable": true, 1418 | "sha512": "sha512-oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==", 1419 | "path": "system.componentmodel/4.0.1", 1420 | "hashPath": "system.componentmodel.4.0.1.nupkg.sha512" 1421 | }, 1422 | "System.ComponentModel.Primitives/4.1.0": { 1423 | "type": "package", 1424 | "serviceable": true, 1425 | "sha512": "sha512-sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==", 1426 | "path": "system.componentmodel.primitives/4.1.0", 1427 | "hashPath": "system.componentmodel.primitives.4.1.0.nupkg.sha512" 1428 | }, 1429 | "System.ComponentModel.TypeConverter/4.1.0": { 1430 | "type": "package", 1431 | "serviceable": true, 1432 | "sha512": "sha512-MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==", 1433 | "path": "system.componentmodel.typeconverter/4.1.0", 1434 | "hashPath": "system.componentmodel.typeconverter.4.1.0.nupkg.sha512" 1435 | }, 1436 | "System.Console/4.3.0": { 1437 | "type": "package", 1438 | "serviceable": true, 1439 | "sha512": "sha512-DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", 1440 | "path": "system.console/4.3.0", 1441 | "hashPath": "system.console.4.3.0.nupkg.sha512" 1442 | }, 1443 | "System.Diagnostics.Debug/4.3.0": { 1444 | "type": "package", 1445 | "serviceable": true, 1446 | "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", 1447 | "path": "system.diagnostics.debug/4.3.0", 1448 | "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" 1449 | }, 1450 | "System.Diagnostics.DiagnosticSource/4.3.0": { 1451 | "type": "package", 1452 | "serviceable": true, 1453 | "sha512": "sha512-tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", 1454 | "path": "system.diagnostics.diagnosticsource/4.3.0", 1455 | "hashPath": "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512" 1456 | }, 1457 | "System.Diagnostics.Process/4.1.0": { 1458 | "type": "package", 1459 | "serviceable": true, 1460 | "sha512": "sha512-mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==", 1461 | "path": "system.diagnostics.process/4.1.0", 1462 | "hashPath": "system.diagnostics.process.4.1.0.nupkg.sha512" 1463 | }, 1464 | "System.Diagnostics.TextWriterTraceListener/4.0.0": { 1465 | "type": "package", 1466 | "serviceable": true, 1467 | "sha512": "sha512-w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==", 1468 | "path": "system.diagnostics.textwritertracelistener/4.0.0", 1469 | "hashPath": "system.diagnostics.textwritertracelistener.4.0.0.nupkg.sha512" 1470 | }, 1471 | "System.Diagnostics.Tools/4.3.0": { 1472 | "type": "package", 1473 | "serviceable": true, 1474 | "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", 1475 | "path": "system.diagnostics.tools/4.3.0", 1476 | "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" 1477 | }, 1478 | "System.Diagnostics.TraceSource/4.3.0": { 1479 | "type": "package", 1480 | "serviceable": true, 1481 | "sha512": "sha512-VnYp1NxGx8Ww731y2LJ1vpfb/DKVNKEZ8Jsh5SgQTZREL/YpWRArgh9pI8CDLmgHspZmLL697CaLvH85qQpRiw==", 1482 | "path": "system.diagnostics.tracesource/4.3.0", 1483 | "hashPath": "system.diagnostics.tracesource.4.3.0.nupkg.sha512" 1484 | }, 1485 | "System.Diagnostics.Tracing/4.3.0": { 1486 | "type": "package", 1487 | "serviceable": true, 1488 | "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", 1489 | "path": "system.diagnostics.tracing/4.3.0", 1490 | "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" 1491 | }, 1492 | "System.Dynamic.Runtime/4.0.11": { 1493 | "type": "package", 1494 | "serviceable": true, 1495 | "sha512": "sha512-db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==", 1496 | "path": "system.dynamic.runtime/4.0.11", 1497 | "hashPath": "system.dynamic.runtime.4.0.11.nupkg.sha512" 1498 | }, 1499 | "System.Globalization/4.3.0": { 1500 | "type": "package", 1501 | "serviceable": true, 1502 | "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", 1503 | "path": "system.globalization/4.3.0", 1504 | "hashPath": "system.globalization.4.3.0.nupkg.sha512" 1505 | }, 1506 | "System.Globalization.Calendars/4.3.0": { 1507 | "type": "package", 1508 | "serviceable": true, 1509 | "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", 1510 | "path": "system.globalization.calendars/4.3.0", 1511 | "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" 1512 | }, 1513 | "System.Globalization.Extensions/4.3.0": { 1514 | "type": "package", 1515 | "serviceable": true, 1516 | "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", 1517 | "path": "system.globalization.extensions/4.3.0", 1518 | "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" 1519 | }, 1520 | "System.IO/4.3.0": { 1521 | "type": "package", 1522 | "serviceable": true, 1523 | "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", 1524 | "path": "system.io/4.3.0", 1525 | "hashPath": "system.io.4.3.0.nupkg.sha512" 1526 | }, 1527 | "System.IO.Compression/4.3.0": { 1528 | "type": "package", 1529 | "serviceable": true, 1530 | "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", 1531 | "path": "system.io.compression/4.3.0", 1532 | "hashPath": "system.io.compression.4.3.0.nupkg.sha512" 1533 | }, 1534 | "System.IO.Compression.ZipFile/4.3.0": { 1535 | "type": "package", 1536 | "serviceable": true, 1537 | "sha512": "sha512-G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", 1538 | "path": "system.io.compression.zipfile/4.3.0", 1539 | "hashPath": "system.io.compression.zipfile.4.3.0.nupkg.sha512" 1540 | }, 1541 | "System.IO.FileSystem/4.3.0": { 1542 | "type": "package", 1543 | "serviceable": true, 1544 | "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", 1545 | "path": "system.io.filesystem/4.3.0", 1546 | "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" 1547 | }, 1548 | "System.IO.FileSystem.Primitives/4.3.0": { 1549 | "type": "package", 1550 | "serviceable": true, 1551 | "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", 1552 | "path": "system.io.filesystem.primitives/4.3.0", 1553 | "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" 1554 | }, 1555 | "System.Linq/4.3.0": { 1556 | "type": "package", 1557 | "serviceable": true, 1558 | "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", 1559 | "path": "system.linq/4.3.0", 1560 | "hashPath": "system.linq.4.3.0.nupkg.sha512" 1561 | }, 1562 | "System.Linq.Expressions/4.3.0": { 1563 | "type": "package", 1564 | "serviceable": true, 1565 | "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", 1566 | "path": "system.linq.expressions/4.3.0", 1567 | "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" 1568 | }, 1569 | "System.Linq.Queryable/4.0.1": { 1570 | "type": "package", 1571 | "serviceable": true, 1572 | "sha512": "sha512-Yn/WfYe9RoRfmSLvUt2JerP0BTGGykCZkQPgojaxgzF2N0oPo+/AhB8TXOpdCcNlrG3VRtsamtK2uzsp3cqRVw==", 1573 | "path": "system.linq.queryable/4.0.1", 1574 | "hashPath": "system.linq.queryable.4.0.1.nupkg.sha512" 1575 | }, 1576 | "System.Net.Http/4.3.0": { 1577 | "type": "package", 1578 | "serviceable": true, 1579 | "sha512": "sha512-sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==", 1580 | "path": "system.net.http/4.3.0", 1581 | "hashPath": "system.net.http.4.3.0.nupkg.sha512" 1582 | }, 1583 | "System.Net.NameResolution/4.3.0": { 1584 | "type": "package", 1585 | "serviceable": true, 1586 | "sha512": "sha512-AFYl08R7MrsrEjqpQWTZWBadqXyTzNDaWpMqyxhb0d6sGhV6xMDKueuBXlLL30gz+DIRY6MpdgnHWlCh5wmq9w==", 1587 | "path": "system.net.nameresolution/4.3.0", 1588 | "hashPath": "system.net.nameresolution.4.3.0.nupkg.sha512" 1589 | }, 1590 | "System.Net.Primitives/4.3.0": { 1591 | "type": "package", 1592 | "serviceable": true, 1593 | "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", 1594 | "path": "system.net.primitives/4.3.0", 1595 | "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" 1596 | }, 1597 | "System.Net.Security/4.3.2": { 1598 | "type": "package", 1599 | "serviceable": true, 1600 | "sha512": "sha512-xT2jbYpbBo3ha87rViHoTA6WdvqOAW37drmqyx/6LD8p7HEPT2qgdxoimRzWtPg8Jh4X5G9BV2seeTv4x6FYlA==", 1601 | "path": "system.net.security/4.3.2", 1602 | "hashPath": "system.net.security.4.3.2.nupkg.sha512" 1603 | }, 1604 | "System.Net.Sockets/4.3.0": { 1605 | "type": "package", 1606 | "serviceable": true, 1607 | "sha512": "sha512-m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", 1608 | "path": "system.net.sockets/4.3.0", 1609 | "hashPath": "system.net.sockets.4.3.0.nupkg.sha512" 1610 | }, 1611 | "System.ObjectModel/4.3.0": { 1612 | "type": "package", 1613 | "serviceable": true, 1614 | "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", 1615 | "path": "system.objectmodel/4.3.0", 1616 | "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" 1617 | }, 1618 | "System.Reactive/4.3.2": { 1619 | "type": "package", 1620 | "serviceable": true, 1621 | "sha512": "sha512-WhGkScPWxw2pp7UwRW8M1OvYZ3WUDPC2wJ0aiuaB4KRD3bt4wLkgHgYnOUu87WRhsurvv5LN0E63iWOEza2o8g==", 1622 | "path": "system.reactive/4.3.2", 1623 | "hashPath": "system.reactive.4.3.2.nupkg.sha512" 1624 | }, 1625 | "System.Reflection/4.3.0": { 1626 | "type": "package", 1627 | "serviceable": true, 1628 | "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", 1629 | "path": "system.reflection/4.3.0", 1630 | "hashPath": "system.reflection.4.3.0.nupkg.sha512" 1631 | }, 1632 | "System.Reflection.Emit/4.3.0": { 1633 | "type": "package", 1634 | "serviceable": true, 1635 | "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", 1636 | "path": "system.reflection.emit/4.3.0", 1637 | "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" 1638 | }, 1639 | "System.Reflection.Emit.ILGeneration/4.3.0": { 1640 | "type": "package", 1641 | "serviceable": true, 1642 | "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", 1643 | "path": "system.reflection.emit.ilgeneration/4.3.0", 1644 | "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" 1645 | }, 1646 | "System.Reflection.Emit.Lightweight/4.3.0": { 1647 | "type": "package", 1648 | "serviceable": true, 1649 | "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", 1650 | "path": "system.reflection.emit.lightweight/4.3.0", 1651 | "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" 1652 | }, 1653 | "System.Reflection.Extensions/4.3.0": { 1654 | "type": "package", 1655 | "serviceable": true, 1656 | "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", 1657 | "path": "system.reflection.extensions/4.3.0", 1658 | "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" 1659 | }, 1660 | "System.Reflection.Primitives/4.3.0": { 1661 | "type": "package", 1662 | "serviceable": true, 1663 | "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", 1664 | "path": "system.reflection.primitives/4.3.0", 1665 | "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" 1666 | }, 1667 | "System.Reflection.TypeExtensions/4.3.0": { 1668 | "type": "package", 1669 | "serviceable": true, 1670 | "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", 1671 | "path": "system.reflection.typeextensions/4.3.0", 1672 | "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" 1673 | }, 1674 | "System.Resources.ResourceManager/4.3.0": { 1675 | "type": "package", 1676 | "serviceable": true, 1677 | "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", 1678 | "path": "system.resources.resourcemanager/4.3.0", 1679 | "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" 1680 | }, 1681 | "System.Runtime/4.3.0": { 1682 | "type": "package", 1683 | "serviceable": true, 1684 | "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", 1685 | "path": "system.runtime/4.3.0", 1686 | "hashPath": "system.runtime.4.3.0.nupkg.sha512" 1687 | }, 1688 | "System.Runtime.CompilerServices.Unsafe/4.5.2": { 1689 | "type": "package", 1690 | "serviceable": true, 1691 | "sha512": "sha512-wprSFgext8cwqymChhrBLu62LMg/1u92bU+VOwyfBimSPVFXtsNqEWC92Pf9ofzJFlk4IHmJA75EDJn1b2goAQ==", 1692 | "path": "system.runtime.compilerservices.unsafe/4.5.2", 1693 | "hashPath": "system.runtime.compilerservices.unsafe.4.5.2.nupkg.sha512" 1694 | }, 1695 | "System.Runtime.Extensions/4.3.0": { 1696 | "type": "package", 1697 | "serviceable": true, 1698 | "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", 1699 | "path": "system.runtime.extensions/4.3.0", 1700 | "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" 1701 | }, 1702 | "System.Runtime.Handles/4.3.0": { 1703 | "type": "package", 1704 | "serviceable": true, 1705 | "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", 1706 | "path": "system.runtime.handles/4.3.0", 1707 | "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" 1708 | }, 1709 | "System.Runtime.InteropServices/4.3.0": { 1710 | "type": "package", 1711 | "serviceable": true, 1712 | "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", 1713 | "path": "system.runtime.interopservices/4.3.0", 1714 | "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" 1715 | }, 1716 | "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { 1717 | "type": "package", 1718 | "serviceable": true, 1719 | "sha512": "sha512-cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", 1720 | "path": "system.runtime.interopservices.runtimeinformation/4.3.0", 1721 | "hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512" 1722 | }, 1723 | "System.Runtime.Numerics/4.3.0": { 1724 | "type": "package", 1725 | "serviceable": true, 1726 | "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", 1727 | "path": "system.runtime.numerics/4.3.0", 1728 | "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" 1729 | }, 1730 | "System.Runtime.Serialization.Formatters/4.3.0": { 1731 | "type": "package", 1732 | "serviceable": true, 1733 | "sha512": "sha512-KT591AkTNFOTbhZlaeMVvfax3RqhH1EJlcwF50Wm7sfnBLuHiOeZRRKrr1ns3NESkM20KPZ5Ol/ueMq5vg4QoQ==", 1734 | "path": "system.runtime.serialization.formatters/4.3.0", 1735 | "hashPath": "system.runtime.serialization.formatters.4.3.0.nupkg.sha512" 1736 | }, 1737 | "System.Runtime.Serialization.Primitives/4.3.0": { 1738 | "type": "package", 1739 | "serviceable": true, 1740 | "sha512": "sha512-Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==", 1741 | "path": "system.runtime.serialization.primitives/4.3.0", 1742 | "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" 1743 | }, 1744 | "System.Security.Claims/4.3.0": { 1745 | "type": "package", 1746 | "serviceable": true, 1747 | "sha512": "sha512-P/+BR/2lnc4PNDHt/TPBAWHVMLMRHsyYZbU1NphW4HIWzCggz8mJbTQQ3MKljFE7LS3WagmVFuBgoLcFzYXlkA==", 1748 | "path": "system.security.claims/4.3.0", 1749 | "hashPath": "system.security.claims.4.3.0.nupkg.sha512" 1750 | }, 1751 | "System.Security.Cryptography.Algorithms/4.3.0": { 1752 | "type": "package", 1753 | "serviceable": true, 1754 | "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", 1755 | "path": "system.security.cryptography.algorithms/4.3.0", 1756 | "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" 1757 | }, 1758 | "System.Security.Cryptography.Cng/4.3.0": { 1759 | "type": "package", 1760 | "serviceable": true, 1761 | "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", 1762 | "path": "system.security.cryptography.cng/4.3.0", 1763 | "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" 1764 | }, 1765 | "System.Security.Cryptography.Csp/4.3.0": { 1766 | "type": "package", 1767 | "serviceable": true, 1768 | "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", 1769 | "path": "system.security.cryptography.csp/4.3.0", 1770 | "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" 1771 | }, 1772 | "System.Security.Cryptography.Encoding/4.3.0": { 1773 | "type": "package", 1774 | "serviceable": true, 1775 | "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", 1776 | "path": "system.security.cryptography.encoding/4.3.0", 1777 | "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" 1778 | }, 1779 | "System.Security.Cryptography.OpenSsl/4.3.0": { 1780 | "type": "package", 1781 | "serviceable": true, 1782 | "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", 1783 | "path": "system.security.cryptography.openssl/4.3.0", 1784 | "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" 1785 | }, 1786 | "System.Security.Cryptography.Primitives/4.3.0": { 1787 | "type": "package", 1788 | "serviceable": true, 1789 | "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", 1790 | "path": "system.security.cryptography.primitives/4.3.0", 1791 | "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" 1792 | }, 1793 | "System.Security.Cryptography.X509Certificates/4.3.0": { 1794 | "type": "package", 1795 | "serviceable": true, 1796 | "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", 1797 | "path": "system.security.cryptography.x509certificates/4.3.0", 1798 | "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" 1799 | }, 1800 | "System.Security.Principal/4.3.0": { 1801 | "type": "package", 1802 | "serviceable": true, 1803 | "sha512": "sha512-I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==", 1804 | "path": "system.security.principal/4.3.0", 1805 | "hashPath": "system.security.principal.4.3.0.nupkg.sha512" 1806 | }, 1807 | "System.Security.Principal.Windows/4.3.0": { 1808 | "type": "package", 1809 | "serviceable": true, 1810 | "sha512": "sha512-HVL1rvqYtnRCxFsYag/2le/ZfKLK4yMw79+s6FmKXbSCNN0JeAhrYxnRAHFoWRa0dEojsDcbBSpH3l22QxAVyw==", 1811 | "path": "system.security.principal.windows/4.3.0", 1812 | "hashPath": "system.security.principal.windows.4.3.0.nupkg.sha512" 1813 | }, 1814 | "System.Security.SecureString/4.0.0": { 1815 | "type": "package", 1816 | "serviceable": true, 1817 | "sha512": "sha512-sqzq9GD6/b0yqPuMpgIKBuoLf4VKAj8oAfh4kXSzPaN6eoKY3hRi9C5L27uip25qlU+BGPfb0xh2Rmbwc4jFVA==", 1818 | "path": "system.security.securestring/4.0.0", 1819 | "hashPath": "system.security.securestring.4.0.0.nupkg.sha512" 1820 | }, 1821 | "System.Text.Encoding/4.3.0": { 1822 | "type": "package", 1823 | "serviceable": true, 1824 | "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", 1825 | "path": "system.text.encoding/4.3.0", 1826 | "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" 1827 | }, 1828 | "System.Text.Encoding.CodePages/4.5.1": { 1829 | "type": "package", 1830 | "serviceable": true, 1831 | "sha512": "sha512-4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", 1832 | "path": "system.text.encoding.codepages/4.5.1", 1833 | "hashPath": "system.text.encoding.codepages.4.5.1.nupkg.sha512" 1834 | }, 1835 | "System.Text.Encoding.Extensions/4.3.0": { 1836 | "type": "package", 1837 | "serviceable": true, 1838 | "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", 1839 | "path": "system.text.encoding.extensions/4.3.0", 1840 | "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" 1841 | }, 1842 | "System.Text.RegularExpressions/4.3.0": { 1843 | "type": "package", 1844 | "serviceable": true, 1845 | "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", 1846 | "path": "system.text.regularexpressions/4.3.0", 1847 | "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" 1848 | }, 1849 | "System.Threading/4.3.0": { 1850 | "type": "package", 1851 | "serviceable": true, 1852 | "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", 1853 | "path": "system.threading/4.3.0", 1854 | "hashPath": "system.threading.4.3.0.nupkg.sha512" 1855 | }, 1856 | "System.Threading.Channels/4.7.0": { 1857 | "type": "package", 1858 | "serviceable": true, 1859 | "sha512": "sha512-gdOOXBhtt2UpTxYJm1DRmoqNfYg5ypvhzhVt0vxKhzxXFjS81r8yIOSFsJYLRa1Jc14GBAqCnjxJstO3zBN7gg==", 1860 | "path": "system.threading.channels/4.7.0", 1861 | "hashPath": "system.threading.channels.4.7.0.nupkg.sha512" 1862 | }, 1863 | "System.Threading.Tasks/4.3.0": { 1864 | "type": "package", 1865 | "serviceable": true, 1866 | "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", 1867 | "path": "system.threading.tasks/4.3.0", 1868 | "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" 1869 | }, 1870 | "System.Threading.Tasks.Extensions/4.3.0": { 1871 | "type": "package", 1872 | "serviceable": true, 1873 | "sha512": "sha512-npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", 1874 | "path": "system.threading.tasks.extensions/4.3.0", 1875 | "hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512" 1876 | }, 1877 | "System.Threading.Thread/4.3.0": { 1878 | "type": "package", 1879 | "serviceable": true, 1880 | "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", 1881 | "path": "system.threading.thread/4.3.0", 1882 | "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" 1883 | }, 1884 | "System.Threading.ThreadPool/4.3.0": { 1885 | "type": "package", 1886 | "serviceable": true, 1887 | "sha512": "sha512-k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", 1888 | "path": "system.threading.threadpool/4.3.0", 1889 | "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512" 1890 | }, 1891 | "System.Threading.Timer/4.3.0": { 1892 | "type": "package", 1893 | "serviceable": true, 1894 | "sha512": "sha512-Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", 1895 | "path": "system.threading.timer/4.3.0", 1896 | "hashPath": "system.threading.timer.4.3.0.nupkg.sha512" 1897 | }, 1898 | "System.Xml.ReaderWriter/4.3.0": { 1899 | "type": "package", 1900 | "serviceable": true, 1901 | "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", 1902 | "path": "system.xml.readerwriter/4.3.0", 1903 | "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" 1904 | }, 1905 | "System.Xml.XDocument/4.3.0": { 1906 | "type": "package", 1907 | "serviceable": true, 1908 | "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", 1909 | "path": "system.xml.xdocument/4.3.0", 1910 | "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" 1911 | }, 1912 | "Websocket.Client/4.4.43": { 1913 | "type": "package", 1914 | "serviceable": true, 1915 | "sha512": "sha512-h0sS4zsnXrVkYyMYDaRc0k/oV54uXXBlN/HOHAK5d/RWleLTmWS6bxtt0l3D5Q2rgtfLinkHLdf4sOqdrxZ0NA==", 1916 | "path": "websocket.client/4.4.43", 1917 | "hashPath": "websocket.client.4.4.43.nupkg.sha512" 1918 | }, 1919 | "Model/1.0.0": { 1920 | "type": "project", 1921 | "serviceable": false, 1922 | "sha512": "" 1923 | }, 1924 | "System.Reactive.Reference/4.3.0.0": { 1925 | "type": "reference", 1926 | "serviceable": false, 1927 | "sha512": "" 1928 | } 1929 | } 1930 | } --------------------------------------------------------------------------------