Entity-компоненты
Entity-компоненты — готовые виджеты для отображения сущностей лаунчера (пользователей, сборок, серверов, постов и т.д.). Данные получают через props, соответствующие типам сущностей.
Импортируются из @rynt/sdk/extension:
ts
import { EntityUserItem, EntityBuildCard } from '@rynt/sdk/extension';Типы сущностей
Базовые типы описаны в @rynt/sdk:
ts
import type { EntityUser, EntityBuild, EntityServer, EntityPost, EntityEvent, EntityInvite, EntityServerMember, EntityVersion } from '@rynt/sdk';EntityUser
Пользователь системы.
ts
type EntityUser = {
id: string;
username: string;
email: string;
avatar: string;
status: 'online' | 'offline';
statusDetail: UserStatusDetail | null;
level: number;
usedStorage: number;
storageQuota: number;
lastSeenAt: string;
serverMemberships: EntityServerMember[];
friends: EntityUser[];
};| Entity-компонент | Назначение |
|---|---|
EntityUserAvatar | Аватар с данными пользователя |
EntityUserCurrent | Блок текущего пользователя (боковая панель) |
EntityUserItem | Строка пользователя (аватар + имя + статус) |
EntityUserItemMin | Компактная строка пользователя |
EntityUserListItem | Элемент списка пользователей |
EntityUserStatusDisplay | Отображение статуса (онлайн / офлайн / детали) |
EntityBuild / EntityBuildBase
Сборка Minecraft. EntityBuildBase — минимальный набор для карточек.
ts
type EntityBuildBase = {
id: string;
name: string;
description: string | null;
image: string | null;
minecraftVersion: string | null;
loader: string | null;
uuid?: string;
lastPlayed?: string;
playTime?: number;
downloads?: number;
rating?: number | null;
author?: EntityUser | null;
authorPublic?: EntityUser | null;
};
type EntityBuild = EntityBuildBase & {
author: EntityUser;
authorPublic: EntityUser;
managers: EntityUser[];
isPublic: boolean;
versions: EntityVersion;
};| Entity-компонент | Назначение |
|---|---|
EntityBuildCard | Карточка сборки (изображение, название, мета) |
EntityBuildListItem | Строка в списке сборок |
EntityVersion
Версия сборки.
ts
type EntityVersion = {
id: string;
build: EntityBuild;
version: string;
manifest: BuildVersionManifest;
name: string;
minecraftVersion: string;
loader: string;
releaseTime: string | null;
};| Entity-компонент | Назначение |
|---|---|
EntityVersionListItem | Строка версии в списке |
EntityVersionListItemMin | Компактная строка версии |
EntityServer
Сервер.
ts
type EntityServer = {
id: string;
name: string;
address: string;
port: number;
status: 'online' | 'offline';
build: EntityBuild;
players: number;
maxPlayers: number;
image: string;
description: string;
tags: string[];
members: ServerMember[];
};| Entity-компонент | Назначение |
|---|---|
EntityServerCard | Карточка сервера (изображение, название, онлайн) |
EntityServerMemberItem | Строка участника сервера |
EntityServerMemberManageItem | Управление участником (смена роли, удаление) |
EntityPost
Публикация на сервере.
ts
type EntityPost = {
id: string;
server: EntityServer | null;
title: string;
description: string;
image: string;
author: EntityUser;
date: string;
};| Entity-компонент | Назначение |
|---|---|
EntityPostCard | Карточка поста |
EntityPostCardMin | Компактная карточка поста |
EntityEvent
Событие на сервере.
ts
type EntityEvent = {
id: string;
title: string;
description: string;
startDateTime: string;
endTime: string;
participants: number;
image: string | null;
server: EntityServer;
isActive: boolean;
};| Entity-компонент | Назначение |
|---|---|
EntityEventCard | Карточка события |
EntityEventListItem | Строка в списке событий |
EntityInvite
Приглашение.
ts
type EntityInvite = {
id: string;
target: EntityUser;
author: EntityUser;
type: 'friend' | 'server' | 'build' | 'local_build' | 'request_join_local';
status: 'pending' | 'accepted' | 'rejected';
config: InviteLauncherConfigPayload | Record<string, unknown> | null;
createdAt: string;
updatedAt: string;
};Entity-компонент InviteCard для приглашений импортируется из @rynt/sdk (корневой).
Аккаунты, моды и ресурспаки
| Entity-компонент | Тип | Назначение |
|---|---|---|
EntityAccountAvatar | account | Аватар Minecraft-аккаунта |
EntityAccountCard | account | Карточка аккаунта |
EntityAccountItem | account | Строка аккаунта |
EntityAccountItemMin | account | Компактная строка |
EntityAccountListItem | account | Элемент списка |
EntityAuthProviderItem | provider | Провайдер авторизации |
EntityModItem | mod | Строка мода |
EntityModListItem | mod | Элемент списка модов |
EntityModManageItem | mod | Управление модом |
EntityResourcepackItem | resourcepack | Строка ресурспака |
EntityResourcepackListItem | resourcepack | Элемент списка ресурспаков |
EntityResourcepackManageItem | resourcepack | Управление ресурспаком |