Skip to content
目录

上下文 (Context)

上下文 (Context) 是 Koishi 的核心概念。Koishi 的绝大多数功能也直接通过上下文提供,包括插件、中间件、监听器和指令等。

混入属性和方法

Koishi 使用了面向切面编程 (AOP) 的开发方式,绝大部分上下文属性和方法都通过混入的方式搭载在了服务上。以下的属性和方法是由内置服务混入的,你可以像使用实例属性和方法一样使用它们。这些 API 的具体用法在服务文档中详细介绍,你可以点击对应的链接前往查看。

实例属性和方法

ctx.baseDir

  • 类型: string

当前的 Koishi 默认路径。如果你使用配置文件,则这个路径是配置文件所在的路径;否则这个路径是当前工作路径。

ctx.extend(meta)

  • meta: Partial<Context.Meta> 要覆盖的属性
  • 返回值: this 新的上下文

以当前上下文为原型创建一个新上下文。meta 中的属性将覆盖当前上下文的属性。

ctx.command(def, desc?, config?)

  • def: string 指令名以及可能的参数
  • desc: string 指令的描述
  • config: CommandConfig 指令的配置
    • checkUnknown: boolean 是否对未知选项进行检测,默认为 false
    • checkArgCount: boolean 是否对参数个数进行检测,默认为 false
    • authority: number 最低调用权限,默认为 1
    • showWarning: boolean 当小于最短间隔时是否进行提醒,默认为 true
  • 返回值:Command 注册或修改的指令

在当前上下文中注册或修改一个指令。

ctx.logger(scope?)

  • scope: string 要指定的类型,默认为 ''
  • 返回值: Logger

根据 namespace 生成一个 Logger 对象

静态属性和方法

Context.filter

  • 类型: symbol

Context.source

  • 类型: symbol

Context.current

  • 类型: symbol

特殊的键值,可以在通用上下文属性对象的方法上访问。参见 声明通用上下文属性

Context.mixin(name, options)

  • name: string 属性名称
  • options: MixinOptions 混入选项

Context.service(name, options?)

  • name: string 属性名称
  • options: MixinOptions 混入选项

声明一个通用上下文属性。参见 声明通用上下文属性