Я не хочу вас мучить, чтобы вы переходили по ссылкам я лучше сама сюда всё скину. Система скинов и плащейСкины и плащи настраиваются всего двумя параметрами - маской URL на PNG-файл. Пример конфигурации: skinsURL: "http://skins.minecraft.net/MinecraftSkins/%username%.png"; # Маска URL скинов cloaksURL: "http://skins.minecraft.net/MinecraftCloaks/%username%.png"; # Маска URL плащей%username%, %uuid%, %hash% заменяются на имя пользователя, UUID и UUID без тире соответственно Не забудьте поменять textureProvider с mojang на request Сборка EXE с помощью Launch4JЛаунчсервер так же может автоматически собирать EXE из JAR-файла - для этого требуется поставить параметр launch4J на true. Для того чтобы у EXE-файла была иконка, положите файл favicon.ico рядом с лаунчсервером. Пример конфигурации: launch4J: true; # Включить сборку EXE через Launch4JВ случае возникновения ошибок на 64-битных системах, может помочь установка 32-битного пакета glibc (Debian: lib32z1 | CentOS: glibc.i686). Загрузка клиентов и настройка профилейКлиенты, ресурсы и другие файлы для загрузки лаунчером хранятся в виде субдиректорий в директории updates, а профили, в которых указываются имя директорий, адрес сервера для автозахода, исключения при обновлении и другие сведения, необходимые для запуска клиента хранятся в директории profiles Загрузка ресурсовДля загрузки ресурсов существует команда downloadAsset. Первым аргументом передаётся версия клиента, для которого загружаются ресурсы, вторым аргументом имя субдиректории в updates: downloadAsset 1.7.10 "asset1.7.10"Синхронизация (см. ниже) сделается автоматически, отдельно набирать команду не требуется Загрузка клиентовДля загрузки клиентов существует команда downloadClient. Первым аргументом передаётся версия клиента, вторым аргументом имя субдиректории в updates: downloadClient 1.7.10 "HiTech"Эта команда так же автоматически создаст файл профиля в директории profiles. Пример файла profile.cfg: version: "x.x.x"; # Версия клиента assetIndex: "x.x.x"; # Индекс ресурсов (имя файла в indexes), 1.7.10+ # Runtime-dependent params dir: "XXXXX"; # Директория клиента assetDir: "XXXXX"; # Директория ресурсов # Client params sortIndex: 0; # Индекс для сортировки профилей в списке title: "XXXXX"; # Заголовок профиля в лаунчере serverAddress: "server.tld"; # Имя сервера для автозахода serverPort: 25565; # Порт сервера для автозахода # Updater and client watch service updateFastCheck: true; # Менее надёжная, но намного более быстрая проверка файлов update: []; # Файлы и директории, которые будут обновлены, но не будут проверяться во время игры updateVerify: [ # Файлы и директории, которые должны быть обязательно проверены. \\ Нужно для экранизации точки (Regexp) "libraries", "natives", "mods", "minecraft\\.jar", "forge\\.jar" ]; updateExclusions: [ # Исключения из файлов и директорий выше # ... ]; # Client launcher params mainClass: "net.minecraft.launchwrapper.Launch"; # Главный класс клиента classPath: [ "libraries", "minecraft.jar", "forge.jar" ]; # Classpath клиента jvmArgs: [ # Дополнительные аргументы JVM "-Dfml.ignorePatchDiscrepancies=true", # Игнорировать различия в патчах "-Dfml.ignoreInvalidMinecraftCertificates=true", # Игнорировать отсутствие сертификатов "-Dorg.lwjgl.opengl.Display.allowSoftwareOpenGL=true" # (Не)обладатели драйверов на видеокарту тоже смогут играть ]; clientArgs: [ # Дополнительные аргументы клиента "--tweakClass", "cpw.mods.fml.common.launcher.FMLTweaker" # Если используете Forge ];Синхронизация (см. ниже) сделается автоматически, отдельно набирать команду не требуется Синхронизация директорий updates и profilesДля обеспечения высокой производительности, лаунчсервер кэширует содержимое директорий updates и profiles. При внесении изменений в эти директории, лаунчсервер о них не осведомлён, и при следующем обновлении скорее всего будет ошибка. Для того чтобы синхронизировать содержимое этих директорий, существует две команды - syncUpdates и syncProfiles: syncUpdates # Синхронизирует содержимое директории updates syncProfiles # Синхронизирует содержимое директории profilesЭти команды надо обязательно выполнять после изменений! Иначе у Вас и Ваших игроков будут ошибки при обновлениях! Сборка и использование, настройка сервераПеред сборкой рекомендуется настроить стандартный интерфейс лаунчера в файле runtime/config.js: var config = { dir: "sashok724", // Директория, в которой лаунчер будет хранить файлы (%user.home%/dir) title: "sashok724's Launcher", // Заголовок окна лаунчера icons: [ "favicon.png" ], // Путь к иконкам лаунчера (относительно runtime) // Настройка окна авторизации newsURL: "https://launcher.sashok724.net/", // URL новостей, которые будут показаны в главном окне linkText: "Бесплатные окна", // Текст ссылки под кнопкой "Авторизация" linkURL: new java.net.URL("http://bit.ly/1SP0Rl8"), // URL ссылки под кнопкой "Авторизация" // Стандартные значения настроек settingsMagic: 0xBEEF, // Древняя магия, не трогать autoLoginDefault: false, // Автологин fullScreenDefault: false, // Полный экран ramDefault: 1024, // Количество памяти // Имена директорий с JRE, если не знаете, зачем это нужно - не трогайте jreMustdie32Dir: "jre-8u202-win32", jreMustdie64Dir: "jre-8u202-win64", jreLinux32Dir: "jre-8u202-linux32", jreLinux64Dir: "jre-8u202-linux64", jreMacOSXDir: "jre-8u202-macosx", jreUnknownDir: "jre-8u202-unknown" }Настройки находятся только в этой части файла, остальная часть используется самим лаунчером и менять её не нужно! Сборка лаунчераДля сборки лаунчера существует команда build. Она автоматически упакует runtime, запишет Launcher.jar, соберёт Launcher.exe(если включена интеграция с Launch4J), и автоматически их синхронизирует. Данная команда используется после модификации директории runtime: build # Собирает Launcher.jar и Launcher.exeСразу после сборки, лаунчер можно отправлять игрокам. Если сайт и лаунчсервер на одной VDS, можно сделать symlink на лаунчер с сайта: ln -s "/opt/launchserver/Launcher.jar" "/opt/webserver/Launcher.jar" ln -s "/opt/launchserver/Launcher.exe" "/opt/webserver/Launcher.exe" Сборка сервераНа данный момент поддерживаются MCPC 1.5.2, Cauldron 1.6.4, Cauldron 1.7.2, KCauldron 1.7.10, Thermos 1.7.10, Spigot 1.8.8, Spigot 1.9.4, Spigot 1.10.2, Spigot 1.11.2, Spigot 1.12.2 и Sponge 1.12.2. Патчи на авторизацию в них уже добавлены, и всё, что Вам требуется сделать, это заменить Launcher.jar. Сборка сервера BungeeCordДоступны патченные серверы BungeeCord (1.8.9-1.13.2, #afef0ec), его legacy-версия (1.7.2-1.8.9, #219819b), Waterfall (1.8.9-1.13.2, #bea8aac), Waterfall-Old (1.7.2-1.9.4, #f62f290). Патчи на авторизацию в них уже добавлены, и всё, что Вам требуется сделать, это заменить Launcher.jar. Не забудьте включить ip-forwarding и bungeecord в файлах config.yml и spigot.yml, соответственно. На серверы, стоящие ЗА BungeeCord патчи НЕ ставятся и online-mode НЕ включается. Желательно поставить server-ip на localhost