Работа с файлами
В рамках обновления до версии 0.1.0-rc1, мы выполнили реорганизацию структуры файлов. Теперь все файлы, относящиеся к серверной части нашего продукта, централизованно хранятся в специально выделенной директории. Это упрощает процесс управления этими файлами и ускоряет выполнение рутинных задач.
Директории файлов
В качестве примера установки серверной части, представлен снимок экрана ниже, демонстрирующий конкретную директорию, в которой была выполнена установка. Этот путь служит указателем местонахождения файлов серверной части после успешного завершения процедуры установки.
Иерархия папок
📂 . // Корневая директория проекта
├── 📂 Attachments // Дополнительные вложения и файлы (например, .exe файлы лаунчера)
│ └── 📄 win-x64-Gml.Launcher.exe // Исполняемый файл лаунчера для Windows
├── 📂 backups // Резервные копии базы данных и важных файлов
├── 📄 data.db // База данных Gml.Backend
├── 📂 game data // Основная директория для игровых данных
│ └── 📂 neoforge // Данные для NeoForge (пример)
│ ├── 📂 client // Файлы игрового клиента
│ ├── 📂 libraries // Библиотеки игры
│ ├── 📂 mods // Модификации
│ └── 📂 resources // Ресурсы игры
├── 📂 Launcher // Директория с версиями и исходным кодом лаунчера
│ └── 📂 v2025.3.3 // Версия лаунчера
│ ├── 📄 Gml.Launcher.sln // Решение (Solution) проекта
│ ├── 📄 identifier.sqlite // База данных идентификаторов
│ ├── 📄 load-repositories.bat // Скрипт загрузки репозиториев (Windows)
│ ├── 📄 load-repositories.sh // Скрипт загрузки репозиториев (Linux/macOS)
│ ├── 📄 README.md // Описание версии
│ └── 📂 src // Исходный код лаунчера
├── 📂 LauncherBuilds // История сборок лаунчера
│ └── 📂 build-15-01-2026 08-28-48 // Сборка от конкретной даты
│ └── 📂 win-x64 // Файлы сборки для конкретной платфор
├── 📂 shared data // Общие ресурсы для всех клиентов
│ ├── 📂 assets // Ресурсы Minecraft (indexes, objects)
│ │ ├── 📁 indexes // Индексы ассетов
│ │ ├── 📁 log_configs // Конфигурации логирования
│ │ └── 📁 objects // Объекты ресурсов
│ └── 📂 runtime // Платформо-зависимые библиотеки Java
│ ├── 📁 linux // Библиотеки для Linux
│ ├── 📁 linux-i386 // Библиотеки для Linux x86
│ ├── 📁 mac-os // Библиотеки для MacOS
│ ├── 📁 mac-os-arm64 // Библиотеки для MacOS (ARM64)
│ ├── 📁 windows-arm64 // Библиотеки для Windows ARM64
│ ├── 📁 windows-x64 // Библиотеки для Windows x64
│ └── 📁 windows-x86 // Библиотеки для Windows x86
└── 📂 temp // Временные файлы и инструменты сборки
├── 📂 DotnetBuild // Среда для сборки .NET проектов
│ └── 📁 dotnet-8 // .NET SDK версии 8
└── 📂 JavaBuild // Среда для сборки Java проектов
└── 📁 jdk-22 // JDK версии 22
Разделы и их предназначение:
- Attachments: Предназначена для хранения дополнительных вложений, таких как скомпилированные исполняемые файлы лаунчера (
.exeдля Windows и др.), которые могут быть автоматически скачаны пользователями. - backups: Содержит автоматические и ручные резервные копии базы данных
data.db, что позволяет быстро восстановить систему в случае сбоя. - data.db: Основной файл базы данных SQLite, в котором хранятся все настройки, пользователи и информация о файлах.
- game data: В этой директории хранятся файлы игровых клиентов, разделенные по типам (например, NeoForge, Forge, Vanilla). Внутри каждой версии находятся папки с модами, библиотеками и ресурсами.
- Launcher: Содержит исходный код и готовые сборки лаунчера для различных версий. Здесь находятся скрипты для подготовки окружения и сборки исполняемых файлов.
- LauncherBuilds: В этой директории сохраняется история всех произведенных сборок лаунчера, сгруппированных по времени их создания и целевым платформам.
- shared data: Общие ресурсы, которые используются всеми игровыми клиентами. Сюда входят ассеты Minecraft и нативные библиотеки (runtime) для различных операционных систем.
- temp: Используется для временного хранения инструментов сборки, таких как .NET SDK и JDK, необходимых для компиляции лаунчера и подготовки игровых клиентов.
Эта структура позволяет легко найти нужные файлы и управлять ими для поддержки и улучшения функциональности приложения.