public static void AppStart(CQApi _CQApi, CQLog _CQLog) { CQApi = _CQApi; CQLog = _CQLog; InitAdminFile(); if (ins == null) { ins = new List <TimeCheck>(); } string path = CQApi.AppDirectory; DirectoryInfo root = new DirectoryInfo(path); foreach (FileInfo f in root.GetFiles()) { string name = f.Name; if (name.Contains("config-")) { int start = name.IndexOf("-") + 1; int end = name.IndexOf(".json"); long group = long.Parse(name.Substring(start, end - start)); TimeCheck temp = new TimeCheck(group); ins.Add(temp); string json = ReadFromFile(path + name); temp.Initialize(json); } } }
/// <summary> /// 初始化 <see cref="CQFriendAddEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="id">事件Id</param> /// <param name="type">事件类型</param> /// <param name="name">事件名称</param> /// <param name="function">函数名称</param> /// <param name="priority">默认优先级</param> /// <param name="subType">子类型</param> /// <param name="sendTime">发送时间</param> /// <param name="fromQQ">来源QQ</param> public CQFriendAddEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority, int subType, int sendTime, long fromQQ) : base(api, log, id, type, name, function, priority) { this.SubType = (CQFriendAddType)subType; this.SendTime = sendTime.ToDateTime(); this.FromQQ = new QQ(api, fromQQ); }
public static void Main() { Native.Csharp.Sdk.Cqp.CQApi.Sender = new TaskReceiver(); //传递假的container Register(FakeCoolQ); //注册假的CQ CQApi = new CQApi(404233); CQLog = new CQLog(404233); //取得注册的接口 Startup = FakeCoolQ.Resolve <ICQStartup>("酷Q启动事件"); GroupMessage = FakeCoolQ.Resolve <IGroupMessage>("群消息处理"); //触发假的启动事件 Startup.CQStartup(null, new CQStartupEventArgs(CQApi, CQLog, 0, 0, "startup", "CQStartup", 0)); //启动Tcp监听线程 Thread t = new Thread(new ThreadStart(WebProcess.Listening)); t.Start(); //触发假的群聊事件 if (NotTestInputing) { return; } while (true) { string content = Console.ReadLine(); Console.WriteLine($"↓ 你:\n{content}"); GroupMessage.GroupMessage(null, new CQGroupMessageEventArgs(CQApi, CQLog, 0, 0, "groupmessage", "CQGroupMessage", 0, 0, msgid, GroupID, QQID, "", content, false)); msgid++; } }
public static void SendLog(string s) { if (CQLog != null) { CQLog.Info(s); } }
/// <summary> /// 初始化 <see cref="CQPrivateMessageEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="id">事件id</param> /// <param name="type">事件类型</param> /// <param name="name">事件名称</param> /// <param name="function">事件函数名</param> /// <param name="priority">事件优先级</param> /// <param name="subType">消息子类型</param> /// <param name="msgId">消息ID</param> /// <param name="fromQQ">来源QQ</param> /// <param name="msg">消息内容</param> /// <param name="isRegex">是否为正则消息</param> public CQPrivateMessageEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority, int subType, int msgId, long fromQQ, string msg, bool isRegex) : base(api, log, id, type, name, function, priority) { this.SubType = (CQPrviateMessageType)subType; this.FromQQ = new QQ(api, fromQQ); this.Message = new QQMessage(api, msgId, msg, isRegex); }
/// <summary> /// 初始化 <see cref="CQStatusEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="id">事件Id</param> /// <param name="name">名称</param> /// <param name="title">标题</param> /// <param name="function">函数名</param> /// <param name="period">刷新间隔</param> public CQStatusEventArgs(CQApi api, CQLog log, int id, string name, string title, string function, long period) : base(api, log, function) { this.Id = id; this.Name = name; this.Title = title; this.Period = new TimeSpan(period * TimeSpan.TicksPerMillisecond); }
/// <summary> /// 初始化 <see cref="CQGroupManageChangeEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="id">事件Id</param> /// <param name="type">事件类型</param> /// <param name="name">事件名称</param> /// <param name="function">函数名称</param> /// <param name="priority">默认优先级</param> /// <param name="subType">子类型</param> /// <param name="sendTime">发送时间</param> /// <param name="fromGroup">来源群</param> /// <param name="beingOperateQQ">被操作QQ</param> public CQGroupManageChangeEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority, int subType, int sendTime, long fromGroup, long beingOperateQQ) : base(api, log, id, type, name, function, priority) { this.SubType = (CQGroupManageChangeType)subType; this.SendTime = sendTime.ToDateTime(); this.FromGroup = new Group(api, fromGroup); this.BeingOperateQQ = new QQ(api, beingOperateQQ); }
/// <summary> /// 由托管环境初始化的 <see cref="CQMenuExport"/> 的新实例 /// </summary> static CQMenuExport() { api = AppInfo.UnityContainer.Resolve <CQApi> (AppInfo.Id); log = AppInfo.UnityContainer.Resolve <CQLog> (AppInfo.Id); // 调用方法进行实例化 ResolveBackcall(); }
/// <summary> /// 初始化 <see cref="CQGroupUploadEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="id">事件Id</param> /// <param name="type">事件类型</param> /// <param name="name">事件名称</param> /// <param name="function">函数名称</param> /// <param name="priority">默认优先级</param> /// <param name="subType">子类型</param> /// <param name="sendTime">发送时间</param> /// <param name="fromGroup">来源群</param> /// <param name="fromQQ">来源QQ</param> /// <param name="file">文件信息</param> public CQGroupUploadEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority, int subType, int sendTime, long fromGroup, long fromQQ, string file) : base(api, log, id, type, name, function, priority) { this.SubType = (CQGroupFileUploadType)subType; this.SendTime = sendTime.ToDateTime(); this.FromGroup = new Group(api, fromGroup); this.FromQQ = new QQ(api, fromQQ); this.FileInfo = new GroupFileInfo(file); }
/// <summary> /// 初始化 <see cref="CQFriendAddRequestEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="id">事件Id</param> /// <param name="type">事件类型</param> /// <param name="name">事件名称</param> /// <param name="function">函数名称</param> /// <param name="priority">默认优先级</param> /// <param name="subType">子类型</param> /// <param name="sendTime">发送时间</param> /// <param name="fromQQ">来源QQ</param> /// <param name="msg">附言</param> /// <param name="responseFlag">反馈标识</param> public CQFriendAddRequestEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority, int subType, int sendTime, long fromQQ, string msg, string responseFlag) : base(api, log, id, type, name, function, priority) { this.SubType = (CQFriendAddRequestType)subType; this.SendTime = sendTime.ToDateTime(); this.FromQQ = new QQ(api, fromQQ); this.AppendMessage = msg; this.Request = new QQRequest(api, responseFlag); }
/// <summary> /// 初始化 <see cref="CQEventEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="id">事件id</param> /// <param name="type">类型</param> /// <param name="name">名称</param> /// <param name="function">函数名</param> /// <param name="priority">默认优先级</param> public CQEventEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority) : base(api, log, function) { this.Id = id; this.Type = (CQMessageEventType)type; this.Name = name; this.Priority = priority; this.Handler = false; }
public static void AddLog(CQLogLevel logLevel, string category, string msg) { var debugLog = new CQLog(logLevel, category, msg); if (DebugWindow.Instance != null) { DebugWindow.Instance.AddLog(debugLog); } Console.WriteLine(debugLog.ToString()); }
public static void Launch() { #if LOCAL_DEBUG #else Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("~该dll已经正常编译,不可启动调试。~"); Console.ReadLine(); return; #endif Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("~机器人本地测试工具~"); Console.WriteLine("特殊指令:\n%setqq <qq> 设置测试用的QQ号\n%setgroup <group> 设置测试用的群号\n"); Console.Write("输入测试用的QQ号:"); QQID = long.Parse(Console.ReadLine()); Console.Write("输入测试用的群号:"); GroupID = long.Parse(Console.ReadLine()); //传递假的container CQMain.Register(FakeCoolQ); //注册假的CQ CQApi = new CQApi(new Sdk.Cqp.Model.AppInfo("local_debuger", 0, 9, "local_debuger", "1.0.0", 10, "", "", 404233)); CQLog = new CQLog(404233); //取得注册的接口 Startup = FakeCoolQ.Resolve <ICQStartup>("酷Q启动事件"); GroupMessage = FakeCoolQ.Resolve <IGroupMessage>("群消息处理"); //触发假的启动事件 Startup.CQStartup(null, new CQStartupEventArgs(CQApi, CQLog, 0, 0, "startup", "CQStartup", 0)); //触发假的群聊事件 while (true) { Console.ForegroundColor = ConsoleColor.White; Console.Write("QQ" + QQID + "@" + GroupID + ">"); string content = Console.ReadLine(); if (content.StartsWith("%")) { string[] p = content.Split(' '); if (p[0] == "%setqq") { QQID = long.Parse(p[1]); } if (p[0] == "%setgroup") { GroupID = long.Parse(p[1]); } } else { GroupMessage.GroupMessage(null, new CQGroupMessageEventArgs(CQApi, CQLog, 0, 0, "groupmessage", "CQGroupMessage", 0, 0, msgid, GroupID, QQID, "", content, false)); msgid++; } } }
/// <summary> /// 初始化 <see cref="CQGroupMemberDecreaseEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="id">事件ID</param> /// <param name="type">事件类型</param> /// <param name="name">事件名称</param> /// <param name="function">函数名称</param> /// <param name="priority">默认优先级</param> /// <param name="subType">子类型</param> /// <param name="sendTime">发送时间</param> /// <param name="fromGroup">来源群</param> /// <param name="fromQQ">来源QQ</param> /// <param name="beingOperateQQ">被操作QQ</param> public CQGroupMemberDecreaseEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority, int subType, int sendTime, long fromGroup, long fromQQ, long beingOperateQQ) : base(api, log, id, type, name, function, priority) { this.SubType = (CQGroupMemberDecreaseType)subType; this.SendTime = sendTime.ToDateTime(); this.FromGroup = new Group(api, fromGroup); if (subType == 2) // 仅仅当类型为2时存在 FromQQ { this.FromQQ = new QQ(api, fromQQ); } this.BeingOperateQQ = new QQ(api, beingOperateQQ); }
private static int Initialize(int authCode) { // 向容器注册一个 CQApi 实例 api = new CQApi(authCode); Common.AppInfo.UnityContainer.RegisterInstance <CQApi> ("me.cqp.ritsukage.RitsukageBot", api); // 向容器注册一个 CQLog 实例 log = new CQLog(authCode); Common.AppInfo.UnityContainer.RegisterInstance <CQLog> ("me.cqp.ritsukage.RitsukageBot", log); // 注册插件全局异常捕获回调, 用于捕获未处理的异常, 回弹给 酷Q 做处理 AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; // 本函数【禁止】处理其他任何代码,以免发生异常情况。如需执行初始化代码请在Startup事件中执行(Type=1001)。 return(0); }
private static int Initialize(int authCode) { AppInfo appInfo = new AppInfo(pInfo.name, pInfo.ret, pInfo.apiver, pInfo.name, pInfo.version, pInfo.version_id, pInfo.author, pInfo.description, authCode); cqApi = new CQApi(appInfo); cqLog = new CQLog(authCode); // 注册插件全局异常捕获回调, 用于捕获未处理的异常 AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; // 事件回调 Event_eventEnableHandler += AppEnableInterface.AppEnable; Event_eventGroupMsgHandler += GroupMessageInterface.GroupMessage; Event_eventPrivateMsgHandler += PrivateMessageInterface.PrivateMessage; return(0); }
/// <summary> /// 初始化 <see cref="CQGroupMessageEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="id">事件Id</param> /// <param name="type">事件类型</param> /// <param name="name">事件名称</param> /// <param name="function">函数名称</param> /// <param name="priority">默认优先级</param> /// <param name="subType">子类型</param> /// <param name="msgId">消息Id</param> /// <param name="fromGroup">来源群号</param> /// <param name="fromQQ">来源QQ</param> /// <param name="fromAnonymous">来源匿名</param> /// <param name="msg">消息内容</param> /// <param name="isRegex">是否正则消息</param> public CQGroupMessageEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority, int subType, int msgId, long fromGroup, long fromQQ, string fromAnonymous, string msg, bool isRegex) : base(api, log, id, type, name, function, priority) { this.SubType = (CQGroupMessageType)subType; this.Message = new QQMessage(api, msgId, msg, isRegex); this.FromGroup = new Group(api, fromGroup); this.FromQQ = new QQ(api, fromQQ); this.IsFromAnonymous = fromQQ == 80000000 && !string.IsNullOrEmpty(fromAnonymous); if (this.IsFromAnonymous) { this.FromAnonymous = new GroupMemberAnonymousInfo(fromAnonymous); } else { this.FromAnonymous = null; } }
/// <summary> /// 初始化 <see cref="CQGroupBanSpeakEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="id">事件Id</param> /// <param name="type">事件类型</param> /// <param name="name">事件名称</param> /// <param name="function">函数名称</param> /// <param name="priority">默认优先级</param> /// <param name="subType">子类型</param> /// <param name="sendTime">发送时间</param> /// <param name="fromGroup">来源群</param> /// <param name="fromQQ">来源QQ</param> /// <param name="beingOperateQQ">被操作QQ</param> /// <param name="duration">禁言时长, 单位: 秒</param> public CQGroupBanSpeakEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority, int subType, int sendTime, long fromGroup, long fromQQ, long beingOperateQQ, long duration) : base(api, log, id, type, name, function, priority) { this.SubType = (CQGroupBanSpeakType)subType; this.SendTime = sendTime.ToDateTime(); this.FromGroup = new Group(api, fromGroup); this.FromQQ = new QQ(api, fromQQ); this.IsAllBanSpeak = beingOperateQQ == 0; if (!this.IsAllBanSpeak) { this.BeingOperateQQ = new QQ(api, beingOperateQQ); } if (subType == 2) // 当子类型为 2 时才有 { this.BanSpeakTimeSpan = TimeSpan.FromSeconds(duration); } }
/// <summary> /// 初始化 <see cref="CQMenuEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="name">菜单名称</param> /// <param name="function">函数名</param> public CQMenuEventArgs(CQApi api, CQLog log, string name, string function) : base(api, log, function) { this.Name = name; }
/// <summary> /// 初始化 <see cref="CQMenuCallEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="name">菜单名称</param> /// <param name="function">菜单函数</param> public CQMenuCallEventArgs(CQApi api, CQLog log, string name, string function) : base(api, log, name, function) { }
/// <summary> /// 初始化 <see cref="CQStatusUpdateEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="id">悬浮窗id</param> /// <param name="name">名称</param> /// <param name="title">英文名称</param> /// <param name="function">函数名称</param> /// <param name="period">更新间隔</param> public CQStatusUpdateEventArgs(CQApi api, CQLog log, int id, string name, string title, string function, long period) : base(api, log, id, name, title, function, period) { }
public static void setModel(CQApi _API, CQLog _LOG) { CQApi = _API; CQLog = _LOG; }
public static void GetCqData(CQApi cQApi, CQLog cQLog) { GeneralControl.CQApi = cQApi; GeneralControl.CQLog = cQLog; }
public static void Initialize(CQLog log) { if (!File.Exists("config.json")) { FileStream configFile = new FileStream("config.json", FileMode.OpenOrCreate); StreamReader reader = new StreamReader( System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("vip.popop.pcr.GHelper.Resources.default.json") ); StreamWriter writer = new StreamWriter(configFile); string defaultJson = reader.ReadToEnd(); writer.Write(defaultJson); Config = JsonConvert.DeserializeObject <Configuration>(defaultJson); reader.Close(); writer.Close(); configFile.Close(); } else { FileStream configFileO = new FileStream("config.json", FileMode.Open); StreamReader configReader = new StreamReader(configFileO); Config = JsonConvert.DeserializeObject <Configuration>(configReader.ReadToEnd()); configReader.Close(); configReader.Dispose(); configFileO.Close(); } Event_GroupMessage.ClearHandler(); Event_PrivateMessage.ClearHandler(); accountManager = new Account { logger = log }; accountManager.OnInitialize(); if (Config.IsPhonographEnabled) { phonograph = new Phonograph { Client = (Phonograph.ClientType)Enum.Parse(typeof(Phonograph.ClientType), Config.Phonograph.Platform), IsWithLink = Config.Phonograph.WithLink }; phonograph.OnInitialize(); } if (Config.IsRepeaterEnabled) { repeater = new Repeater { repeatChance = Config.Repeater.RepeatChance, cooldown = Config.Repeater.Cooldown, banWords = Config.Repeater.BanWords }; repeater.OnInitialize(); } if (Config.IsSleepHelperEnabled) { sleepHelper = new SleepHelper { }; sleepHelper.OnInitialize(); } if (Config.IsLinkGeneratorEnabled) { linkGenerator = new LinkGenerator { }; linkGenerator.OnInitialize(); } if (Config.IsSoloEnabled) { solo = new Solo { validSpan = Config.Solo.ValidSpan, checkTime = Config.Solo.CheckTime, maxStack = Config.Solo.MaxStack }; solo.OnInitialize(); } if (Config.IsForestEnabled) { forest = new Forest() { Logger = log }; forest.OnInitialize(); } //letTheyOut = new LetThemOut { //}; //letTheyOut.OnInitialize(); }
/// <summary> /// 初始化 <see cref="CQAppDisableEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="id">事件id</param> /// <param name="type">类型</param> /// <param name="name">名称</param> /// <param name="function">函数名</param> /// <param name="priority">默认优先级</param> public CQAppDisableEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority) : base(api, log, id, type, name, function, priority) { }
/// <summary> /// 初始化 <see cref="CQEventArgs"/> 类的新实例 /// </summary> /// <param name="api">酷Q的接口实例</param> /// <param name="log">酷Q的日志实例</param> /// <param name="function">触发此事件的函数名称</param> public CQEventArgs(CQApi api, CQLog log, string function) { this.CQApi = api; this.CQLog = log; this.Function = function; }
public void AddLog(CQLog debugLog) { LogList.Items.Add(debugLog); LogList.ScrollIntoView(LogList.Items[LogList.Items.Count - 1]); }