消息渲染器
消息渲染器用于将消息渲染为 Koishi 元素。
类:Renderer
typescript
export abstract class Renderer {
constructor(protected readonly ctx: Context) {}
abstract render(
message: Message,
options: RenderOptions
): Promise<RenderMessage>
abstract schema: Schema<string, string>
}
Renderer
类是一个抽象类,需要通过继承来实现。
renderer.render()
- message:
Message
消息对象 - options:
RenderOptions
渲染选项
将消息渲染为 Koishi 元素。
renderer.schema
渲染器的 Schema 声明。
接口:RenderOptions
typescript
export interface RenderOptions {
voice?: {
speakerId?: number
}
split?: boolean
type: RenderType
}
渲染时的一些选项。
options.voice.speakerId
- 类型:
number | undefined
语音合成时的发言人 ID。
options.split
- 类型:
boolean
是否需要分割消息为多个元素。
options.type
- 类型:
RenderType | string
渲染类型。
类: DefaultRenderer
DefaultRenderer
是 Renderer
的聚合实现,可以添加多个渲染器。
可以使用 ctx.chatluna.renderer
获取实例。
chatluna.renderer.addRenderer()
- type:
string
渲染器类型 - renderer:
(ctx: Context, config: Config) => Renderer
渲染器构造函数
添加一个渲染器。
chatluna.renderer.removeRenderer()
- type:
string
渲染器类型
删除一个渲染器。
chatluna.renderer.render()
- message:
Message
消息对象 - options:
RenderOptions
渲染选项
渲染 ChatLuna 消息为 Koishi 元素。