Запустите Minecraft из командной строки — имя пользователя и пароль в качестве префикса

Я пытаюсь сделать простой пользовательский лаунчер Minecraft.

Согласно странице Minecraft Wiki для Launcher, должна быть возможность запускать программу запуска Minecraft, используя префиксы имени пользователя и пароля из командной строки, и переходить непосредственно в игру, а не через средство запуска.

Я пробовал различные версии java -cp -u = username -p = password minecraft.jar net.minecraft.LauncherFrame , и то, что он говорит, является старый метод:

  java -cp minecraft.jar net.minecraft.LauncherFrame   

Старый метод открывает средство запуска minecraft, как если бы я дважды щелкнул файл jar, однако он не переходит непосредственно на экран меню.

Новый способ (с использованием пароля и имени пользователя в качестве префикса) дает мне сообщение об ошибке, в котором говорится, что префикс -u = имя пользователя или -p = пароль не существует .

Любая помощь по этому поводу? Я действительно застрял.


Вы можете это сделать, вам просто нужно обойти программу запуска.

В % appdata% . Minecraft bin (или ~/.minecraft/bin в системах unixy) есть файл minecraft.jar. Это настоящая игра — ее запускает программа запуска.

Вызовите ее так:

  java -Xms512m -Xmx1g -Djava.library.path  = natives/-cp "minecraft.jar; lwjgl.jar; lwjgl_util.jar" net.minecraft.client.Minecraft   

Установить рабочий каталог на .minecraft/bin .

Чтобы получить идентификатор сеанса, выполните POST (запросите эту страницу):

  https  ://login.minecraft.net? user =  & password =  & version = 13  

Вы получите такой ответ:

  1343825972000: устарело: SirCmpwn: 7ae9007b9909de05ea58e94199a33b30c310c69c: dba0c48e1c584963b9e93a038a66bb98  

Четвертое поле — это идентификатор сеанса. Подробнее здесь. Прочтите эти подробности, этот ответ устарел.

Вот пример входа на minecraft.net на C #.


Чтобы запустить Minecraft с Forge (измените C: Users nov11 AppData Roaming/.minecraft/ на свой Путь MineCraft 🙂 [Только для людей, которым лень искать в Google …] Особая благодарность ammarx за его TagAPI_3 (Github), который использовался для создания этой команды. Аргументы разделены построчно для упрощения чтобы найти полезные.

  java-Xms1024M-Xmx1024M-XX: HeapDumpPath = MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump-Djava.library.path = C:  Users  nov11   AppData  Roaming/.minecraft/versions/1.12.2/natives-cpC:  Users  nov11  AppData  Roaming/.minecraft/libraries/net/minecraftforge/forge/1.12.2-14.23.5.2775/forge-1.12.2  -14.23.5.2775.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/net/minecraft/launchwrapper/1.12/launchwrapper-1.12.jar; C:  Users  nov11  AppData  Roaming/.mine  ремесло/библиотеки/орг/ow2/asm/asm-all/5.2/asm-all-5.2. jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/org/jline/jline/3.5.1/jline-3.5.1.jar; C:  Users  nov11  AppData  Roaming/.minecraft/ библиотеки/net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar; C:  Users  nov11  AppData  Roaming/.minecraft/библиотеки/com/typesafe/akka/akka-субъект_2.  11/2.3.3/akka-субъект_2.11-2.3.3.jar; C:  Users  nov11  AppData  Roaming/.minecraft/библиотеки/com/typesafe/config/1.2.1/config-1.2.1.  jar; C:  Users  nov11  AppData  Roaming/.minecraft/библиотеки/org/scala-lang/scala -ctors-migration_2.11/1.1.0/scala -ctors-migration_2.11-1.1.0.jar;  C:  Users  nov11  AppData  Roaming/.minecraft/libraries/org/scala-lang/scala-compiler/2.11.1/scala-compiler-2.11.1.jar; C:  Users  nov11  AppData  Roaming /.minecraft/libraries/org/scala-lang/plugins/scala-continuations-library_2.11/1.0.2/scala-continuations-library_2.11-1.0.2.jar;C:Usersnov11AppDataRoaming /.minecraft/libraries/org/scala-lang/plugins/scala-continuations-plugin_2.11.1/1.0.2/scala-continuations-plugin_2.11.1-1.0.2.jar;C:Usersnov11AppDataRoaming /.minecraft/libraries/org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar;C:Usersnov11AppDataRoaming/.minecraft/libraries/org/scala-  lang/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar; C:  Users  nov11  AppData  Roaming/.minecraft/библиотеки/org/scala-lang/ scala-Reflection/2.11.1/scala-Reflection-2.11.1.jar; C:  Users  nov11  AppData  Roaming/.minecraft/библиотеки/org/scala-lang/scala-swing_2.11/1.0.1/ scala-swing_2.11-1.0.1.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/org/scala-lang/scala-xml_2.11/1.0.2/scala-xml_2.11-  1.0.2.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/lzma/lzma/0.0.1/lzma-0.0.1.jar; C:  Users  nov11  AppData  Roaming/.  minecraft/библиотеки/net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/java3d/vecmath/ 1.5.2/vecmath-1.5.2.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar; C:   Users  nov11  AppData  Roaming/.minecraft/libra  ries/org/apache/maven/maven-artifact/3.5.3/maven-artifact-3.5.3.jar; C:  Users  nov11  AppData  Roaming/.minecraft/библиотеки/com/mojang/patchy/1.1/ patchy-1.1.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/oshi-project/oshi-core/1.1/oshi-core-1.1.jar; C:  Users  nov11  AppData  Roaming /.minecraft/libraries/net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar;C:Usersnov11AppDataRoaming/.minecraft/libraries/net/java/dev/ jna/platform/3.4.0/platform-3.4.0.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-  mojang-51.2.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.jar; C:   Users  nov11  AppData  Roaming/.minecraft/libraries/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/com/paulscode/codecwav/ 20101023/codecwav-20101023.jar; C:  Users  nov11  AppData  Roaming/. minecraft/libraries/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar; C:   Users  nov11  AppData  Roaming/.minecraft/libraries/com/paulscode/SoundSystem/20120107/SoundSystem-20120107.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/io/netty/netty-  all/4.1.9.Final/netty-all-4.1.9.Final.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/com/google/guava/guava/21.0/guava-21.0.  jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar; C:  Users  nov11  AppData  Roaming/.  minecraft/библиотеки/commons-io/commons-io/2.5/commons-io-2.5.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/commons-codec/commons-codec/1.10/commons-  codec-1.10.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar; C:  Users  nov11  AppData   Роуминг/.minecraft/библиотеки/ne  t/java/jutils/jutils/1.0.0/jutils-1.0.0.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/com/google/code/gson/gson/2.8.0/ gson-2.8.0.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/com/mojang/authlib/1.5.25/authlib-1.5.25.jar; C:  Users  nov11  AppData   Roaming/.minecraft/libraries/com/mojang/realms/1.10.22/realms-1.10.22.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/org/apache/commons/commons-  compress/1.8.1/commons-compress-1.8.1.jar; C:  Users  nov11  AppData  Roaming/.minecraft/библиотеки/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.  jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar; C:  Users  nov11  AppData  Roaming /.minecraft/libraries/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar;C:Usersnov11AppDataRoaming/.minecraft/libraries/it/unimi/dsi/fastutil/ 7.1.0/fastutil-7.1.0.jar; C:  Users  nov11  AppData  Roaming/.minecraft/библиотеки/org/apache/logging/log4j/log4j-api/2.8.1/log4j-  api-2.8.1.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.jar;  C:  Users  nov11  AppData  Roaming/.minecraft/libraries/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar; C:  Users  nov11   AppData  Roaming/.minecraft/libraries/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar; C:  Users  nov11  AppData  Roaming/.  minecraft/библиотеки/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar; C:  Users  nov11  AppData  Roaming/.minecraft/ библиотеки/org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/org/lwjgl/ lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/com/mojang/text2speech/1.10.3/ text2speech-1.10.3.jar; C:  Users  nov11  AppData  Roaming/.minecraft/библиотеки/com/mojang/text2speech/1. 10.3/text2speech-1.10.3.jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/ca/​​weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0.  jar; C:  Users  nov11  AppData  Roaming/.minecraft/libraries/ca/​​weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0.jar; C:  Users  nov11   AppData  Roaming/.minecraft/versions/1.12.2/1.12.2.jarnet.minecraft.launchwrapper.Launch - width854 - height480 - usernameIshikawa - version1.12.2-forge1.12.2-14.23.5.2775 - gameDirC  :  Users  nov11  AppData  Roaming/.minecraft - assetsDirC:  Users  nov11  AppData  Roaming/.minecraft/assets - assetIndex1.12 - uuidN/A - accessTokenaeef7bc935f9420eb6314dea7ad7e1e5 - userTycraftpemoClass.  .fml.common.launcher.FMLTweaker - versionTypeForge  

Просто, когда другие решения не работают. accessToken и uuid можно получить с серверов Mojang, подробности можно узнать в других анонсерах.

Изменить (26.11.2018): я также создал Launcher Framework на C # (.NET Framework 3.5), который вы также можно проверить, как должна работать программа запуска. Доступно здесь


В этом ответе кратко объясняется, как обрабатываются собственные файлы в последней версии программы запуска.

По состоянию на 29 апреля 2017 г. программа запуска Minecraft для Windows извлекает все собственные файлы и помещает их в% APPDATA% Local Temp {random folder}. Эта папка является временной и удаляется после завершения процесса javaw.exe (когда Minecraft закрыт). Местоположение этой временной папки должно быть указано в аргументах запуска как значение

-Djava.library.path= 

Кроме того, последняя версия программы запуска (2.0.847) не показывает аргументы запуска, поэтому, если вам нужно проверить их самостоятельно, вы можете сделать это в диспетчере задач (просто включите вкладку «Командная строка» и разверните ее) или с помощью WMIC , как описано здесь.

Надеюсь, это поможет некоторым людям, которые все еще заинтересованы в этом в 2017 году.

6


Просто создайте этот командный файл пакетной команды в каталоге с игрой. Bat файл занимает один аргумент% 1 в качестве имени пользователя.

Кроме того, я использую заставку, чтобы сделать красивое. Вы НЕ сможете играть онлайн, но кого это волнует.

Отрегулируйте использование памяти, чтобы оно соответствовало вашей машине (-Xmx & -Xmns).

ПРИМЕЧАНИЕ: это для версии minecraft от 2016-0 6-27

  @ECHO OFFSET DIR =% cd% SET JAVA_HOME =% DIR%  runtime  jre-x64  1.8.0_25SET JAVA =% JAVA_HOME  %  bin  java.exeSET LOW_MEM = 768MSET MAX_MEM = 2GSET LIBRARIES = versions  1.10.2  1.10.2-natives-59894925878961SET MAIN_CLASS = net.minecraft.client.main.MainSET CLASSPATH = libraries  com  mojang  netty  1.6   netty-1.6.jar; библиотеки  oshi-project  oshi-core  1.1  oshi-core-1.1.jar; библиотеки  net  java  dev  jna  jna  3.4.0  jna-3.4.0.jar  ; библиотеки  net  java  dev  jna  platform  3.4. 0  platform-3.4.0.jar; библиотеки  com  ibm  icu  icu4j-core-mojang  51.2  icu4j-core-mojang-51.2.jar; библиотеки  net  sf  jopt-simple  jopt-simple   4.6  jopt-simple-4.6.jar; библиотеки  com  paulscode  codecjorbis  20101023  codecjorbis-20101023.jar; библиотеки  com  paulscode  codecwav  20101023  codecwav-20101023.jar; библиотеки  com  paulscode  libraryjavasound   20101123  libraryjavasound-20101123.jar; библиотеки  com  paulscode  librarylwjglopenal  20100824  librarylwjglopenal-20100824.jar; библиотеки  com  paulscode  звуковая система  20120107  звуковая система-20120107.jar; библиотеки  io  netty  netty-all   4.0.23.Final  netty-all-4.0.23.Final.jar; библиотеки  com  google  guava  guava  17.0  guava-17.0.jar; библиотеки  org  apache  commons  commons-lang3  3.3.  2  commons-lang3-3.3.2.jar; библиотеки  commons-io  commons-io  2.4  commons-io-2.4.jar; библиотеки  commons-codec  commons-codec  1.9  commons-codec-1.9.  jar; библиотеки  net  java  jinput  jinput  2.0.5  jinput-2.0.5.jar; библиотеки  net  java  jutils  jutils  1.0.0  jutils-1.0.0.jar; библиотеки  com   гугл  код  гсон  гсон  2.2.4  гсон-2  .2.4.jar; библиотеки  com  mojang  authlib  1.5.22  authlib-1.5.22.jar; библиотеки  com  mojang  realms  1.9.3  realms-1.9.3.jar; библиотеки  org  apache   commons  commons-compress  1.8.1  commons-compress-1.8.1.jar; библиотеки  org  apache  httpcomponents  httpclient  4.3.3  httpclient-4.3.3.jar; библиотеки  commons-logging  commons  -logging  1.1.3  commons-logging-1.1.3.jar; библиотеки  org  apache  httpcomponents  httpcore  4.3.2  httpcore-4.3.2.jar; библиотеки  it  unimi  dsi  fastutil  7.0  .12_mojang  fastutil-7.0.12_mojang.jar; библиотеки  org  apache  logging  log4j  log4j-api  2.0-beta9  log4j-api-2.0-beta9.jar; библиотеки  org  apache  logging  log4j  log4j  -core  2.0-beta9  log4j-core-2.0-beta9.jar; библиотеки  org  lwjgl  lwjgl  lwjgl  2.9.4-nightly-20150209  lwjgl-2.9.4-nightly-20150209.jar; библиотеки  org   lwjgl  lwjgl  lwjgl_util  2.9.4-nightly-20150209  lwjgl_util-2.9.4-nightly-20150209.jar; версии  1.10.2  1.10.2.jarSET JAVA_OPTIONS = -server -splash: splash.png -d64  -da -dsa -Xrs -Xms% LOW_MEM% -Xmx% MAX_MEM% -XX: NewSize =% LOW_MEM% -XX: + UseConcMarkSweepGC -XX: + C  MSIncrementalMode -XX: -UseAdaptiveSizePolicy -XX: + DisableExplicitGC -Djava.library.path =% LIBRARIES% -cp% CLASSPATH%% MAIN_CLASS% start/D% DIR%/I/HIGH% JAVA%% JAVA_OPTIONS% 1  --version 1.10.2 --gameDir% DIR% --assetsDir assets --assetIndex 1.10 --uuid 2536abce90e8476a871679918164abc5 --accessToken 99abe417230342cb8e9e2168ab46297a --userType legacy #  --versionType> устаревший --VersionType>   p> 

1


Это все способы запустить стандартную программу запуска minecraft с учетными данными в текстовых полях.

Раньше был способ войти в Minecraft без средства запуска с помощью командной строки, но с тех пор он был исправлен.

Если вы хотите создать собственный лаунчер с помощью командной строки, удачи, единственный способ войти в майнкрафт jar (IE: как это делает лаунчер) — это отправить почтовый запрос на https://login.minecraft.net/с указанием имени пользователя, пароля, версии программы запуска и ключа RSA. Затем он анализирует псевдо-Json и использует полученный токен сеанса для аутентификации jar-файла из командной строки с загрузкой аргументов.

Если вы пытаетесь создать программу запуска minecraft и не знаете java, http-запросы или json, у вас нет шансов.

Swift

3


Для тех, кто хочет сделать это более надежно для разных версий Minecraft, у меня есть Скрипт Python (адаптированный из частей minecraft-launcher-lib), который отлично справляется со своей задачей

Помимо установки некоторых основных переменных в верхней части после функций, он вызывает get_classpath , который проходит, например, через ~/.minecraft/versions/1.16.5/1.16.5.json и перебирает массив libraries , проверка того, должен ли каждый объект (в массиве) быть добавлен в путь к классам (переменная cp ). добавление этой библиотеки в путь к классам Java определяется функцией should_use_library , детерминированной в зависимости от архитектуры компьютера и операционной системы. наконец, к некоторым jar-файлам, зависящим от платформы, добавлены дополнительные элементы (например, natives-linux в org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1 -natives-linux.jar ). эта дополнительная добавленная строка обрабатывается get_natives_string и пуста, если она не применяется к текущей библиотеке

протестирована в Linux, дистрибутив Arch Linux

  #!/usr/bin/env pythonimport jsonimport osimport platformfrom pathlib import Pathimport subprocess "" "Вывод отладки" "" def debug (str): if os.getenv ('DEBUG')!  = None: print (str) "" "[Получает natives_string для сообщения jar, если он существует. Если нет ничего специфичного для нативного кода, возвращает пустую строку]" "" def get_natives_string (lib): arch = "" if platform.  architecture () [0] == "64bit": arch = "64" elif platform.architecture () [0] == "32bit": arch = "32" else: raise Exception ("Архитектура не поддерживается") nativesFile =  "" если не "natives" в lib: return nativesFile # я никогда не видел $ {arch}, но оставьте его на всякий случай, если "windows" в lib ["natives"] и platform.system () == '  Windows ': nativesFile = lib ["natives"] ["windows"]. Replace ("$ {arch}", arch) elif "osx" в lib ["natives"] и platform.system () ==  'Дарвин': nativesFile = lib ["аборигены"] ["osx"]. replace ("$ {arch}", arch) elif "linux" в lib ["natives"] и platform.system () == "Linux": nativesFile = lib ["natives"] ["linux"]. replace (  "$ {arch}", arch) else: raise Exception ("Платформа не поддерживается") return nativesFile "" "[Разбирает вложенное свойство" rule "объекта библиотеки, проверяет, следует ли включать его]" "" def should_use_library (lib  ): def rule_says_yes (rule): useLib = None if rule ["action"] == "allow": useLib = False elif rule ["action"] == "disallow": useLib = True, если "os" в правиле:  для ключа значение в правиле ["os"]. items (): os = platform.system () if key == "name": if value == "windows" и os! = 'Windows': вернуть значение useLib elif  == "osx" и os! = 'Darwin': вернуть значение useLib elif == "linux" и os! = 'Linux': вернуть ключ useLib elif == "arch": if value == "x86" и платформу.  architecture () [0]! = "32bit": вернуть useLib return not useLib, если нет "rules" в lib: return True shouldUseLibrary = False для i в lib ["rules"]: if rule_says_yes (i): return True return shouldUseLibrary  "" "[Получить строку  все библиотеки, добавляемые в путь к классам java] "" "def get_classpath (lib, mcDir): cp = [] для i в lib [" библиотеки "]: если не should_use_library (i): продолжить libDomain, libName, libVersion = i ["  имя "]. split (": ") jarPath = os.path.join (mcDir," библиотеки ", * libDomain.split ('.'), libName, libVersion) native = get_natives_string (i) jarFile = libName +" -  "+ libVersion +" .jar "if native! =" ": jarFile = libName +" - "+ libVersion +" - "+ native +" .jar "cp.append (os.path.join (jarPath, jarFile))  cp.append (os.path.join (mcDir, "versions", lib ["id"], f '{lib ["id"]}. jar')) return os.pathsep.join (cp) version = '  1.16.5'username = '{username}' uuid = '{uuid}' accessToken = '{token}' mcDir = os.path.join (os.getenv ('HOME'), '.minecraft') nativesDir = os  .path.join (os.getenv ('HOME'), 'versions', version, 'natives') clientJson = json.loads (Path (os.path.join (mcDir, 'versions', version, f '{версия  } .json ')). read_text ()) classPath = get_classpath (clientJson, mcDir) mainClass = clientJson [' mainClass '] versionType = clientJso  n ['type'] assetIndex = clientJson ['assetIndex'] ['id'] debug (classPath) debug (mainClass) debug (versionType) debug (assetIndex) subprocess.call (['/usr/bin/java', f  '-Djava.library.path = {nativesDir}', '-Dminecraft.launcher.brand = custom-launcher', '-Dminecraft.launcher.version = 2.1', '-cp', classPath, 'net.minecraft.client  .main.Main ',' --username ', имя пользователя,' --version ', version,' --gameDir ', mcDir,' --assetsDir ', os.path. join (mcDir, 'assets'), '--assetIndex', assetIndex, '--uuid', uuid, '--accessToken', accessToken, '--userType', 'mojang', '--versionType', '  релиз '])  

Оцените статью
Gamicon.ru
Добавить комментарий