Skip to content

消息渲染器

消息渲染器用于将消息渲染为 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

DefaultRendererRenderer 的聚合实现,可以添加多个渲染器。

可以使用 ctx.chatluna.renderer 获取实例。

chatluna.renderer.addRenderer()

  • type: string 渲染器类型
  • renderer: (ctx: Context, config: Config) => Renderer 渲染器构造函数

添加一个渲染器。

chatluna.renderer.removeRenderer()

  • type: string 渲染器类型

删除一个渲染器。

chatluna.renderer.render()

渲染 ChatLuna 消息为 Koishi 元素。

页面历史

在 CC-BY-SA-4.0 许可下发布