Mirai.Net是基于mirai-api-http实现的轻量级mirai社区sdk。
SubscribeGroupMessage(Async)
,SubscribeFriendMessage(Async)
四个IObservable<MessageReceiverBase>
的拓展方法,比如,现在无需使用bot.MessageReceived.OfType<GroupMessageReceiver>.Subscribe
而是直接使用bot.MessageReceived.SubscribeGroupMessageAsync
string
也可以直接隐式转化为MessageChain
了ForwardMessage
添加了静态方法FromChains
来更加方便地构造一条转发消息 #47修复了上个版本不彻底的改动,增加了Unknown
枚举以用于未知类型。
UnknownMessage
、UnknownEvent
以及UnknownReceiver
,用来表示Mirai.NET中没有进行适配的mirai-api-http返回。它们都共有一个属性RawJson
,可供进行手动解析。Flurl.Http
依赖ConnectConfig
来配置连接,它可以被隐式地和字符串进行互转 #41以前你这样初始化一个MiraiBot
对象:
var bot = new MiraiBot
{
Address = "localhost:8080",
VerifyKey = "xx",
QQ = "xx"
};
现在你可以这样了:
var bot = new MiraiBot
{
Address = new ConnectConfig
{
HttpAddress = new ConnectConfig.AdapterConfig("localhost", "8080"), //或者直接使用字符串,AdapterConfig同样可以和字符串隐式互转
WebsocketAddress = new ConnectConfig.AdapterConfig("localhost", "1234")
},
VerifyKey = "xx",
QQ = "xx"
};
pending
这个版本更新了很多东西,同时保持部分旧有兼容性,非常推荐更新
从这个版本开始,更新日志将会变得尽可能详细。
Mirai.Net.Data
下所有类型都有注释了,甚至包括你看不见也用不到的空构造器。GetModules
方法添加了约束AtMessage
中无用的Display
属性 #19xxMessageReceiver
中,Name
和Id
等属性被具体地改为例如GroupName
,FriendId
的形式ModuleScaffold
中的SubscribeModule
被改为更合理的Raise
现在,你可以完全摒弃那堆麻烦的枚举和管理器,只需这样处理请求(不管是好友请求,邀请入群请求还是申请入群请求都是如此):
bot.EventReceived
.OfType<NewMemberRequestedEvent>()
.Subscribe(async e =>
{
await e.ApproveAsync();
//await e.RejectAsync();
//await e.DismissAsync();
//await e.DismissAndBlockAsync();
//await e.DismissAndBlockAsync();
});
比起上个版本,更进一步地,你现在可以直接调用MessageChain
的SendToAsync
来发送它。并且,就像,你现在可以像1+1
那样地构造一条消息链。
bot.MessageReceived.OfType<GroupMessageReceiver>()
.Subscribe(async receiver =>
{
//构造消息链
MessageChain chain = new MessageChainBuilder().At("114514").Plain("1919810").Build()
//运算符"+"被重载了
chain += new ImageMessage { Path = "獣と化した先辈.jpg" };
chain += chain;
//发送消息
await chain.SendToAsync(receiver);
});