# Minecraft Launcher modden



## Doopy (27. Aug 2011)

Moin,

ich bin ein frisch gebackenes Forums Mitglied, und hab schon ne Frage.

Und zwar, wie man beim Minecraft Launcher andere News anzeigen lassen kann.
Normalerweise zeigt er ja die offiziellen News an, aber ich hätte gerne die News meines Servers dort stehen...
Ich hab mir mal die Minecraft.jar(der Launcher) von der minecraft.net hp geholt und entpackt. Nun, wenn man die .class dateien jez öffnet, steht dort ein Kauderwelsch, man muss sie ja noch dekompilieren... Nach verschieden Versuchen mit iwelchen Decompiler Programmen hab ich einfach die jad.exe runtergeladen und mit der Konsole dekompiliert.


```
jad -p LoginForm.class > LoginForm.java
```

(Ich hab schon gewusst dass der Link in dieser Klasse ist)
Nun konnte ich die .java Datei mit PSPad öffnen. Ich hab den Link gefunden, geändert, und wieder versucht,
mit der Konsole zu kompilieren:


```
javac LoginForm.java
```

Dann werden aber 100 Fehler angezeigt, hier mal die letzten paar:


```
symbol:   class TransparentLabel
  location: class LoginForm
LoginForm.java:705: error: cannot find symbol
                            Util.openLink((new URL("http://www.minecraft.net/reg
ister.jsp")).toURI());
                            ^
  symbol: variable Util
LoginForm.java:718: error: call to super must be first statement in constructor
                super();
                     ^
LoginForm.java:738: error: cannot find symbol
        TransparentLabel accountLink = new TransparentLabel("You need to update
the launcher!") {
        ^
  symbol:   class TransparentLabel
  location: class LoginForm
LoginForm.java:738: error: cannot find symbol
        TransparentLabel accountLink = new TransparentLabel("You need to update
the launcher!") {
                                           ^
  symbol:   class TransparentLabel
  location: class LoginForm
LoginForm.java:782: error: cannot find symbol
                    Util.openLink((new URL("http://www.minecraft.net/download.js
p")).toURI());
                    ^
  symbol: variable Util
LoginForm.java:795: error: call to super must be first statement in constructor
                super();
                     ^
LoginForm.java:805: error: cannot find symbol
        JPanel p = new TransparentPanel(new BorderLayout());
                       ^
  symbol:   class TransparentPanel
  location: class LoginForm
LoginForm.java:807: error: cannot find symbol
        JPanel southPanel = new TexturedPanel();
                                ^
  symbol:   class TexturedPanel
  location: class LoginForm
LoginForm.java:809: error: cannot find symbol
        southPanel.add(new LogoPanel(), "West");
                           ^
  symbol:   class LogoPanel
  location: class LoginForm
LoginForm.java:810: error: cannot find symbol
        southPanel.add(new TransparentPanel(), "Center");
                           ^
  symbol:   class TransparentPanel
  location: class LoginForm
LoginForm.java:819: error: cannot find symbol
        TransparentPanel tp = new TransparentPanel(new GridBagLayout());
        ^
  symbol:   class TransparentPanel
  location: class LoginForm
```

Mein Vater hat gesagt, das liegt dadran, dass die Klassen eine Abhängigkeit untereinander haben, ich sollte alle .class dateien in eine .java datei dekompilieren, und diese wieder kompilieren, aber das zeigte ähnliche Fehlermeldungen...

Hoffe mir kann jemand helfen 

MfG
Doopy


----------



## Empire Phoenix (27. Aug 2011)

Das decompilieren kannste halbwegs vergessen da die gescambelt ist.

Tip: Wireshark und die adresse wo er die news läd finden,
dann per hosts datei oder vergleichbaren umleitung auf eigene News machen.

Im übrigen würde eine erfolgreiche Dekompilierung, modifikation und dann an freunde verteilen folgendes bedeuten: ziemlich sicher nen EULA bruch, und wahrschenich auch die Kopirschutzgesetze.


----------



## Doopy (27. Aug 2011)

Danke erstmal, werds mal mit der umleitung versuchen.

Wegen dem Copyright... 
Wenn ich schreibe "alle Rechte gehen an Mojang", oder so ähnlich, wär das dann legal?
Weil es gibt ja auch den Anjocaido Launcher, wo man starten kann, ohne dass er sich beim Login mit minecraft.net verbindet, also dass man mit gecracktem Minecraft spielen kann...


MfG


----------



## Firephoenix (27. Aug 2011)

Hi,
was mir in dem Thread hier fehlt:

Das hier ist immer noch keine Minecraft-Forum.

Warum wendest du dich mit dem Problem nicht an entsprechende Minecraft-Communitys oder Moddingecken, bzw schaust mal nach ob du den Anschluss an z.b bukkit schaffst.

Und zu gecracktem Minecraft: Dafür das das ganze am Anfang als 1-Mann Projekt gestartet ist wurde da schon großes geleistet, alleine der Weltgenerator ist schon wahnsinn.
Und gute Programme von anderen sollte man so behandeln wie seine eigenen, und daher sind die 15€ wohl kein Zacken der einem aus der Krone fällt.
Dass der Entwickler dabei nicht darauf angewiesen ist interessiert mich nicht, aber für gute Arbeit kann man auch Geld bezahlen.

Gruß


----------



## Doopy (27. Aug 2011)

Hi,

hab bereits in einem Minecraft Forum die Frage gestellt, aber das Problem schien eher zum Thema java zu gehören, anstatt zu Minecraft, denn anscheinend gibt es dort keine Fachexperten im Thema Java  kompilieren^^ Hätte hier auch schreiben können, hab Probleme eine .class Datei eines größeren Projektes wieder zu kompilieren...

Bukkit? Mein Server läuft auf Bukkit, meinst du, ich soll ein Plugin dafür suchen...?

Hab nur darauf hingewiesen, dass es so einen Launcher gibt, und der ist doch auch legal, oder nicht?

Finde übrigens auch, dass Minecraft die 15€ wert ist...

MfG


----------



## Fu3L (27. Aug 2011)

> Hab nur darauf hingewiesen, dass es so einen Launcher gibt, und der ist doch auch legal, oder nicht?





> ohne dass er sich beim Login mit minecraft.net verbindet, also dass man mit gecracktem Minecraft spielen kann...



Wie legal das wohl ist?^^ Wenn du einmal mit Internetverbindung gespielt hast, kannst du eh ohne Verbindung zocken (auch auf nem Computer ohne Inetanschluss, wenn du das .minecraft Verzeichnis mitkopierst), also fällt das wohl eher unter illegal...

Aber generell is dekompiliere des Minecraft-Source ja momentan noch die einzige Möglichkeit zu modden und das tun viele fleißig und offiziell, also ist das, so lange du keine anderen Rechte damit verletzt wohl in Ordnung (wobei ich ka hab, obs beim Launcher noch wieder was anderes ist)... Nur wenn du auch den Login umgehen willst, dann musst du dir auf jeden Fall Gedanken machen, ob das legal ist.


----------



## Doopy (27. Aug 2011)

Ok...
Zurück zum Problem.
Wollte evtl noch die normale .jar modden...
Würde es da auch diese Problem geben? Bzw. ist die auch "gescambelt"?
Und wenn jmd so nett wär, könnte er mir auch erklären, wie das genau mit dem umleiten geht, bei google hatte ich noch nicht so den erfolg... 

MfG


----------



## Fu3L (27. Aug 2011)

Also der gesamte Minecraft Code ist obfuscated. Es soll ab 1.8 (vllt das etwas später) einen verbesserten Modding Support geben, dann wäre es möglich in den Original Source Code zu gucken oder es werden Interfaces angeboten (das wollte Notch eigentlich nicht wegen der damit verbundenen Arbeit). Allerdings dürfte dafür wohl die ein oder andere Hürde bestehen.

Und noch was: Jetzt würde ich den Launcher nicht überarbeiten, ab 1.8 solls nämlich auch einen neuen Launcher geben 

Quelle:
Upcoming features - Minecraft Wiki


----------



## Doopy (27. Aug 2011)

Echt? Ein neuer launcher? :O
Gut dass du das sagst, danke! 
Ja das mit der api hab ich auch schon gelesen...
Mein vate hatte übrigens die idee, alle .class datein zu dekompilieren, und wieder zu kompilieren, weil die ja voneinader abhängig sind...
Aber wenns eh obfuscated is^^

Naja, danke erstmal, werde dann warten bis morgen 1.8 rauskommt, und dann weiter berichten... 


MfG


----------



## Doopy (28. Aug 2011)

Wegen der hosts datei...
Hab mich ein wenig informiert, und herausgefunden, dass eine website zu einer ip umgeleitet werden kann...
Nur dass die offiziellen News eine Seite von tumblr.com sind, und meine news auch(d.h. selbe server ip), aber selbst wenn ich z.b. twitter nehmen würde, würde er immer nur die startseite anzeigen oder?
Oder kann man eine genaue website zu einer anderen umleiten?

MfG


----------



## Noctarius (28. Aug 2011)

Ja kann man. Du gibst in der Hosts Datei einfach den umzuleitenden Domainnamen gefolgt von der IP an zu der umgeleitet werden soll. Setzt allerdings voraus, dass auf eine Domain und nicht auf eine IP connected wird.


----------



## Gast2 (28. Aug 2011)

Hände weg von der hosts-Datei ... die einzige Aufgabe dieser Datei ist es DNS zu ermöglich bevor ein DNS-Server erreichbar ist ... dann ist ist immer der DNS-Server zu benutzen ... die Änderung der hosts-Datei wirkt sich auch nur auf dem lokalen Rechner aus ... jedes Programm was an meiner hosts-Datei rumfummelt fliegt sofort runter ... in die hosts-Datei darf bei richtigen Rechner nur der Admin schreiben - also ab Vista gibt es da Probleme


----------



## Noctarius (28. Aug 2011)

Ist bei Private Hostings von alternativen Gameservern aber nichts ungewöhnliches und der einfachste Weg ohne Clientmodding


----------



## Doopy (28. Aug 2011)

ja^^
aber ist es nicht andersrum? Zuerst IP, zu der umgeleitet werden soll, und dann URL?
Und ich geb hier mal die URLs an:
Offi-News: mcupdate.tumblr.com
Meine News: stylecraft-de.tumblr.com

MfG


----------



## Doopy (28. Aug 2011)

Problem gelöst...
Hab den Typen angeschrieben, der es geschafft hat, die News in den Launcher einzubinden, aber er wollte mir nicht helfen, weil er bei einem anderen Server spielte und keiner Konkurrenz helfen wollte...
Heute wurde er aber gekündigt und spielt jetzt auf meinem Server, und schreibt grad den Launcher für mich  (Hab übrigens keine Java-Kenntnisse xD)

Er hat mir gesagt, er hats mit Eclipse gemacht, und den Launcher einfach umgeschrieben, bis keine Fehlermeldungen mehr auftraten^^

Naja, hab jetzt wenigstens was über (De-)Kompilieren, Hosts-Dateien, Copyright und Obfuscating gelernt^^

Danke euch allen 


MfG
Doopy


----------



## Asyx (1. Sep 2011)

Also im Endeffekt hat Notch nichts gegen das decompilen von Minecraft. Man sollte nur keine komplette .jar releasen. Dann gibts Ärger.

Zum decompilen soll man aber das MCP (Minecraft Compiler Pack oder so...) benutzen. Dann hat man einen ordentlichen Code der auch sofort wieder kompiliert werden kann. Dann die veränderten Klassen vom mcp raus holen lassen, zippen und schon hast du einen Mod für Minecraft der genau das macht, was du willst.


----------

