This repository was archived by the owner on Mar 4, 2024. It is now read-only.
Releases: FlandreBot/Flandre
Releases · FlandreBot/Flandre
Release list
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>();之前的方法目前仍保留,将在以后的更新中移除。