Warning
目前正在重构 Makabaka 2.0,绝大部分代码都使用 DI 进行了重构,因此调用逻辑与 1.x 差异较大。如果你从 1.x 迁移到 2.0 ,可能需要改动较多代码。
本项目将持续跟进 Lagrange.Core 项目进度。由于 Lagrange.Core 项目仍在开发当中,可能有部分功能暂未支持。
如果对该项目有任何问题,欢迎在 Issues 中提出。
Makabaka 已发布到 NuGet ,可以通过NuGet包管理器搜索并安装到工程。
或者,可以直接去 Releases 中下载 .nupkg 文件。
消息类型
| 消息类型 | 是否支持 |
|---|---|
| Text | 🟢 |
| Face | 🟢 |
| Image | 🟢 |
| Record | 🟢 |
| Video | 🟢 |
| At | 🟢 |
| Rps | 🟢 |
| Dice | 🟢 |
| Shake | 🟢 |
| Poke | 🟢 |
| Anonymous | 🟢 |
| Share | 🟢 |
| Contact | 🟢 |
| Location | 🟢 |
| Music | 🟢 |
| Reply | 🟢 |
| Forward | 🟢 |
| Node | 🟢 |
| Xml | 🟢 |
| Json | 🟢 |
API
事件
| 推送类型 | 事件名称 | 是否支持 |
|---|---|---|
| Message | Private Message | 🟢 |
| Message | Group Message | 🟢 |
| Notice | Group File Upload | 🟢 |
| Notice | Group Admin Change | 🟢 |
| Notice | Group Member Decrease | 🟢 |
| Notice | Group Member Increase | 🟢 |
| Notice | Group Mute | 🟢 |
| Notice | Friend Add | 🟢 |
| Notice | Group Recall Message | 🟢 |
| Notice | Friend Recall Message | 🟢 |
| Notice | Group Poke | 🟢 |
| Notice | Group red envelope luck king | 🟢 |
| Notice | Group Member Honor Changed | 🟢 |
| Request | Add Friend Request | 🟢 |
| Request | Group Request/Invitations | 🟢 |
| Meta | LifeCycle | 🟢 |
| Meta | Heartbeat | 🟢 |
适配器
| 适配器类型 | 是否支持 |
|---|---|
| Http | 🔴 |
| Http-Post | 🔴 |
| ForwardWebSocket | 🟢 |
| ReverseWebSocket | 🟢 |
拓展功能
| 功能 | 是否支持 |
|---|---|
| 获取收藏表情 | 🟢 |
| 获取好友历史消息记录 | 🟢 |
| 获取群组历史消息记录 | 🟢 |
| 构造合并转发消息 | 🟢 |
| 上传群文件 | 🟢 |
| 私聊发送文件 | 🟢 |
| 获取群根目录文件列表 | 🟢 |
| 获取群子目录文件列表 | 🟢 |
| 获取群文件资源链接 | 🟢 |
| 好友戳一戳 | 🟢 |
| 群组戳一戳 | 🟢 |
{
"Logging": {
"LogLevel": {
"Default": "Information",
"@Default": "日志等级,如果需要看到详细的收发数据包内容(例如提出 issue),请改成 Trace ,一般情况下用 Information 就行"
}
},
"Bot": {
"ForwardWebSocket": {
"@ForwardWebSocket": "正向 WebSocket",
"Enabled": true,
"@Enabled": "是否启用。注意:一般情况下 ForwardWebSocket 与 ReverseWebSocket 同一时间只能存在一个",
"Url": "ws://127.0.0.1:8081",
"@Url": "远程 Lagrange.Onebot 的 ws 服务器地址",
"AccessToken": "",
"@AccessToken": "鉴权密钥",
"ReconnectInterval": 1000,
"ConnectionTimeout": 5000,
"ApiTimeout": 10000
},
"ReverseWebSocket": {
"@ReverseWebSocket": "反向 WebSocket",
"Enabled": false,
"@Enabled": "是否启用",
"Url": "http://127.0.0.1:8082/onebot/v11/ws/",
"@Url": "本地开启的 ws 服务器地址,请严格按照 http(s):// 开头、/ 结尾的格式,否则可能报错",
"AccessToken": "",
"@AccessToken": "鉴权密钥",
"RestartInterval": 1000
}
}
}无注释版本见 appsettings.json 。
using Makabaka;
using Makabaka.Events;
using Makabaka.Messages;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
namespace MyApp
{
internal class Program
{
private static ILogger<Program> _logger = null!;
static void Main(string[] args)
{
var builder = new MakabakaAppBuilder(args);
var app = builder.Build();
_logger = app.Services.GetRequiredService<ILogger<Program>>();
app.BotContext.OnPrivateMessage += OnPrivateMessage;
app.BotContext.OnGroupMessage += OnGroupMessage;
app.Run();
}
private static Task OnPrivateMessage(object sender, PrivateMessageEventArgs e)
{
return OnMessage(e.Message, e);
}
private static Task OnGroupMessage(object sender, GroupMessageEventArgs e)
{
return OnMessage(e.Message, e);
}
private static async Task OnMessage(Message message, IMessageHandler reply)
{
if (message.ToString() == "文本测试")
{
await reply.ReplyAsync([new TextSegment("Hello, world!")]);
}
}
}
}详细的API见 Makabaka.Test 。
- 本项目完全免费,仅供学习、娱乐使用,请勿运用于商业、非法用途。
- 因使用者使用不当而造成的法律责任,由使用者本人承担。