WormcraftLauncher/
├── Backend/ ← это станет твоим GitHub-репозиторием
│ ├── generate_manifest.py
│ └── files/
│ ├── mods/ ← сюда твои .jar моды
│ └── config/ ← сюда конфиги модов
│
└── Launcher/ ← исходники C# лаунчера, собираешь в .exe у себя
├── WormcraftLauncher.csproj
├── Program.cs
├── MainForm.cs
├── Models.cs
├── UpdateManager.cs
└── GameLauncher.cs
- Заходишь на github.com, создаёшь аккаунт (если нет).
- New repository → название, например
wormcraft-launcher→ Public (jsDelivr раздаёт только публичные репозитории, это нормально — там просто файлы модов, ничего секретного). - Клонируешь его к себе на компьютер (или просто перетаскиваешь файлы через веб-интерфейс GitHub — кнопка "Add file → Upload files", без консоли тоже можно).
- Кидаешь туда содержимое папки
Backend/:generate_manifest.pyи папкуfiles/, а внутриfiles/— все папки твоей сборки, какие у тебя есть, например:Лаунчер скопирует их все автоматически вfiles/ mods/ config/ shaderpacks/ scripts/ emotes/ resourcepacks/.minecraftигрока — ничего отдельно прописывать для новых папок не нужно, он сам читает структуру из манифеста.
Открой generate_manifest.py, поправь сверху:
GITHUB_USER = "твой_github_ник"
GITHUB_REPO = "wormcraft-launcher"
FORGE_VERSION = "1.19.2-43.4.0" # точная версия форджа на сервереНужен Python 3 (ставится с python.org, дальше просто двойной клик / python generate_manifest.py
в консоли). Никаких библиотек ставить не надо.
Каждый раз когда меняешь моды/конфиги:
- Кладёшь/удаляешь файлы в
files/mods/илиfiles/config/локально. - Запускаешь:
Это пересоберёт
python generate_manifest.pymanifest.jsonс новыми хешами и версией сборки. - Заливаешь изменения на GitHub:
(или через веб-интерфейс GitHub, если без консоли — просто перезалить изменённые файлы).
git add . git commit -m "update build" git push - Важно: jsDelivr кеширует файлы на ~12 часов. Чтобы игроки увидели обновление
сразу, после пуша зайди по ссылке (можно прямо в браузере):
Это сбросит кеш для манифеста. Если поменялись и сами файлы модов — для каждого изменённого файла можно так же дёрнуть purge-ссылку, либо просто подождать.
https://purge.jsdelivr.net/gh/твой_ник/wormcraft-launcher@main/manifest.json
Нужен Visual Studio 2022 (Community, бесплатно) с компонентом ".NET desktop development", или просто .NET 6 SDK + командная строка.
- Открой
WormcraftLauncher.csprojв Visual Studio. - Она сама подтянет нужные NuGet-пакеты (CmlLib.Core и т.д.) при первой сборке.
- В
UpdateManager.csпоправь константуManifestUrlна свою реальную ссылку:private const string ManifestUrl = "https://cdn.jsdelivr.org/gh/твой_ник/wormcraft-launcher@main/manifest.json";
- Собери (Build → Build Solution), затем Build → Publish для готового
.exe, либо просто запусти Debug/Release сборку —WormcraftLauncher.exeпоявится вLauncher/bin/Release/net6.0-windows/.
cd Launcher
dotnet restore
dotnet build -c Release
dotnet publish -c Release -r win-x64 --self-contained false -p:PublishSingleFile=trueГотовый .exe будет в Launcher/bin/Release/net6.0-windows/win-x64/publish/.
Залей собранный WormcraftLauncher.exe куда угодно (Яндекс.Диск, Google Drive,
тот же GitHub в Releases) и дай игрокам ссылку на скачивание.
При первом запуске игрок:
- Вводит любой никнейм (офлайн-режим, как в TLauncher — без лицензии).
- Жмёт «ИГРАТЬ» — лаунчер скачивает Forge 1.19.2, ставит его,
скачивает твою сборку модов с jsDelivr, и запускает игру с автоподключением
к
wormcraft.20tps.ru.
При каждом следующем запуске лаунчер сравнивает версию сборки с той, что в манифесте, и докачивает только изменения.
- Forge версия. В
generate_manifest.pyи логике лаунчера используется формат1.19.2-43.4.0. Проверь точную версию форджа, которая стоит на твоём сервере, и впиши именно её в обоих местах. - Java. CmlLib сам подтянет подходящую Java через систему Mojang, отдельно ставить не нужно.
- Авторизация. Сейчас офлайн-режим (
MSession.CreateOfflineSession) — ник не проверяется, как просил. Библиотека для Microsoft-авторизации уже подключена в проект на будущее, просто не используется. - Лимиты GitHub/jsDelivr. Каждый файл мода — до 100 МБ (более чем достаточно), суммарный размер репозитория — желательно не больше пары ГБ. jsDelivr — бесплатный публичный CDN, без скрытых платежей.
- Защита от лишних скачиваний. Манифест хранит SHA1-хеши всех файлов, поэтому при повторном запуске лаунчер не перекачивает то, что не менялось — только diff.