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见 Program.cs 。
- 本项目完全免费,仅供学习、娱乐使用,请勿运用于商业、非法用途。
- 因使用者使用不当而造成的法律责任,由使用者本人承担。