Minecraft starten [Neues System!]

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von LuaX.

    Minecraft starten [Neues System!]

    Hallo,

    ich weiß, dass dieses Thema bereits um die 3 Millionen Mal diskutiert wurde, aber ich finde einfach nichts Passendes zu dem neuen System.
    Seit der Version 1.6 gibt es bekanntlich einen neuen Launcher. Zusätzlich zu dem Launcher hat sich auch im Minecraft Ordner einiges getan. Jede Version hat nun seinen eigenen Ordner. Nun bin ich bereits so weit und habe mir einen Session Hash für die Authentifikation geholt:

    VB.NET-Quellcode

    1. status = wc.DownloadString("http://login.minecraft.net/?user=" & txt_user.Text & "&password=" & txt_password.Text & "&version=12")
    2. ​sessionid = status.Split(CChar(":"))(4)


    Soweit so gut. Wie schaffe ich es allerdings Minecraft zu starten?

    Wie gesagt, es tut mir wirklich leid, dass ich dieses Thema nochmal ausgrabe aber ich kann einfach nichts aktuelles mehr zu dem Thema finden.

    Vielen Dank im Voraus
    GermanElectronix
    Sollte eigentlich einfach sein:
    - Ordner von der gewünschten Minecraft-Version aussuchen (findet man bekannterweise in %APPDATA%, müsste auch in Environment.SpecialDirectories o.Ä. vorhanden sein)
    - Im Unterordner "bin" die Datei "minecraft.jar" ausfindig machen
    - Sie korrekt starten mit:
    java -Xms512m -Xmx1g -Djava.library.path=natives/ -cp "minecraft.jar;lwjgl.jar;lwjgl_util.jar" net.minecraft.client.Minecraft <username> <sessionID>
    (Hier nachzulesen, Parmaeter ggf. anpassen)

    Oder hat sich ab 1.6 grundlegend was geändert...?
    Dann schau mal, wenn das Spiel läuft, in den Taskmanager (Prozesse, bei Win 8 Details), blende ggf. die Spalte "Begehlszeile" ein (Rechtsklick auf die ListView-Header) und guck dir die Befehlszeile vom Java-Prozess an...

    MfG,
    X-Zat / Mo
    @X-Zat Die minecraft.jar gibt es halt nicht mehr im bin, das sind nun alles einzelne jar-Dateien in verschiedenen Versionsordnern.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Der Code um Minecraft zu starten sieht so aus:

    Quellcode

    1. Dim p As New System.Diagnostics.Process
    2. Dim RAM As Integer = 1
    3. Dim WorkingDirectory As String = System.AppDomain.CurrentDomain.BaseDirectory
    4. Dim MinecraftName As String = "MinecraftSpieler"
    5. Dim UUID As String = ""
    6. With p.StartInfo
    7. .FileName = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) & "\Java\jre7\bin\java.exe"
    8. .UseShellExecute = False
    9. .CreateNoWindow = True
    10. .Arguments = String.Format("-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx{0}G -Djava.library.path={1}\minecraft\versions\1.7.2\1.7.2-natives -cp {1}\minecraft\libraries\java3d\vecmath\1.3.1\vecmath-1.3.1.jar;{1}\minecraft\libraries\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar;{1}\minecraft\libraries\com\ibm\icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar;{1}\minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;{1}\minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;{1}\minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;{1}\minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;{1}\minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;{1}\minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;{1}\minecraft\libraries\io\netty\netty-all\4.0.10.Final\netty-all-4.0.10.Final.jar;{1}\minecraft\libraries\com\google\guava\guava\15.0\guava-15.0.jar;{1}\minecraft\libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;{1}\minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;{1}\minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;{1}\minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;{1}\minecraft\libraries\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar;{1}\minecraft\libraries\com\mojang\authlib\1.3\authlib-1.3.jar;{1}\minecraft\libraries\org\apache\logging\log4j\log4j-api\2.0-beta9\log4j-api-2.0-beta9.jar;{1}\minecraft\libraries\org\apache\logging\log4j\log4j-core\2.0-beta9\log4j-core-2.0-beta9.jar;{1}\minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar;{1}\minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar;{1}\minecraft\versions\1.7.2\1.7.2.jar net.minecraft.client.main.Main --username {2} --version 1.7.2 --gameDir {1}\minecraft --assetsDir {1}\minecraft\assets\virtual\legacy --uuid {3} --accessToken {4}", RAM, WorkingDirectory, MinecraftName, UUID, sessionid)
    11. End With
    12. p.Start()


    In dem Beispiel wurde die 1.7.2 verwendet. Wenn du eine andere Version hast musst du einfach mal gucken was zu ändern ist.
    Die Login Methode die du verwendest ist außerdem veraltet. Hier kannst du die neue Methode sehen ;) . (Nur in Englisch)
    KaskadekingDE on GitHub :)
    Bitte keine Fragen über Programmierung per PN! Dafür ist das Forum hier.

    Who cares? ¯\_(ツ)_/¯
    @KaskadekingDE Das ist schonmal sehr hilfreich :) Aber kannst du mir eventuell die wichtigsten Argumente erklären?

    Quellcode

    1. -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx{0}G -Djava.library.path={1}\minecraft\versions\1.7.2\1.7.2-natives -cp {1}\minecraft\libraries\java3d\vecmath\1.3.1\vecmath-1.3.1.jar;{1}\minecraft\libraries\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar;{1}\minecraft\libraries\com\ibm\icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar;{1}\minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;{1}\minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;{1}\minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;{1}\minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;{1}\minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;{1}\minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;{1}\minecraft\libraries\io\netty\netty-all\4.0.10.Final\netty-all-4.0.10.Final.jar;{1}\minecraft\libraries\com\google\guava\guava\15.0\guava-15.0.jar;{1}\minecraft\libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;{1}\minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;{1}\minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;{1}\minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;{1}\minecraft\libraries\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar;{1}\minecraft\libraries\com\mojang\authlib\1.3\authlib-1.3.jar;{1}\minecraft\libraries\org\apache\logging\log4j\log4j-api\2.0-beta9\log4j-api-2.0-beta9.jar;{1}\minecraft\libraries\org\apache\logging\log4j\log4j-core\2.0-beta9\log4j-core-2.0-beta9.jar;{1}\minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar;{1}\minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar;{1}\minecraft\versions\1.7.2\1.7.2.jar net.minecraft.client.main.Main --username {2} --version 1.7.2 --gameDir {1}\minecraft --assetsDir {1}\minecraft\assets\virtual\legacy --uuid {3} --accessToken {4}", RAM, WorkingDirectory, MinecraftName, UUID, sessionid

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Net
    3. Imports System.IO
    4. Public Class Form1
    5. Dim wc As New System.Net.WebClient
    6. Dim login_start As Process
    7. Dim status As String
    8. Dim sessionid As String
    9. Dim username As String
    10. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    11. login()
    12. End Sub
    13. Sub login()
    14. Try
    15. status = wc.DownloadString("http://login.minecraft.net/?user=" & txt_user.Text & "&password=" & txt_password.Text & "&version=12")
    16. username = txt_user.Text
    17. sessionid = status.Split(CChar(":"))(4)
    18. cout(sessionid)
    19. start()
    20. Catch ex As Exception
    21. cout(ex.Message)
    22. End Try
    23. cout(status)
    24. End Sub
    25. Sub cout(ByVal print As String)
    26. debugbox.Text += vbNewLine & vbNewLine & print
    27. End Sub
    28. Sub start()
    29. Dim p As New System.Diagnostics.Process
    30. Dim RAM As Integer = 1
    31. Dim WorkingDirectory As String = System.AppDomain.CurrentDomain.BaseDirectory
    32. Dim UUID As String = ""
    33. With p.StartInfo
    34. .FileName = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) & "\Java\jre7\bin\java.exe"
    35. .UseShellExecute = False
    36. .CreateNoWindow = True
    37. .Arguments = String.Format("-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx{0}G -Djava.library.path={1}\minecraft\versions\1.7.2\1.7.2-natives -cp {1}\minecraft\libraries\java3d\vecmath\1.3.1\vecmath-1.3.1.jar;{1}\minecraft\libraries\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar;{1}\minecraft\libraries\com\ibm\icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar;{1}\minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;{1}\minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;{1}\minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;{1}\minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;{1}\minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;{1}\minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;{1}\minecraft\libraries\io\netty\netty-all\4.0.10.Final\netty-all-4.0.10.Final.jar;{1}\minecraft\libraries\com\google\guava\guava\15.0\guava-15.0.jar;{1}\minecraft\libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;{1}\minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;{1}\minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;{1}\minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;{1}\minecraft\libraries\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar;{1}\minecraft\libraries\com\mojang\authlib\1.3\authlib-1.3.jar;{1}\minecraft\libraries\org\apache\logging\log4j\log4j-api\2.0-beta9\log4j-api-2.0-beta9.jar;{1}\minecraft\libraries\org\apache\logging\log4j\log4j-core\2.0-beta9\log4j-core-2.0-beta9.jar;{1}\minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar;{1}\minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar;{1}\minecraft\versions\1.7.2\1.7.2.jar net.minecraft.client.main.Main --username {2} --version 1.7.2 --gameDir {1}\minecraft --assetsDir {1}\minecraft\assets\virtual\legacy --uuid {3} --accessToken {4}", RAM, WorkingDirectory, username, UUID, sessionid)
    38. End With
    39. p.Start()
    40. End Sub
    41. End Class​
    Ich werde den Code mal testen ....

    EDIT:
    der java-code:

    Quellcode

    1. java -Xmx1024M -Xms1024M -jar minecraft.jar nogui

    di jar muss sich im selben ordner wie der launcher befinden

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MYST“ ()

    GermanElectronix schrieb:

    @KaskadekingDE Das ist schonmal sehr hilfreich :) Aber kannst du mir eventuell die wichtigsten Argumente erklären?

    Quellcode

    1. -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx{0}G -Djava.library.path={1}\minecraft\versions\1.7.2\1.7.2-natives -cp {1}\minecraft\libraries\java3d\vecmath\1.3.1\vecmath-1.3.1.jar;{1}\minecraft\libraries\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar;{1}\minecraft\libraries\com\ibm\icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar;{1}\minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;{1}\minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;{1}\minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;{1}\minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;{1}\minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;{1}\minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;{1}\minecraft\libraries\io\netty\netty-all\4.0.10.Final\netty-all-4.0.10.Final.jar;{1}\minecraft\libraries\com\google\guava\guava\15.0\guava-15.0.jar;{1}\minecraft\libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;{1}\minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;{1}\minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;{1}\minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;{1}\minecraft\libraries\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar;{1}\minecraft\libraries\com\mojang\authlib\1.3\authlib-1.3.jar;{1}\minecraft\libraries\org\apache\logging\log4j\log4j-api\2.0-beta9\log4j-api-2.0-beta9.jar;{1}\minecraft\libraries\org\apache\logging\log4j\log4j-core\2.0-beta9\log4j-core-2.0-beta9.jar;{1}\minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar;{1}\minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar;{1}\minecraft\versions\1.7.2\1.7.2.jar net.minecraft.client.main.Main --username {2} --version 1.7.2 --gameDir {1}\minecraft --assetsDir {1}\minecraft\assets\virtual\legacy --uuid {3} --accessToken {4}", RAM, WorkingDirectory, MinecraftName, UUID, sessionid


    Der größe Teil der Argumente lädt einfach nur die Libs die Minecraft braucht mit.
    "-Xmx{0}G" = Wieviel RAM Minecraft verwenden darf. {0} wird durch die Zahl von der Variable RAM ersetzt.
    "-Djava.library.path" gibt den Pfad zu den Natives an.
    "-cp" gibt die Libraries an. Die Libraries werden durch ein ; getrennt. Wird durch den Wert von WorkingDirectory ersetzt.
    "net.minecrft.client.main.Main" --username {2} --version 1.7.2 --gameDir {1}\minecraft --assetsDir {1}\minecraft\assets\virtual\legacy --uuid {3} --accessToken {4}.
    --username gibt den Minecraft Namen an (Ist der Wert nach dem 2. ":" vom status String also

    Quellcode

    1. MinecraftName = status.Split(CChar(":"))(2)
    )
    --version gibt die Minecraft Version an (z.B 1.6.2, 1.6.4, 1.7.2, 1.7.4 oder 1.7.5)
    --gameDir gibt den Pfad an wo die Ressourcenpacks und Saves gespeichert werden sollen
    --assetsDir gibt den Pfad zu den Assets an (Texturen, Sound, etc...)
    --uuid gibt die UUID an (Universally Unique Identifier. Die UUID ist der Wert nach dem 3. ":". Der Accesstoken ist der Wert nach dem 4. ":")
    --accesstoken gibt den Accesstoken an.

    Sorry wenn es nicht so übersichtlich ist :/
    KaskadekingDE on GitHub :)
    Bitte keine Fragen über Programmierung per PN! Dafür ist das Forum hier.

    Who cares? ¯\_(ツ)_/¯
    Die Libraries und Assets können sich schon ändern falls sie geupdatet werden.
    Die Argumente kannst du aber im Taskmanager herrausfinden.
    Dann müsstest du aber alles was in den Argumenten "{1}" ist auch in den kopierten Argumenten aus dem Taskmanager ersetzen
    (Also wenn der Pfad C:\Anwendung ist, müsstest du C:\Anwendung durch {1} ersetzen weil das ganze durch String.Format ersetzt wird.)
    außer deine Anwendung hat einen festen Ort wo sie gespeichert wird.
    Also das sie nicht durch ein Setup auf x beliebige Orte installiert werden kann.
    Dann bräuchtest du nicht dieses {1} dann kannst du den vollständigen Pfad angeben.
    KaskadekingDE on GitHub :)
    Bitte keine Fragen über Programmierung per PN! Dafür ist das Forum hier.

    Who cares? ¯\_(ツ)_/¯
    Ihr habt das ja alles erklärt, trotzdem steige ich nicht so ganz damit durch. Ich bin gerade dabei ein eigenen Launcher für ein Modpack zu schreiben. Problem: Das Modpack ist auf der 1.7.10, kann mir einer mal zeigen welche ausschnitte ich aus dem code bearbeiten, bzw. verändern muss? Wäre voll cool
    Hallo, ich melde mich auch mal zu wort:
    Login.minecraft.net ist veraltet, du solltest authserver.mojang.com/authenticate/ benutzen.....stichwort yaggdrasyl im Minecraft Wiki, Heitzutage alles JSON....Naja hauptteil: Es gibt ein Problem: Es wird NUR bei dir funktionieren und bei anderen vermutlich nicht... gehe mal in assets und suche 1.7.10.json.....diese enthält die 1.7.10 Assets. Diese musst du alle mitliefern. Ich würde dir empfehlen das MCP runterzuladen.....daraus kompilierst du dann minecraft und hast alle Assets an board.

    LG
    こんにちわ
    Achte beim stellen von Fragen auf eine genaue Fragestellung, mir passiert das selbst häufig, andere können dir dann nicht so gut helfen.
    Ich erinnere hier nur kurz dran das es gemäß Minecrafts Eula nicht gestattet ist irgendetwas an Minecrafts Ein/Um-zukompilieren und die modifizierte Version weiter zu verteilen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gelöschter Benutzer“ ()

    @Kameo

    Das ist nicht ganz korrekt,
    "Wenn Sie das Spiel erworben haben, dürfen Sie damit herumspielen und es ändern, indem Sie Modifikationen, Tools oder Plug-Ins hinzufügen, die wir zusammen als "Mods" bezeichnen [...] Wenn Sie Ihre Mod mit der Minecraft-Software kombinieren, nennen wir diese Kombination eine "modifizierte Version" "
    => Es ist thoeretisch erlaubt,
    ausßerdem sagte ich es zu erstellen (um die Assets zu haben) und nicht zu ändern....

    Grüße
    こんにちわ
    Achte beim stellen von Fragen auf eine genaue Fragestellung, mir passiert das selbst häufig, andere können dir dann nicht so gut helfen.