Skip to content

事件清单 ​

api.events.on(type, handler) 可订阅的事件。讲解见订阅事件。

事件权限什么时候触发
instanceevent:instance实例被创建、删除、修改
instance_groups_changedevent:instance_groups_changed实例分组变化
instance_bulk_update_progressevent:instance_bulk_update_progress批量更新实例的进度
processevent:process启动器进程状态变化
install_jobevent:install_job安装任务的进度
library_changedevent:library_changed多版本库变化
logevent:log启动器产生一条日志

全部是低风险权限,声明即自动授予。

白名单 ​

只有上表七个事件可订阅。其他事件(friend、notification、loading、command、ads_consent_required、onboarding_checklist)是启动器内部的,插件订阅会抛错:

Event "notification" is not available to plugins.

用法 ​

json
"permissions": ["event:instance"]
ts
const unsubscribe = api.events.on('instance', (payload: unknown) => {
	// payload 是 unknown —— 自己判断形状,或者重新调宿主接口取
})

返回值是取消订阅函数。一般不用手动调用——插件卸载时启动器自动清理。

关于 payload ​

payload 的形状没有强类型保证(unknown)。它只是通知你「发生了什么事」,具体数据通常要重新调 api.hostApi.call('instance.list') 之类去取。

ts
api.events.on('instance', async () => {
	try {
		const raw = await api.hostApi.call('instance.list')
		instances.value = Array.isArray(raw) ? raw : []
	} catch {
		instances.value = null
	}
})

下一篇:宿主接口清单。

Celestial Launcher 基于 Modrinth App 构建,遵循其开源许可。