/// <summary>
        /// 加载CQ的插件
        /// </summary>
        /// <param name="adapter"></param>
        public void LoadCQPlugins(IOnebotAdapter adapter)
        {
            CQAppManager.Api = new CQApiAdapter(adapter);
            CQAppManager.Manager.LoadApps("apps", "data");
            CQAppManager.Manager.EnableApps();


            // --- 转发事件 ---
            adapter.OnGroupMessage += token =>
            {
                CQAppManager.Manager.InvokeGroupMsgEvent(1,
                                                         token["message_id"].ToObject <int>(), token["group_id"].ToObject <long>(),
                                                         token.SelectToken("sender.user_id").ToObject <long>(), "", OnebotTools.ParseMessageToString(token["message"]), 0);
            };
            adapter.OnPrivateMessage += token =>
            {
                var subType = token["sub_type"]?.ToString() == "friend" ? 11 : 2;
                CQAppManager.Manager.InvokePrivateMsgEvent(subType,
                                                           token["message_id"].ToObject <int>(), token["user_id"].ToObject <long>(), OnebotTools.ParseMessageToString(token["message"]),
                                                           0);
            };
            adapter.OnGroupUpload += token =>
            {
                var file = token["file"]?.ToObject <GroupFileInfo>();
                if (file == null)
                {
                    return;
                }
                using (var ms = new MemoryStream())
                    using (var packet = new BytesPacket(ms))
                    {
                        var encode = packet
                                     .WriteString(file.Id)
                                     .WriteString(file.Name)
                                     .WriteInt64(file.Size)
                                     .WriteInt32(file.Busid)
                                     .ToBase64();
                        CQAppManager.Manager.InvokeGroupUploadEvent(token["group_id"].ToObject <long>(),
                                                                    token["user_id"].ToObject <long>(), token["time"].ToObject <long>(), encode);
                    }
            };
        }
Esempio n. 2
0
 public CQApiAdapter(IOnebotAdapter onebot)
 {
     _onebot = onebot;
 }