Skip to content

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-компонентТипНазначение
EntityAccountAvataraccountАватар Minecraft-аккаунта
EntityAccountCardaccountКарточка аккаунта
EntityAccountItemaccountСтрока аккаунта
EntityAccountItemMinaccountКомпактная строка
EntityAccountListItemaccountЭлемент списка
EntityAuthProviderItemproviderПровайдер авторизации
EntityModItemmodСтрока мода
EntityModListItemmodЭлемент списка модов
EntityModManageItemmodУправление модом
EntityResourcepackItemresourcepackСтрока ресурспака
EntityResourcepackListItemresourcepackЭлемент списка ресурспаков
EntityResourcepackManageItemresourcepackУправление ресурспаком