Minecraft Launcher Programmieren [Suche nach Tutorial]

5 Antworten

Glaub mir, einen eigenen Launcher zu programmieren ist so gut wie unmöglich - und das ist absicht. Denn sonst könnte man ja einfach einen machen, für den man MC nicht gekauft haben muss.

Wenn du es trotzdem mal versuchen möchtest, dekompilier die launcher.jar aus %appdata%.minecraft und versuch zu finden, wie Minecraft gestartet wird. Dann musst du das nur noch in eigenen Code betten und hoffen, das es startet. Wenn du das geschafft hast, kannst du dann deinen Launcher drum herum basteln.

Viel Spaß ;-)

EDIT:

Wozu eigentlich einen eigenen Launcher?


MorningCrafter  20.06.2015, 21:07

Woher kommen dann FTB Launcher, Technic Launcher, MultiMC, MagicLauncher etc.?

0
MorningCrafter  06.07.2015, 16:34

Die ganzen gecrackten Launcher auch?

0
OwnsSkyTK  18.09.2019, 15:20

Es ist ziemlich simpel, einen Launcher zu schreiben xD Und das war auch schon vor 5 Jahren so einfach.

0

Was heißt "Kenntnisse" aus der Tatsache, dass du es mit Batch versuchen wolltest, lese ich, dass es damit nicht weit her ist?


Jmexy 
Beitragsersteller
 29.01.2014, 17:21
  1. Ich kenne mich eigentlich relativ gut mit Java aus.

  2. Als ich letztens so eine Frage gestellt habe kamen hilfreiche Antworten wie:" Man mach doch einfach ne Batch dann kannst auch den Ram einstellen und so -.-' .

Und ich habe es noch nie mit einer Batch versucht da ich einen Launcher machen will und keinen Starten will :D

0

Ein Tutorial wirst du nicht finden - dafür ist das einfach zu komplex und es gibt zu viele Möglichkeiten wie man das programmieren könnte.

Aber für die einzelnen Dinge hilft dir eventuell folgendes:

  • Login auf minecraft.net: minecraft.gamepedia.com/User:Oxguy3/Minecraft.net_API
  • Der Sysinternals Process Explorer gibt dir den Befehl, mit dem Minecraft dann gestartet wird: technet.microsoft.com/de-de/sysinternals/bb896653.aspx
  • mit dem Java Decompiler kannst du dir den Quelltext des Original-Launchers anzeigen lassen: jd.benow.ca
  • SK's Launcher ist komplett Open Source, falls du noch mehr Inspirationen brauchst: github.com/sk89q/skmclauncher

Hoffe ich konnte dir weiterhelfen!


Jmexy 
Beitragsersteller
 27.01.2014, 20:56

Ich werde es mal durchschauen

Danke :D

0
Jmexy 
Beitragsersteller
 27.01.2014, 20:56

Ich werde es mal durchschauen

Danke :D

0
PerfectMuffin  28.01.2014, 07:54

mit dem Java Decompiler kannst du dir den Quelltext des Original-Launchers anzeigen lassen: jd.benow.ca

Decompiler bringen nicht den ursprünglichen Quellcode, sondern nur einen, der irgendwie zum Ergebnis führt

0
MoMaMa  28.01.2014, 12:38
@PerfectMuffin

Was irgendwie logisch ist, da das Programm ja kompiliert wurde - dennoch zeigt dieser hier einen ziemlich übersichtlichen Quellcode. Da das dennoch etwas unverständlich sein kann, gibt es ja noch den nächsten Punkt...

0
Jmexy 
Beitragsersteller
 29.01.2014, 17:07
@PerfectMuffin

Wenn ich mich jetzt nicht total irre ist der Launcher doch eine .exe und eine .exe kann man doch nicht Decompilen, oder?

0
PerfectMuffin  29.01.2014, 17:59
@Jmexy

Und der Launcher ist gar keine exe. Er ist eine als EXE getarnte executable JAR.

0

Dein Launcher muss nur eines können: Die minecraft.jav starten. Die findest du unter

%appdata%\.minecraft\versions\%version%

Von java aus kannst du die Datei mit dem Programexecuter aus starten. Im Ordner liegt auch eine Datei mit den passenden Argumenten bei.

Da du Java Kenntnisse hast, dürfte der Rest eigentlich nicht allzu schwer werden.

PS.: Wozu einen neuen Launcher programmieren?


Jmexy 
Beitragsersteller
 29.01.2014, 17:16

Ist das nur ein Fehler oder meinst du wirklich .jav? Und dann noch was: Wenn ich nach C:\Users\lalala\AppData\Roaming.minecraft\versions wie komm ich dann an die "jav" und wo liegt die Datei mit den Argumenten D:

0
PerfectMuffin  29.01.2014, 17:56
@Jmexy

Er meint wohl "jar". Und er übersieht, dass die minecraft.jar nicht wirklich unabhängig vom Launcher funktioniert und seit dme neuen Launcher überhaupt nicht mehr in der Form existiert.

0
suppenfisch1999  29.01.2014, 18:20
@Jmexy

Beispiel:

C:\Users\%username%\AppData\Roaming\.minecraft\versions\1.6.2

Dort findest du

1.6.2.jar
1.6.2.json

formatiert sieht die json so aus:

{
  "id": "1.6.2",
  "time": "2013-08-06T13:00:00+02:00",
  "releaseTime": "2013-07-05T15:09:02+02:00",
  "type": "release",
  "minecraftArguments": "--username ${auth_player_name} --session     ${auth_session} --version ${version_name} --gameDir ${game_directory} --assetsDir     ${game_assets}",
  "libraries": [
    {
      "name": "net.sf.jopt-simple:jopt-simple:4.5"
    },
    {
      "name": "com.paulscode:codecjorbis:20101023"
    },
    {
      "name": "com.paulscode:codecwav:20101023"
    },
    {
      "name": "com.paulscode:libraryjavasound:20101123"
    },
    {
      "name": "com.paulscode:librarylwjglopenal:20100824"
    },
    {
      "name": "com.paulscode:soundsystem:20120107"
    },
    {
      "name": "argo:argo:2.25_fixed"
    },
    {
      "name": "org.bouncycastle:bcprov-jdk15on:1.47"
    },
    {
      "name": "com.google.guava:guava:14.0"
    },
    {
      "name": "org.apache.commons:commons-lang3:3.1"
    },
    {
      "name": "commons-io:commons-io:2.4"
    },
    {
      "name": "net.java.jinput:jinput:2.0.5"
    },
    {
      "name": "net.java.jutils:jutils:1.0.0"
    },
    {
      "name": "com.google.code.gson:gson:2.2.2"
    },
    {
      "name": "org.lwjgl.lwjgl:lwjgl:2.9.0",
      "rules": [
        {
          "action": "allow"
        },
        {
          "action": "disallow",
          "os": {
            "name": "osx",
            "version": "^10\\.5\\.\\d$"
          }
        }
      ]
    },
    {
      "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0",
      "rules": [
        {
          "action": "allow"
        },
        {
          "action": "disallow",
          "os": {
            "name": "osx",
            "version": "^10\\.5\\.\\d$"
          }
        }
      ]
    },
    {
      "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0",
      "rules": [
        {
          "action": "allow"
        },
        {
          "action": "disallow",
          "os": {
            "name": "osx",
            "version": "^10\\.5\\.\\d$"
          }
        }
      ],
      "natives": {
        "linux": "natives-linux",
        "windows": "natives-windows",
        "osx": "natives-osx"
      },
      "extract": {
        "exclude": [
          "META-INF/"
        ]
      }
    },
    {
      "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3",
      "rules": [
        {
          "action": "allow",
          "os": {
            "name": "osx",
            "version": "^10\\.5\\.\\d$"
          }
        }
      ]
    },
    {
      "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3",
      "rules": [
        {
          "action": "allow",
          "os": {
            "name": "osx",
            "version": "^10\\.5\\.\\d$"
          }
        }
      ]
    },
    {
      "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3",
      "rules": [
        {
          "action": "allow",
          "os": {
            "name": "osx",
            "version": "^10\\.5\\.\\d$"
          }
        }
      ],
      "natives": {
        "linux": "natives-linux",
        "windows": "natives-windows",
        "osx": "natives-osx"
      },
      "extract": {
        "exclude": [
          "META-INF/"
        ]
      }
    },
    {
      "name": "net.java.jinput:jinput-platform:2.0.5",
      "natives": {
        "linux": "natives-linux",
        "windows": "natives-windows",
        "osx": "natives-osx"
      },
      "extract": {
        "exclude": [
          "META-INF/"
        ]
      }
    }
  ],
  "mainClass": "net.minecraft.client.main.Main",
  "minimumLauncherVersion": 4
}

Damit sollte dein Launcher umgehen können:)

  • Arguments: Erklärt sich von selbst
  • Libraries: Zu ladende Bibliotheken. Sie werden in Java mit dem Schalter -cp oder mit System.loadLibrary(); eingebunden und einzeln aufgezählt.
  • mainClass Hauptklasse. Ebenfalls nötig
  • minimumLauncherVersion Brauchst du nicht unbedingt
0
suppenfisch1999  29.01.2014, 18:22
@PerfectMuffin

Die minecraft.jar gibt es noch - woanders und mit anderem Namen. Sie funktioniert auch ohne Launcher, man muss sie nur mit den passenden Argumenten starten

0
suppenfisch1999  30.01.2014, 16:35
@PerfectMuffin

Und er übersieht, dass die minecraft.jar nicht wirklich unabhängig vom Launcher funktioniert

Das Bezweifle ich

0

Launcher geht. Aber Wenn du das machen möchtest benötigst du die anmelde cods usw... von Mojang/Microsoft. Ich bin Gerade dabei mich mit Mojang in verbindung zusetzen denn ich möchte auch einen Launcher erstellen.