使用C# 开始第一个QQ机器人

本示例将会使用”嘤鹉学舌”这个小插件的实现来演示如何使用Newbe.Mahua实现第一个机器人插件。php

插件功能

自动将发送者的消息回发给发送人,嘤鹉(Parrot,实际上是说嘤嘤嘤怪)学舌。html

开发环境要求

  • .Net Framework 4.5.2 及以上
  • Visual Studio 2017(VS2015 update 3 理论上也可以开发,但开发遇到的问题,需自行解决)
  • powershell 5.0及以上

设置Powershell执行策略限制

参考连接:http://www.pstips.net/powershell-create-and-start-scripts.htmlnode

简单来讲,使用管理员权限在cmd中运行如下命令:shell

powershell -command "Set-ExecutionPolicy RemoteSigned -Force" 

安装VS扩展

从VS扩展商店下载最新的VS扩展,下载地址为:https://marketplace.visualstudio.com/items?itemName=Newbe36524.NewbeMahuaVsExtensions编程

若出现下载不顺畅通,也能够经过加入技术交流群,在群文件中进行下载。点击加入Newbe.Mahua群【610394020】api

安装过程可能须要花费若干分钟,需耐心等待。bash

安装完毕,须要重启全部VS方可生效。框架

新建项目

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

新建项目时,能够根据”但愿支持的插件平台”来选择特定后缀的项目模板来安装。ide

Newbe.Mahua.Plugins.Template是安装了全部平台支持包的项目模板。本示例将使用此项目模板进行演示。

本插件项目名称使用Newbe.Mahua.Plugins.Parrot

新建项目

修改插件基本信息

打开PluginInfo.cs文件,按照实际需求和注释内容进行修改。

namespace Newbe.Mahua.Plugins.Parrot { /// <summary> /// 本插件的基本信息 /// </summary> public class PluginInfo : IPluginInfo { /// <summary> /// 版本号,建议采用 主版本.次版本.修订号 的形式 /// </summary> public string Version { get; set; } = "1.0.0"; /// <summary> /// 插件名称 /// </summary> public string Name { get; set; } = "嘤鹉学舌"; /// <summary> /// 做者名称 /// </summary> public string Author { get; set; } = "Newbe"; /// <summary> /// 插件Id,用于惟一标识插件产品的Id,至少包含 AAA.BBB.CCC 三个部分 /// </summary> public string Id { get; set; } = "Newbe.Mahua.Plugins.Parrot"; /// <summary> /// 插件描述 /// </summary> public string Description { get; set; } = "嘤鹉学舌,是一个使用Mahua框架开发的第一个插件。该插件实现将好友的私聊消息回发给好友的功能。"; } } 

添加”接收好友消息事件”代码实现

MahuaEvents处右键,选择”添加->新建项”。

MahuaEvents文件夹是本SDK建议将事件放置的文件夹位置。也能够不接受建议而添加在其余地方。

添加->新建项

以下图所示,选择”来自好友的私聊消息接收事件”。

新建好友消息处理事件

PrivateMessageFromFriendReceivedMahuaEvent.cs中,调用IMahuaApi,将好友消息回发给好友,实现嘤鹉学舌的效果。

using Newbe.Mahua.MahuaEvents; using System.Threading.Tasks; namespace Newbe.Mahua.Plugins.Parrot.MahuaEvents { /// <summary> /// 来自好友的私聊消息接收事件 /// </summary> public class PrivateMessageFromFriendReceivedMahuaEvent : IPrivateMessageFromFriendReceivedMahuaEvent { private readonly IMahuaApi _mahuaApi; public PrivateMessageFromFriendReceivedMahuaEvent( IMahuaApi mahuaApi) { _mahuaApi = mahuaApi; } public void ProcessFriendMessage(PrivateMessageFromFriendReceivedContext context) { // 戳一戳 _mahuaApi.SendPrivateMessage(context.FromQq) .Shake() .Done(); // 嘤嘤嘤,换行,重复消息 _mahuaApi.SendPrivateMessage(context.FromQq) .Text("嘤嘤嘤:") .Newline() .Text(context.Message) .Done(); // 异步发送消息,不能使用 _mahuaApi 实例,须要另外开启Session Task.Factory.StartNew(() => { using (var robotSession = MahuaRobotManager.Instance.CreateSession()) { var api = robotSession.MahuaApi; api.SendPrivateMessage(context.FromQq, "异步的嘤嘤嘤"); } }); } } } 

在模块中注册事件

打开MahuaModule.cs文件,在MahuaEventsModule中注册刚刚添加的PrivateMessageFromFriendReceivedMahuaEvent

using Autofac; using Newbe.Mahua.MahuaEvents; using Newbe.Mahua.Plugins.Parrot.MahuaEvents; namespace Newbe.Mahua.Plugins.Parrot { /// <summary> /// Ioc容器注册 /// </summary> public class MahuaModule : IMahuaModule { public Module[] GetModules() { // 能够按照功能模块进行划分,此处能够改造为基于文件配置进行构造。实现模块化编程。 return new Module[] { new PluginModule(), new MahuaEventsModule(), }; } /// <summary> /// 基本模块 /// </summary> private class PluginModule : Module { protected override void Load(ContainerBuilder builder) { base.Load(builder); // 将实现类与接口的关系注入到Autofac的Ioc容器中。若是此处缺乏注册将没法启动插件。 // 注意!!!PluginInfo是插件运行必须注册的,其余内容则不是必要的!!! builder.RegisterType<PluginInfo>() .As<IPluginInfo>(); } } /// <summary> /// <see cref="IMahuaEvent"/> 事件处理模块 /// </summary> private class MahuaEventsModule : Module { protected override void Load(ContainerBuilder builder) { base.Load(builder); // 将须要监听的事件注册,若缺乏此注册,则不会调用相关的实现类 builder.RegisterType<PrivateMessageFromFriendReceivedMahuaEvent>() .As<IPrivateMessageFromFriendReceivedMahuaEvent>(); } } } } 

生成与打包

生成项目,而后双击位于项目根目录的build.bat文件。

build.bat执行成功

复制文件到机器人平台

bin目录下会按照当前安装的平台生成相应的目录。本示例将会生成CQP、Amanda和MPQ三个目录。

分别将三个文件夹下的全部文件和文件夹都复制到对应的机器人平台根目录。

以CQP为例,进行一次复制过程以下图所示:

CQP复制插件

各机器人软件下载地址:

名称 地址
CQP https://cqp.cc/
MPQ https://f.mypcqq.cc/thread-2327-1-1.html
CleverQQ https://d.cleverqq.cn/forum.php
QQLight http://www.52chat.cc/

启用插件

各个机器人平台的启用方式各不相同。

CQP

按照下图所示,开启开发者模式。

开启开发者模式

打开插件管理将插件启用。

CleverQQ

打开插件管理将插件启用。

MPQ

打开插件管理将插件启用。

QQLight

打开插件管理将插件启用。

成功!

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

机器人插件启动可能须要一段时间,而且大多数平台都会丢弃离线信息,可能须要等待一下子在发送。

继续了解

Newbe.Mahua 1.X 主要特性介绍与常见问题讲解

教程连接

Newbe.Mahua 1.X 主要特性介绍与常见问题讲解

Newbe.Mahua 插件热更新

【开源访谈】对接 QQ 机器人平台,对接共同成长的开源社区(开源中国采访)

开始第一个QQ机器人【适用于v1.9-1.12】

Newbe.Mahua.Samples.ApiExtensions 对IMahuaApi进行扩展

Newbe.Mahua.Samples.LiveGirl 操做定时任务

Newbe.Mahua.Samples.Sqlite SQLite操做实例

Newbe.Mahua 测试与调试

Newbe.Mahua 扩展设置中心

发布说明

Newbe.Mahua 1.12 第一个LTS版本

Newbe.Mahua 1.11 支持热更新

Newbe.Mahua 1.10 全新日志查看器

Newbe.Mahua 1.9 引入 Session

Newbe.Mahua 1.8 消息发送Fluent API

Newbe.Mahua 1.7.0 支持API扩展

Newbe.Mahua 1.6.0 开发便利性提高

相关文章
相关标签/搜索