GitPedia

Mirai.Net

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

From Mirai-NET-Shelter·Updated April 18, 2026·View on GitHub·

**Mirai.Net** is a Mirai.Net是基于mirai-api-http实现的轻量级mirai社区sdk。 The project is written primarily in C#, distributed under the GNU Affero General Public License v3.0 license, first published in 2021. Key topics include: bot, dotnet-core, mirai, mirai-api-http, mirai-bot.

Latest release: 2.4.9
June 8, 2023View Changelog →

Mirai.Net 2.5.2

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,单元测试项目(现在没啥用了)

快速上手

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

安装

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

创建和启动 Bot

<details> <summary>名称空间引用</summary>
cs
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;
</details>
cs
using var bot = new MiraiBot { Address = "localhost:8080", QQ = "xx", VerifyKey = "xx" };

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

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

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

cs
await bot.LaunchAsync();

监听事件和消息

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

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

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

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

Hello, World

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

发送消息

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

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

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

或者:

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

贡献

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

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

致谢

Contributors

Showing top 10 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from Mirai-NET-Shelter/Mirai.Net via the GitHub API.Last fetched: 6/16/2026