Skip to content

插件文档

插件样例:弹幕词云

插件开发

插件至少包含两个文件,meta.jsonindex.html;其中 meta.json 是插件的元数据,index.html 是插件的主页面,JLiverTool 将会创建一个独立窗口并加载 index.html,作为插件窗口展示。

meta.json 的内容如下所示:

json
{
  "id": "jlivertool.xinrea.wordcloud",
  "name": "弹幕词云",
  "author": "Xinrea",
  "desc": "生成弹幕词云",
  "version": "0.0.1",
  "index": "index.html",
  "url": "https://github.com/Xinrea"
}

你需要以 index.html 为主入口实现插件的功能;JLiverTool 提供一系列 API 用于插件的开发,定义在 plugin_preload.ts。JLiverTool 在加载 index.html 时会自动注入 window.jliverAPI 对象,插件可以通过这个对象访问 JLiverTool 提供的 API。

jliverAPI 对象的类型定义如下:

typescript
export type JLiverAPI = {
  register: (channel: JEvent, callback: Function) => void
  user: {
    info: (user_id: number) => Promise<UserInfoResponse>
  }
  room: {
    info: (room_id: number) => Promise<GetInfoResponse>
  }
  util: {
    openUrl: (url: string) => Promise<any>
    fonts: () => Promise<any>
    setClipboard: (text: string) => Promise<any>
  }
}

你可以使用 user.inforoom.info 方法获取指定用户和直播间的信息;util 下提供了一些实用的工具方法。

最主要的是 register 方法,它用于注册事件监听器,监听 JLiverTool 发送的事件;你可以在插件中使用 jliverAPI.register 方法注册事件监听器,监听 JLiverTool 发送的事件。可监听的的事件列表定义在 event.ts 中,插件能够获取的事件主要是弹幕、礼物和醒目留言事件等。