├── Newbe.Mahua.Plugins.RepeaterBreaker.sln ├── Newbe.Mahua.Plugins.RepeaterBreaker ├── MahuaApis │ └── readme.md ├── MahuaEvents │ ├── GroupMessageReceivedMahuaEvent.cs │ ├── PrivateMessageFromFriendReceivedMahuaEvent1.cs │ └── readme.md ├── MahuaModule.cs ├── MyMenuProvider.cs ├── Newbe.Mahua.Plugins.RepeaterBreaker.csproj ├── NewbeLibs │ ├── Framework │ │ ├── Autofac.dll │ │ ├── Extensions │ │ │ └── Administration │ │ │ │ ├── Newbe.Mahua.Administration.WPF.dll │ │ │ │ └── Newbe.Mahua.Administration.WPF.pdb │ │ ├── MediatR.dll │ │ ├── MessagePack.dll │ │ ├── NLog.config │ │ ├── NLog.dll │ │ ├── Newbe.Mahua.PluginLoader.dll │ │ ├── Newbe.Mahua.PluginLoader.pdb │ │ ├── Newbe.Mahua.dll │ │ ├── Newbe.Mahua.pdb │ │ ├── Newbe.Mahua.xml │ │ ├── System.Threading.Tasks.Extensions.dll │ │ └── System.ValueTuple.dll │ └── Platform │ │ ├── Amanda │ │ ├── CLR │ │ │ ├── Newbe.Mahua.Amanda.Native.dll │ │ │ ├── Newbe.Mahua.Amanda.Native.pdb │ │ │ ├── Newbe.Mahua.Amanda.dll │ │ │ └── Newbe.Mahua.Amanda.pdb │ │ └── Native │ │ │ └── Newbe.Mahua.Amanda.Native.dll │ │ ├── CQP │ │ ├── CLR │ │ │ ├── Newbe.Mahua.CQP.Native.dll │ │ │ ├── Newbe.Mahua.CQP.Native.pdb │ │ │ ├── Newbe.Mahua.CQP.dll │ │ │ └── Newbe.Mahua.CQP.pdb │ │ ├── Content │ │ │ └── Newbe.Mahua.CQP.json │ │ └── Native │ │ │ └── Newbe.Mahua.CQP.Native.dll │ │ └── MPQ │ │ ├── CLR │ │ ├── Newbe.Mahua.MPQ.Native.dll │ │ ├── Newbe.Mahua.MPQ.Native.pdb │ │ ├── Newbe.Mahua.MPQ.dll │ │ └── Newbe.Mahua.MPQ.pdb │ │ └── Native │ │ └── Newbe.Mahua.MPQ.Native.dll ├── PluginInfo.cs ├── Properties │ └── AssemblyInfo.cs ├── README.md ├── build.bat ├── build.ps1 ├── buildTools │ ├── 7z.exe │ ├── nuget.exe │ └── packages.config ├── obj │ └── Debug │ │ ├── DesignTimeResolveAssemblyReferences.cache │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ ├── Newbe.Mahua.Plugins.RepeaterBreaker.csproj.CoreCompileInputs.cache │ │ ├── Newbe.Mahua.Plugins.RepeaterBreaker.csproj.FileListAbsolute.txt │ │ ├── Newbe.Mahua.Plugins.RepeaterBreaker.csprojAssemblyReference.cache │ │ ├── Newbe.Mahua.Plugins.RepeaterBreaker.dll │ │ └── Newbe.Mahua.Plugins.RepeaterBreaker.pdb ├── packages.config └── packages │ ├── Newbe.Build.Psake.1.2.0 │ ├── Newbe.Build.Psake.1.2.0.nupkg │ ├── README.MD │ ├── content │ │ ├── build.bat │ │ ├── build.ps1 │ │ └── buildTools │ │ │ ├── 7z.exe │ │ │ ├── nuget.exe │ │ │ └── packages.config │ └── tools │ │ └── buildFunctions.psm1 │ └── psake.4.7.0 │ ├── psake.4.7.0.nupkg │ └── tools │ ├── README.md │ ├── chocolateyInstall.ps1 │ ├── chocolateyUninstall.ps1 │ ├── init.ps1 │ ├── license.txt │ └── psake │ ├── en-US │ └── psake.psm1-help.xml.old │ ├── examples │ ├── checkvariables.ps1 │ ├── continueonerror.ps1 │ ├── default.ps1 │ ├── formattaskname_scriptblock.ps1 │ ├── formattaskname_string.ps1 │ ├── msbuild40.ps1 │ ├── nested.ps1 │ ├── nested │ │ ├── nested1.ps1 │ │ └── nested2.ps1 │ ├── paralleltasks.ps1 │ ├── parameters.ps1 │ ├── passingParametersString │ │ ├── build.Release.Version.bat │ │ └── parameters.ps1 │ ├── preandpostaction.ps1 │ ├── preandpostcondition.ps1 │ ├── properties.ps1 │ ├── requiredvariables.ps1 │ └── tasksetupandteardown.ps1 │ ├── private │ ├── CleanupEnvironment.ps1 │ ├── ConfigureBuildEnvironment.ps1 │ ├── CreateConfigurationForNewContext.ps1 │ ├── ExecuteInBuildFileScope.ps1 │ ├── Get-DefaultBuildFile.ps1 │ ├── GetCurrentConfigurationOrDefault.ps1 │ ├── GetTasksFromContext.ps1 │ ├── LoadConfiguration.ps1 │ ├── LoadModules.ps1 │ ├── ResolveError.ps1 │ ├── SelectObjectWithDefault.ps1 │ ├── WriteColoredOutput.ps1 │ ├── WriteDocumentation.ps1 │ └── WriteTaskTimeSummary.ps1 │ ├── psake-config.ps1 │ ├── psake.cmd │ ├── psake.ps1 │ ├── psake.psd1 │ ├── psake.psm1 │ └── public │ ├── Assert.ps1 │ ├── Exec.ps1 │ ├── FormatTaskName.ps1 │ ├── Framework.ps1 │ ├── Get-PSakeScriptTasks.ps1 │ ├── Include.ps1 │ ├── Invoke-Task.ps1 │ ├── Invoke-psake.ps1 │ ├── Properties.ps1 │ ├── Task.ps1 │ ├── TaskSetup.ps1 │ └── TaskTearDown.ps1 ├── README.md └── packages ├── Autofac.4.8.1 ├── Autofac.4.8.1.nupkg └── lib │ ├── net45 │ ├── Autofac.dll │ └── Autofac.xml │ └── netstandard1.1 │ ├── Autofac.dll │ └── Autofac.xml ├── MediatR.3.0.1 ├── MediatR.3.0.1.nupkg └── lib │ ├── net45 │ └── MediatR.dll │ └── netstandard1.1 │ └── MediatR.dll ├── MessagePack.1.7.3.4 ├── MessagePack.1.7.3.4.nupkg └── lib │ ├── net45 │ ├── MessagePack.dll │ └── MessagePack.xml │ ├── net47 │ ├── MessagePack.dll │ └── MessagePack.xml │ ├── netstandard1.6 │ ├── MessagePack.dll │ └── MessagePack.xml │ └── netstandard2.0 │ ├── MessagePack.dll │ └── MessagePack.xml ├── Newbe.Build.Psake.1.2.0 ├── Newbe.Build.Psake.1.2.0.nupkg ├── README.MD ├── content │ ├── build.bat │ ├── build.ps1 │ └── buildTools │ │ ├── 7z.exe │ │ ├── nuget.exe │ │ └── packages.config └── tools │ └── buildFunctions.psm1 ├── Newbe.Mahua.1.10.0 ├── Newbe.Mahua.1.10.0.nupkg ├── content │ └── NewbeLibs │ │ └── Framework │ │ ├── Autofac.dll │ │ ├── NLog.config │ │ ├── NLog.dll │ │ ├── Newbe.Mahua.dll │ │ ├── Newbe.Mahua.pdb │ │ └── Newbe.Mahua.xml ├── lib │ └── net452 │ │ ├── Newbe.Mahua.dll │ │ ├── Newbe.Mahua.pdb │ │ └── Newbe.Mahua.xml └── tools │ └── init.ps1 ├── Newbe.Mahua.Administration.1.10.0 ├── Newbe.Mahua.Administration.1.10.0.nupkg ├── content │ └── NewbeLibs │ │ └── Framework │ │ └── Extensions │ │ └── Administration │ │ ├── Newbe.Mahua.Administration.WPF.dll │ │ └── Newbe.Mahua.Administration.WPF.pdb └── tools │ ├── Newbe.Mahua.Administration.dll │ ├── Newbe.Mahua.Administration.pdb │ └── init.ps1 ├── Newbe.Mahua.Amanda.1.10.0 ├── Newbe.Mahua.Amanda.1.10.0.nupkg ├── content │ └── NewbeLibs │ │ └── Platform │ │ └── Amanda │ │ ├── CLR │ │ ├── Newbe.Mahua.Amanda.Native.dll │ │ ├── Newbe.Mahua.Amanda.Native.pdb │ │ ├── Newbe.Mahua.Amanda.dll │ │ └── Newbe.Mahua.Amanda.pdb │ │ └── Native │ │ └── Newbe.Mahua.Amanda.Native.dll └── tools │ ├── Newbe.Mahua.Amanda.dll │ ├── Newbe.Mahua.Amanda.pdb │ ├── Newbe.Mahua.Amanda.xml │ └── init.ps1 ├── Newbe.Mahua.CQP.1.10.0 ├── Newbe.Mahua.CQP.1.10.0.nupkg ├── content │ └── NewbeLibs │ │ └── Platform │ │ └── CQP │ │ ├── CLR │ │ ├── Newbe.Mahua.CQP.Native.dll │ │ ├── Newbe.Mahua.CQP.Native.pdb │ │ ├── Newbe.Mahua.CQP.dll │ │ └── Newbe.Mahua.CQP.pdb │ │ ├── Content │ │ └── Newbe.Mahua.CQP.json │ │ └── Native │ │ └── Newbe.Mahua.CQP.Native.dll └── tools │ ├── Newbe.Mahua.CQP.dll │ ├── Newbe.Mahua.CQP.pdb │ ├── Newbe.Mahua.CQP.xml │ └── init.ps1 ├── Newbe.Mahua.MPQ.1.10.0 ├── Newbe.Mahua.MPQ.1.10.0.nupkg ├── content │ └── NewbeLibs │ │ └── Platform │ │ └── MPQ │ │ ├── CLR │ │ ├── Newbe.Mahua.MPQ.Native.dll │ │ ├── Newbe.Mahua.MPQ.Native.pdb │ │ ├── Newbe.Mahua.MPQ.dll │ │ └── Newbe.Mahua.MPQ.pdb │ │ └── Native │ │ └── Newbe.Mahua.MPQ.Native.dll └── tools │ ├── Newbe.Mahua.MPQ.dll │ ├── Newbe.Mahua.MPQ.pdb │ ├── Newbe.Mahua.MPQ.xml │ └── init.ps1 ├── Newbe.Mahua.PluginLoader.1.10.0 ├── Newbe.Mahua.PluginLoader.1.10.0.nupkg ├── content │ └── NewbeLibs │ │ └── Framework │ │ ├── MediatR.dll │ │ ├── MessagePack.dll │ │ ├── Newbe.Mahua.PluginLoader.dll │ │ ├── Newbe.Mahua.PluginLoader.pdb │ │ ├── System.Threading.Tasks.Extensions.dll │ │ └── System.ValueTuple.dll ├── lib │ └── net452 │ │ ├── Newbe.Mahua.PluginLoader.dll │ │ ├── Newbe.Mahua.PluginLoader.pdb │ │ └── Newbe.Mahua.PluginLoader.xml └── tools │ └── init.ps1 ├── Newbe.Mahua.Tools.Psake.1.10.0 ├── Newbe.Mahua.Tools.Psake.1.10.0.nupkg ├── content │ ├── build.bat │ └── build.ps1 ├── contentFiles │ └── any │ │ └── net452 │ │ ├── build.bat │ │ └── build.ps1 └── tools │ ├── Newbe.Mahua.Tools.Psake.dll │ ├── Newbe.Mahua.Tools.Psake.pdb │ └── init.ps1 ├── README.md ├── System.Threading.Tasks.Extensions.4.3.0 ├── System.Threading.Tasks.Extensions.4.3.0.nupkg ├── ThirdPartyNotices.txt ├── dotnet_library_license.txt └── lib │ ├── netstandard1.0 │ ├── System.Threading.Tasks.Extensions.dll │ └── System.Threading.Tasks.Extensions.xml │ └── portable-net45+win8+wp8+wpa81 │ ├── System.Threading.Tasks.Extensions.dll │ └── System.Threading.Tasks.Extensions.xml └── System.ValueTuple.4.3.0 ├── System.ValueTuple.4.3.0.nupkg ├── ThirdPartyNotices.txt ├── dotnet_library_license.txt └── lib ├── netstandard1.0 └── System.ValueTuple.dll └── portable-net40+sl4+win8+wp8 └── System.ValueTuple.dll /Newbe.Mahua.Plugins.RepeaterBreaker.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27703.2000 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Newbe.Mahua.Plugins.RepeaterBreaker", "Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker.csproj", "{B0F7B224-D5B4-418F-9C83-B33EB9CB6159}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {B0F7B224-D5B4-418F-9C83-B33EB9CB6159}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {B0F7B224-D5B4-418F-9C83-B33EB9CB6159}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {B0F7B224-D5B4-418F-9C83-B33EB9CB6159}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {B0F7B224-D5B4-418F-9C83-B33EB9CB6159}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {A5E2B87B-C9BA-4DC0-966A-3D7BDCB8BCC8} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/MahuaApis/readme.md: -------------------------------------------------------------------------------- 1 | 建议将ApiMahuaCommandHandler的实现类都放置在这个文件夹 2 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/MahuaEvents/GroupMessageReceivedMahuaEvent.cs: -------------------------------------------------------------------------------- 1 | using Newbe.Mahua.MahuaEvents; 2 | using System; 3 | using System.Linq; 4 | 5 | namespace Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents 6 | { 7 | public static class Common 8 | { 9 | //存储全局静态变量 10 | public static int repeatTime = 0; //复读次数,初值为0 11 | public static string msg = "000"; //截获群消息用于复读行为检测 12 | public static int repeatExecuate = 5; //检测复读次数,可通过私戳消息自定义 13 | public static System.Collections.Generic.List repeaterList = new System.Collections.Generic.List(); //参与复读的复读机名单 14 | public static int execuateTime = 1; //禁言时间 15 | public static int execuateMode = 0; //执行模式 16 | } 17 | /// 18 | /// 群消息接收事件 19 | /// 20 | public class GroupMessageReceivedMahuaEvent 21 | : IGroupMessageReceivedMahuaEvent 22 | { 23 | private readonly IMahuaApi _mahuaApi; 24 | 25 | public GroupMessageReceivedMahuaEvent( 26 | IMahuaApi mahuaApi) 27 | { 28 | _mahuaApi = mahuaApi; 29 | } 30 | 31 | public void ProcessGroupMessage(GroupMessageReceivedContext context) 32 | { 33 | 34 | //throw new NotImplementedException(); 35 | 36 | //复读计数器计数,连续两个消息内容相同,计数器+1并将发言的群成员加入复读机成员名单,反之重置计数器和名单 37 | if (Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.msg == context.Message) 38 | { 39 | Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeatTime++; 40 | Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList.Add(context.FromQq); 41 | } 42 | else 43 | { 44 | Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.msg = context.Message; 45 | Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList.Clear(); 46 | Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeatTime = 0; 47 | } 48 | 49 | //复读事件触发,根据执行模式进行禁言操作 50 | if (Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeatTime == Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeatExecuate) 51 | { 52 | //正常禁言:禁言最后一个发言的复读机 53 | if (Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateMode==0) 54 | { 55 | _mahuaApi.BanGroupMember(context.FromGroup, context.FromQq, TimeSpan.FromMinutes(Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateTime)); 56 | } 57 | 58 | //随机禁言:从复读机名单中随机选择一个禁言 59 | if (Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateMode == 1) 60 | { 61 | Random ran = new Random(); 62 | int RandKey = ran.Next(0, Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList.Count()-1); 63 | _mahuaApi.BanGroupMember(context.FromGroup, Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList[RandKey], TimeSpan.FromMinutes(Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateTime)); 64 | } 65 | 66 | //强力禁言:禁言在复读机名单中的额所有人 67 | if(Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateMode==2) 68 | { 69 | for(int k=0; k<=Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList.Count; k++) 70 | { 71 | _mahuaApi.BanGroupMember(context.FromGroup, Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList[k], TimeSpan.FromMinutes(Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateTime)); 72 | } 73 | } 74 | 75 | //重置计数器和复读机名单 76 | Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeatTime = 0; 77 | Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.repeaterList.Clear(); 78 | } 79 | 80 | // 不要忘记在MahuaModule中注册 81 | } 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/MahuaEvents/PrivateMessageFromFriendReceivedMahuaEvent1.cs: -------------------------------------------------------------------------------- 1 | using Newbe.Mahua.MahuaEvents; 2 | using System; 3 | using System.Text.RegularExpressions; 4 | 5 | namespace Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents 6 | { 7 | /// 8 | /// 来自好友的私聊消息接收事件 9 | /// 10 | public class PrivateMessageFromFriendReceivedMahuaEvent1 11 | : IPrivateMessageFromFriendReceivedMahuaEvent 12 | { 13 | private readonly IMahuaApi _mahuaApi; 14 | 15 | //getDigit()函数从字符串中截取出数字并转换成整型 16 | public int getDigit(string str) 17 | { 18 | Regex r = new Regex("\\d+\\.?\\d*"); //设置匹配用的正则表达式 19 | bool isMatch = r.IsMatch(str); 20 | MatchCollection mc = r.Matches(str); 21 | string result = string.Empty; 22 | 23 | //生成处理后的字符串,应该只有数字部分 24 | for(int i=0; i2) 86 | { 87 | _mahuaApi.SendPrivateMessage(context.FromQq) 88 | .Text("设定执行模式错误:模式值只能为0,1,2中的一个!") 89 | .Done(); 90 | } 91 | else 92 | { 93 | Newbe.Mahua.Plugins.RepeaterBreaker.MahuaEvents.Common.execuateMode = result; 94 | switch(result) 95 | { 96 | case 0: _mahuaApi.SendPrivateMessage(context.FromQq) 97 | .Text("执行模式已设置为 常规模式,只禁言最后一个复读机") 98 | .Done();break; 99 | case 1: _mahuaApi.SendPrivateMessage(context.FromQq) 100 | .Text("执行模式已设置为 随机模式,随机禁言一个复读机") 101 | .Done();break; 102 | case 2: _mahuaApi.SendPrivateMessage(context.FromQq) 103 | .Text("执行模式已设置为 强力模式,禁言全部复读机") 104 | .Done();break; 105 | } 106 | } 107 | } 108 | // 不要忘记在MahuaModule中注册 109 | } 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/MahuaEvents/readme.md: -------------------------------------------------------------------------------- 1 | 建议将IMahuaEvent的实现类都放置在这个文件夹中 2 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/MahuaModule.cs: -------------------------------------------------------------------------------- 1 | using Autofac; 2 | 3 | namespace Newbe.Mahua.Plugins.RepeaterBreaker 4 | { 5 | /// 6 | /// Ioc容器注册 7 | /// 8 | public class MahuaModule : IMahuaModule 9 | { 10 | public Module[] GetModules() 11 | { 12 | // 可以按照功能模块进行划分,此处可以改造为基于文件配置进行构造。实现模块化编程。 13 | return new Module[] 14 | { 15 | new PluginModule(), 16 | new MahuaEventsModule(), 17 | }; 18 | } 19 | 20 | /// 21 | /// 基本模块 22 | /// 23 | private class PluginModule : Module 24 | { 25 | protected override void Load(ContainerBuilder builder) 26 | { 27 | base.Load(builder); 28 | // 将实现类与接口的关系注入到Autofac的Ioc容器中。如果此处缺少注册将无法启动插件。 29 | // 注意!!!PluginInfo是插件运行必须注册的,其他内容则不是必要的!!! 30 | builder.RegisterType() 31 | .As(); 32 | 33 | //注册在“设置中心”中注册菜单,若想订阅菜单点击事件,可以查看教程。http://www.newbe.pro/docs/mahua/2017/12/24/Newbe-Mahua-Navigations.html 34 | builder.RegisterType() 35 | .As(); 36 | } 37 | } 38 | 39 | /// 40 | /// 事件处理模块 41 | /// 42 | private class MahuaEventsModule : Module 43 | { 44 | protected override void Load(ContainerBuilder builder) 45 | { 46 | base.Load(builder); 47 | builder.RegisterType() 48 | .As(); 49 | builder.RegisterType() 50 | .As(); 51 | // 将需要监听的事件注册,若缺少此注册,则不会调用相关的实现类 52 | } 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/MyMenuProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Newbe.Mahua.Plugins.RepeaterBreaker 4 | { 5 | public class MyMenuProvider : IMahuaMenuProvider 6 | { 7 | public IEnumerable GetMenus() 8 | { 9 | return new[] 10 | { 11 | new MahuaMenu 12 | { 13 | Id = "menu1", 14 | Text = "测试菜单1" 15 | }, 16 | new MahuaMenu 17 | { 18 | Id = "menu2", 19 | Text = "测试菜单2" 20 | }, 21 | }; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/Newbe.Mahua.Plugins.RepeaterBreaker.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {B0F7B224-D5B4-418F-9C83-B33EB9CB6159} 8 | Library 9 | Properties 10 | Newbe.Mahua.Plugins.RepeaterBreaker 11 | Newbe.Mahua.Plugins.RepeaterBreaker 12 | v4.5.2 13 | 512 14 | 15 | 16 | 17 | 18 | true 19 | full 20 | false 21 | bin\Debug\ 22 | DEBUG;TRACE 23 | prompt 24 | 4 25 | 26 | 27 | pdbonly 28 | true 29 | bin\Release\ 30 | TRACE 31 | prompt 32 | 4 33 | 34 | 35 | 36 | ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll 37 | 38 | 39 | ..\packages\MediatR.3.0.1\lib\net45\MediatR.dll 40 | 41 | 42 | ..\packages\MessagePack.1.7.3.4\lib\net45\MessagePack.dll 43 | 44 | 45 | ..\packages\Newbe.Mahua.1.10.0\lib\net452\Newbe.Mahua.dll 46 | 47 | 48 | ..\packages\Newbe.Mahua.PluginLoader.1.10.0\lib\net452\Newbe.Mahua.PluginLoader.dll 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | ..\packages\System.Threading.Tasks.Extensions.4.3.0\lib\portable-net45+win8+wp8+wpa81\System.Threading.Tasks.Extensions.dll 61 | 62 | 63 | ..\packages\System.ValueTuple.4.3.0\lib\netstandard1.0\System.ValueTuple.dll 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Autofac.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Autofac.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Extensions/Administration/Newbe.Mahua.Administration.WPF.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Extensions/Administration/Newbe.Mahua.Administration.WPF.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Extensions/Administration/Newbe.Mahua.Administration.WPF.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Extensions/Administration/Newbe.Mahua.Administration.WPF.pdb -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/MediatR.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/MediatR.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/MessagePack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/MessagePack.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/NLog.config: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/NLog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/NLog.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Newbe.Mahua.PluginLoader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Newbe.Mahua.PluginLoader.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Newbe.Mahua.PluginLoader.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Newbe.Mahua.PluginLoader.pdb -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Newbe.Mahua.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Newbe.Mahua.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Newbe.Mahua.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/Newbe.Mahua.pdb -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/System.Threading.Tasks.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/System.Threading.Tasks.Extensions.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/System.ValueTuple.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Framework/System.ValueTuple.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.Native.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.Native.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.Native.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.Native.pdb -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.pdb -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/Amanda/Native/Newbe.Mahua.Amanda.Native.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/Amanda/Native/Newbe.Mahua.Amanda.Native.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.Native.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.Native.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.Native.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.Native.pdb -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.pdb -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/CQP/Content/Newbe.Mahua.CQP.json: -------------------------------------------------------------------------------- 1 | { 2 | "ret": 1, 3 | "apiver": 9, 4 | "name": "酷Q样例应用", 5 | "version": "1.0.0", 6 | "version_id": 1, 7 | "author": "Newbe", 8 | "description": "酷Q样例应用(V9应用机制)", 9 | "event": [{ 10 | "id": 1, 11 | "type": 21, 12 | "name": "私聊消息处理", 13 | "function": "_eventPrivateMsg", 14 | "priority": 30000 15 | }, 16 | { 17 | "id": 2, 18 | "type": 2, 19 | "name": "群消息处理", 20 | "function": "_eventGroupMsg", 21 | "priority": 30000 22 | }, 23 | { 24 | "id": 3, 25 | "type": 4, 26 | "name": "讨论组消息处理", 27 | "function": "_eventDiscussMsg", 28 | "priority": 30000 29 | }, 30 | { 31 | "id": 4, 32 | "type": 11, 33 | "name": "群文件上传事件处理", 34 | "function": "_eventGroupUpload", 35 | "priority": 30000 36 | }, 37 | { 38 | "id": 5, 39 | "type": 101, 40 | "name": "群管理变动事件处理", 41 | "function": "_eventSystem_GroupAdmin", 42 | "priority": 30000 43 | }, 44 | { 45 | "id": 6, 46 | "type": 102, 47 | "name": "群成员减少事件处理", 48 | "function": "_eventSystem_GroupMemberDecrease", 49 | "priority": 30000 50 | }, 51 | { 52 | "id": 7, 53 | "type": 103, 54 | "name": "群成员增加事件处理", 55 | "function": "_eventSystem_GroupMemberIncrease", 56 | "priority": 30000 57 | }, 58 | { 59 | "id": 10, 60 | "type": 201, 61 | "name": "好友已添加事件处理", 62 | "function": "_eventFriend_Add", 63 | "priority": 30000 64 | }, 65 | { 66 | "id": 8, 67 | "type": 301, 68 | "name": "好友添加请求处理", 69 | "function": "_eventRequest_AddFriend", 70 | "priority": 30000 71 | }, 72 | { 73 | "id": 9, 74 | "type": 302, 75 | "name": "群添加请求处理", 76 | "function": "_eventRequest_AddGroup", 77 | "priority": 30000 78 | }, 79 | { 80 | "id": 1001, 81 | "type": 1001, 82 | "name": "酷Q启动事件", 83 | "priority": 30000, 84 | "function": "_eventStartup" 85 | }, 86 | { 87 | "id": 1002, 88 | "type": 1002, 89 | "name": "酷Q关闭事件", 90 | "priority": 30000, 91 | "function": "_eventExit" 92 | }, 93 | { 94 | "id": 1003, 95 | "type": 1003, 96 | "name": "应用已被启用", 97 | "priority": 30000, 98 | "function": "_eventEnable" 99 | }, 100 | { 101 | "id": 1004, 102 | "type": 1004, 103 | "name": "应用将被停用", 104 | "priority": 30000, 105 | "function": "_eventDisable" 106 | } 107 | ], 108 | "menu": [{ 109 | "name": "设置中心", 110 | "function": "_menuA" 111 | }], 112 | "status": [ 113 | 114 | ], 115 | "auth": [ 116 | 20, 117 | 30, 118 | 101, 119 | 103, 120 | 106, 121 | 110, 122 | 120, 123 | 121, 124 | 122, 125 | 123, 126 | 124, 127 | 125, 128 | 126, 129 | 127, 130 | 128, 131 | 130, 132 | 131, 133 | 140, 134 | 150, 135 | 151, 136 | 160, 137 | 161, 138 | 180 139 | ] 140 | } -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/CQP/Native/Newbe.Mahua.CQP.Native.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/CQP/Native/Newbe.Mahua.CQP.Native.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.Native.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.Native.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.Native.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.Native.pdb -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.pdb -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/MPQ/Native/Newbe.Mahua.MPQ.Native.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/NewbeLibs/Platform/MPQ/Native/Newbe.Mahua.MPQ.Native.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/PluginInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Newbe.Mahua.Plugins.RepeaterBreaker 2 | { 3 | /// 4 | /// 本插件的基本信息 5 | /// 6 | public class PluginInfo : IPluginInfo 7 | { 8 | /// 9 | /// 版本号,建议采用 主版本.次版本.修订号 的形式 10 | /// 11 | public string Version { get; set; } = "1.1.0"; 12 | 13 | /// 14 | /// 插件名称 15 | /// 16 | 17 | public string Name { get; set; } = "RepeaterBreaker"; 18 | 19 | /// 20 | /// 作者名称 21 | /// 22 | public string Author { get; set; } = "Ciniki"; 23 | 24 | /// 25 | /// 插件Id,用于唯一标识插件产品的Id,至少包含 AAA.BBB.CCC 三个部分 26 | /// 27 | public string Id { get; set; } = "Newbe.Mahua.Plugins.RepeaterBreaker"; 28 | 29 | /// 30 | /// 插件描述 31 | /// 32 | public string Description { get; set; } = "本着让复读更有意义的原则,该插件可以根据各种条件识别出复读机并将其禁言,让复读紧张又刺激"; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // 有关程序集的一般信息由以下 6 | // 控制。更改这些特性值可修改 7 | // 与程序集关联的信息。 8 | [assembly: AssemblyTitle("Newbe.Mahua.Plugins.RepeaterBreaker")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Newbe.Mahua.Plugins.RepeaterBreaker")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // 将 ComVisible 设置为 false 会使此程序集中的类型 18 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 19 | //请将此类型的 ComVisible 特性设置为 true。 20 | [assembly: ComVisible(false)] 21 | 22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 23 | [assembly: Guid("b0f7b224-d5b4-418f-9c83-b33eb9cb6159")] 24 | 25 | // 程序集的版本信息由下列四个值组成: 26 | // 27 | // 主版本 28 | // 次版本 29 | // 生成号 30 | // 修订号 31 | // 32 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 33 | //通过使用 "*",如下所示: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/README.md: -------------------------------------------------------------------------------- 1 | 存放插件的主要功能部分 2 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/build.bat: -------------------------------------------------------------------------------- 1 | buildTools\NuGet.exe install buildTools\packages.config -OutputDirectory packages -Verbosity normal 2 | powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "& {if(-not (Get-Module -ListAvailable VSSetup)){Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser;Install-Module -Name VSSetup -Scope CurrentUser -Force;}Import-Module '.\packages\psake.*\tools\psake\psake.psd1';Import-Module '.\packages\Newbe.Build.Psake.*\tools\*.psm1'; invoke-psake .\build.ps1 %*; if ($LastExitCode -and $LastExitCode -ne 0) {write-host "ERROR CODE: $LastExitCode" -fore RED; exit $lastexitcode} }" 3 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/build.ps1: -------------------------------------------------------------------------------- 1 | Framework "4.6" 2 | properties { 3 | $rootNow = Resolve-Path . 4 | $nugetexe = "$rootNow\buildTools\NuGet.exe" 5 | $configuration = "Debug" 6 | $releaseBase = "$rootNow\bin" 7 | $pluginName = (Get-ChildItem *.csproj).Name.Replace(".csproj", "") 8 | } 9 | 10 | $InstalledPlatforms = Get-ChildItem NewbeLibs\Platform 11 | 12 | function Copy-FrameworkItems ($dest) { 13 | Write-Output "开始复制-框架主体" 14 | Get-ChildItem "$rootNow\NewbeLibs\Framework\" | 15 | Where-Object { 16 | $_.PsIsContainer -eq $false 17 | } | 18 | ForEach-Object { 19 | Copy-Item -Path "$rootNow\NewbeLibs\Framework\$_" -Destination $dest 20 | } 21 | Write-Output "结束复制-框架主体" 22 | } 23 | 24 | function Copy-FrameworkExtensionItems ($dest) { 25 | Write-Output "开始复制-框架扩展" 26 | if (Test-Path "$rootNow\NewbeLibs\Framework\Extensions\") { 27 | Get-ChildItem "$rootNow\NewbeLibs\Framework\Extensions\" | 28 | ForEach-Object { 29 | Copy-Item -Path "$rootNow\NewbeLibs\Framework\Extensions\$_\*" -Destination $dest -Recurse 30 | } 31 | } 32 | else { 33 | Write-Output "未发现扩展" 34 | } 35 | Write-Output "结束复制-框架扩展" 36 | } 37 | 38 | Task Default -depends Pack 39 | 40 | Task Clean -Description "清理" { 41 | Write-Output $InstalledPlatforms 42 | $InstalledPlatforms | ForEach-Object { 43 | Exec { 44 | Remove-Item "$releaseBase\$_" -Recurse -Force -ErrorAction SilentlyContinue 45 | } 46 | } 47 | } 48 | 49 | Task Init -depends Clean -Description "初始化参数" { 50 | 51 | } 52 | 53 | Task Nuget -depends Init -Description "nuget restore" { 54 | Exec { 55 | cmd /c """$nugetexe"" restore -PackagesDirectory ""$rootNow\..\packages""" 56 | } 57 | } 58 | 59 | Task Build -depends Nuget -Description "编译" { 60 | Exec { 61 | msbuild /p:Configuration=$configuration 62 | } 63 | } 64 | 65 | # 生成CQP的JSON文件 66 | function WriteCqpJsonFile ($targetFilePath) { 67 | # 加载所有的DLL 68 | Get-ChildItem "$releaseBase\$configuration\*" *.dll | ForEach-Object { 69 | [void][reflection.assembly]::LoadFile($_) 70 | } 71 | 72 | # 创建实例 73 | $pluginInfo = New-Object "$pluginName.PluginInfo" 74 | 75 | # 读取文件 76 | $jsonFile = "$rootNow\NewbeLibs\Platform\CQP\Content\Newbe.Mahua.CQP.json" 77 | $jsonText = Get-Content $jsonFile -Encoding "utf8" 78 | $json = $jsonText | ConvertFrom-Json 79 | 80 | # 内容赋值 81 | $json.name = $pluginInfo.Name 82 | $json.version = $pluginInfo.Version 83 | $json.author = $pluginInfo.Author 84 | $json.description = $pluginInfo.Description 85 | $versionNos = "" 86 | # 版本号每个部分*10,因此版本号,每个版本不能超过10 87 | $pluginInfo.version.Split(".") | ForEach-Object { 88 | $v = [string](10 *[int]$_) 89 | $versionNos += $v 90 | } 91 | $json.version_id = [int] $versionNos 92 | 93 | # 写入文件 94 | $encoding = [System.Text.Encoding]::GetEncoding("gb2312") 95 | [System.IO.File]::WriteAllText("$targetFilePath", ($json | ConvertTo-Json),$encoding) 96 | } 97 | 98 | Task PackCQP -depends Build -Description "CQP打包" { 99 | if ($InstalledPlatforms | Where-Object {$_.Name -eq "CQP"}) { 100 | New-Item -ItemType Directory "$releaseBase\CQP" 101 | New-Item -ItemType Directory "$releaseBase\CQP\$pluginName" 102 | New-Item -ItemType Directory "$releaseBase\CQP\app" 103 | Copy-FrameworkItems -dest "$releaseBase\CQP\" 104 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\CQP\CLR\*" -Destination "$releaseBase\CQP" -Recurse 105 | Copy-FrameworkExtensionItems -dest "$releaseBase\CQP\$pluginName" 106 | Copy-Item -Path "$releaseBase\$configuration\*", "$rootNow\NewbeLibs\Platform\CQP\CLR\*" -Destination "$releaseBase\CQP\$pluginName" -Recurse 107 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\CQP\Native\Newbe.Mahua.CQP.Native.dll" -Destination "$releaseBase\CQP\app\$pluginName.dll" 108 | WriteCqpJsonFile -targetFilePath "$releaseBase\CQP\app\$pluginName.json" 109 | } 110 | } 111 | 112 | Task PackAmanda -depends Build -Description "Amanda打包" { 113 | if ($InstalledPlatforms | Where-Object {$_.Name -eq "Amanda"}) { 114 | New-Item -ItemType Directory "$releaseBase\Amanda" 115 | New-Item -ItemType Directory "$releaseBase\Amanda\$pluginName" 116 | New-Item -ItemType Directory "$releaseBase\Amanda\plugin" 117 | Copy-FrameworkItems -dest "$releaseBase\Amanda\" 118 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\Amanda\CLR\*" -Destination "$releaseBase\Amanda" -Recurse 119 | Copy-FrameworkExtensionItems -dest "$releaseBase\Amanda\$pluginName" 120 | Copy-Item -Path "$releaseBase\$configuration\*", "$rootNow\NewbeLibs\Platform\Amanda\CLR\*" -Destination "$releaseBase\Amanda\$pluginName" -Recurse 121 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\Amanda\Native\Newbe.Mahua.Amanda.Native.dll" -Destination "$releaseBase\Amanda\plugin\$pluginName.plugin.dll" 122 | } 123 | } 124 | 125 | Task PackMPQ -depends Build -Description "MPQ打包" { 126 | if ($InstalledPlatforms | Where-Object {$_.Name -eq "MPQ"}) { 127 | New-Item -ItemType Directory "$releaseBase\MPQ" 128 | New-Item -ItemType Directory "$releaseBase\MPQ\$pluginName" 129 | New-Item -ItemType Directory "$releaseBase\MPQ\Plugin" 130 | Copy-FrameworkItems -dest "$releaseBase\MPQ\" 131 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\MPQ\CLR\*" -Destination "$releaseBase\MPQ" -Recurse 132 | Copy-FrameworkExtensionItems -dest "$releaseBase\MPQ\$pluginName" 133 | Copy-Item -Path "$releaseBase\$configuration\*", "$rootNow\NewbeLibs\Platform\MPQ\CLR\*" -Destination "$releaseBase\MPQ\$pluginName" -Recurse 134 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\MPQ\Native\Newbe.Mahua.MPQ.Native.dll" -Destination "$releaseBase\MPQ\Plugin\$pluginName.xx.dll" 135 | } 136 | } 137 | 138 | Task Pack -depends PackCQP, PackAmanda, PackMPQ -Description "打包" 139 | 140 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/buildTools/7z.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/buildTools/7z.exe -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/buildTools/nuget.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/buildTools/nuget.exe -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/buildTools/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/obj/Debug/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/obj/Debug/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/obj/Debug/Newbe.Mahua.Plugins.RepeaterBreaker.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | fd1c8d36fb306f53aa1951f6bc8e3888e52cee4e 2 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/obj/Debug/Newbe.Mahua.Plugins.RepeaterBreaker.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\bin\Debug\Newbe.Mahua.Plugins.RepeaterBreaker.dll 2 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\bin\Debug\Newbe.Mahua.Plugins.RepeaterBreaker.pdb 3 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\bin\Debug\Autofac.dll 4 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\bin\Debug\MediatR.dll 5 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\bin\Debug\MessagePack.dll 6 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\bin\Debug\Newbe.Mahua.dll 7 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\bin\Debug\Newbe.Mahua.PluginLoader.dll 8 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\bin\Debug\System.Threading.Tasks.Extensions.dll 9 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\bin\Debug\System.ValueTuple.dll 10 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\bin\Debug\Newbe.Mahua.pdb 11 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\bin\Debug\Newbe.Mahua.xml 12 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\bin\Debug\Newbe.Mahua.PluginLoader.pdb 13 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\obj\Debug\Newbe.Mahua.Plugins.RepeaterBreaker.csproj.CoreCompileInputs.cache 14 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\obj\Debug\Newbe.Mahua.Plugins.RepeaterBreaker.csproj.CopyComplete 15 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\obj\Debug\Newbe.Mahua.Plugins.RepeaterBreaker.dll 16 | c:\users\ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\obj\Debug\Newbe.Mahua.Plugins.RepeaterBreaker.pdb 17 | C:\Users\Ciniki\source\repos\Newbe.Mahua.Plugins.RepeaterBreaker\Newbe.Mahua.Plugins.RepeaterBreaker\obj\Debug\Newbe.Mahua.Plugins.RepeaterBreaker.csprojAssemblyReference.cache 18 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/obj/Debug/Newbe.Mahua.Plugins.RepeaterBreaker.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/obj/Debug/Newbe.Mahua.Plugins.RepeaterBreaker.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/obj/Debug/Newbe.Mahua.Plugins.RepeaterBreaker.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/obj/Debug/Newbe.Mahua.Plugins.RepeaterBreaker.dll -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/obj/Debug/Newbe.Mahua.Plugins.RepeaterBreaker.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/obj/Debug/Newbe.Mahua.Plugins.RepeaterBreaker.pdb -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/Newbe.Build.Psake.1.2.0/Newbe.Build.Psake.1.2.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/packages/Newbe.Build.Psake.1.2.0/Newbe.Build.Psake.1.2.0.nupkg -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/Newbe.Build.Psake.1.2.0/README.MD: -------------------------------------------------------------------------------- 1 | # 基于Psake进行自动化构建脚本框架 2 | 3 | 本框架采用Psake作为脚本构建框架,依托Powershell本身强大的功能,实现对开发过程自动化的功能。 4 | 5 | ## 基本步骤 6 | 7 | 1. 使用powershell进入你的项目根文件夹。 8 | 9 | 1. 在powershell中执行以下命令。 10 | 11 | ```cmd 12 | (curl http://www.newbe.pro/assets/others/scripts/newbe.build.psake.install.txt).Content | powershell 13 | ``` 14 | 15 | 1. 安装过程需要从互联网下载相关的组件,等待下载完毕即可。 16 | 17 | 1. 按照psake规范对build.ps1进行修改 18 | 19 | 1. 执行build.bat便可以执行 20 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/Newbe.Build.Psake.1.2.0/content/build.bat: -------------------------------------------------------------------------------- 1 | 2 | buildTools\NuGet.exe install buildTools\packages.config -OutputDirectory packages -Verbosity normal 3 | powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "& {if(-not (Get-Module -ListAvailable VSSetup)){Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser;Install-Module -Name VSSetup -Scope CurrentUser -Force;}Import-Module '.\packages\psake.*\tools\psake\psake.psd1';Import-Module '.\packages\Newbe.Build.Psake.*\tools\*.psm1'; invoke-psake .\build.ps1 %*; if ($LastExitCode -and $LastExitCode -ne 0) {write-host "ERROR CODE: $LastExitCode" -fore RED; exit $lastexitcode} }" 4 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/Newbe.Build.Psake.1.2.0/content/build.ps1: -------------------------------------------------------------------------------- 1 | Framework "4.6" 2 | properties { 3 | $rootNow = Resolve-Path . 4 | $nugetexe = "$rootNow\buildTools\NuGet.exe" 5 | $deployMode = "Release" 6 | $releaseDir = "$rootNow/build/$deployMode" 7 | } 8 | #默认任务 9 | Task Default -depends Build 10 | 11 | Task Clean -Description "清理上一次编译结果" { 12 | Remove-Item $releaseDir -Force -Recurse -ErrorAction SilentlyContinue 13 | } 14 | 15 | Task Init -depends Clean -Description "初始化参数" { 16 | 17 | } 18 | 19 | Task Nuget -depends Init -Description "nuget restore" { 20 | NugetRestoreAll -nugetexe $nugetexe 21 | } 22 | 23 | Task Build -depends Nuget -Description "编译所有解决方案" { 24 | RebuildAllSln -deployMode $deployMode 25 | } 26 | 27 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/Newbe.Build.Psake.1.2.0/content/buildTools/7z.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/packages/Newbe.Build.Psake.1.2.0/content/buildTools/7z.exe -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/Newbe.Build.Psake.1.2.0/content/buildTools/nuget.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/packages/Newbe.Build.Psake.1.2.0/content/buildTools/nuget.exe -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/Newbe.Build.Psake.1.2.0/content/buildTools/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/Newbe.Build.Psake.1.2.0/tools/buildFunctions.psm1: -------------------------------------------------------------------------------- 1 | #release a web 2 | function BuildWeb ($deployMode, $outDir, $csproj) { 3 | Remove-Item $outDir -Force -Recurse -ErrorAction SilentlyContinue 4 | mkdir $outDir 5 | msbuild /nologo /t:_WPPCopyWebApplication /m /v:minimal /p:Configuration=$deployMode /p:WebProjectOutputDir=$outDir $csproj 6 | } 7 | 8 | #nuget restore 9 | function NugetRestoreAll ($nugetexe) { 10 | Get-ChildItem *.sln -File -Recurse | ForEach-Object { 11 | Exec { 12 | cmd /c ""$nugetexe" restore $_" 13 | } 14 | } 15 | 16 | } 17 | 18 | function RebuildAllSln ($deployMode) { 19 | Get-ChildItem *.sln -File -Recurse | ForEach-Object { 20 | Exec { 21 | msbuild /t:"Clean;Rebuild" /p:Configuration=$deployMode /m /v:minimal /nologo $_ } 22 | } 23 | } 24 | 25 | function BuildProj ($deployMode, $csproj) { 26 | Exec { 27 | msbuild /t:"Clean;Rebuild" /p:Configuration=$deployMode /m /v:minimal /nologo $csproj 28 | } 29 | } 30 | 31 | function PackWebDeploy ($deployMode, $csproj, $publishProfile) { 32 | Exec { 33 | msbuild $csproj /p:DeployOnBuild=true /p:PublishProfile=$publishProfile /p:Configuration=$deployMode /m /v:minimal /nologo 34 | } 35 | } 36 | 37 | <# 38 | .SYNOPSIS 39 | Adds correct path to MSBuild to Path environment variable. 40 | #> 41 | function Initialize-MSBuild { 42 | [CmdletBinding()] 43 | param () 44 | Write-Output "Initialize-MSBuild is not necessary ,you can remove this function" 45 | } -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/psake.4.7.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/psake.4.7.0.nupkg -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/README.md: -------------------------------------------------------------------------------- 1 | Welcome to the psake project 2 | ============================= 3 | 4 | [![Build status][appveyor-badge]][appveyor-build] 5 | [![Build Status][travis-badge]][travis-build] 6 | [![PowerShell Gallery][psgallery-badge]][psgallery] 7 | [![Chocolatey][chocolatey-badge]][chocolatey] 8 | [![Nuget downloads][nuget-downloads]][nuget] 9 | [![Join the chat at https://gitter.im/psake/psake][gitter-badge]][gitter] 10 | 11 | psake is a build automation tool written in PowerShell. It avoids the angle-bracket tax associated with executable XML by leveraging the PowerShell syntax in your build scripts. 12 | psake has a syntax inspired by rake (aka make in Ruby) and bake (aka make in Boo), but is easier to script because it leverages your existing command-line knowledge. 13 | 14 | psake is pronounced sake – as in Japanese rice wine. It does NOT rhyme with make, bake, or rake. 15 | 16 | ## How to get started 17 | 18 | **Step 1:** Download and extract the project 19 | 20 | You will need to "unblock" the zip file before extracting - PowerShell by default does not run files downloaded from the Internet. 21 | Just right-click the zip and click on "properties" and click on the "unblock" button. 22 | 23 | **Step 2:** CD into the directory where you extracted the project (where the psake.psm1 file is) 24 | 25 | > Import-Module .\psake.psm1 26 | 27 | If you encounter the following error "Import-Module : ...psake.psm1 cannot be loaded because the execution of scripts is disabled on this system." Please see "get-help about_signing" for more details. 28 | 29 | 1. Run PowerShell as administrator 30 | 2. Set-ExecutionPolicy RemoteSigned 31 | 32 | > Get-Help Invoke-psake -Full 33 | > - this will show you help and examples of how to use psake 34 | 35 | **Step 3:** Run some examples 36 | 37 | > CD .\examples 38 | > 39 | > Invoke-psake 40 | > - This will execute the "default" task in the "psakefile.ps1" 41 | > 42 | > Invoke-psake .\psakefile.ps1 Clean 43 | > - will execute the single task in the psakefile.ps1 script 44 | 45 | **Step 4:** Set your PATH variable 46 | 47 | If you wish to use the psake command from outside of the install folder, add the folder install directory to your PATH variable. 48 | 49 | ## Release Notes 50 | 51 | You can find all the information about each release of psake in the [releases section](https://github.com/psake/psake/releases). 52 | 53 | ## How To Contribute, Collaborate, Communicate 54 | 55 | If you'd like to get involved with psake, we have discussion groups over at Google: **[psake-dev](http://groups.google.com/group/psake-dev)** **[psake-users](http://groups.google.com/group/psake-users)** 56 | 57 | Anyone can fork the main repository and submit patches, as well. And lastly, the [wiki](http://wiki.github.com/psake/psake/) and [issues list](http://github.com/psake/psake/issues) are also open for additions, edits, and discussion. 58 | 59 | Also check out the **[psake-contrib](http://github.com/psake/psake-contrib)** project for scripts, modules and functions to help you with a build. 60 | 61 | ## License 62 | 63 | psake is released under the [MIT license](http://www.opensource.org/licenses/MIT). 64 | 65 | [appveyor-badge]: https://ci.appveyor.com/api/projects/status/e8b90u1q1ex5hx9m?svg=true 66 | [appveyor-build]: https://ci.appveyor.com/project/psake/psake 67 | [travis-badge]: https://travis-ci.org/psake/psake.svg?branch=master 68 | [travis-build]: https://travis-ci.org/psake/psake 69 | [gitter-badge]: https://badges.gitter.im/Join%20Chat.svg 70 | [gitter]: https://gitter.im/psake/psake?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge 71 | [psgallery-badge]: https://img.shields.io/powershellgallery/dt/psake.svg 72 | [psgallery]: https://www.powershellgallery.com/packages/psake 73 | [chocolatey-badge]: https://img.shields.io/chocolatey/dt/psake.svg 74 | [chocolatey]: https://chocolatey.org/packages/psake 75 | [nuget-downloads]: https://img.shields.io/nuget/dt/psake.svg 76 | [nuget]: https://www.nuget.org/packages/psake/ 77 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/chocolateyInstall.ps1: -------------------------------------------------------------------------------- 1 | $nugetPath = $env:ChocolateyInstall 2 | $nugetExePath = Join-Path -Path $nuGetPath -ChildPath 'bin' 3 | $packageBatchFileName = Join-Path -Path $nugetExePath -ChildPath 'psake.bat' 4 | 5 | $psakeDir = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent 6 | #$path = ($psakeDir | Split-Path | Join-Path -ChildPath 'psake.cmd') 7 | $path = Join-Path -Path $psakeDir -ChildPath 'psake/psake.cmd' 8 | Write-Host "Adding $packageBatchFileName and pointing to $path" 9 | "@echo off 10 | ""$path"" %*" | Out-File $packageBatchFileName -encoding ASCII 11 | 12 | Write-Host "PSake is now ready. You can type 'psake' from any command line at any path. Get started by typing 'psake /?'" 13 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/chocolateyUninstall.ps1: -------------------------------------------------------------------------------- 1 | $nugetPath = $env:ChocolateyInstall 2 | $nugetExePath = Join-Path -Path $nuGetPath -ChildPath 'bin' 3 | $packageBatchFileName = Join-Path -Path $nugetExePath -ChildPath 'psake.bat' 4 | 5 | # '[p]sake' is the same as 'psake' but $Error is not polluted 6 | Remove-Module -Name [p]sake -Verbose:$false 7 | 8 | Remove-Item -Path $packageBatchFileName -Force -Confirm:$false 9 | 10 | Write-Host 'PSake has been uninstalled' 11 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package) 2 | 3 | $psakeModule = Join-Path -Path $toolsPath -ChildPath 'psake/psake.psd1' 4 | Import-Module -Name $psakeModule 5 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/license.txt: -------------------------------------------------------------------------------- 1 | psake 2 | Copyright (c) 2012-13 James Kovacs, Damian Hickey and Contributors 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/checkvariables.ps1: -------------------------------------------------------------------------------- 1 | Properties { 2 | $x = 1 3 | $y = 2 4 | } 5 | 6 | FormatTaskName "[{0}]" 7 | 8 | Task default -Depends Verify 9 | 10 | Task Verify -Description "This task verifies psake's variables" { 11 | 12 | Assert (Test-Path 'variable:\psake') "psake variable was not exported from module" 13 | 14 | Assert ($psake.ContainsKey("version")) "psake variable does not contain 'version'" 15 | Assert ($psake.ContainsKey("context")) "psake variable does not contain 'context'" 16 | Assert ($psake.ContainsKey("build_success")) "psake variable does not contain 'build_success'" 17 | Assert ($psake.ContainsKey("build_script_file")) "psake variable does not contain 'build_script_file'" 18 | Assert ($psake.ContainsKey("build_script_dir")) "psake variable does not contain 'build_script_dir'" 19 | 20 | Assert (![string]::IsNullOrEmpty($psake.version)) '$psake.version was null or empty' 21 | Assert ($psake.context -ne $null) '$psake.context was null' 22 | Assert (!$psake.build_success) '$psake.build_success should be $false' 23 | Assert ($psake.build_script_file -ne $null) '$psake.build_script_file was null' 24 | Assert ($psake.build_script_file.Name -eq "checkvariables.ps1") ("psake variable: {0} was not equal to 'checkvariables.ps1'" -f $psake.build_script_file.Name) 25 | Assert (![string]::IsNullOrEmpty($psake.build_script_dir)) '$psake.build_script_dir was null or empty' 26 | 27 | Assert ($psake.context.Peek().tasks.Count -ne 0) "psake context variable 'tasks' had length zero" 28 | Assert ($psake.context.Peek().properties.Count -ne 0) "psake context variable 'properties' had length zero" 29 | Assert ($psake.context.Peek().includes.Count -eq 0) "psake context variable 'includes' should have had length zero" 30 | Assert ($psake.context.Peek().config -ne $null) "psake context variable 'config' was null" 31 | 32 | Assert ($psake.context.Peek().currentTaskName -eq "Verify") 'psake variable: $currentTaskName was not set correctly' 33 | } -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/continueonerror.ps1: -------------------------------------------------------------------------------- 1 | Task default -Depends TaskA 2 | 3 | Task TaskA -Depends TaskB { 4 | "Task - A" 5 | } 6 | 7 | Task TaskB -Depends TaskC -ContinueOnError { 8 | "Task - B" 9 | throw "I failed on purpose!" 10 | } 11 | 12 | Task TaskC { 13 | "Task - C" 14 | } 15 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/default.ps1: -------------------------------------------------------------------------------- 1 | properties { 2 | $testMessage = 'Executed Test!' 3 | $compileMessage = 'Executed Compile!' 4 | $cleanMessage = 'Executed Clean!' 5 | } 6 | 7 | task default -depends Test 8 | 9 | task Test -depends Compile, Clean { 10 | $testMessage 11 | } 12 | 13 | task Compile -depends Clean { 14 | $compileMessage 15 | } 16 | 17 | task Clean { 18 | $cleanMessage 19 | } 20 | 21 | task ? -Description "Helper to display task info" { 22 | Write-Documentation 23 | } 24 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/formattaskname_scriptblock.ps1: -------------------------------------------------------------------------------- 1 | properties { 2 | $testMessage = 'Executed Test!' 3 | $compileMessage = 'Executed Compile!' 4 | $cleanMessage = 'Executed Clean!' 5 | } 6 | 7 | task default -depends Test 8 | 9 | formatTaskName { 10 | param($taskName) 11 | write-host $taskName -foregroundcolor Green 12 | } 13 | 14 | task Test -depends Compile, Clean { 15 | $testMessage 16 | } 17 | 18 | task Compile -depends Clean { 19 | $compileMessage 20 | } 21 | 22 | task Clean { 23 | $cleanMessage 24 | } 25 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/formattaskname_string.ps1: -------------------------------------------------------------------------------- 1 | properties { 2 | $testMessage = 'Executed Test!' 3 | $compileMessage = 'Executed Compile!' 4 | $cleanMessage = 'Executed Clean!' 5 | } 6 | 7 | task default -depends Test 8 | 9 | formatTaskName "-------{0}-------" 10 | 11 | task Test -depends Compile, Clean { 12 | $testMessage 13 | } 14 | 15 | task Compile -depends Clean { 16 | $compileMessage 17 | } 18 | 19 | task Clean { 20 | $cleanMessage 21 | } 22 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/msbuild40.ps1: -------------------------------------------------------------------------------- 1 | Framework "4.0" 2 | # Framework "4.0x64" 3 | 4 | task default -depends ShowMsBuildVersion 5 | 6 | task ShowMsBuildVersion { 7 | msbuild /version 8 | } -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/nested.ps1: -------------------------------------------------------------------------------- 1 | Properties { 2 | $x = 1 3 | } 4 | 5 | Task default -Depends RunNested1, RunNested2, CheckX 6 | 7 | Task RunNested1 { 8 | Invoke-psake .\nested\nested1.ps1 9 | } 10 | 11 | Task RunNested2 { 12 | Invoke-psake .\nested\nested2.ps1 13 | } 14 | 15 | Task CheckX{ 16 | Assert ($x -eq 1) '$x was not 1' 17 | } 18 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/nested/nested1.ps1: -------------------------------------------------------------------------------- 1 | Properties { 2 | $x = 100 3 | } 4 | 5 | Task default -Depends Nested1CheckX 6 | 7 | Task Nested1CheckX{ 8 | Assert ($x -eq 100) '$x was not 100' 9 | } 10 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/nested/nested2.ps1: -------------------------------------------------------------------------------- 1 | Properties { 2 | $x = 200 3 | } 4 | 5 | Task default -Depends Nested2CheckX 6 | 7 | Task Nested2CheckX{ 8 | Assert ($x -eq 200) '$x was not 200' 9 | } 10 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/paralleltasks.ps1: -------------------------------------------------------------------------------- 1 | Task ParallelTask1 { 2 | "ParallelTask1" 3 | } 4 | 5 | Task ParallelTask2 { 6 | "ParallelTask2" 7 | } 8 | 9 | Task ParallelNested1andNested2 { 10 | $jobArray = @() 11 | @("ParallelTask1", "ParallelTask2") | ForEach-Object { 12 | $jobArray += Start-Job { 13 | param($scriptFile, $taskName) 14 | Invoke-psake $scriptFile -taskList $taskName 15 | } -ArgumentList $psake.build_script_file.FullName, $_ 16 | } 17 | Wait-Job $jobArray | Receive-Job 18 | } 19 | 20 | Task default -depends ParallelNested1andNested2 -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/parameters.ps1: -------------------------------------------------------------------------------- 1 | properties { 2 | $my_property = $p1 + $p2 3 | } 4 | 5 | task default -depends TestParams 6 | 7 | task TestParams { 8 | Assert ($my_property -ne $null) "`$my_property should not be null. Run with -parameters @{'p1' = 'v1'; 'p2' = 'v2'}" 9 | } 10 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/passingParametersString/build.Release.Version.bat: -------------------------------------------------------------------------------- 1 | powershell -Command "& {Import-Module .\..\..\psake.psm1; Invoke-psake .\parameters.ps1 -parameters @{"buildConfiguration"='Release';} }" 2 | 3 | Pause -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/passingParametersString/parameters.ps1: -------------------------------------------------------------------------------- 1 | properties { 2 | $buildOutputPath = ".\bin\$buildConfiguration" 3 | } 4 | 5 | task default -depends DoRelease 6 | 7 | task DoRelease { 8 | Assert ("$buildConfiguration" -ne $null) "buildConfiguration should not have been null" 9 | Assert ("$buildConfiguration" -eq 'Release') "buildConfiguration=[$buildConfiguration] should have been 'Release'" 10 | 11 | Write-Host "" 12 | Write-Host "" 13 | Write-Host "" 14 | Write-Host -NoNewline "Would build output into path " 15 | Write-Host -NoNewline -ForegroundColor Green "$buildOutputPath" 16 | Write-Host -NoNewline " for build configuration " 17 | Write-Host -ForegroundColor Green "$buildConfiguration" 18 | Write-Host -NoNewline "." 19 | Write-Host "" 20 | Write-Host "" 21 | Write-Host "" 22 | } 23 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/preandpostaction.ps1: -------------------------------------------------------------------------------- 1 | task default -depends Test 2 | 3 | task Test -depends Compile, Clean -PreAction {"Pre-Test"} -Action { 4 | "Test" 5 | } -PostAction {"Post-Test"} 6 | 7 | task Compile -depends Clean { 8 | "Compile" 9 | } 10 | 11 | task Clean { 12 | "Clean" 13 | } -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/preandpostcondition.ps1: -------------------------------------------------------------------------------- 1 | properties { 2 | $runTaskA = $false 3 | $taskBSucceded = $true 4 | } 5 | 6 | task default -depends TaskC 7 | 8 | task TaskA -precondition { $runTaskA -eq $true } { 9 | "TaskA executed" 10 | } 11 | 12 | task TaskB -postcondition { $taskBSucceded -eq $true } { 13 | "TaskB executed" 14 | } 15 | 16 | task TaskC -depends TaskA,TaskB { 17 | "TaskC executed." 18 | } -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/properties.ps1: -------------------------------------------------------------------------------- 1 | properties { 2 | $x = $null 3 | $y = $null 4 | $z = $null 5 | } 6 | 7 | task default -depends TestProperties 8 | 9 | task TestProperties { 10 | Assert ($x -ne $null) "x should not be null. Run with -properties @{'x' = '1'; 'y' = '2'}" 11 | Assert ($y -ne $null) "y should not be null. Run with -properties @{'x' = '1'; 'y' = '2'}" 12 | Assert ($z -eq $null) "z should be null" 13 | } -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/requiredvariables.ps1: -------------------------------------------------------------------------------- 1 | properties { 2 | $x = $null 3 | $y = $null 4 | $z = $null 5 | } 6 | 7 | task default -depends TestRequiredVariables 8 | 9 | # you can put arguments to task in multiple lines using ` 10 | task TestRequiredVariables ` 11 | -description "This task shows how to make a variable required to run task. Run this script with -properties @{x = 1; y = 2; z = 3}" ` 12 | -requiredVariables x, y, z ` 13 | { 14 | } 15 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/examples/tasksetupandteardown.ps1: -------------------------------------------------------------------------------- 1 | TaskSetup { 2 | "Executing task setup" 3 | } 4 | 5 | TaskTearDown { 6 | "Executing task tear down" 7 | } 8 | 9 | Task default -depends TaskB 10 | 11 | Task TaskA { 12 | "TaskA executed" 13 | } 14 | 15 | Task TaskB -depends TaskA { 16 | "TaskB executed" 17 | } 18 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/CleanupEnvironment.ps1: -------------------------------------------------------------------------------- 1 | function CleanupEnvironment { 2 | if ($psake.context.Count -gt 0) { 3 | $currentContext = $psake.context.Peek() 4 | $env:path = $currentContext.originalEnvPath 5 | Set-Location $currentContext.originalDirectory 6 | $global:ErrorActionPreference = $currentContext.originalErrorActionPreference 7 | [void] $psake.context.Pop() 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/ConfigureBuildEnvironment.ps1: -------------------------------------------------------------------------------- 1 | 2 | function ConfigureBuildEnvironment { 3 | if (!(Get-Variable -Name IsWindows -ErrorAction SilentlyContinue) -or $IsWindows) { 4 | $framework = $psake.context.peek().config.framework 5 | if ($framework -cmatch '^((?:\d+\.\d+)(?:\.\d+){0,1})(x86|x64){0,1}$') { 6 | $versionPart = $matches[1] 7 | $bitnessPart = $matches[2] 8 | } 9 | else { 10 | throw ($msgs.error_invalid_framework -f $framework) 11 | } 12 | $versions = $null 13 | $buildToolsVersions = $null 14 | switch ($versionPart) { 15 | '1.0' { 16 | $versions = @('v1.0.3705') 17 | } 18 | '1.1' { 19 | $versions = @('v1.1.4322') 20 | } 21 | '1.1.0' { 22 | $versions = @() 23 | } 24 | '2.0' { 25 | $versions = @('v2.0.50727') 26 | } 27 | '2.0.0' { 28 | $versions = @() 29 | } 30 | '3.0' { 31 | $versions = @('v2.0.50727') 32 | } 33 | '3.5' { 34 | $versions = @('v3.5', 'v2.0.50727') 35 | } 36 | '4.0' { 37 | $versions = @('v4.0.30319') 38 | } 39 | {($_ -eq '4.5') -or ($_ -eq '4.5.1') -or ($_ -eq '4.5.2')} { 40 | $versions = @('v4.0.30319') 41 | $buildToolsVersions = @('15.0', '14.0', '12.0') 42 | } 43 | {($_ -eq '4.6') -or ($_ -eq '4.6.1') -or ($_ -eq '4.6.2')} { 44 | $versions = @('v4.0.30319') 45 | $buildToolsVersions = @('15.0', '14.0') 46 | } 47 | {($_ -eq '4.7') -or ($_ -eq '4.7.1')} { 48 | $versions = @('v4.0.30319') 49 | $buildToolsVersions = @('15.0') 50 | } 51 | 52 | default { 53 | throw ($msgs.error_unknown_framework -f $versionPart, $framework) 54 | } 55 | } 56 | 57 | $bitness = 'Framework' 58 | if ($versionPart -ne '1.0' -and $versionPart -ne '1.1') { 59 | switch ($bitnessPart) { 60 | 'x86' { 61 | $bitness = 'Framework' 62 | $buildToolsKey = 'MSBuildToolsPath32' 63 | } 64 | 'x64' { 65 | $bitness = 'Framework64' 66 | $buildToolsKey = 'MSBuildToolsPath' 67 | } 68 | { [string]::IsNullOrEmpty($_) } { 69 | $ptrSize = [System.IntPtr]::Size 70 | switch ($ptrSize) { 71 | 4 { 72 | $bitness = 'Framework' 73 | $buildToolsKey = 'MSBuildToolsPath32' 74 | } 75 | 8 { 76 | $bitness = 'Framework64' 77 | $buildToolsKey = 'MSBuildToolsPath' 78 | } 79 | default { 80 | throw ($msgs.error_unknown_pointersize -f $ptrSize) 81 | } 82 | } 83 | } 84 | default { 85 | throw ($msgs.error_unknown_bitnesspart -f $bitnessPart, $framework) 86 | } 87 | } 88 | } 89 | 90 | $frameworkDirs = @() 91 | if ($buildToolsVersions -ne $null) { 92 | foreach($ver in $buildToolsVersions) { 93 | if ($ver -eq "15.0") { 94 | if ((Get-Module -Name VSSetup -ListAvailable) -eq $null) { 95 | WriteColoredOutput ($msgs.warning_missing_vsssetup_module -f $ver) -foregroundcolor Yellow 96 | continue 97 | } 98 | 99 | Import-Module VSSetup 100 | 101 | # borrowed from nightroman https://github.com/nightroman/Invoke-Build 102 | if ($vsInstances = Get-VSSetupInstance) { 103 | $vs = @($vsInstances | Select-VSSetupInstance -Version '[15.0,16.0)' -Require Microsoft.Component.MSBuild) 104 | if ($vs) { 105 | if ($buildToolsKey -eq 'MSBuildToolsPath32') { 106 | $frameworkDirs += Join-Path ($vs[0].InstallationPath) MSBuild\15.0\Bin 107 | } 108 | else { 109 | $frameworkDirs += Join-Path ($vs[0].InstallationPath) MSBuild\15.0\Bin\amd64 110 | } 111 | } 112 | 113 | $vs = @($vsInstances | Select-VSSetupInstance -Version '[15.0,16.0)' -Product Microsoft.VisualStudio.Product.BuildTools) 114 | if ($vs) { 115 | if ($buildToolsKey -eq 'MSBuildToolsPath32') { 116 | $frameworkDirs += Join-Path ($vs[0].InstallationPath) MSBuild\15.0\Bin 117 | } 118 | else { 119 | $frameworkDirs += Join-Path ($vs[0].InstallationPath) MSBuild\15.0\Bin\amd64 120 | } 121 | } 122 | } 123 | else { 124 | if (!($root = ${env:ProgramFiles(x86)})) {$root = $env:ProgramFiles} 125 | if (Test-Path -LiteralPath "$root\Microsoft Visual Studio\2017") { 126 | if ($buildToolsKey -eq 'MSBuildToolsPath32') { 127 | $rp = @(Resolve-Path "$root\Microsoft Visual Studio\2017\*\MSBuild\15.0\Bin" -ErrorAction SilentlyContinue) 128 | } 129 | else { 130 | $rp = @(Resolve-Path "$root\Microsoft Visual Studio\2017\*\MSBuild\15.0\Bin\amd64" -ErrorAction SilentlyContinue) 131 | } 132 | 133 | if ($rp) { 134 | $frameworkDirs += $rp[-1].ProviderPath 135 | } 136 | } 137 | } 138 | } 139 | elseif (Test-Path "HKLM:\SOFTWARE\Microsoft\MSBuild\ToolsVersions\$ver") { 140 | $frameworkDirs += (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\MSBuild\ToolsVersions\$ver" -Name $buildToolsKey).$buildToolsKey 141 | } 142 | } 143 | } 144 | 145 | $frameworkDirs = $frameworkDirs + @($versions | ForEach-Object { "$env:windir\Microsoft.NET\$bitness\$_\" }) 146 | for ($i = 0; $i -lt $frameworkDirs.Count; $i++) { 147 | $dir = $frameworkDirs[$i] 148 | if ($dir -Match "\$\(Registry:HKEY_LOCAL_MACHINE(.*?)@(.*)\)") { 149 | $key = "HKLM:" + $matches[1] 150 | $name = $matches[2] 151 | $dir = (Get-ItemProperty -Path $key -Name $name).$name 152 | $frameworkDirs[$i] = $dir 153 | } 154 | } 155 | 156 | $frameworkDirs | ForEach-Object { Assert (test-path $_ -pathType Container) ($msgs.error_no_framework_install_dir_found -f $_)} 157 | 158 | $env:PATH = ($frameworkDirs -join ";") + ";$env:PATH" 159 | } 160 | 161 | # if any error occurs in a PS function then "stop" processing immediately 162 | # this does not effect any external programs that return a non-zero exit code 163 | $global:ErrorActionPreference = "Stop" 164 | } 165 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/CreateConfigurationForNewContext.ps1: -------------------------------------------------------------------------------- 1 | function CreateConfigurationForNewContext { 2 | param( 3 | [string] $buildFile, 4 | [string] $framework 5 | ) 6 | 7 | $previousConfig = GetCurrentConfigurationOrDefault 8 | 9 | $config = new-object psobject -property @{ 10 | buildFileName = $previousConfig.buildFileName; 11 | framework = $previousConfig.framework; 12 | taskNameFormat = $previousConfig.taskNameFormat; 13 | verboseError = $previousConfig.verboseError; 14 | coloredOutput = $previousConfig.coloredOutput; 15 | modules = $previousConfig.modules; 16 | moduleScope = $previousConfig.moduleScope; 17 | } 18 | 19 | if ($framework) { 20 | $config.framework = $framework; 21 | } 22 | 23 | if ($buildFile) { 24 | $config.buildFileName = $buildFile; 25 | } 26 | 27 | return $config 28 | } 29 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/ExecuteInBuildFileScope.ps1: -------------------------------------------------------------------------------- 1 | function ExecuteInBuildFileScope { 2 | param([string]$buildFile, $module, [scriptblock]$sb) 3 | 4 | # Execute the build file to set up the tasks and defaults 5 | Assert (test-path $buildFile -pathType Leaf) ($msgs.error_build_file_not_found -f $buildFile) 6 | 7 | $psake.build_script_file = get-item $buildFile 8 | $psake.build_script_dir = $psake.build_script_file.DirectoryName 9 | $psake.build_success = $false 10 | 11 | $psake.context.push(@{ 12 | "taskSetupScriptBlock" = {}; 13 | "taskTearDownScriptBlock" = {}; 14 | "executedTasks" = new-object System.Collections.Stack; 15 | "callStack" = new-object System.Collections.Stack; 16 | "originalEnvPath" = $env:path; 17 | "originalDirectory" = get-location; 18 | "originalErrorActionPreference" = $global:ErrorActionPreference; 19 | "tasks" = @{}; 20 | "aliases" = @{}; 21 | "properties" = @(); 22 | "includes" = new-object System.Collections.Queue; 23 | "config" = CreateConfigurationForNewContext $buildFile $framework 24 | }) 25 | 26 | LoadConfiguration $psake.build_script_dir 27 | 28 | set-location $psake.build_script_dir 29 | 30 | LoadModules 31 | 32 | $frameworkOldValue = $framework 33 | . $psake.build_script_file.FullName 34 | 35 | $currentContext = $psake.context.Peek() 36 | 37 | if ($framework -ne $frameworkOldValue) { 38 | writecoloredoutput $msgs.warning_deprecated_framework_variable -foregroundcolor Yellow 39 | $currentContext.config.framework = $framework 40 | } 41 | 42 | ConfigureBuildEnvironment 43 | 44 | while ($currentContext.includes.Count -gt 0) { 45 | $includeFilename = $currentContext.includes.Dequeue() 46 | . $includeFilename 47 | } 48 | 49 | & $sb $currentContext $module 50 | } 51 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/Get-DefaultBuildFile.ps1: -------------------------------------------------------------------------------- 1 | # Attempt to find the default build file given the config_default of 2 | # buildFileName and legacyBuildFileName. If neither exist optionally 3 | # return the buildFileName or $null 4 | function Get-DefaultBuildFile { 5 | param( 6 | [boolean] $UseDefaultIfNoneExist = $true 7 | ) 8 | 9 | if (test-path $psake.config_default.buildFileName -pathType Leaf) { 10 | Write-Output $psake.config_default.buildFileName 11 | } elseif (test-path $psake.config_default.legacyBuildFileName -pathType Leaf) { 12 | Write-Warning "The default configuration file of default.ps1 is deprecated. Please use psakefile.ps1" 13 | Write-Output $psake.config_default.legacyBuildFileName 14 | } elseif ($UseDefaultIfNoneExist) { 15 | Write-Output $psake.config_default.buildFileName 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/GetCurrentConfigurationOrDefault.ps1: -------------------------------------------------------------------------------- 1 | function GetCurrentConfigurationOrDefault() { 2 | if ($psake.context.count -gt 0) { 3 | return $psake.context.peek().config 4 | } else { 5 | return $psake.config_default 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/GetTasksFromContext.ps1: -------------------------------------------------------------------------------- 1 | function GetTasksFromContext($currentContext) { 2 | 3 | $docs = $currentContext.tasks.Keys | foreach-object { 4 | 5 | $task = $currentContext.tasks.$_ 6 | new-object PSObject -property @{ 7 | Name = $task.Name; 8 | Alias = $task.Alias; 9 | Description = $task.Description; 10 | DependsOn = $task.DependsOn; 11 | } 12 | } 13 | 14 | return $docs 15 | } 16 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/LoadConfiguration.ps1: -------------------------------------------------------------------------------- 1 | function LoadConfiguration { 2 | param( 3 | [string] $configdir = $PSScriptRoot 4 | ) 5 | 6 | $psakeConfigFilePath = (join-path $configdir "psake-config.ps1") 7 | 8 | if (test-path $psakeConfigFilePath -pathType Leaf) { 9 | try { 10 | $config = GetCurrentConfigurationOrDefault 11 | . $psakeConfigFilePath 12 | } catch { 13 | throw "Error Loading Configuration from psake-config.ps1: " + $_ 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/LoadModules.ps1: -------------------------------------------------------------------------------- 1 | function LoadModules { 2 | $currentConfig = $psake.context.peek().config 3 | if ($currentConfig.modules) { 4 | 5 | $scope = $currentConfig.moduleScope 6 | 7 | $global = [string]::Equals($scope, "global", [StringComparison]::CurrentCultureIgnoreCase) 8 | 9 | $currentConfig.modules | foreach { 10 | resolve-path $_ | foreach { 11 | "Loading module: $_" 12 | $module = import-module $_ -passthru -DisableNameChecking -global:$global 13 | if (!$module) { 14 | throw ($msgs.error_loading_module -f $_.Name) 15 | } 16 | } 17 | } 18 | "" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/ResolveError.ps1: -------------------------------------------------------------------------------- 1 | # borrowed from Jeffrey Snover http://blogs.msdn.com/powershell/archive/2006/12/07/resolve-error.aspx 2 | # modified to better handle SQL errors 3 | function ResolveError 4 | { 5 | [CmdletBinding()] 6 | param( 7 | [Parameter(ValueFromPipeline=$true)] 8 | $ErrorRecord=$Error[0], 9 | [Switch] 10 | $Short 11 | ) 12 | 13 | process { 14 | if ($_ -eq $null) { $_ = $ErrorRecord } 15 | $ex = $_.Exception 16 | 17 | if (-not $Short) { 18 | $error_message = "`nErrorRecord:{0}ErrorRecord.InvocationInfo:{1}Exception:`n{2}" 19 | $formatted_errorRecord = $_ | format-list * -force | out-string 20 | $formatted_invocationInfo = $_.InvocationInfo | format-list * -force | out-string 21 | $formatted_exception = '' 22 | 23 | $i = 0 24 | while ($ex -ne $null) { 25 | $i++ 26 | $formatted_exception += ("$i" * 70) + "`n" + 27 | ($ex | format-list * -force | out-string) + "`n" 28 | $ex = $ex | SelectObjectWithDefault -Name 'InnerException' -Value $null 29 | } 30 | 31 | return $error_message -f $formatted_errorRecord, $formatted_invocationInfo, $formatted_exception 32 | } 33 | 34 | $lastException = @() 35 | while ($ex -ne $null) { 36 | $lastMessage = $ex | SelectObjectWithDefault -Name 'Message' -Value '' 37 | $lastException += ($lastMessage -replace "`n", '') 38 | if ($ex -is [Data.SqlClient.SqlException]) { 39 | $lastException += "(Line [$($ex.LineNumber)] " + 40 | "Procedure [$($ex.Procedure)] Class [$($ex.Class)] " + 41 | " Number [$($ex.Number)] State [$($ex.State)] )" 42 | } 43 | $ex = $ex | SelectObjectWithDefault -Name 'InnerException' -Value $null 44 | } 45 | $shortException = $lastException -join ' --> ' 46 | 47 | $header = $null 48 | $current = $_ 49 | $header = (($_.InvocationInfo | 50 | SelectObjectWithDefault -Name 'PositionMessage' -Value '') -replace "`n", ' '), 51 | ($_ | SelectObjectWithDefault -Name 'Message' -Value ''), 52 | ($_ | SelectObjectWithDefault -Name 'Exception' -Value '') | 53 | ? { -not [String]::IsNullOrEmpty($_) } | 54 | Select -First 1 55 | 56 | $delimiter = '' 57 | if ((-not [String]::IsNullOrEmpty($header)) -and 58 | (-not [String]::IsNullOrEmpty($shortException))) 59 | { $delimiter = ' [<<==>>] ' } 60 | 61 | return "$($header)$($delimiter)Exception: $($shortException)" 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/SelectObjectWithDefault.ps1: -------------------------------------------------------------------------------- 1 | function SelectObjectWithDefault 2 | { 3 | [CmdletBinding()] 4 | param( 5 | [Parameter(ValueFromPipeline=$true)] 6 | [PSObject] 7 | $InputObject, 8 | [string] 9 | $Name, 10 | $Value 11 | ) 12 | 13 | process { 14 | if ($_ -eq $null) { $Value } 15 | elseif ($_ | Get-Member -Name $Name) { 16 | $_.$Name 17 | } 18 | elseif (($_ -is [Hashtable]) -and ($_.Keys -contains $Name)) { 19 | $_.$Name 20 | } 21 | else { $Value } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/WriteColoredOutput.ps1: -------------------------------------------------------------------------------- 1 | function WriteColoredOutput { 2 | param( 3 | [string] $message, 4 | [System.ConsoleColor] $foregroundcolor 5 | ) 6 | 7 | $currentConfig = GetCurrentConfigurationOrDefault 8 | if ($currentConfig.coloredOutput -eq $true) { 9 | if (($Host.UI -ne $null) -and ($Host.UI.RawUI -ne $null) -and ($Host.UI.RawUI.ForegroundColor -ne $null)) { 10 | $previousColor = $Host.UI.RawUI.ForegroundColor 11 | $Host.UI.RawUI.ForegroundColor = $foregroundcolor 12 | } 13 | } 14 | 15 | $message 16 | 17 | if ($previousColor -ne $null) { 18 | $Host.UI.RawUI.ForegroundColor = $previousColor 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/WriteDocumentation.ps1: -------------------------------------------------------------------------------- 1 | function WriteDocumentation($showDetailed) { 2 | 3 | $currentContext = $psake.context.Peek() 4 | 5 | if ($currentContext.tasks.default) { 6 | $defaultTaskDependencies = $currentContext.tasks.default.DependsOn 7 | } else { 8 | $defaultTaskDependencies = @() 9 | } 10 | 11 | $docs = GetTasksFromContext $currentContext | 12 | Where {$_.Name -ne 'default'} | 13 | ForEach { 14 | $isDefault = $null 15 | if ($defaultTaskDependencies -contains $_.Name) { 16 | $isDefault = $true 17 | } 18 | return Add-Member -InputObject $_ 'Default' $isDefault -PassThru 19 | } 20 | 21 | if ($showDetailed) { 22 | $docs | Sort-Object 'Name' | format-list -property Name,Alias,Description,@{Label="Depends On";Expression={$_.DependsOn -join ', '}},Default 23 | } else { 24 | $docs | Sort-Object 'Name' | format-table -autoSize -wrap -property Name,Alias,@{Label="Depends On";Expression={$_.DependsOn -join ', '}},Default,Description 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/private/WriteTaskTimeSummary.ps1: -------------------------------------------------------------------------------- 1 | function WriteTaskTimeSummary($invokePsakeDuration) { 2 | if ($psake.context.count -gt 0) { 3 | $currentContext = $psake.context.Peek() 4 | if ($currentContext.config.taskNameFormat -is [ScriptBlock]) { 5 | & $currentContext.config.taskNameFormat "Build Time Report" 6 | } elseif ($currentContext.config.taskNameFormat -ne "Executing {0}") { 7 | $currentContext.config.taskNameFormat -f "Build Time Report" 8 | } 9 | else { 10 | "-" * 70 11 | "Build Time Report" 12 | "-" * 70 13 | } 14 | $list = @() 15 | while ($currentContext.executedTasks.Count -gt 0) { 16 | $taskKey = $currentContext.executedTasks.Pop() 17 | $task = $currentContext.tasks.$taskKey 18 | if ($taskKey -eq "default") { 19 | continue 20 | } 21 | $list += new-object PSObject -property @{ 22 | Name = $task.Name; 23 | Duration = $task.Duration.ToString("hh\:mm\:ss\.fff") 24 | } 25 | } 26 | [Array]::Reverse($list) 27 | $list += new-object PSObject -property @{ 28 | Name = "Total:"; 29 | Duration = $invokePsakeDuration.ToString("hh\:mm\:ss\.fff") 30 | } 31 | # using "out-string | where-object" to filter out the blank line that format-table prepends 32 | $list | format-table -autoSize -property Name,Duration | out-string -stream | where-object { $_ } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/psake-config.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | ------------------------------------------------------------------- 3 | Defaults 4 | ------------------------------------------------------------------- 5 | $config.buildFileName="psakefile.ps1" 6 | $config.legacyBuildFileName="default.ps1" 7 | $config.framework = "4.0" 8 | $config.taskNameFormat="Executing {0}" 9 | $config.verboseError=$false 10 | $config.coloredOutput = $true 11 | $config.modules=$null 12 | 13 | ------------------------------------------------------------------- 14 | Load modules from .\modules folder and from file my_module.psm1 15 | ------------------------------------------------------------------- 16 | $config.modules=(".\modules\*.psm1",".\my_module.psm1") 17 | 18 | ------------------------------------------------------------------- 19 | Use scriptblock for taskNameFormat 20 | ------------------------------------------------------------------- 21 | $config.taskNameFormat= { param($taskName) "Executing $taskName at $(get-date)" } 22 | #> 23 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/psake.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem Helper script for those who want to run psake from cmd.exe 3 | rem Example run from cmd.exe: 4 | rem psake "psakefile.ps1" "BuildHelloWord" "4.0" 5 | 6 | if '%1'=='/?' goto help 7 | if '%1'=='-help' goto help 8 | if '%1'=='-h' goto help 9 | 10 | powershell -NoProfile -ExecutionPolicy Bypass -Command "& '%~dp0\psake.ps1' %*; if ($psake.build_success -eq $false) { exit 1 } else { exit 0 }" 11 | exit /B %errorlevel% 12 | 13 | :help 14 | powershell -NoProfile -ExecutionPolicy Bypass -Command "& '%~dp0\psake.ps1' -help" 15 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/psake.ps1: -------------------------------------------------------------------------------- 1 | # Helper script for those who want to run psake without importing the module. 2 | # Example run from PowerShell: 3 | # .\psake.ps1 "psakefile.ps1" "BuildHelloWord" "4.0" 4 | 5 | # Must match parameter definitions for psake.psm1/invoke-psake 6 | # otherwise named parameter binding fails 7 | [cmdletbinding()] 8 | param( 9 | [Parameter(Position = 0, Mandatory = $false)] 10 | [string]$buildFile, 11 | 12 | [Parameter(Position = 1, Mandatory = $false)] 13 | [string[]]$taskList = @(), 14 | 15 | [Parameter(Position = 2, Mandatory = $false)] 16 | [string]$framework, 17 | 18 | [Parameter(Position = 3, Mandatory = $false)] 19 | [switch]$docs = $false, 20 | 21 | [Parameter(Position = 4, Mandatory = $false)] 22 | [System.Collections.Hashtable]$parameters = @{}, 23 | 24 | [Parameter(Position = 5, Mandatory = $false)] 25 | [System.Collections.Hashtable]$properties = @{}, 26 | 27 | [Parameter(Position = 6, Mandatory = $false)] 28 | [alias("init")] 29 | [scriptblock]$initialization = {}, 30 | 31 | [Parameter(Position = 7, Mandatory = $false)] 32 | [switch]$nologo = $false, 33 | 34 | [Parameter(Position = 8, Mandatory = $false)] 35 | [switch]$help = $false, 36 | 37 | [Parameter(Position = 9, Mandatory = $false)] 38 | [string]$scriptPath, 39 | 40 | [Parameter(Position = 10, Mandatory = $false)] 41 | [switch]$detailedDocs = $false, 42 | 43 | [Parameter(Position = 11, Mandatory = $false)] 44 | [switch]$notr = $false 45 | ) 46 | 47 | # setting $scriptPath here, not as default argument, to support calling as "powershell -File psake.ps1" 48 | if (-not $scriptPath) { 49 | $scriptPath = $(Split-Path -Path $MyInvocation.MyCommand.path -Parent) 50 | } 51 | 52 | # '[p]sake' is the same as 'psake' but $Error is not polluted 53 | Remove-Module -Name [p]sake -Verbose:$false 54 | Import-Module -Name (Join-Path -Path $scriptPath -ChildPath 'psake.psd1') -Verbose:$false 55 | if ($help) { 56 | Get-Help -Name Invoke-psake -Full 57 | return 58 | } 59 | 60 | if ($buildFile -and (-not (Test-Path -Path $buildFile))) { 61 | $absoluteBuildFile = (Join-Path -Path $scriptPath -ChildPath $buildFile) 62 | if (Test-path -Path $absoluteBuildFile) { 63 | $buildFile = $absoluteBuildFile 64 | } 65 | } 66 | 67 | Invoke-psake $buildFile $taskList $framework $docs $parameters $properties $initialization $nologo $detailedDocs $notr 68 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/psake.psd1: -------------------------------------------------------------------------------- 1 | @{ 2 | RootModule = 'psake.psm1' 3 | ModuleVersion = '4.7.0' 4 | GUID = 'cfb53216-072f-4a46-8975-ff7e6bda05a5' 5 | Author = 'James Kovacs' 6 | Copyright = 'Copyright (c) 2010-17 James Kovacs, Damian Hickey and Contributors' 7 | PowerShellVersion = '3.0' 8 | Description = 'psake is a build automation tool written in PowerShell.' 9 | FunctionsToExport = @('Invoke-psake', 10 | 'Invoke-Task', 11 | 'Get-PSakeScriptTasks', 12 | 'Task', 13 | 'Properties', 14 | 'Include', 15 | 'FormatTaskName', 16 | 'TaskSetup', 17 | 'TaskTearDown', 18 | 'Framework', 19 | 'Assert', 20 | 'Exec') 21 | VariablesToExport = 'psake' 22 | PrivateData = @{ 23 | PSData = @{ 24 | LicenseUri = 'https://github.com/psake/psake/blob/master/license.txt' 25 | ProjectUri = 'https://github.com/psake/psake' 26 | Tags = @('Build', 'Task') 27 | IconUri = 'https://raw.githubusercontent.com/psake/graphics/master/png/psake-single-icon-teal-bg-256x256.png' 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/psake.psm1: -------------------------------------------------------------------------------- 1 | # psake 2 | # Copyright (c) 2012 James Kovacs 3 | # Permission is hereby granted, free of charge, to any person obtaining a copy 4 | # of this software and associated documentation files (the "Software"), to deal 5 | # in the Software without restriction, including without limitation the rights 6 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | # copies of the Software, and to permit persons to whom the Software is 8 | # furnished to do so, subject to the following conditions: 9 | # 10 | # The above copyright notice and this permission notice shall be included in 11 | # all copies or substantial portions of the Software. 12 | # 13 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | # THE SOFTWARE. 20 | 21 | #Requires -Version 2.0 22 | 23 | if ($PSVersionTable.PSVersion.Major -ge 3) 24 | { 25 | $script:IgnoreError = 'Ignore' 26 | } 27 | else 28 | { 29 | $script:IgnoreError = 'SilentlyContinue' 30 | } 31 | 32 | # Dot source public/private functions 33 | $public = @(Get-ChildItem -Path (Join-Path -Path $PSScriptRoot -ChildPath 'public/*.ps1') -Recurse -ErrorAction Stop) 34 | $private = @(Get-ChildItem -Path (Join-Path -Path $PSScriptRoot -ChildPath 'private/*.ps1') -Recurse -ErrorAction Stop) 35 | foreach ($import in @($public + $private)) { 36 | try { 37 | . $import.FullName 38 | } 39 | catch { 40 | throw "Unable to dot source [$($import.FullName)]" 41 | } 42 | } 43 | 44 | DATA msgs { 45 | convertfrom-stringdata @' 46 | error_invalid_task_name = Task name should not be null or empty string. 47 | error_task_name_does_not_exist = Task {0} does not exist. 48 | error_circular_reference = Circular reference found for task {0}. 49 | error_missing_action_parameter = Action parameter must be specified when using PreAction or PostAction parameters for task {0}. 50 | error_corrupt_callstack = Call stack was corrupt. Expected {0}, but got {1}. 51 | error_invalid_framework = Invalid .NET Framework version, {0} specified. 52 | error_unknown_framework = Unknown .NET Framework version, {0} specified in {1}. 53 | error_unknown_pointersize = Unknown pointer size ({0}) returned from System.IntPtr. 54 | error_unknown_bitnesspart = Unknown .NET Framework bitness, {0}, specified in {1}. 55 | error_no_framework_install_dir_found = No .NET Framework installation directory found at {0}. 56 | error_bad_command = Error executing command {0}. 57 | error_default_task_cannot_have_action = 'default' task cannot specify an action. 58 | error_duplicate_task_name = Task {0} has already been defined. 59 | error_duplicate_alias_name = Alias {0} has already been defined. 60 | error_invalid_include_path = Unable to include {0}. File not found. 61 | error_build_file_not_found = Could not find the build file {0}. 62 | error_no_default_task = 'default' task required. 63 | error_loading_module = Error loading module {0}. 64 | warning_deprecated_framework_variable = Warning: Using global variable $framework to set .NET framework version used is deprecated. Instead use Framework function or configuration file psake-config.ps1. 65 | warning_missing_vsssetup_module = Warning: Cannot find build tools version {0} without the module VSSetup. You can install this module with the command: Install-Module VSSetup -Scope CurrentUser 66 | required_variable_not_set = Variable {0} must be set to run task {1}. 67 | postcondition_failed = Postcondition failed for task {0}. 68 | precondition_was_false = Precondition was false, not executing task {0}. 69 | continue_on_error = Error in task {0}. {1} 70 | build_success = Build Succeeded! 71 | '@ 72 | } 73 | 74 | Import-LocalizedData -BindingVariable msgs -FileName messages.psd1 -ErrorAction $script:IgnoreError 75 | 76 | $scriptDir = Split-Path $MyInvocation.MyCommand.Path 77 | $manifestPath = Join-Path $scriptDir psake.psd1 78 | $manifest = Test-ModuleManifest -Path $manifestPath -WarningAction SilentlyContinue 79 | 80 | $script:psake = @{} 81 | 82 | $psake.version = $manifest.Version.ToString() 83 | $psake.context = new-object system.collections.stack # holds onto the current state of all variables 84 | $psake.run_by_psake_build_tester = $false # indicates that build is being run by psake-BuildTester 85 | $psake.config_default = new-object psobject -property @{ 86 | buildFileName = "psakefile.ps1"; 87 | legacyBuildFileName = "default.ps1"; 88 | framework = "4.0"; 89 | taskNameFormat = "Executing {0}"; 90 | verboseError = $false; 91 | coloredOutput = $true; 92 | modules = $null; 93 | moduleScope = ""; 94 | } # contains default configuration, can be overridden in psake-config.ps1 in directory with psake.psm1 or in directory with current build script 95 | 96 | $psake.build_success = $false # indicates that the current build was successful 97 | $psake.build_script_file = $null # contains a System.IO.FileInfo for the current build script 98 | $psake.build_script_dir = "" # contains a string with fully-qualified path to current build script 99 | 100 | LoadConfiguration 101 | 102 | export-modulemember -function Invoke-psake, Invoke-Task, Get-PSakeScriptTasks, Task, Properties, Include, FormatTaskName, TaskSetup, TaskTearDown, Framework, Assert, Exec -variable psake 103 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/public/Assert.ps1: -------------------------------------------------------------------------------- 1 | function Assert { 2 | <# 3 | .SYNOPSIS 4 | Helper function for "Design by Contract" assertion checking. 5 | 6 | .DESCRIPTION 7 | This is a helper function that makes the code less noisy by eliminating many of the "if" statements that are normally required to verify assumptions in the code. 8 | 9 | .PARAMETER conditionToCheck 10 | The boolean condition to evaluate 11 | 12 | .PARAMETER failureMessage 13 | The error message used for the exception if the conditionToCheck parameter is false 14 | 15 | .EXAMPLE 16 | C:\PS>Assert $false "This always throws an exception" 17 | 18 | Example of an assertion that will always fail. 19 | 20 | .EXAMPLE 21 | C:\PS>Assert ( ($i % 2) -eq 0 ) "$i is not an even number" 22 | 23 | This exmaple may throw an exception if $i is not an even number 24 | 25 | Note: 26 | It might be necessary to wrap the condition with paranthesis to force PS to evaluate the condition 27 | so that a boolean value is calculated and passed into the 'conditionToCheck' parameter. 28 | 29 | Example: 30 | Assert 1 -eq 2 "1 doesn't equal 2" 31 | 32 | PS will pass 1 into the condtionToCheck variable and PS will look for a parameter called "eq" and 33 | throw an exception with the following message "A parameter cannot be found that matches parameter name 'eq'" 34 | 35 | The solution is to wrap the condition in () so that PS will evaluate it first. 36 | 37 | Assert (1 -eq 2) "1 doesn't equal 2" 38 | .LINK 39 | Exec 40 | .LINK 41 | FormatTaskName 42 | .LINK 43 | Framework 44 | .LINK 45 | Get-PSakeScriptTasks 46 | .LINK 47 | Include 48 | .LINK 49 | Invoke-psake 50 | .LINK 51 | Properties 52 | .LINK 53 | Task 54 | .LINK 55 | TaskSetup 56 | .LINK 57 | TaskTearDown 58 | #> 59 | [CmdletBinding()] 60 | param( 61 | [Parameter(Mandatory = $true)] 62 | $conditionToCheck, 63 | 64 | [Parameter(Mandatory = $true)] 65 | [string]$failureMessage 66 | ) 67 | 68 | if (-not $conditionToCheck) { 69 | throw ('Assert: {0}' -f $failureMessage) 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/public/Exec.ps1: -------------------------------------------------------------------------------- 1 | function Exec { 2 | <# 3 | .SYNOPSIS 4 | Helper function for executing command-line programs. 5 | 6 | .DESCRIPTION 7 | This is a helper function that runs a scriptblock and checks the PS variable $lastexitcode to see if an error occcured. 8 | If an error is detected then an exception is thrown. 9 | This function allows you to run command-line programs without having to explicitly check fthe $lastexitcode variable. 10 | 11 | .PARAMETER cmd 12 | The scriptblock to execute. This scriptblock will typically contain the command-line invocation. 13 | 14 | .PARAMETER errorMessage 15 | The error message to display if the external command returned a non-zero exit code. 16 | 17 | .PARAMETER maxRetries 18 | The maximum number of times to retry the command before failing. 19 | 20 | .PARAMETER retryTriggerErrorPattern 21 | If the external command raises an exception, match the exception against this regex to determine if the command can be retried. 22 | If a match is found, the command will be retried provided [maxRetries] has not been reached. 23 | 24 | .PARAMETER workingDirectory 25 | The working directory to set before running the external command. 26 | 27 | .EXAMPLE 28 | exec { svn info $repository_trunk } "Error executing SVN. Please verify SVN command-line client is installed" 29 | 30 | This example calls the svn command-line client. 31 | .LINK 32 | Assert 33 | .LINK 34 | FormatTaskName 35 | .LINK 36 | Framework 37 | .LINK 38 | Get-PSakeScriptTasks 39 | .LINK 40 | Include 41 | .LINK 42 | Invoke-psake 43 | .LINK 44 | Properties 45 | .LINK 46 | Task 47 | .LINK 48 | TaskSetup 49 | .LINK 50 | TaskTearDown 51 | .LINK 52 | Properties 53 | #> 54 | [CmdletBinding()] 55 | param( 56 | [Parameter(Mandatory = $true)] 57 | [scriptblock]$cmd, 58 | 59 | [string]$errorMessage = ($msgs.error_bad_command -f $cmd), 60 | 61 | [int]$maxRetries = 0, 62 | 63 | [string]$retryTriggerErrorPattern = $null, 64 | 65 | [string]$workingDirectory = $null 66 | ) 67 | 68 | if ($workingDirectory) { 69 | Push-Location -Path $workingDirectory 70 | } 71 | 72 | $tryCount = 1 73 | 74 | do { 75 | try { 76 | $global:lastexitcode = 0 77 | & $cmd 78 | if ($lastexitcode -ne 0) { 79 | throw "Exec: $errorMessage" 80 | } 81 | break 82 | } 83 | catch [Exception] { 84 | if ($tryCount -gt $maxRetries) { 85 | throw $_ 86 | } 87 | 88 | if ($retryTriggerErrorPattern -ne $null) { 89 | $isMatch = [regex]::IsMatch($_.Exception.Message, $retryTriggerErrorPattern) 90 | 91 | if ($isMatch -eq $false) { 92 | throw $_ 93 | } 94 | } 95 | 96 | Write-Host "Try $tryCount failed, retrying again in 1 second..." 97 | 98 | $tryCount++ 99 | 100 | [System.Threading.Thread]::Sleep([System.TimeSpan]::FromSeconds(1)) 101 | } 102 | finally { 103 | if ($workingDirectory) { 104 | Pop-Location 105 | } 106 | } 107 | } 108 | while ($true) 109 | } 110 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/public/FormatTaskName.ps1: -------------------------------------------------------------------------------- 1 | function FormatTaskName { 2 | <# 3 | .SYNOPSIS 4 | This function allows you to change how psake renders the task name during a build. 5 | 6 | .DESCRIPTION 7 | This function takes either a string which represents a format string (formats using the -f format operator see "help about_operators") or it can accept a script block that has a single parameter that is the name of the task that will be executed. 8 | 9 | .PARAMETER format 10 | A format string or a scriptblock to execute 11 | 12 | .EXAMPLE 13 | A sample build script that uses a format string is shown below: 14 | 15 | Task default -depends TaskA, TaskB, TaskC 16 | 17 | FormatTaskName "-------- {0} --------" 18 | 19 | Task TaskA { 20 | "TaskA is executing" 21 | } 22 | 23 | Task TaskB { 24 | "TaskB is executing" 25 | } 26 | 27 | Task TaskC { 28 | "TaskC is executing" 29 | 30 | ----------- 31 | The script above produces the following output: 32 | 33 | -------- TaskA -------- 34 | TaskA is executing 35 | -------- TaskB -------- 36 | TaskB is executing 37 | -------- TaskC -------- 38 | TaskC is executing 39 | 40 | Build Succeeded! 41 | .EXAMPLE 42 | A sample build script that uses a ScriptBlock is shown below: 43 | 44 | Task default -depends TaskA, TaskB, TaskC 45 | 46 | FormatTaskName { 47 | param($taskName) 48 | write-host "Executing Task: $taskName" -foregroundcolor blue 49 | } 50 | 51 | Task TaskA { 52 | "TaskA is executing" 53 | } 54 | 55 | Task TaskB { 56 | "TaskB is executing" 57 | } 58 | 59 | Task TaskC { 60 | "TaskC is executing" 61 | } 62 | 63 | ----------- 64 | The above example uses the scriptblock parameter to the FormatTaskName function to render each task name in the color blue. 65 | 66 | Note: the $taskName parameter is arbitrary, it could be named anything. 67 | .LINK 68 | Assert 69 | .LINK 70 | Exec 71 | .LINK 72 | Framework 73 | .LINK 74 | Get-PSakeScriptTasks 75 | .LINK 76 | Include 77 | .LINK 78 | Invoke-psake 79 | .LINK 80 | Properties 81 | .LINK 82 | Task 83 | .LINK 84 | TaskSetup 85 | .LINK 86 | TaskTearDown 87 | #> 88 | [CmdletBinding()] 89 | param( 90 | [Parameter(Mandatory = $true)] 91 | $format 92 | ) 93 | 94 | $psake.context.Peek().config.taskNameFormat = $format 95 | } 96 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/public/Framework.ps1: -------------------------------------------------------------------------------- 1 | function Framework { 2 | <# 3 | .SYNOPSIS 4 | Sets the version of the .NET framework you want to use during build. 5 | 6 | .DESCRIPTION 7 | This function will accept a string containing version of the .NET framework to use during build. 8 | Possible values: '1.0', '1.1', '2.0', '2.0x86', '2.0x64', '3.0', '3.0x86', '3.0x64', '3.5', '3.5x86', '3.5x64', '4.0', '4.0x86', '4.0x64', '4.5', '4.5x86', '4.5x64', '4.5.1', '4.5.1x86', '4.5.1x64'. 9 | Default is '3.5*', where x86 or x64 will be detected based on the bitness of the PowerShell process. 10 | 11 | .PARAMETER framework 12 | Version of the .NET framework to use during build. 13 | 14 | .EXAMPLE 15 | Framework "4.0" 16 | 17 | Task default -depends Compile 18 | 19 | Task Compile -depends Clean { 20 | msbuild /version 21 | } 22 | 23 | ----------- 24 | The script above will output detailed version of msbuid v4 25 | .LINK 26 | Assert 27 | .LINK 28 | Exec 29 | .LINK 30 | FormatTaskName 31 | .LINK 32 | Get-PSakeScriptTasks 33 | .LINK 34 | Include 35 | .LINK 36 | Invoke-psake 37 | .LINK 38 | Properties 39 | .LINK 40 | Task 41 | .LINK 42 | TaskSetup 43 | .LINK 44 | TaskTearDown 45 | #> 46 | [CmdletBinding()] 47 | param( 48 | [Parameter(Mandatory = $true)] 49 | [string]$framework 50 | ) 51 | 52 | $psake.context.Peek().config.framework = $framework 53 | 54 | ConfigureBuildEnvironment 55 | } 56 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/public/Get-PSakeScriptTasks.ps1: -------------------------------------------------------------------------------- 1 | function Get-PSakeScriptTasks { 2 | <# 3 | .SYNOPSIS 4 | Returns meta data about all the tasks defined in the provided psake script. 5 | 6 | .DESCRIPTION 7 | Returns meta data about all the tasks defined in the provided psake script. 8 | 9 | .PARAMETER buildFile 10 | The path to the psake build script to read the tasks from. 11 | 12 | .EXAMPLE 13 | PS C:\>Get-PSakeScriptTasks -buildFile '.\build.ps1' 14 | 15 | DependsOn Alias Name Description 16 | --------- ----- ---- ----------- 17 | {} Compile 18 | {} Clean 19 | {Test} Default 20 | {Clean, Compile} Test 21 | 22 | Gets the psake tasks contained in the 'build.ps1' file. 23 | 24 | .LINK 25 | Invoke-psake 26 | #> 27 | [CmdletBinding()] 28 | param( 29 | [string]$buildFile 30 | ) 31 | 32 | if (-not $buildFile) { 33 | $buildFile = $psake.config_default.buildFileName 34 | } 35 | 36 | try { 37 | ExecuteInBuildFileScope $buildFile $MyInvocation.MyCommand.Module { 38 | param($currentContext, $module) 39 | return GetTasksFromContext $currentContext 40 | } 41 | } finally { 42 | CleanupEnvironment 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/public/Include.ps1: -------------------------------------------------------------------------------- 1 | function Include { 2 | <# 3 | .SYNOPSIS 4 | Include the functions or code of another powershell script file into the current build script's scope 5 | 6 | .DESCRIPTION 7 | A build script may declare an "includes" function which allows you to define a file containing powershell code to be included 8 | and added to the scope of the currently running build script. Code from such file will be executed after code from build script. 9 | 10 | .PARAMETER fileNamePathToInclude 11 | A string containing the path and name of the powershell file to include 12 | 13 | .EXAMPLE 14 | A sample build script is shown below: 15 | 16 | Include ".\build_utils.ps1" 17 | 18 | Task default -depends Test 19 | 20 | Task Test -depends Compile, Clean { 21 | } 22 | 23 | Task Compile -depends Clean { 24 | } 25 | 26 | Task Clean { 27 | } 28 | 29 | ----------- 30 | The script above includes all the functions and variables defined in the ".\build_utils.ps1" script into the current build script's scope 31 | 32 | Note: You can have more than 1 "Include" function defined in the build script. 33 | 34 | .LINK 35 | Assert 36 | .LINK 37 | Exec 38 | .LINK 39 | FormatTaskName 40 | .LINK 41 | Framework 42 | .LINK 43 | Get-PSakeScriptTasks 44 | .LINK 45 | Invoke-psake 46 | .LINK 47 | Properties 48 | .LINK 49 | Task 50 | .LINK 51 | TaskSetup 52 | .LINK 53 | TaskTearDown 54 | #> 55 | [CmdletBinding()] 56 | param( 57 | [Parameter(Mandatory = $true)] 58 | [string]$fileNamePathToInclude 59 | ) 60 | 61 | Assert (test-path $fileNamePathToInclude -pathType Leaf) ($msgs.error_invalid_include_path -f $fileNamePathToInclude) 62 | 63 | $psake.context.Peek().includes.Enqueue((Resolve-Path $fileNamePathToInclude)); 64 | } 65 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/public/Invoke-Task.ps1: -------------------------------------------------------------------------------- 1 | function Invoke-Task { 2 | <# 3 | .SYNOPSIS 4 | Executes another task in the current build script. 5 | 6 | .DESCRIPTION 7 | This is a function that will allow you to invoke a Task from within another Task in the current build script. 8 | 9 | .PARAMETER taskName 10 | The name of the task to execute. 11 | 12 | .EXAMPLE 13 | Invoke-Task "Compile" 14 | 15 | This example calls the "Compile" task. 16 | 17 | .LINK 18 | Assert 19 | .LINK 20 | Exec 21 | .LINK 22 | FormatTaskName 23 | .LINK 24 | Framework 25 | .LINK 26 | Get-PSakeScriptTasks 27 | .LINK 28 | Include 29 | .LINK 30 | Invoke-psake 31 | .LINK 32 | Properties 33 | .LINK 34 | Task 35 | .LINK 36 | TaskSetup 37 | .LINK 38 | TaskTearDown 39 | #> 40 | [CmdletBinding()] 41 | param( 42 | [Parameter(Mandatory = $true)] 43 | [string]$taskName 44 | ) 45 | 46 | Assert $taskName ($msgs.error_invalid_task_name) 47 | 48 | $taskKey = $taskName.ToLower() 49 | 50 | if ($currentContext.aliases.Contains($taskKey)) { 51 | $taskName = $currentContext.aliases.$taskKey.Name 52 | $taskKey = $taskName.ToLower() 53 | } 54 | 55 | $currentContext = $psake.context.Peek() 56 | 57 | Assert ($currentContext.tasks.Contains($taskKey)) ($msgs.error_task_name_does_not_exist -f $taskName) 58 | 59 | if ($currentContext.executedTasks.Contains($taskKey)) { return } 60 | 61 | Assert (!$currentContext.callStack.Contains($taskKey)) ($msgs.error_circular_reference -f $taskName) 62 | 63 | $currentContext.callStack.Push($taskKey) 64 | 65 | $task = $currentContext.tasks.$taskKey 66 | 67 | $precondition_is_valid = & $task.Precondition 68 | 69 | if (!$precondition_is_valid) { 70 | WriteColoredOutput ($msgs.precondition_was_false -f $taskName) -foregroundcolor Cyan 71 | } else { 72 | if ($taskKey -ne 'default') { 73 | 74 | if ($task.PreAction -or $task.PostAction) { 75 | Assert ($task.Action -ne $null) ($msgs.error_missing_action_parameter -f $taskName) 76 | } 77 | 78 | if ($task.Action) { 79 | 80 | $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() 81 | 82 | try { 83 | foreach($childTask in $task.DependsOn) { 84 | Invoke-Task $childTask 85 | } 86 | 87 | $currentContext.currentTaskName = $taskName 88 | 89 | try { 90 | & $currentContext.taskSetupScriptBlock 91 | try { 92 | if ($task.PreAction) { 93 | & $task.PreAction 94 | } 95 | 96 | if ($currentContext.config.taskNameFormat -is [ScriptBlock]) { 97 | $taskHeader = & $currentContext.config.taskNameFormat $taskName 98 | } else { 99 | $taskHeader = $currentContext.config.taskNameFormat -f $taskName 100 | } 101 | WriteColoredOutput $taskHeader -foregroundcolor Cyan 102 | 103 | foreach ($variable in $task.requiredVariables) { 104 | Assert ((test-path "variable:$variable") -and ((get-variable $variable).Value -ne $null)) ($msgs.required_variable_not_set -f $variable, $taskName) 105 | } 106 | 107 | & $task.Action 108 | } finally { 109 | if ($task.PostAction) { 110 | & $task.PostAction 111 | } 112 | } 113 | } finally { 114 | & $currentContext.taskTearDownScriptBlock 115 | } 116 | } catch { 117 | if ($task.ContinueOnError) { 118 | "-"*70 119 | WriteColoredOutput ($msgs.continue_on_error -f $taskName,$_) -foregroundcolor Yellow 120 | "-"*70 121 | } else { 122 | throw $_ 123 | } 124 | } finally { 125 | $task.Duration = $stopwatch.Elapsed 126 | } 127 | } else { 128 | # no action was specified but we still execute all the dependencies 129 | foreach($childTask in $task.DependsOn) { 130 | Invoke-Task $childTask 131 | } 132 | } 133 | } else { 134 | foreach($childTask in $task.DependsOn) { 135 | Invoke-Task $childTask 136 | } 137 | } 138 | 139 | Assert (& $task.Postcondition) ($msgs.postcondition_failed -f $taskName) 140 | } 141 | 142 | $poppedTaskKey = $currentContext.callStack.Pop() 143 | Assert ($poppedTaskKey -eq $taskKey) ($msgs.error_corrupt_callstack -f $taskKey,$poppedTaskKey) 144 | 145 | $currentContext.executedTasks.Push($taskKey) 146 | } 147 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/public/Properties.ps1: -------------------------------------------------------------------------------- 1 | function Properties { 2 | <# 3 | .SYNOPSIS 4 | Define a scriptblock that contains assignments to variables that will be available to all tasks in the build script 5 | 6 | .DESCRIPTION 7 | A build script may declare a "Properies" function which allows you to define variables that will be available to all the "Task" functions in the build script. 8 | 9 | .PARAMETER properties 10 | The script block containing all the variable assignment statements 11 | 12 | .EXAMPLE 13 | A sample build script is shown below: 14 | 15 | Properties { 16 | $build_dir = "c:\build" 17 | $connection_string = "datasource=localhost;initial catalog=northwind;integrated security=sspi" 18 | } 19 | 20 | Task default -depends Test 21 | 22 | Task Test -depends Compile, Clean { 23 | } 24 | 25 | Task Compile -depends Clean { 26 | } 27 | 28 | Task Clean { 29 | } 30 | 31 | Note: You can have more than one "Properties" function defined in the build script. 32 | 33 | .LINK 34 | Assert 35 | .LINK 36 | Exec 37 | .LINK 38 | FormatTaskName 39 | .LINK 40 | Framework 41 | .LINK 42 | Get-PSakeScriptTasks 43 | .LINK 44 | Include 45 | .LINK 46 | Invoke-psake 47 | .LINK 48 | Task 49 | .LINK 50 | TaskSetup 51 | .LINK 52 | TaskTearDown 53 | #> 54 | [CmdletBinding()] 55 | param( 56 | [Parameter(Mandatory = $true)] 57 | [scriptblock]$properties 58 | ) 59 | 60 | $psake.context.Peek().properties += $properties 61 | } 62 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/public/Task.ps1: -------------------------------------------------------------------------------- 1 | function Task { 2 | <# 3 | .SYNOPSIS 4 | Defines a build task to be executed by psake 5 | 6 | .DESCRIPTION 7 | This function creates a 'task' object that will be used by the psake engine to execute a build task. 8 | Note: There must be at least one task called 'default' in the build script 9 | 10 | .PARAMETER name 11 | The name of the task 12 | 13 | .PARAMETER action 14 | A scriptblock containing the statements to execute for the task. 15 | 16 | .PARAMETER preaction 17 | A scriptblock to be executed before the 'Action' scriptblock. 18 | Note: This parameter is ignored if the 'Action' scriptblock is not defined. 19 | 20 | .PARAMETER postaction 21 | A scriptblock to be executed after the 'Action' scriptblock. 22 | Note: This parameter is ignored if the 'Action' scriptblock is not defined. 23 | 24 | .PARAMETER precondition 25 | A scriptblock that is executed to determine if the task is executed or skipped. 26 | This scriptblock should return $true or $false 27 | 28 | .PARAMETER postcondition 29 | A scriptblock that is executed to determine if the task completed its job correctly. 30 | An exception is thrown if the scriptblock returns $false. 31 | 32 | .PARAMETER continueOnError 33 | If this switch parameter is set then the task will not cause the build to fail when an exception is thrown by the task 34 | 35 | .PARAMETER depends 36 | An array of task names that this task depends on. 37 | These tasks will be executed before the current task is executed. 38 | 39 | .PARAMETER requiredVariables 40 | An array of names of variables that must be set to run this task. 41 | 42 | .PARAMETER description 43 | A description of the task. 44 | 45 | .PARAMETER alias 46 | An alternate name for the task. 47 | 48 | .EXAMPLE 49 | A sample build script is shown below: 50 | 51 | Task default -Depends Test 52 | 53 | Task Test -Depends Compile, Clean { 54 | "This is a test" 55 | } 56 | 57 | Task Compile -Depends Clean { 58 | "Compile" 59 | } 60 | 61 | Task Clean { 62 | "Clean" 63 | } 64 | 65 | The 'default' task is required and should not contain an 'Action' parameter. 66 | It uses the 'Depends' parameter to specify that 'Test' is a dependency 67 | 68 | The 'Test' task uses the 'Depends' parameter to specify that 'Compile' and 'Clean' are dependencies 69 | The 'Compile' task depends on the 'Clean' task. 70 | 71 | Note: 72 | The 'Action' parameter is defaulted to the script block following the 'Clean' task. 73 | 74 | An equivalent 'Test' task is shown below: 75 | 76 | Task Test -Depends Compile, Clean -Action { 77 | $testMessage 78 | } 79 | 80 | The output for the above sample build script is shown below: 81 | 82 | Executing task, Clean... 83 | Clean 84 | Executing task, Compile... 85 | Compile 86 | Executing task, Test... 87 | This is a test 88 | 89 | Build Succeeded! 90 | 91 | ---------------------------------------------------------------------- 92 | Build Time Report 93 | ---------------------------------------------------------------------- 94 | Name Duration 95 | ---- -------- 96 | Clean 00:00:00.0065614 97 | Compile 00:00:00.0133268 98 | Test 00:00:00.0225964 99 | Total: 00:00:00.0782496 100 | 101 | .LINK 102 | Assert 103 | .LINK 104 | Exec 105 | .LINK 106 | FormatTaskName 107 | .LINK 108 | Framework 109 | .LINK 110 | Get-PSakeScriptTasks 111 | .LINK 112 | Include 113 | .LINK 114 | Invoke-psake 115 | .LINK 116 | Properties 117 | .LINK 118 | TaskSetup 119 | .LINK 120 | TaskTearDown 121 | #> 122 | [CmdletBinding()] 123 | param( 124 | [Parameter(Mandatory = $true)] 125 | [string]$name = $null, 126 | 127 | [scriptblock]$action = $null, 128 | 129 | [scriptblock]$preaction = $null, 130 | 131 | [scriptblock]$postaction = $null, 132 | 133 | [scriptblock]$precondition = {$true}, 134 | 135 | [scriptblock]$postcondition = {$true}, 136 | 137 | [switch]$continueOnError, 138 | 139 | [string[]]$depends = @(), 140 | 141 | [string[]]$requiredVariables = @(), 142 | 143 | [string]$description = $null, 144 | 145 | [string]$alias = $null 146 | ) 147 | 148 | if ($name -eq 'default') { 149 | Assert (!$action) ($msgs.error_default_task_cannot_have_action) 150 | } 151 | 152 | $newTask = @{ 153 | Name = $name 154 | DependsOn = $depends 155 | PreAction = $preaction 156 | Action = $action 157 | PostAction = $postaction 158 | Precondition = $precondition 159 | Postcondition = $postcondition 160 | ContinueOnError = $continueOnError 161 | Description = $description 162 | Duration = [System.TimeSpan]::Zero 163 | RequiredVariables = $requiredVariables 164 | Alias = $alias 165 | } 166 | 167 | $taskKey = $name.ToLower() 168 | 169 | $currentContext = $psake.context.Peek() 170 | 171 | Assert (!$currentContext.tasks.ContainsKey($taskKey)) ($msgs.error_duplicate_task_name -f $name) 172 | 173 | $currentContext.tasks.$taskKey = $newTask 174 | 175 | if($alias) 176 | { 177 | $aliasKey = $alias.ToLower() 178 | 179 | Assert (!$currentContext.aliases.ContainsKey($aliasKey)) ($msgs.error_duplicate_alias_name -f $alias) 180 | 181 | $currentContext.aliases.$aliasKey = $newTask 182 | } 183 | } 184 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/public/TaskSetup.ps1: -------------------------------------------------------------------------------- 1 | function TaskSetup { 2 | <# 3 | .SYNOPSIS 4 | Adds a scriptblock that will be executed before each task 5 | 6 | .DESCRIPTION 7 | This function will accept a scriptblock that will be executed before each task in the build script. 8 | 9 | .PARAMETER setup 10 | A scriptblock to execute 11 | 12 | .EXAMPLE 13 | A sample build script is shown below: 14 | 15 | Task default -depends Test 16 | 17 | Task Test -depends Compile, Clean { 18 | } 19 | 20 | Task Compile -depends Clean { 21 | } 22 | 23 | Task Clean { 24 | } 25 | 26 | TaskSetup { 27 | "Running 'TaskSetup' for task $context.Peek().currentTaskName" 28 | } 29 | 30 | The script above produces the following output: 31 | 32 | Running 'TaskSetup' for task Clean 33 | Executing task, Clean... 34 | Running 'TaskSetup' for task Compile 35 | Executing task, Compile... 36 | Running 'TaskSetup' for task Test 37 | Executing task, Test... 38 | 39 | Build Succeeded 40 | 41 | .LINK 42 | Assert 43 | .LINK 44 | Exec 45 | .LINK 46 | FormatTaskName 47 | .LINK 48 | Framework 49 | .LINK 50 | Get-PSakeScriptTasks 51 | .LINK 52 | Include 53 | .LINK 54 | Invoke-psake 55 | .LINK 56 | Properties 57 | .LINK 58 | Task 59 | .LINK 60 | TaskTearDown 61 | #> 62 | [CmdletBinding()] 63 | param( 64 | [Parameter(Mandatory = $true)] 65 | [scriptblock]$setup 66 | ) 67 | 68 | $psake.context.Peek().taskSetupScriptBlock = $setup 69 | } 70 | -------------------------------------------------------------------------------- /Newbe.Mahua.Plugins.RepeaterBreaker/packages/psake.4.7.0/tools/psake/public/TaskTearDown.ps1: -------------------------------------------------------------------------------- 1 | 2 | function TaskTearDown { 3 | <# 4 | .SYNOPSIS 5 | Adds a scriptblock to the build that will be executed after each task 6 | 7 | .DESCRIPTION 8 | This function will accept a scriptblock that will be executed after each task in the build script. 9 | 10 | .PARAMETER teardown 11 | A scriptblock to execute 12 | 13 | .EXAMPLE 14 | A sample build script is shown below: 15 | 16 | Task default -depends Test 17 | 18 | Task Test -depends Compile, Clean { 19 | } 20 | 21 | Task Compile -depends Clean { 22 | } 23 | 24 | Task Clean { 25 | } 26 | 27 | TaskTearDown { 28 | "Running 'TaskTearDown' for task $context.Peek().currentTaskName" 29 | } 30 | 31 | The script above produces the following output: 32 | 33 | Executing task, Clean... 34 | Running 'TaskTearDown' for task Clean 35 | Executing task, Compile... 36 | Running 'TaskTearDown' for task Compile 37 | Executing task, Test... 38 | Running 'TaskTearDown' for task Test 39 | 40 | Build Succeeded 41 | 42 | .LINK 43 | Assert 44 | .LINK 45 | Exec 46 | .LINK 47 | FormatTaskName 48 | .LINK 49 | Framework 50 | .LINK 51 | Get-PSakeScriptTasks 52 | .LINK 53 | Include 54 | .LINK 55 | Invoke-psake 56 | .LINK 57 | Properties 58 | .LINK 59 | Task 60 | .LINK 61 | TaskSetup 62 | #> 63 | [CmdletBinding()] 64 | param( 65 | [Parameter(Mandatory = $true)] 66 | [scriptblock]$teardown 67 | ) 68 | 69 | $psake.context.Peek().taskTearDownScriptBlock = $teardown 70 | } 71 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # QQbot-RepeaterBreaker 2 | 基于Newbe.Mahua.Framework开发的QQ机器人,可以检测QQ群中的复读行为并禁言相关的群成员 3 | Newbe.Mahua.Framework项目地址:https://github.com/newbe36524/Newbe.Mahua.Framework 4 | 感谢Newbe编写的这个SDK和相应的教程! 5 | 6 | # 主要功能 7 | 顾名思义,Repeater Breaker是专门针对QQ群中的复读现象开发的检测机器人,是各位群主治理复读机的辅助工具 8 | 9 | # 使用方法 10 | 运行build.bat可以生成用于不同机器人平台的插件,让相应的QQ机器人加载插件即可使用,详情参考Newbe的技术教程http://www.newbe.pro/docs/mahua/2018/06/10/Begin-First-Plugin-With-Mahua-In-v1.9.html 11 | 建议一个机器人只接管一个QQ群,现在还没有添加同时管理多个群的功能(如果一个机器人在多个QQ群中,不同QQ群的消息会打断复读计数) 12 | 13 | # 功能设置 14 | 为了满足各种不同的检测和禁言需求,本机器人允许调整一些参数 15 | 添加运行有Repeater Breaker的QQ为好友,向其发送特定消息即可改变这些参数 16 | repeatTime=X:禁言所需的复读次数,建议使用3-10内的整数 17 | banTime=X:实施禁言的时间,单位分钟 18 | modeSet=X:调整执行模式,可以只禁言最后一个复读机、随机禁言一个复读机和禁言所有复读机 19 | 20 | # TODO 21 | 尝试缩短处理消息接收事件的延迟 22 | 探明消息撤回对复读计数的影响 23 | 优化随机禁言功能 24 | -------------------------------------------------------------------------------- /packages/Autofac.4.8.1/Autofac.4.8.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Autofac.4.8.1/Autofac.4.8.1.nupkg -------------------------------------------------------------------------------- /packages/Autofac.4.8.1/lib/net45/Autofac.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Autofac.4.8.1/lib/net45/Autofac.dll -------------------------------------------------------------------------------- /packages/Autofac.4.8.1/lib/netstandard1.1/Autofac.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Autofac.4.8.1/lib/netstandard1.1/Autofac.dll -------------------------------------------------------------------------------- /packages/MediatR.3.0.1/MediatR.3.0.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/MediatR.3.0.1/MediatR.3.0.1.nupkg -------------------------------------------------------------------------------- /packages/MediatR.3.0.1/lib/net45/MediatR.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/MediatR.3.0.1/lib/net45/MediatR.dll -------------------------------------------------------------------------------- /packages/MediatR.3.0.1/lib/netstandard1.1/MediatR.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/MediatR.3.0.1/lib/netstandard1.1/MediatR.dll -------------------------------------------------------------------------------- /packages/MessagePack.1.7.3.4/MessagePack.1.7.3.4.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/MessagePack.1.7.3.4/MessagePack.1.7.3.4.nupkg -------------------------------------------------------------------------------- /packages/MessagePack.1.7.3.4/lib/net45/MessagePack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/MessagePack.1.7.3.4/lib/net45/MessagePack.dll -------------------------------------------------------------------------------- /packages/MessagePack.1.7.3.4/lib/net47/MessagePack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/MessagePack.1.7.3.4/lib/net47/MessagePack.dll -------------------------------------------------------------------------------- /packages/MessagePack.1.7.3.4/lib/netstandard1.6/MessagePack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/MessagePack.1.7.3.4/lib/netstandard1.6/MessagePack.dll -------------------------------------------------------------------------------- /packages/MessagePack.1.7.3.4/lib/netstandard2.0/MessagePack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/MessagePack.1.7.3.4/lib/netstandard2.0/MessagePack.dll -------------------------------------------------------------------------------- /packages/Newbe.Build.Psake.1.2.0/Newbe.Build.Psake.1.2.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Build.Psake.1.2.0/Newbe.Build.Psake.1.2.0.nupkg -------------------------------------------------------------------------------- /packages/Newbe.Build.Psake.1.2.0/README.MD: -------------------------------------------------------------------------------- 1 | # 基于Psake进行自动化构建脚本框架 2 | 3 | 本框架采用Psake作为脚本构建框架,依托Powershell本身强大的功能,实现对开发过程自动化的功能。 4 | 5 | ## 基本步骤 6 | 7 | 1. 使用powershell进入你的项目根文件夹。 8 | 9 | 1. 在powershell中执行以下命令。 10 | 11 | ```cmd 12 | (curl http://www.newbe.pro/assets/others/scripts/newbe.build.psake.install.txt).Content | powershell 13 | ``` 14 | 15 | 1. 安装过程需要从互联网下载相关的组件,等待下载完毕即可。 16 | 17 | 1. 按照psake规范对build.ps1进行修改 18 | 19 | 1. 执行build.bat便可以执行 20 | -------------------------------------------------------------------------------- /packages/Newbe.Build.Psake.1.2.0/content/build.bat: -------------------------------------------------------------------------------- 1 | 2 | buildTools\NuGet.exe install buildTools\packages.config -OutputDirectory packages -Verbosity normal 3 | powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "& {if(-not (Get-Module -ListAvailable VSSetup)){Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser;Install-Module -Name VSSetup -Scope CurrentUser -Force;}Import-Module '.\packages\psake.*\tools\psake\psake.psd1';Import-Module '.\packages\Newbe.Build.Psake.*\tools\*.psm1'; invoke-psake .\build.ps1 %*; if ($LastExitCode -and $LastExitCode -ne 0) {write-host "ERROR CODE: $LastExitCode" -fore RED; exit $lastexitcode} }" 4 | -------------------------------------------------------------------------------- /packages/Newbe.Build.Psake.1.2.0/content/build.ps1: -------------------------------------------------------------------------------- 1 | Framework "4.6" 2 | properties { 3 | $rootNow = Resolve-Path . 4 | $nugetexe = "$rootNow\buildTools\NuGet.exe" 5 | $deployMode = "Release" 6 | $releaseDir = "$rootNow/build/$deployMode" 7 | } 8 | #默认任务 9 | Task Default -depends Build 10 | 11 | Task Clean -Description "清理上一次编译结果" { 12 | Remove-Item $releaseDir -Force -Recurse -ErrorAction SilentlyContinue 13 | } 14 | 15 | Task Init -depends Clean -Description "初始化参数" { 16 | 17 | } 18 | 19 | Task Nuget -depends Init -Description "nuget restore" { 20 | NugetRestoreAll -nugetexe $nugetexe 21 | } 22 | 23 | Task Build -depends Nuget -Description "编译所有解决方案" { 24 | RebuildAllSln -deployMode $deployMode 25 | } 26 | 27 | -------------------------------------------------------------------------------- /packages/Newbe.Build.Psake.1.2.0/content/buildTools/7z.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Build.Psake.1.2.0/content/buildTools/7z.exe -------------------------------------------------------------------------------- /packages/Newbe.Build.Psake.1.2.0/content/buildTools/nuget.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Build.Psake.1.2.0/content/buildTools/nuget.exe -------------------------------------------------------------------------------- /packages/Newbe.Build.Psake.1.2.0/content/buildTools/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /packages/Newbe.Build.Psake.1.2.0/tools/buildFunctions.psm1: -------------------------------------------------------------------------------- 1 | #release a web 2 | function BuildWeb ($deployMode, $outDir, $csproj) { 3 | Remove-Item $outDir -Force -Recurse -ErrorAction SilentlyContinue 4 | mkdir $outDir 5 | msbuild /nologo /t:_WPPCopyWebApplication /m /v:minimal /p:Configuration=$deployMode /p:WebProjectOutputDir=$outDir $csproj 6 | } 7 | 8 | #nuget restore 9 | function NugetRestoreAll ($nugetexe) { 10 | Get-ChildItem *.sln -File -Recurse | ForEach-Object { 11 | Exec { 12 | cmd /c ""$nugetexe" restore $_" 13 | } 14 | } 15 | 16 | } 17 | 18 | function RebuildAllSln ($deployMode) { 19 | Get-ChildItem *.sln -File -Recurse | ForEach-Object { 20 | Exec { 21 | msbuild /t:"Clean;Rebuild" /p:Configuration=$deployMode /m /v:minimal /nologo $_ } 22 | } 23 | } 24 | 25 | function BuildProj ($deployMode, $csproj) { 26 | Exec { 27 | msbuild /t:"Clean;Rebuild" /p:Configuration=$deployMode /m /v:minimal /nologo $csproj 28 | } 29 | } 30 | 31 | function PackWebDeploy ($deployMode, $csproj, $publishProfile) { 32 | Exec { 33 | msbuild $csproj /p:DeployOnBuild=true /p:PublishProfile=$publishProfile /p:Configuration=$deployMode /m /v:minimal /nologo 34 | } 35 | } 36 | 37 | <# 38 | .SYNOPSIS 39 | Adds correct path to MSBuild to Path environment variable. 40 | #> 41 | function Initialize-MSBuild { 42 | [CmdletBinding()] 43 | param () 44 | Write-Output "Initialize-MSBuild is not necessary ,you can remove this function" 45 | } -------------------------------------------------------------------------------- /packages/Newbe.Mahua.1.10.0/Newbe.Mahua.1.10.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.1.10.0/Newbe.Mahua.1.10.0.nupkg -------------------------------------------------------------------------------- /packages/Newbe.Mahua.1.10.0/content/NewbeLibs/Framework/Autofac.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.1.10.0/content/NewbeLibs/Framework/Autofac.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.1.10.0/content/NewbeLibs/Framework/NLog.config: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /packages/Newbe.Mahua.1.10.0/content/NewbeLibs/Framework/NLog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.1.10.0/content/NewbeLibs/Framework/NLog.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.1.10.0/content/NewbeLibs/Framework/Newbe.Mahua.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.1.10.0/content/NewbeLibs/Framework/Newbe.Mahua.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.1.10.0/content/NewbeLibs/Framework/Newbe.Mahua.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.1.10.0/content/NewbeLibs/Framework/Newbe.Mahua.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.1.10.0/lib/net452/Newbe.Mahua.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.1.10.0/lib/net452/Newbe.Mahua.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.1.10.0/lib/net452/Newbe.Mahua.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.1.10.0/lib/net452/Newbe.Mahua.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.1.10.0/tools/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | $pcName = (Get-WmiObject -Class Win32_UserAccount -Filter "Name='$env:username' and Domain='$env:userdomain'").Name 4 | 5 | if($pcName -ne "yks"){ 6 | Start-Process "http://www.newbe.pro/" 7 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/36" 8 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/37" 9 | } 10 | 11 | -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Administration.1.10.0/Newbe.Mahua.Administration.1.10.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Administration.1.10.0/Newbe.Mahua.Administration.1.10.0.nupkg -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Administration.1.10.0/content/NewbeLibs/Framework/Extensions/Administration/Newbe.Mahua.Administration.WPF.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Administration.1.10.0/content/NewbeLibs/Framework/Extensions/Administration/Newbe.Mahua.Administration.WPF.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Administration.1.10.0/content/NewbeLibs/Framework/Extensions/Administration/Newbe.Mahua.Administration.WPF.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Administration.1.10.0/content/NewbeLibs/Framework/Extensions/Administration/Newbe.Mahua.Administration.WPF.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Administration.1.10.0/tools/Newbe.Mahua.Administration.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Administration.1.10.0/tools/Newbe.Mahua.Administration.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Administration.1.10.0/tools/Newbe.Mahua.Administration.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Administration.1.10.0/tools/Newbe.Mahua.Administration.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Administration.1.10.0/tools/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | $pcName = (Get-WmiObject -Class Win32_UserAccount -Filter "Name='$env:username' and Domain='$env:userdomain'").Name 4 | 5 | if($pcName -ne "yks"){ 6 | Start-Process "http://www.newbe.pro/" 7 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/36" 8 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/37" 9 | } 10 | 11 | -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Amanda.1.10.0/Newbe.Mahua.Amanda.1.10.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Amanda.1.10.0/Newbe.Mahua.Amanda.1.10.0.nupkg -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Amanda.1.10.0/content/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.Native.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Amanda.1.10.0/content/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.Native.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Amanda.1.10.0/content/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.Native.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Amanda.1.10.0/content/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.Native.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Amanda.1.10.0/content/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Amanda.1.10.0/content/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Amanda.1.10.0/content/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Amanda.1.10.0/content/NewbeLibs/Platform/Amanda/CLR/Newbe.Mahua.Amanda.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Amanda.1.10.0/content/NewbeLibs/Platform/Amanda/Native/Newbe.Mahua.Amanda.Native.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Amanda.1.10.0/content/NewbeLibs/Platform/Amanda/Native/Newbe.Mahua.Amanda.Native.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Amanda.1.10.0/tools/Newbe.Mahua.Amanda.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Amanda.1.10.0/tools/Newbe.Mahua.Amanda.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Amanda.1.10.0/tools/Newbe.Mahua.Amanda.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Amanda.1.10.0/tools/Newbe.Mahua.Amanda.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Amanda.1.10.0/tools/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | $pcName = (Get-WmiObject -Class Win32_UserAccount -Filter "Name='$env:username' and Domain='$env:userdomain'").Name 4 | 5 | if($pcName -ne "yks"){ 6 | Start-Process "http://www.newbe.pro/" 7 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/36" 8 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/37" 9 | } 10 | 11 | -------------------------------------------------------------------------------- /packages/Newbe.Mahua.CQP.1.10.0/Newbe.Mahua.CQP.1.10.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.CQP.1.10.0/Newbe.Mahua.CQP.1.10.0.nupkg -------------------------------------------------------------------------------- /packages/Newbe.Mahua.CQP.1.10.0/content/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.Native.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.CQP.1.10.0/content/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.Native.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.CQP.1.10.0/content/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.Native.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.CQP.1.10.0/content/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.Native.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.CQP.1.10.0/content/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.CQP.1.10.0/content/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.CQP.1.10.0/content/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.CQP.1.10.0/content/NewbeLibs/Platform/CQP/CLR/Newbe.Mahua.CQP.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.CQP.1.10.0/content/NewbeLibs/Platform/CQP/Content/Newbe.Mahua.CQP.json: -------------------------------------------------------------------------------- 1 | { 2 | "ret": 1, 3 | "apiver": 9, 4 | "name": "酷Q样例应用", 5 | "version": "1.0.0", 6 | "version_id": 1, 7 | "author": "Newbe", 8 | "description": "酷Q样例应用(V9应用机制)", 9 | "event": [{ 10 | "id": 1, 11 | "type": 21, 12 | "name": "私聊消息处理", 13 | "function": "_eventPrivateMsg", 14 | "priority": 30000 15 | }, 16 | { 17 | "id": 2, 18 | "type": 2, 19 | "name": "群消息处理", 20 | "function": "_eventGroupMsg", 21 | "priority": 30000 22 | }, 23 | { 24 | "id": 3, 25 | "type": 4, 26 | "name": "讨论组消息处理", 27 | "function": "_eventDiscussMsg", 28 | "priority": 30000 29 | }, 30 | { 31 | "id": 4, 32 | "type": 11, 33 | "name": "群文件上传事件处理", 34 | "function": "_eventGroupUpload", 35 | "priority": 30000 36 | }, 37 | { 38 | "id": 5, 39 | "type": 101, 40 | "name": "群管理变动事件处理", 41 | "function": "_eventSystem_GroupAdmin", 42 | "priority": 30000 43 | }, 44 | { 45 | "id": 6, 46 | "type": 102, 47 | "name": "群成员减少事件处理", 48 | "function": "_eventSystem_GroupMemberDecrease", 49 | "priority": 30000 50 | }, 51 | { 52 | "id": 7, 53 | "type": 103, 54 | "name": "群成员增加事件处理", 55 | "function": "_eventSystem_GroupMemberIncrease", 56 | "priority": 30000 57 | }, 58 | { 59 | "id": 10, 60 | "type": 201, 61 | "name": "好友已添加事件处理", 62 | "function": "_eventFriend_Add", 63 | "priority": 30000 64 | }, 65 | { 66 | "id": 8, 67 | "type": 301, 68 | "name": "好友添加请求处理", 69 | "function": "_eventRequest_AddFriend", 70 | "priority": 30000 71 | }, 72 | { 73 | "id": 9, 74 | "type": 302, 75 | "name": "群添加请求处理", 76 | "function": "_eventRequest_AddGroup", 77 | "priority": 30000 78 | }, 79 | { 80 | "id": 1001, 81 | "type": 1001, 82 | "name": "酷Q启动事件", 83 | "priority": 30000, 84 | "function": "_eventStartup" 85 | }, 86 | { 87 | "id": 1002, 88 | "type": 1002, 89 | "name": "酷Q关闭事件", 90 | "priority": 30000, 91 | "function": "_eventExit" 92 | }, 93 | { 94 | "id": 1003, 95 | "type": 1003, 96 | "name": "应用已被启用", 97 | "priority": 30000, 98 | "function": "_eventEnable" 99 | }, 100 | { 101 | "id": 1004, 102 | "type": 1004, 103 | "name": "应用将被停用", 104 | "priority": 30000, 105 | "function": "_eventDisable" 106 | } 107 | ], 108 | "menu": [{ 109 | "name": "设置中心", 110 | "function": "_menuA" 111 | }], 112 | "status": [ 113 | 114 | ], 115 | "auth": [ 116 | 20, 117 | 30, 118 | 101, 119 | 103, 120 | 106, 121 | 110, 122 | 120, 123 | 121, 124 | 122, 125 | 123, 126 | 124, 127 | 125, 128 | 126, 129 | 127, 130 | 128, 131 | 130, 132 | 131, 133 | 140, 134 | 150, 135 | 151, 136 | 160, 137 | 161, 138 | 180 139 | ] 140 | } -------------------------------------------------------------------------------- /packages/Newbe.Mahua.CQP.1.10.0/content/NewbeLibs/Platform/CQP/Native/Newbe.Mahua.CQP.Native.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.CQP.1.10.0/content/NewbeLibs/Platform/CQP/Native/Newbe.Mahua.CQP.Native.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.CQP.1.10.0/tools/Newbe.Mahua.CQP.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.CQP.1.10.0/tools/Newbe.Mahua.CQP.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.CQP.1.10.0/tools/Newbe.Mahua.CQP.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.CQP.1.10.0/tools/Newbe.Mahua.CQP.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.CQP.1.10.0/tools/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | $pcName = (Get-WmiObject -Class Win32_UserAccount -Filter "Name='$env:username' and Domain='$env:userdomain'").Name 4 | 5 | if($pcName -ne "yks"){ 6 | Start-Process "http://www.newbe.pro/" 7 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/36" 8 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/37" 9 | } 10 | 11 | -------------------------------------------------------------------------------- /packages/Newbe.Mahua.MPQ.1.10.0/Newbe.Mahua.MPQ.1.10.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.MPQ.1.10.0/Newbe.Mahua.MPQ.1.10.0.nupkg -------------------------------------------------------------------------------- /packages/Newbe.Mahua.MPQ.1.10.0/content/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.Native.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.MPQ.1.10.0/content/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.Native.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.MPQ.1.10.0/content/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.Native.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.MPQ.1.10.0/content/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.Native.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.MPQ.1.10.0/content/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.MPQ.1.10.0/content/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.MPQ.1.10.0/content/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.MPQ.1.10.0/content/NewbeLibs/Platform/MPQ/CLR/Newbe.Mahua.MPQ.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.MPQ.1.10.0/content/NewbeLibs/Platform/MPQ/Native/Newbe.Mahua.MPQ.Native.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.MPQ.1.10.0/content/NewbeLibs/Platform/MPQ/Native/Newbe.Mahua.MPQ.Native.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.MPQ.1.10.0/tools/Newbe.Mahua.MPQ.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.MPQ.1.10.0/tools/Newbe.Mahua.MPQ.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.MPQ.1.10.0/tools/Newbe.Mahua.MPQ.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.MPQ.1.10.0/tools/Newbe.Mahua.MPQ.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.MPQ.1.10.0/tools/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | $pcName = (Get-WmiObject -Class Win32_UserAccount -Filter "Name='$env:username' and Domain='$env:userdomain'").Name 4 | 5 | if($pcName -ne "yks"){ 6 | Start-Process "http://www.newbe.pro/" 7 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/36" 8 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/37" 9 | } 10 | 11 | -------------------------------------------------------------------------------- /packages/Newbe.Mahua.PluginLoader.1.10.0/Newbe.Mahua.PluginLoader.1.10.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.PluginLoader.1.10.0/Newbe.Mahua.PluginLoader.1.10.0.nupkg -------------------------------------------------------------------------------- /packages/Newbe.Mahua.PluginLoader.1.10.0/content/NewbeLibs/Framework/MediatR.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.PluginLoader.1.10.0/content/NewbeLibs/Framework/MediatR.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.PluginLoader.1.10.0/content/NewbeLibs/Framework/MessagePack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.PluginLoader.1.10.0/content/NewbeLibs/Framework/MessagePack.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.PluginLoader.1.10.0/content/NewbeLibs/Framework/Newbe.Mahua.PluginLoader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.PluginLoader.1.10.0/content/NewbeLibs/Framework/Newbe.Mahua.PluginLoader.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.PluginLoader.1.10.0/content/NewbeLibs/Framework/Newbe.Mahua.PluginLoader.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.PluginLoader.1.10.0/content/NewbeLibs/Framework/Newbe.Mahua.PluginLoader.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.PluginLoader.1.10.0/content/NewbeLibs/Framework/System.Threading.Tasks.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.PluginLoader.1.10.0/content/NewbeLibs/Framework/System.Threading.Tasks.Extensions.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.PluginLoader.1.10.0/content/NewbeLibs/Framework/System.ValueTuple.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.PluginLoader.1.10.0/content/NewbeLibs/Framework/System.ValueTuple.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.PluginLoader.1.10.0/lib/net452/Newbe.Mahua.PluginLoader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.PluginLoader.1.10.0/lib/net452/Newbe.Mahua.PluginLoader.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.PluginLoader.1.10.0/lib/net452/Newbe.Mahua.PluginLoader.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.PluginLoader.1.10.0/lib/net452/Newbe.Mahua.PluginLoader.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.PluginLoader.1.10.0/tools/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | $pcName = (Get-WmiObject -Class Win32_UserAccount -Filter "Name='$env:username' and Domain='$env:userdomain'").Name 4 | 5 | if($pcName -ne "yks"){ 6 | Start-Process "http://www.newbe.pro/" 7 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/36" 8 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/37" 9 | } 10 | 11 | -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Tools.Psake.1.10.0/Newbe.Mahua.Tools.Psake.1.10.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Tools.Psake.1.10.0/Newbe.Mahua.Tools.Psake.1.10.0.nupkg -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Tools.Psake.1.10.0/content/build.bat: -------------------------------------------------------------------------------- 1 | buildTools\NuGet.exe install buildTools\packages.config -OutputDirectory packages -Verbosity normal 2 | powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "& {if(-not (Get-Module -ListAvailable VSSetup)){Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser;Install-Module -Name VSSetup -Scope CurrentUser -Force;}Import-Module '.\packages\psake.*\tools\psake\psake.psd1';Import-Module '.\packages\Newbe.Build.Psake.*\tools\*.psm1'; invoke-psake .\build.ps1 %*; if ($LastExitCode -and $LastExitCode -ne 0) {write-host "ERROR CODE: $LastExitCode" -fore RED; exit $lastexitcode} }" 3 | -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Tools.Psake.1.10.0/content/build.ps1: -------------------------------------------------------------------------------- 1 | Framework "4.6" 2 | properties { 3 | $rootNow = Resolve-Path . 4 | $nugetexe = "$rootNow\buildTools\NuGet.exe" 5 | $configuration = "Debug" 6 | $releaseBase = "$rootNow\bin" 7 | $pluginName = (Get-ChildItem *.csproj).Name.Replace(".csproj", "") 8 | } 9 | 10 | $InstalledPlatforms = Get-ChildItem NewbeLibs\Platform 11 | 12 | function Copy-FrameworkItems ($dest) { 13 | Write-Output "开始复制-框架主体" 14 | Get-ChildItem "$rootNow\NewbeLibs\Framework\" | 15 | Where-Object { 16 | $_.PsIsContainer -eq $false 17 | } | 18 | ForEach-Object { 19 | Copy-Item -Path "$rootNow\NewbeLibs\Framework\$_" -Destination $dest 20 | } 21 | Write-Output "结束复制-框架主体" 22 | } 23 | 24 | function Copy-FrameworkExtensionItems ($dest) { 25 | Write-Output "开始复制-框架扩展" 26 | if (Test-Path "$rootNow\NewbeLibs\Framework\Extensions\") { 27 | Get-ChildItem "$rootNow\NewbeLibs\Framework\Extensions\" | 28 | ForEach-Object { 29 | Copy-Item -Path "$rootNow\NewbeLibs\Framework\Extensions\$_\*" -Destination $dest -Recurse 30 | } 31 | } 32 | else { 33 | Write-Output "未发现扩展" 34 | } 35 | Write-Output "结束复制-框架扩展" 36 | } 37 | 38 | Task Default -depends Pack 39 | 40 | Task Clean -Description "清理" { 41 | Write-Output $InstalledPlatforms 42 | $InstalledPlatforms | ForEach-Object { 43 | Exec { 44 | Remove-Item "$releaseBase\$_" -Recurse -Force -ErrorAction SilentlyContinue 45 | } 46 | } 47 | } 48 | 49 | Task Init -depends Clean -Description "初始化参数" { 50 | 51 | } 52 | 53 | Task Nuget -depends Init -Description "nuget restore" { 54 | Exec { 55 | cmd /c """$nugetexe"" restore -PackagesDirectory ""$rootNow\..\packages""" 56 | } 57 | } 58 | 59 | Task Build -depends Nuget -Description "编译" { 60 | Exec { 61 | msbuild /p:Configuration=$configuration 62 | } 63 | } 64 | 65 | # 生成CQP的JSON文件 66 | function WriteCqpJsonFile ($targetFilePath) { 67 | # 加载所有的DLL 68 | Get-ChildItem "$releaseBase\$configuration\*" *.dll | ForEach-Object { 69 | [void][reflection.assembly]::LoadFile($_) 70 | } 71 | 72 | # 创建实例 73 | $pluginInfo = New-Object "$pluginName.PluginInfo" 74 | 75 | # 读取文件 76 | $jsonFile = "$rootNow\NewbeLibs\Platform\CQP\Content\Newbe.Mahua.CQP.json" 77 | $jsonText = Get-Content $jsonFile -Encoding "utf8" 78 | $json = $jsonText | ConvertFrom-Json 79 | 80 | # 内容赋值 81 | $json.name = $pluginInfo.Name 82 | $json.version = $pluginInfo.Version 83 | $json.author = $pluginInfo.Author 84 | $json.description = $pluginInfo.Description 85 | $versionNos = "" 86 | # 版本号每个部分*10,因此版本号,每个版本不能超过10 87 | $pluginInfo.version.Split(".") | ForEach-Object { 88 | $v = [string](10 *[int]$_) 89 | $versionNos += $v 90 | } 91 | $json.version_id = [int] $versionNos 92 | 93 | # 写入文件 94 | $encoding = [System.Text.Encoding]::GetEncoding("gb2312") 95 | [System.IO.File]::WriteAllText("$targetFilePath", ($json | ConvertTo-Json),$encoding) 96 | } 97 | 98 | Task PackCQP -depends Build -Description "CQP打包" { 99 | if ($InstalledPlatforms | Where-Object {$_.Name -eq "CQP"}) { 100 | New-Item -ItemType Directory "$releaseBase\CQP" 101 | New-Item -ItemType Directory "$releaseBase\CQP\$pluginName" 102 | New-Item -ItemType Directory "$releaseBase\CQP\app" 103 | Copy-FrameworkItems -dest "$releaseBase\CQP\" 104 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\CQP\CLR\*" -Destination "$releaseBase\CQP" -Recurse 105 | Copy-FrameworkExtensionItems -dest "$releaseBase\CQP\$pluginName" 106 | Copy-Item -Path "$releaseBase\$configuration\*", "$rootNow\NewbeLibs\Platform\CQP\CLR\*" -Destination "$releaseBase\CQP\$pluginName" -Recurse 107 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\CQP\Native\Newbe.Mahua.CQP.Native.dll" -Destination "$releaseBase\CQP\app\$pluginName.dll" 108 | WriteCqpJsonFile -targetFilePath "$releaseBase\CQP\app\$pluginName.json" 109 | } 110 | } 111 | 112 | Task PackAmanda -depends Build -Description "Amanda打包" { 113 | if ($InstalledPlatforms | Where-Object {$_.Name -eq "Amanda"}) { 114 | New-Item -ItemType Directory "$releaseBase\Amanda" 115 | New-Item -ItemType Directory "$releaseBase\Amanda\$pluginName" 116 | New-Item -ItemType Directory "$releaseBase\Amanda\plugin" 117 | Copy-FrameworkItems -dest "$releaseBase\Amanda\" 118 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\Amanda\CLR\*" -Destination "$releaseBase\Amanda" -Recurse 119 | Copy-FrameworkExtensionItems -dest "$releaseBase\Amanda\$pluginName" 120 | Copy-Item -Path "$releaseBase\$configuration\*", "$rootNow\NewbeLibs\Platform\Amanda\CLR\*" -Destination "$releaseBase\Amanda\$pluginName" -Recurse 121 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\Amanda\Native\Newbe.Mahua.Amanda.Native.dll" -Destination "$releaseBase\Amanda\plugin\$pluginName.plugin.dll" 122 | } 123 | } 124 | 125 | Task PackMPQ -depends Build -Description "MPQ打包" { 126 | if ($InstalledPlatforms | Where-Object {$_.Name -eq "MPQ"}) { 127 | New-Item -ItemType Directory "$releaseBase\MPQ" 128 | New-Item -ItemType Directory "$releaseBase\MPQ\$pluginName" 129 | New-Item -ItemType Directory "$releaseBase\MPQ\Plugin" 130 | Copy-FrameworkItems -dest "$releaseBase\MPQ\" 131 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\MPQ\CLR\*" -Destination "$releaseBase\MPQ" -Recurse 132 | Copy-FrameworkExtensionItems -dest "$releaseBase\MPQ\$pluginName" 133 | Copy-Item -Path "$releaseBase\$configuration\*", "$rootNow\NewbeLibs\Platform\MPQ\CLR\*" -Destination "$releaseBase\MPQ\$pluginName" -Recurse 134 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\MPQ\Native\Newbe.Mahua.MPQ.Native.dll" -Destination "$releaseBase\MPQ\Plugin\$pluginName.xx.dll" 135 | } 136 | } 137 | 138 | Task Pack -depends PackCQP, PackAmanda, PackMPQ -Description "打包" 139 | 140 | -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Tools.Psake.1.10.0/contentFiles/any/net452/build.bat: -------------------------------------------------------------------------------- 1 | buildTools\NuGet.exe install buildTools\packages.config -OutputDirectory packages -Verbosity normal 2 | powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "& {if(-not (Get-Module -ListAvailable VSSetup)){Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser;Install-Module -Name VSSetup -Scope CurrentUser -Force;}Import-Module '.\packages\psake.*\tools\psake\psake.psd1';Import-Module '.\packages\Newbe.Build.Psake.*\tools\*.psm1'; invoke-psake .\build.ps1 %*; if ($LastExitCode -and $LastExitCode -ne 0) {write-host "ERROR CODE: $LastExitCode" -fore RED; exit $lastexitcode} }" 3 | -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Tools.Psake.1.10.0/contentFiles/any/net452/build.ps1: -------------------------------------------------------------------------------- 1 | Framework "4.6" 2 | properties { 3 | $rootNow = Resolve-Path . 4 | $nugetexe = "$rootNow\buildTools\NuGet.exe" 5 | $configuration = "Debug" 6 | $releaseBase = "$rootNow\bin" 7 | $pluginName = (Get-ChildItem *.csproj).Name.Replace(".csproj", "") 8 | } 9 | 10 | $InstalledPlatforms = Get-ChildItem NewbeLibs\Platform 11 | 12 | function Copy-FrameworkItems ($dest) { 13 | Write-Output "开始复制-框架主体" 14 | Get-ChildItem "$rootNow\NewbeLibs\Framework\" | 15 | Where-Object { 16 | $_.PsIsContainer -eq $false 17 | } | 18 | ForEach-Object { 19 | Copy-Item -Path "$rootNow\NewbeLibs\Framework\$_" -Destination $dest 20 | } 21 | Write-Output "结束复制-框架主体" 22 | } 23 | 24 | function Copy-FrameworkExtensionItems ($dest) { 25 | Write-Output "开始复制-框架扩展" 26 | if (Test-Path "$rootNow\NewbeLibs\Framework\Extensions\") { 27 | Get-ChildItem "$rootNow\NewbeLibs\Framework\Extensions\" | 28 | ForEach-Object { 29 | Copy-Item -Path "$rootNow\NewbeLibs\Framework\Extensions\$_\*" -Destination $dest -Recurse 30 | } 31 | } 32 | else { 33 | Write-Output "未发现扩展" 34 | } 35 | Write-Output "结束复制-框架扩展" 36 | } 37 | 38 | Task Default -depends Pack 39 | 40 | Task Clean -Description "清理" { 41 | Write-Output $InstalledPlatforms 42 | $InstalledPlatforms | ForEach-Object { 43 | Exec { 44 | Remove-Item "$releaseBase\$_" -Recurse -Force -ErrorAction SilentlyContinue 45 | } 46 | } 47 | } 48 | 49 | Task Init -depends Clean -Description "初始化参数" { 50 | 51 | } 52 | 53 | Task Nuget -depends Init -Description "nuget restore" { 54 | Exec { 55 | cmd /c """$nugetexe"" restore -PackagesDirectory ""$rootNow\..\packages""" 56 | } 57 | } 58 | 59 | Task Build -depends Nuget -Description "编译" { 60 | Exec { 61 | msbuild /p:Configuration=$configuration 62 | } 63 | } 64 | 65 | # 生成CQP的JSON文件 66 | function WriteCqpJsonFile ($targetFilePath) { 67 | # 加载所有的DLL 68 | Get-ChildItem "$releaseBase\$configuration\*" *.dll | ForEach-Object { 69 | [void][reflection.assembly]::LoadFile($_) 70 | } 71 | 72 | # 创建实例 73 | $pluginInfo = New-Object "$pluginName.PluginInfo" 74 | 75 | # 读取文件 76 | $jsonFile = "$rootNow\NewbeLibs\Platform\CQP\Content\Newbe.Mahua.CQP.json" 77 | $jsonText = Get-Content $jsonFile -Encoding "utf8" 78 | $json = $jsonText | ConvertFrom-Json 79 | 80 | # 内容赋值 81 | $json.name = $pluginInfo.Name 82 | $json.version = $pluginInfo.Version 83 | $json.author = $pluginInfo.Author 84 | $json.description = $pluginInfo.Description 85 | $versionNos = "" 86 | # 版本号每个部分*10,因此版本号,每个版本不能超过10 87 | $pluginInfo.version.Split(".") | ForEach-Object { 88 | $v = [string](10 *[int]$_) 89 | $versionNos += $v 90 | } 91 | $json.version_id = [int] $versionNos 92 | 93 | # 写入文件 94 | $encoding = [System.Text.Encoding]::GetEncoding("gb2312") 95 | [System.IO.File]::WriteAllText("$targetFilePath", ($json | ConvertTo-Json),$encoding) 96 | } 97 | 98 | Task PackCQP -depends Build -Description "CQP打包" { 99 | if ($InstalledPlatforms | Where-Object {$_.Name -eq "CQP"}) { 100 | New-Item -ItemType Directory "$releaseBase\CQP" 101 | New-Item -ItemType Directory "$releaseBase\CQP\$pluginName" 102 | New-Item -ItemType Directory "$releaseBase\CQP\app" 103 | Copy-FrameworkItems -dest "$releaseBase\CQP\" 104 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\CQP\CLR\*" -Destination "$releaseBase\CQP" -Recurse 105 | Copy-FrameworkExtensionItems -dest "$releaseBase\CQP\$pluginName" 106 | Copy-Item -Path "$releaseBase\$configuration\*", "$rootNow\NewbeLibs\Platform\CQP\CLR\*" -Destination "$releaseBase\CQP\$pluginName" -Recurse 107 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\CQP\Native\Newbe.Mahua.CQP.Native.dll" -Destination "$releaseBase\CQP\app\$pluginName.dll" 108 | WriteCqpJsonFile -targetFilePath "$releaseBase\CQP\app\$pluginName.json" 109 | } 110 | } 111 | 112 | Task PackAmanda -depends Build -Description "Amanda打包" { 113 | if ($InstalledPlatforms | Where-Object {$_.Name -eq "Amanda"}) { 114 | New-Item -ItemType Directory "$releaseBase\Amanda" 115 | New-Item -ItemType Directory "$releaseBase\Amanda\$pluginName" 116 | New-Item -ItemType Directory "$releaseBase\Amanda\plugin" 117 | Copy-FrameworkItems -dest "$releaseBase\Amanda\" 118 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\Amanda\CLR\*" -Destination "$releaseBase\Amanda" -Recurse 119 | Copy-FrameworkExtensionItems -dest "$releaseBase\Amanda\$pluginName" 120 | Copy-Item -Path "$releaseBase\$configuration\*", "$rootNow\NewbeLibs\Platform\Amanda\CLR\*" -Destination "$releaseBase\Amanda\$pluginName" -Recurse 121 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\Amanda\Native\Newbe.Mahua.Amanda.Native.dll" -Destination "$releaseBase\Amanda\plugin\$pluginName.plugin.dll" 122 | } 123 | } 124 | 125 | Task PackMPQ -depends Build -Description "MPQ打包" { 126 | if ($InstalledPlatforms | Where-Object {$_.Name -eq "MPQ"}) { 127 | New-Item -ItemType Directory "$releaseBase\MPQ" 128 | New-Item -ItemType Directory "$releaseBase\MPQ\$pluginName" 129 | New-Item -ItemType Directory "$releaseBase\MPQ\Plugin" 130 | Copy-FrameworkItems -dest "$releaseBase\MPQ\" 131 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\MPQ\CLR\*" -Destination "$releaseBase\MPQ" -Recurse 132 | Copy-FrameworkExtensionItems -dest "$releaseBase\MPQ\$pluginName" 133 | Copy-Item -Path "$releaseBase\$configuration\*", "$rootNow\NewbeLibs\Platform\MPQ\CLR\*" -Destination "$releaseBase\MPQ\$pluginName" -Recurse 134 | Copy-Item -Path "$rootNow\NewbeLibs\Platform\MPQ\Native\Newbe.Mahua.MPQ.Native.dll" -Destination "$releaseBase\MPQ\Plugin\$pluginName.xx.dll" 135 | } 136 | } 137 | 138 | Task Pack -depends PackCQP, PackAmanda, PackMPQ -Description "打包" 139 | 140 | -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Tools.Psake.1.10.0/tools/Newbe.Mahua.Tools.Psake.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Tools.Psake.1.10.0/tools/Newbe.Mahua.Tools.Psake.dll -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Tools.Psake.1.10.0/tools/Newbe.Mahua.Tools.Psake.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/Newbe.Mahua.Tools.Psake.1.10.0/tools/Newbe.Mahua.Tools.Psake.pdb -------------------------------------------------------------------------------- /packages/Newbe.Mahua.Tools.Psake.1.10.0/tools/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | $pcName = (Get-WmiObject -Class Win32_UserAccount -Filter "Name='$env:username' and Domain='$env:userdomain'").Name 4 | 5 | if($pcName -ne "yks"){ 6 | Start-Process "http://www.newbe.pro/" 7 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/36" 8 | Start-Process "https://github.com/Newbe36524/Newbe.Mahua.Framework/issues/37" 9 | } 10 | 11 | -------------------------------------------------------------------------------- /packages/README.md: -------------------------------------------------------------------------------- 1 | 打包所需的程序包 2 | -------------------------------------------------------------------------------- /packages/System.Threading.Tasks.Extensions.4.3.0/System.Threading.Tasks.Extensions.4.3.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/System.Threading.Tasks.Extensions.4.3.0/System.Threading.Tasks.Extensions.4.3.0.nupkg -------------------------------------------------------------------------------- /packages/System.Threading.Tasks.Extensions.4.3.0/ThirdPartyNotices.txt: -------------------------------------------------------------------------------- 1 | This Microsoft .NET Library may incorporate components from the projects listed 2 | below. Microsoft licenses these components under the Microsoft .NET Library 3 | software license terms. The original copyright notices and the licenses under 4 | which Microsoft received such components are set forth below for informational 5 | purposes only. Microsoft reserves all rights not expressly granted herein, 6 | whether by implication, estoppel or otherwise. 7 | 8 | 1. .NET Core (https://github.com/dotnet/core/) 9 | 10 | .NET Core 11 | Copyright (c) .NET Foundation and Contributors 12 | 13 | The MIT License (MIT) 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. -------------------------------------------------------------------------------- /packages/System.Threading.Tasks.Extensions.4.3.0/dotnet_library_license.txt: -------------------------------------------------------------------------------- 1 | 2 | MICROSOFT SOFTWARE LICENSE TERMS 3 | 4 | 5 | MICROSOFT .NET LIBRARY 6 | 7 | These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft 8 | 9 | · updates, 10 | 11 | · supplements, 12 | 13 | · Internet-based services, and 14 | 15 | · support services 16 | 17 | for this software, unless other terms accompany those items. If so, those terms apply. 18 | 19 | BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE. 20 | 21 | 22 | IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW. 23 | 24 | 1. INSTALLATION AND USE RIGHTS. 25 | 26 | a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs. 27 | 28 | b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only. 29 | 30 | 2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS. 31 | 32 | a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below. 33 | 34 | i. Right to Use and Distribute. 35 | 36 | · You may copy and distribute the object code form of the software. 37 | 38 | · Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs. 39 | 40 | ii. Distribution Requirements. For any Distributable Code you distribute, you must 41 | 42 | · add significant primary functionality to it in your programs; 43 | 44 | · require distributors and external end users to agree to terms that protect it at least as much as this agreement; 45 | 46 | · display your valid copyright notice on your programs; and 47 | 48 | · indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs. 49 | 50 | iii. Distribution Restrictions. You may not 51 | 52 | · alter any copyright, trademark or patent notice in the Distributable Code; 53 | 54 | · use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft; 55 | 56 | · include Distributable Code in malicious, deceptive or unlawful programs; or 57 | 58 | · modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that 59 | 60 | · the code be disclosed or distributed in source code form; or 61 | 62 | · others have the right to modify it. 63 | 64 | 3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not 65 | 66 | · work around any technical limitations in the software; 67 | 68 | · reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation; 69 | 70 | · publish the software for others to copy; 71 | 72 | · rent, lease or lend the software; 73 | 74 | · transfer the software or this agreement to any third party; or 75 | 76 | · use the software for commercial software hosting services. 77 | 78 | 4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software. 79 | 80 | 5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes. 81 | 82 | 6. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting. 83 | 84 | 7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it. 85 | 86 | 8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services. 87 | 88 | 9. APPLICABLE LAW. 89 | 90 | a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort. 91 | 92 | b. Outside the United States. If you acquired the software in any other country, the laws of that country apply. 93 | 94 | 10. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so. 95 | 96 | 11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 97 | 98 | FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS. 99 | 100 | 12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES. 101 | 102 | This limitation applies to 103 | 104 | · anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and 105 | 106 | · claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law. 107 | 108 | It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages. 109 | 110 | Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French. 111 | 112 | Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français. 113 | 114 | EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues. 115 | 116 | LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices. 117 | 118 | Cette limitation concerne : 119 | 120 | · tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et 121 | 122 | · les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur. 123 | 124 | Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard. 125 | 126 | EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas. 127 | 128 | 129 | -------------------------------------------------------------------------------- /packages/System.Threading.Tasks.Extensions.4.3.0/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/System.Threading.Tasks.Extensions.4.3.0/lib/netstandard1.0/System.Threading.Tasks.Extensions.dll -------------------------------------------------------------------------------- /packages/System.Threading.Tasks.Extensions.4.3.0/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/System.Threading.Tasks.Extensions.4.3.0/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll -------------------------------------------------------------------------------- /packages/System.ValueTuple.4.3.0/System.ValueTuple.4.3.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/System.ValueTuple.4.3.0/System.ValueTuple.4.3.0.nupkg -------------------------------------------------------------------------------- /packages/System.ValueTuple.4.3.0/ThirdPartyNotices.txt: -------------------------------------------------------------------------------- 1 | This Microsoft .NET Library may incorporate components from the projects listed 2 | below. Microsoft licenses these components under the Microsoft .NET Library 3 | software license terms. The original copyright notices and the licenses under 4 | which Microsoft received such components are set forth below for informational 5 | purposes only. Microsoft reserves all rights not expressly granted herein, 6 | whether by implication, estoppel or otherwise. 7 | 8 | 1. .NET Core (https://github.com/dotnet/core/) 9 | 10 | .NET Core 11 | Copyright (c) .NET Foundation and Contributors 12 | 13 | The MIT License (MIT) 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. -------------------------------------------------------------------------------- /packages/System.ValueTuple.4.3.0/dotnet_library_license.txt: -------------------------------------------------------------------------------- 1 | 2 | MICROSOFT SOFTWARE LICENSE TERMS 3 | 4 | 5 | MICROSOFT .NET LIBRARY 6 | 7 | These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft 8 | 9 | · updates, 10 | 11 | · supplements, 12 | 13 | · Internet-based services, and 14 | 15 | · support services 16 | 17 | for this software, unless other terms accompany those items. If so, those terms apply. 18 | 19 | BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE. 20 | 21 | 22 | IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW. 23 | 24 | 1. INSTALLATION AND USE RIGHTS. 25 | 26 | a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs. 27 | 28 | b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only. 29 | 30 | 2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS. 31 | 32 | a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below. 33 | 34 | i. Right to Use and Distribute. 35 | 36 | · You may copy and distribute the object code form of the software. 37 | 38 | · Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs. 39 | 40 | ii. Distribution Requirements. For any Distributable Code you distribute, you must 41 | 42 | · add significant primary functionality to it in your programs; 43 | 44 | · require distributors and external end users to agree to terms that protect it at least as much as this agreement; 45 | 46 | · display your valid copyright notice on your programs; and 47 | 48 | · indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs. 49 | 50 | iii. Distribution Restrictions. You may not 51 | 52 | · alter any copyright, trademark or patent notice in the Distributable Code; 53 | 54 | · use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft; 55 | 56 | · include Distributable Code in malicious, deceptive or unlawful programs; or 57 | 58 | · modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that 59 | 60 | · the code be disclosed or distributed in source code form; or 61 | 62 | · others have the right to modify it. 63 | 64 | 3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not 65 | 66 | · work around any technical limitations in the software; 67 | 68 | · reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation; 69 | 70 | · publish the software for others to copy; 71 | 72 | · rent, lease or lend the software; 73 | 74 | · transfer the software or this agreement to any third party; or 75 | 76 | · use the software for commercial software hosting services. 77 | 78 | 4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software. 79 | 80 | 5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes. 81 | 82 | 6. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting. 83 | 84 | 7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it. 85 | 86 | 8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services. 87 | 88 | 9. APPLICABLE LAW. 89 | 90 | a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort. 91 | 92 | b. Outside the United States. If you acquired the software in any other country, the laws of that country apply. 93 | 94 | 10. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so. 95 | 96 | 11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 97 | 98 | FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS. 99 | 100 | 12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES. 101 | 102 | This limitation applies to 103 | 104 | · anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and 105 | 106 | · claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law. 107 | 108 | It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages. 109 | 110 | Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French. 111 | 112 | Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français. 113 | 114 | EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues. 115 | 116 | LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices. 117 | 118 | Cette limitation concerne : 119 | 120 | · tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et 121 | 122 | · les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur. 123 | 124 | Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard. 125 | 126 | EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas. 127 | 128 | 129 | -------------------------------------------------------------------------------- /packages/System.ValueTuple.4.3.0/lib/netstandard1.0/System.ValueTuple.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/System.ValueTuple.4.3.0/lib/netstandard1.0/System.ValueTuple.dll -------------------------------------------------------------------------------- /packages/System.ValueTuple.4.3.0/lib/portable-net40+sl4+win8+wp8/System.ValueTuple.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CinikiC/QQbot-RepeaterBreaker/663746b8236688ba3537d574d20746186ca76b53/packages/System.ValueTuple.4.3.0/lib/portable-net40+sl4+win8+wp8/System.ValueTuple.dll --------------------------------------------------------------------------------