Skip to content

Справочник реестров

Актуальные точки расширения лаунчера: встроенные реестры core.* и реестры экосистемы чатов (@rynt/chats-calls.*).

Импорт use-функций: @rynt/sdk/extension или @rynt/sdk.

Два паттерна потребления

ПаттернКак читает хостКогда использовать
A (keyed)registry.get(semanticKey)Ключ = семантика: loader.id, invite.type, payload.type
B (list)registry.entries()Нужно добавить элементы в список; ключ — id записи

Шаблон для паттерна B:

vue
<template
  v-for="entry in useBuildCardActionsRegistry().entries()"
  :key="`${entry.extensionId}:${entry.registryKey}`"
>
  <component :is="entry.value" :build="build" />
</template>
ts
const entries = computed(() => useBuildCardActionsRegistry().entries());

Запись из расширения (в setup):

ts
import { markRaw } from 'vue';
import { defineRyntExtension, useBuildCardActionsRegistry } from '@rynt/sdk/extension';
import MyBuildAction from './MyBuildAction.vue';

export default defineRyntExtension(() => {
  useBuildCardActionsRegistry().register('optifine-link', markRaw(MyBuildAction), 10);
});

Встроенные реестры core.* (по категориям)

РазделОписание
Навигация и оболочкаcore.page, core.nav, core.sidebar, core.shell, core.userStrip, core.theme
TopBar и сайдбарВиджеты TopBar, сайдбар, меню профиля
ЭкраныЛента, библиотека, друзья, проекты, настройки
Карточки сущностейСборки, карты, серверы, пользователи
Детальные экраныBuild / Map / Server detail
Редактор сборки и диалогиМоды, ресурспаки, шейдеры, footer диалогов
MarkdownTipTap, тулбар, рендерер
Keyed-реестрыcore.loader, core.modProvider, core.accountProvider, core.inviteHandler, core.fileEditor
ОграниченияЧто нельзя делать через core.*

Чаты и звонки

Расширение @rynt/chats-calls объявляет собственные реестры для типов сообщений и кнопок ввода. Отдельные пакеты расширяют чат без форка ядра.

Чаты: реестры и интеграция

Собственные реестры

Объявление declaresRegistries / пополнение extendsRegistries — не только для чатов. Общая теория:

Манифест

Для записи в чужой реестр укажите в contributes.rynt:

json
{
  "extendsRegistries": [
    { "registryId": "core.buildCardActions", "keys": ["my-action"] }
  ]
}

Объявление собственного реестра — declaresRegistries.

См. также