Merge pull request #720 from icelimetea/fix-legacy-issues
This commit is contained in:
commit
9bbf50e864
@ -24,24 +24,65 @@ import java.net.URL;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* WARNING: This class is reflectively accessed by legacy Forge versions.
|
||||||
|
* Changing field and method declarations without further testing is not recommended.
|
||||||
|
*/
|
||||||
public final class Launcher extends Applet implements AppletStub {
|
public final class Launcher extends Applet implements AppletStub {
|
||||||
|
|
||||||
private final Map<String, String> params = new TreeMap<>();
|
private final Map<String, String> params = new TreeMap<>();
|
||||||
|
|
||||||
private final Applet wrappedApplet;
|
private Applet wrappedApplet;
|
||||||
|
|
||||||
|
private URL documentBase;
|
||||||
|
|
||||||
private boolean active = false;
|
private boolean active = false;
|
||||||
|
|
||||||
public Launcher(Applet applet) {
|
public Launcher(Applet applet) {
|
||||||
|
this(applet, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Launcher(Applet applet, URL documentBase) {
|
||||||
this.setLayout(new BorderLayout());
|
this.setLayout(new BorderLayout());
|
||||||
|
|
||||||
this.add(applet, "Center");
|
this.add(applet, "Center");
|
||||||
|
|
||||||
this.wrappedApplet = applet;
|
this.wrappedApplet = applet;
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (documentBase != null) {
|
||||||
|
this.documentBase = documentBase;
|
||||||
|
} else if (applet.getClass().getPackage().getName().startsWith("com.mojang")) {
|
||||||
|
// Special case only for Classic versions
|
||||||
|
|
||||||
|
this.documentBase = new URL("http", "www.minecraft.net", 80, "/game/");
|
||||||
|
} else {
|
||||||
|
this.documentBase = new URL("http://www.minecraft.net/game/");
|
||||||
|
}
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setParameter(String name, String value)
|
public void replace(Applet applet) {
|
||||||
{
|
this.wrappedApplet = applet;
|
||||||
|
|
||||||
|
applet.setStub(this);
|
||||||
|
applet.setSize(getWidth(), getHeight());
|
||||||
|
|
||||||
|
this.setLayout(new BorderLayout());
|
||||||
|
this.add(applet, "Center");
|
||||||
|
|
||||||
|
applet.init();
|
||||||
|
|
||||||
|
active = true;
|
||||||
|
|
||||||
|
applet.start();
|
||||||
|
|
||||||
|
validate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setParameter(String name, String value) {
|
||||||
params.put(name, value);
|
params.put(name, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,7 +95,7 @@ public final class Launcher extends Applet implements AppletStub {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
return super.getParameter(name);
|
return super.getParameter(name);
|
||||||
} catch (Exception ignore) {}
|
} catch (Exception ignored) {}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -108,25 +149,13 @@ public final class Launcher extends Applet implements AppletStub {
|
|||||||
try {
|
try {
|
||||||
return new URL("http://www.minecraft.net/game/");
|
return new URL("http://www.minecraft.net/game/");
|
||||||
} catch (MalformedURLException e) {
|
} catch (MalformedURLException e) {
|
||||||
e.printStackTrace();
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public URL getDocumentBase() {
|
public URL getDocumentBase() {
|
||||||
try {
|
return documentBase;
|
||||||
// Special case only for Classic versions
|
|
||||||
if (wrappedApplet.getClass().getCanonicalName().startsWith("com.mojang"))
|
|
||||||
return new URL("http", "www.minecraft.net", 80, "/game/");
|
|
||||||
|
|
||||||
return new URL("http://www.minecraft.net/game/");
|
|
||||||
} catch (MalformedURLException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user