All Projects → SinoAHpx → Mirai.Net

SinoAHpx / Mirai.Net

Licence: AGPL-3.0 license
Mirai.Net是基于mirai-api-http实现的轻量级mirai社区sdk。

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to Mirai.Net

ABot-Graia
一个使用 Graia Ariadne 搭建的 QQ 功能性机器人。
Stars: ✭ 194 (+46.97%)
Mutual labels:  mirai, mirai-bot, qq, qqbot, mirai-api-http
Ariadne
一个优雅且完备的 Python QQ 自动化框架,基于 Mirai API HTTP v2。 Powered by Graia Project.
Stars: ✭ 234 (+77.27%)
Mutual labels:  mirai, qq, qqbot, mirai-api-http
Application
一个可自定义的,基于Graia和Mirai的集群管、功能、娱乐为一体的QQ插件式机器人
Stars: ✭ 55 (-58.33%)
Mutual labels:  mirai, qq, qqbot, mirai-api-http
Go-Mirai-Client
基于MiraiGo的客户端,使用反向 websocket 收发私聊、群聊消息,消息格式类似onebot。支持多账号,很稳定
Stars: ✭ 90 (-31.82%)
Mutual labels:  mirai, qq, qqbot
FG
基于Nonebot的QQ群机器人🤖️,特色功能是利用机器学习算法,基于每日聊天记录生成每日总结。可在酷Q/Mirai平台上运行
Stars: ✭ 74 (-43.94%)
Mutual labels:  mirai, mirai-bot, qqbot
FuyaoBot
A QQ bot bases on Mirai, Spring Boot, MySQL and Mybatis Plus.
Stars: ✭ 30 (-77.27%)
Mutual labels:  mirai, qq, qqbot
mirai-class-notice
🥳 这是一款基于 mirai 的班级 QQ 群课程通知机器人,拥有简单的 web 管理页面,尽量实现一键安装简易操作等功能。
Stars: ✭ 25 (-81.06%)
Mutual labels:  mirai, mirai-bot, qqbot
MShell
一个Mirai机器人插件,用来连接QQ聊天窗口和系统Shell
Stars: ✭ 23 (-82.58%)
Mutual labels:  mirai, qq, qqbot
WMagicBotR
基于Mirai 使用 java开发的 bot框架,在消息事件下封装了指令/权限指令 方便调用,内置公主连接/公主连结工会战功能
Stars: ✭ 40 (-69.7%)
Mutual labels:  mirai, qq, qqbot
sagiri-bot
基于Graia Ariadne和Mirai的QQ机器人 SAGIRI-BOT
Stars: ✭ 557 (+321.97%)
Mutual labels:  mirai, qq, qqbot
Shiro
基于OneBot协议的QQ机器人快速开发框架
Stars: ✭ 78 (-40.91%)
Mutual labels:  mirai-bot, qq, qqbot
mirai-setu
一个mirai-console的简单的色图插件
Stars: ✭ 105 (-20.45%)
Mutual labels:  mirai, mirai-bot, qqbot
HoshinoBot-Plugins
nonebot1 RSS、B站解析、自定义回复……
Stars: ✭ 34 (-74.24%)
Mutual labels:  mirai, qqbot
mirai-cpp-template
mirai-cpp-template, mirai-cpp的模板项目, 快速上手mirai-cpp。
Stars: ✭ 16 (-87.88%)
Mutual labels:  mirai, qqbot
OPQ-SetuBot
基于botoy和OPQBot的色图机器人
Stars: ✭ 194 (+46.97%)
Mutual labels:  qq, qqbot
kukubot
A bot.
Stars: ✭ 177 (+34.09%)
Mutual labels:  mirai, mirai-bot
ProtobufBot
QQ机器人框架 ProtobufBot 整体介绍。看README
Stars: ✭ 45 (-65.91%)
Mutual labels:  mirai, qqbot
qq-bot-rebown
[DEPRECATED!] SmartQQ robot written in JavaScript, using ES7 async/await features
Stars: ✭ 56 (-57.58%)
Mutual labels:  qq, qqbot
Mirai-Bot-Setup
Windows环境下部署qq机器人指南。A guide for building up a qqbot with Windows.
Stars: ✭ 54 (-59.09%)
Mutual labels:  mirai, qqbot
py-pcqq
Python3模拟PCQQ客户端协议
Stars: ✭ 79 (-40.15%)
Mutual labels:  qq, qqbot

Mirai.Net 2.4.8

Mirai.Net 是基于 mirai-api-http 实现的 C# 版轻量级 mirai 社区 SDK。

此项目遵循 AGPL-3.0 协议开源。

本项目新建立的 QQ 群: 752379554(原来的已被停封)欢迎加入群聊探讨 甚至水群聊天

项目文档:Mirai.Net Documents

如果你觉得这是个很酷的项目的话,不妨考虑给它点一个 Star。

如果你还觉得挺酷但还不够好的话,也欢迎提交 Pull Request 和 Issue。

速览

  • 基于 .NET Standard 2.0 开发,支持跨平台。
  • 适配最新的 mirai-api-http 插件。
  • 实现了 mirai-api-httpHttp AdapterWebsocket Adapter
    • Http Adapter 用来进行发送操作。
    • Websocket Adapter 用来进行接收操作。
  • 基于 Rx.NET 的推送系统。
  • 有一堆好用的脚手架和拓展方法。
  • 提供了简单的模块化和命令系统实现。
  • 源代码结构
    • Mirai.Net,主项目
    • Mirai.Net.Test,控制台测试项目
    • Mirai.Net.UnitTest,单元测试项目(现在没啥用了)
实现的接口列表

斜体的标注的接口是不稳定的

删除线标注的接口是未实现的

  • 账号信息
    • 获取好友列表
    • 获取群列表
    • 获取群成员列表
    • 获取 Bot 资料
    • 获取好友资料
    • 获取群成员资料
    • 获取陌生人资料
  • 消息操作
    • 发送好友消息
    • 发送群消息
    • 发送临时会话消息
    • 发送头像戳一戳消息
    • 撤回消息
    • 根据消息id获取消息链
    • 监测同步消息
    • 根据QQID获取好友漫游消息
  • 文件操作
    • 查看文件列表
    • 获取文件信息
    • 创建文件夹
    • 删除文件
    • 移动文件
    • 重命名文件
  • 多媒体内容上传
    • 图片文件上传
    • 语音文件上传
    • 群文件上传
  • 账号管理
    • 删除好友
  • 群管理
    • 禁言群成员
    • 解除群成员禁言
    • 移除群成员
    • 退出群聊
    • 全体禁言
    • 解除全体禁言
    • 设置群精华消息
    • 获取群设置
    • 修改群设置
    • 获取群员设置
    • 修改群员设置
    • 获取群公告
    • 发布群公告
    • 删除群公告
  • 事件处理
    • 添加好友申请
    • 用户入群申请
    • Bot 被邀请入群申请
支持的消息类型
  • Quote - 回复消息
  • At - @消息
  • AtAll - @全体成员
  • Face - QQ 表情
  • Plain - 纯文本
  • Image - 图片
  • FlashImage - 闪照
  • Voice - 语音
  • Xml - XML 消息
  • Json - JSON 消息
  • App - App 消息
  • Poke - 戳一戳
  • Dice - 不知道是啥玩意
  • MusicShare - 音乐分享
  • ForwardMessage - 转发消息
  • File - 文件
  • MarketFace - 商城表情
  • MiraiCode - Mirai码

快速上手

(以下仅为一些简单示例,如果需要更详细的说明,请移步文档。有时候文档跟不上版本请进群提问

安装

  • 使用 Nuget 安装(推荐)
    • Nuget 包管理器: Install-Package Mirai.Net
    • .NET CLI: dotnet add package Mirai.Net
    • 或者在 IDE 的可视化界面搜索Mirai.Net安装最新版。
  • 自己克隆这个仓库的默认分支,然后自己编译,然后自己添加 dll 引用。

创建和启动 Bot

名称空间引用
using System;
using System.Linq;
using System.Reactive.Linq;
using System.Threading;
using System.Threading.Tasks;
using Mirai.Net.Data.Messages;
using Mirai.Net.Data.Messages.Receivers;
using Mirai.Net.Sessions;
using var bot = new MiraiBot
{
    Address = "localhost:8080",
    QQ = "xx",
    VerifyKey = "xx"
};

(因为MiraiBot类实现了IDisposable接口,所以可以使用using关键字)

AddressVerifyKey来自mirai-api-http的配置文件,QQ就是Mirai Console已登录的机器人的 QQ 号。

创建完MiraiBot实例之后,就可以启动了:

await bot.LaunchAsync();

监听事件和消息

MiraiBot类暴露两个属性: EventReceivedMessageReceived,订阅它们就可以监听事件和消息。

下面的例子就是过滤出接收到的好友请求事件事件,然后把它从EventBase转换成具体的NewFriendRequestedEvent,最后才是订阅器。

(消息的订阅器也是同样的)

bot.EventReceived
    .OfType<NewFriendRequestedEvent>()
    .Subscribe(x =>
    {
        //do things
    });

Hello, World

Mirai.Net通过一系列的xxManager(这些管理器都是静态类。)来进行主动操作,其中,消息相关的管理器为MessageManager

发送消息

这里以发送群消息作为演示,实际上还可以发送好友消息,临时消息和戳一戳消息。

发送消息的方法有两个参数: 发送到哪里和发送什么。所以第一个参数就是发消息的群号,第二个参数就是要发送的消息链(或者字符串)。

await MessageManager.SendGroupMessageAsync("xx", "Hello, World");

或者:

await MessageManager.SendGroupMessageAsync("xx", new MessageChainBuilder().Plain("Hello, ").At("xx").Build());

贡献

此项目欢迎任何人的 Pull RequestIssue 也欢迎 Star 和 Fork。

如果你认为文档不够好,也欢迎对 文档仓库 提交 Pull RequestIssue

致谢

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].