This repository has been archived by the owner on Mar 4, 2024. It is now read-only.
Releases: FlandreBot/Flandre
Releases · FlandreBot/Flandre
v1.0.0-rc.11
Flandre.Framework
OptionAttribute
、StringShortcutAttribute
、RegexShortcutAttribute
移至Flandre.Framework.Common
命名空间CommandAttribute
移至Flandre.Framework.Common
命名空间FlandreAppOptions.IgnoreWhenCallingUndefinedCommand
重命名为IgnoreUndefinedCommand
- 扩展方法移至目标所在的命名空间
v1.0.0-rc.10
破坏性更改
- 所有事件去除了
On
前缀 - Flandre.*.Reactive 所有扩展方法
Observe
前缀改为On
Flandre.Framework
CommandAttribute
移至Flandre.Framework.Routing
命名空间OptionAttribute
和ShortcutAttribute
移至Flandre.Framework.Common
命名空间
v1.0.0-rc.9
Flandre.Framework
- 将
PluginLoadContext
重命名为PluginCommandLoader
v1.0.0-rc.8
Flandre.Framework
- 新的
ICommandRouteBuilder
接口,由FlandreApp
继承 - 新的
ICommandRouteBuilder.MapCommand
扩展方法,可以十分简便的使用内联函数添加一条指令,类比 ASP.NET Core 中的 Minimal API。
using Flandre.Framework.Routing;
// ...
var app = builder.Build();
app.MapCommand("test", (int a, int b) => a + b + 1);
app.Run();
发送:test 1 2
回复:4
Flandre.Adapters.*.Extensions
用于提供对接 Flandre.Framework 的扩展方法。
builder.Adapters.AddOneBot(); // 自动从配置的 Adapters:OneBot 读取配置项
builder.Adapters.AddOneBot(IConfiguration configuration);
builder.Adapters.AddOneBot(config => config.Xxx = /* ... */);
v1.0.0-rc.7
Flandre.Core
- 将
Bot
类中的SendMessageAsync()
方法移出,单独作为扩展方法提供,减少冗余代码 - 将
IAdapter
接口中的GetBot()
方法改为Bots
属性
Flandre.Adapters.Discord
- 非常早期的 Discord 支持,基于 Discord.Net
v1.0.0-rc.6
Flandre.Framework
- 修复在
Development
环境下服务依赖无法解析的问题
v1.0.0-rc.5
Flandre.Framework
MiddlewareContext
和FlandreApp
增加了Properties
属性,用于方便地在不同组件中交换信息。
public IDictionary<string, object?> Properties { get; }
- 修复了指令方法抛出异常时,日志记录不完整的问题
v1.0.0-rc.4
Flandre.Framework
- 修复了
async Task<string>
指令方法执行错误的问题
v1.0.0-rc.3
Flandre.Framework
- 补充在
IPluginCollection
中注入服务的能力:
builder.Plugins.Services.AddScoped();
// ^ IServiceCollection
这在写扩展方法的时候很实用:
public static void AddExample(this IPluginCollection plugins)
{
plugins.Services.AddSingleton<ExampleService>();
plugins.Add<ExamplePlugin>();
}
v1.0.0-rc.2
Flandre.Framework
- 规范化适配器和插件的添加方式,具体如下:
var builder = FlandreApp.CreateBuilder();
builder.AddAdapter(new XxxAdapter);
// 现在为
builder.Adapters.Add(new XxxAdapter());
builder.AddPlugin<XxxPlugin>();
// 现在为
builder.Plugins.Add<XxxPlugin>();
之前的方法目前仍保留,将在以后的更新中移除。