Skip to content

Модели: список локальных сборок

Лаунчер отдаёт расширениям готовые модели данных через useModel из @rynt/sdk/extension. Ключ 'local_builds' даёт доступ к локальным сборкам Minecraft: список, запуск, остановка и т.д. (полный набор полей — в типах пакета @rynt/sdk, модель LocalBuildsModelApi).

Ниже — учебный экран: загрузка списка, поле поиска по названию, вывод строк.

Компонент экрана

src/LocalBuildsPage.vue

vue
<script setup lang="ts">
import { computed, onMounted, ref } from 'vue';
import { useModel } from '@rynt/sdk/extension';
import { Input, Stack, Text } from '@rynt/sdk';

const query = ref('');
const localBuilds = useModel('local_builds');

onMounted(() => {
  void localBuilds.loadAllManifests();
});

const rows = computed(() => localBuilds.getBuildsList.value);

const filtered = computed(() => {
  const q = query.value.trim().toLowerCase();
  if (!q) return rows.value;
  return rows.value.filter((b) => b.name.toLowerCase().includes(q));
});
</script>

<template>
  <Stack gap="md" class="p-4">
    <Text as="strong">Локальные сборки</Text>
    <Input v-model="query" placeholder="Фильтр по названию…" />
    <Stack gap="sm">
      <Text v-for="b in filtered" :key="b.uuid">
        {{ b.name }} — {{ b.minecraftVersion ?? '?' }}
      </Text>
      <Text v-if="!filtered.length">Ничего не найдено</Text>
    </Stack>
  </Stack>
</template>

Импорты Input, Stack, Text — из корневого @rynt/sdk (см. UI-кит).

Регистрация страницы

В setup расширения зарегистрируйте страницу и пункт меню так же, как в Hello World, подставив LocalBuildsPage вместо HelloPage и свой фрагмент пути (например builds).

Доступные ключи useModel

Список ключей зафиксирован в SDK (например builds, user, settings, local_builds, …). Набор может меняться между версиями лаунчера — ориентируйтесь на тип RyntLauncherModelKey и константу RYNT_LAUNCHER_MODEL_KEYS в @rynt/sdk/extension.

Дальше