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

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

插件功能

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

开发环境要求

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

设置Powershell执行策略限制

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

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


powershell -command "Set-ExecutionPolicy RemoteSigned -Force"

安装VS扩展

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

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

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

安装完毕,需要重启所有VS方可生效。

新建项目

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

新建项目时,可以根据”希望支持的插件平台”来选择特定后缀的项目模板来安装。

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复制插件

各机器人软件下载地址:

名称地址
CQPhttps://cqp.cc/
MPQhttps://f.mypcqq.cc/thread-2327-1-1.html
CleverQQhttps://d.cleverqq.cn/forum.php
QQLighthttp://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 开发便利性提升

转载于:https://www.cnblogs.com/newbe36524/p/9704810.html

软件名称:梦想接口工作室 -- QQ机器人! 软件版本:1.0.0.1 更新日期:2010/7/19 软件作者:小胡 软件下载地址:http://www.8han.com/qq/down/QQRobot.rar 软件说明: 1.在论坛:http://www.8han.com 论坛中注册一个账号。然后用账号登陆软件。 2.登陆成功后输入QQ账号和密码。点击登陆,如果QQ好友比较多,就会比较慢,因为每次登陆都会下载好友信息和群信息。 3.在实时日志中就能看到QQ机器人的动作。 4.配置修改中,可以修改QQ机器人的默认语句和问答语句。 5.论坛整合中需要输入论坛的数据库信息。 6.设置 数据库信息 注:数据库前缀不要下划线,论坛地址后面不要加“/” 7.QQ群号有2层含义,1.与论坛绑定的群号,如若发现论坛有新帖,机器人就会向所设置的群号中发信息,2锁定的群号,因为考虑到有的用户,不想让机器人在别的群中说话,所以就可以锁定机器人只在锁定的群中发言。 8.如果在使用的过程中遇到问题,可以在论坛中提交问题,请经常查看版本信息,获取最新的QQ机器人版本。 函数讲解: 1.默认回答中的函数:$qq$:收到信息的发送QQ。 $qm$ :收到的信息。 2.论坛主贴群通知新信息:$author$ :帖子的发送人 $subject$:帖子的标题 $url$:帖子的地址 3.论坛主贴群通知新信息:$tauthor$ :帖子的发送人 $author$ :帖子的回复人 $subject$:帖子的标题 $url$:帖子的地址 $views$ : 浏览次数 $replay$ :回复次数 命令详解: help:列出所有命令集 s:www.8han.com 查询8han.com的收录情况和PR值 e:english 把英文翻译为中文 c:中国 把中文翻译为英文 j:中国 把简体翻译成繁体 f:中國 把繁体翻译成简体 软件调试成功后,论坛中发新帖会在绑定的QQ群中发言。 论坛中发新回帖会给发帖的楼主发信息。 QQ机器人2010-7-22 更新日志: 1.版本由1.0.0.1升级至1.0.0.2 2.简约了登陆界面 3.解决了缩小就关闭的问题,软件制作成:关闭就关闭了软件,但是做出了QQ一样的缩进效果! 4.软件增加了测试论坛链接成功与否按钮 5.论坛版块中,点击了开始监控,才监控论坛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值