pianzide1117 发表于 5-6 22:52

正式免费!纯C#实现V9 SDK—Newbe.CQP.Framework正式版发布

本帖最后由 pianzide1117 于 2017-10-26 23:15 编辑

]该计划由于反响不强烈,即将取消。相关业务已经迁移到了以下帖子

跨平台C#SDK—Newbe.Mahua正式发布了!https://cqp.cc/t/33399


以下为原贴


Newbe.CQP.Framework 正式版已发布!全面免费!


[*]纯C#实现,无需代理!
[*]全面开发源码!
[*]支持依赖注入!
[*]支持扩展获取群列表等酷Q原生不包含的API!
[*]支持framework45!
[*]相比1.0.0,不在需要dllexport,开发不在麻烦!
[*]我们是最先进的C#酷QSDK!

当前版本 1.1.1

github:https://github.com/pianzide1117/Newbe.CQP.Framework
oschina:http://git.oschina.net/yks/Newbe.CQP.Framework
ICoolApi文档:http://yks.oschina.io/newbe.cqp. ... work.ICoolQApi.html
开始第一个插件!!!

环境要求


[*]Net Framework 4.5.2 及以上
[*]Visual Studio 2015 update 3 及以上(推荐 2017)

以下内容均采用vs2017作为演示IDE
新建项目

项目名称至少需要包含三部分,形如AAA.BBB.CCC的形式。



安装Newbe.CQP.Framework

使用nuget安装Newbe.CQP.Framework,注意勾选"包含预发行版"。



安装完毕后,项目中应当出现以下文件夹:




重命名dll和json文件

重命名`Newbe.CQP.Framework/ForPlugin/Newbe.CQP.Framework.ApiExporter.dll`文件,使其与你的项目名称一致。注意:使用Newbe.CQP.Framework.Tools.MSBuildTask可以跳过此ApiExporter.dll改名步骤,下文有介绍
重命名`Newbe.CQP.Framework/ForPlugin/Newbe.CQP.Framework.json`文件,使其与你的项目名称一致。




按照需求修改json文件内容

如果只是快速运行demo,则不需要修改json,或需要开发更多功能请参看(http://d.cqp.me/Pro/%E5%BC%80%E5 ... .5Bappid.5D.json.29)。

新建PluginBase实现类

添加 MainPlugin.cs文件(此类名随意,文件名随意),继承Newbe.CQP.Framework.PluginBase作为基类。

实现 AppId 抽象属性 作为插件的Id,此处使用Newbe.CQP.Plugins.FirstPlugin,AppId需要与程序集名称相同。

using Newbe.CQP.Framework;

namespace Newbe.CQP.Plugins.FirstPlugin
{
    public class MainPlugin : PluginBase
    {
      public MainPlugin(ICoolQApi coolQApi) : base(coolQApi)
      {
      }
      /// <summary>
      /// AppId需要与程序集名称相同
      /// </summary>
      public override string AppId => "Newbe.CQP.Plugins.FirstPlugin";
    }
}
重写需要的事件

例如此处想要监听私聊事件,则重写ProcessPrivateMessage函数,并将消息回发给发送者,代码如下:

using Newbe.CQP.Framework;

namespace Newbe.CQP.Plugins.FirstPlugin
{
    public class MainPlugin : PluginBase
    {
      public MainPlugin(ICoolQApi coolQApi) : base(coolQApi)
      {
      }

      /// <summary>
      /// AppId需要与程序集名称相同
      /// </summary>
      public override string AppId => "Newbe.CQP.Plugins.FirstPlugin";

      public override int ProcessPrivateMessage(int subType, int sendTime, long fromQQ, string msg, int font)
      {
            //使用CoolQApi将信息回发给发送者
            CoolQApi.SendPrivateMsg(fromQQ, msg);
            return base.ProcessPrivateMessage(subType, sendTime, fromQQ, msg, font);
      }
    }
}
生成解决方案

难道还要说明?

开启酷Q开发者模式

打开酷Q文件夹下的 conf\CQP.cfg 文件,并在文件末尾插入以下两行,即可开启开发者模式。


DeveloperMode=1
复制文件到酷Q

安装nuget包(https://www.nuget.org/packages/N ... .Tools.MSBuildTask/)。

修改存在于项目根目录的`Newbe.CQP.Framework.props`文件中的`NewbePluginName`节点内容,此处,使用Newbe.CQP.Plugins.FirstPlugin。

修改后结果如下:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
    <NewbePluginName>Newbe.CQP.Plugins.FirstPlugin</NewbePluginName>
</PropertyGroup>
</Project>
设置完毕后,重新生成项目,在bin下将会出现CQP文件夹。

将CQP内容全部复制到酷Q的同级目录,复制结果将会如下所示:

复制结果如下:

│Autofac.dll                           #来自ForMain文件夹
│CQP.exe
│Newbe.CQP.Framework.dll               #来自ForMain文件夹
│Newbe.CQP.Framework.PluginLoader.dll    #来自ForMain文件夹
├─app
│      Newbe.CQP.Plugins.FirstPlugin.dll   #来自ForPlugin文件夹
│      Newbe.CQP.Plugins.FirstPlugin.json#来自ForPlugin文件夹
├─bin
│      CQP.dll
│      gzip.dll
│      htmlayout.dll
│      libeay32.dll
│      libiconv.dll
│      sqlite3.dll
│      zlib1.dll
├─conf
│      CQA.key
│      CQP.cfg
└─Newbe.CQP.Plugins.FirstPlugin            #来自插件的bin
      Autofac.dll
      Newbe.CQP.Framework.dll
      Newbe.CQP.Plugins.FirstPlugin.dll
      Newbe.CQP.Plugins.FirstPlugin.pdb
启用插件

启动CQP,在插件管理中将新添加的插件启用。

成功

发送消息给酷Q机器人,你就会收到机器人回发的信息。

本教程原文地址:http://yks.oschina.io/newbe.cqp. ... A%E6%8F%92%E4%BB%B6

其他相关主题帖子

震惊,Newbe.CQP.Framework居然支持调试!
https://cqp.cc/t/32844
还有这种操作?!Newbe.CQP.Framework复制DLL不再是难事
https://cqp.cc/t/32888
这就是你想要的!Newbe.CQP.Framework API 补完の计划
https://cqp.cc/t/32890








Eric_Lian 发表于 5-6 22:56

围观大佬!那!

1979396625 发表于 5-6 22:57

6哦,支持~

︶悠扬、Le逍遥^ 发表于 5-6 23:00

支持DALAO

zhengwulin 发表于 5-6 23:01

前排围观大佬

Chafferer 发表于 5-6 23:09

浮生若梦 发表于 5-6 23:13

前排围观大佬

traceless0929 发表于 5-6 23:30

你TM 终于写文档了!

Byniao丶Lonely 发表于 5-7 08:24

完了完了,这个社区早晚有一天到处都是大佬!

Byniao丶Lonely 发表于 5-7 08:24

CP!

Byniao丶Lonely 发表于 5-7 08:24

CP?!

洛颖 发表于 5-7 08:43

围观dalao顺便拿币

洛颖 发表于 5-7 08:43

我的cp0.0

jkingzhu 发表于 5-7 12:58

不管怎样,这个必须赞

shanaiardor 发表于 5-7 22:37

顶!!!

mqllin 发表于 5-8 08:28

这个厉害,佩服佩服!有时间用C#写写试试

By.清风 发表于 5-9 16:41

已捐赠100 支持一下

pianzide1117 发表于 5-10 21:23

RE: 纯C#实现V9 SDK——Newbe.CQP.Framework 1.1.0发布,重大更新!

alpha04 已经发布

broke change
————————
1.对ICoolApi进行了重新调整,使其与CQP提供的api相同,今后将保持同步

szxiaoyin 发表于 5-12 09:42

问一下,我在编译apiExporter的时候报错,
严重性        代码        说明        项目        文件        行        禁止显示状态
错误                命令“NSBin.bat "E:\download\yks-Newbe.CQP.Framework-dev\Newbe.CQP.Framework\packages\DllExport.1.5.1\tools\..\lib\net20\DllExport.dll" "System.Runtime.InteropServices" "true"”已退出,代码为 1。        Newbe.CQP.Framework.ApiExporter                       

明显那个dllexport.dll的路径不对,要如何修正

pianzide1117 发表于 5-12 09:59

RE: 纯C#实现V9 SDK——Newbe.CQP.Framework 1.1.0发布,重大更新!

szxiaoyin 发表于 2017-5-12 09:42
问一下,我在编译apiExporter的时候报错,
严重性        代码        说明        项目        文件        行        禁止显示状态
错误                命令“NSBin ...

不回答任何关于源码编译失败的问题
页: [1] 2 3
查看完整版本: 正式免费!纯C#实现V9 SDK—Newbe.CQP.Framework正式版发布