I don't remember if I ever got that game loaded or what code you're speaking of, but I just tried it and no matter what, it seems to create its own frame :S
This is what I have (2 files to load the client):
ClientApplet.java
package pirateloader;
import java.applet.*;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JPanel;
/**
*
* @author Brandon
*/
public class ClientApplet extends JPanel implements AppletStub {
private Applet applet = null;
private URLClassLoader loader = null;
private URL codeBase = null, documentBase = null;
private final HashMap<String, String> parameters = new HashMap<>();
private static final Pattern widthRegex = Pattern.compile("width=\\\"(.*?)\\\"");
private static final Pattern heightRegex = Pattern.compile("height=\\\"(.*?)\\\"");
private static final Pattern parameterRegex = Pattern.compile("<param name=\\\"([^\\s]+)\\\"\\s+value=\\\"([^>]*)\\\"/>");
public ClientApplet() {
try {
this.setLayout(new BorderLayout(0, 0));
String page = this.savePage(new URL("http://www.puzzlepirates.com/getdown.xhtml"));
Matcher parameterMatcher = parameterRegex.matcher(page);
while (parameterMatcher.find()) {
this.parameters.put(parameterMatcher.group(1), parameterMatcher.group(2));
}
if (this.parameters.size() > 0) {
Matcher heightMatcher = heightRegex.matcher(page);
Matcher widthMatcher = widthRegex.matcher(page);
String appbase = this.parameters.get("appbase").replaceFirst("/client", "/%VERSION%");
this.parameters.put("appbase", appbase);
this.codeBase = new URL(this.parameters.get("archive"));
this.documentBase = new URL(this.parameters.get("appbase"));
this.loader = new URLClassLoader(new URL[]{new URL(this.parameters.get("archive"))});
//this.applet = (Applet)loader.loadClass("com.threerings.getdown.launcher.GetdownApplet").newInstance();
this.applet = (Applet)this.loader.loadClass(this.parameters.get("code")).newInstance();
this.applet.setStub(this);
widthMatcher.find();
heightMatcher.find();
int Width = Integer.parseInt(widthMatcher.group(1));
int Height = Integer.parseInt(heightMatcher.group(1));
this.applet.setPreferredSize(new Dimension(Width, Height));
this.add(applet, BorderLayout.CENTER);
}
} catch(MalformedURLException | ClassNotFoundException | InstantiationException | IllegalAccessException | NumberFormatException e) {
e.printStackTrace();
}
}
public void start() {
this.applet.init();
this.applet.start();
}
public void stop() {
this.remove(this.applet);
this.applet.stop();
this.applet.destroy();
this.applet = null;
try {
this.loader.close();
} catch(IOException e) {
}
}
@Override
public boolean isActive() {
return true;
}
@Override
public URL getDocumentBase() {
return this.documentBase;
}
@Override
public URL getCodeBase() {
return this.codeBase;
}
@Override
public String getParameter(String name) {
return this.parameters.get(name);
}
@Override
public AppletContext getAppletContext() {
return null;
}
@Override
public void appletResize(int width, int height) {
}
public static String savePage(URL url) {
try {
URLConnection connection = url.openConnection();
connection.addRequestProperty("Protocol", "HTTP/1.1");
connection.addRequestProperty("Connection", "keep-alive");
connection.addRequestProperty("Keep-Alive", "200");
connection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1");
String line = "";
StringBuilder builder = new StringBuilder();
try (BufferedReader stream = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
while ((line = stream.readLine()) != null) {
builder.append(line);
builder.append("\n");
}
}
return builder.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
Main File: PirateLoader.java
package pirateloader;
import javax.swing.JFrame;
/**
*
* @author Brandon
*/
public class PirateLoader {
public static void main(String[] args) {
JFrame frame = new JFrame("Hello");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ClientApplet applet = new ClientApplet();
frame.add(applet);
frame.pack();
frame.setVisible(true);
applet.start();
}
}
What it prints in the console before its own frame pops up and starts loading the game.. And it saves everything here: C:\Users\Brandon\AppData\LocalLow\yoclient
2014/03/29 17:55:42:890 INFO r.a: App Base: [url]http://download.threerings.net/yoclient/%VERSION%[/url]
2014/03/29 17:55:42:901 INFO r.a: App Name: yoclient
2014/03/29 17:55:42:986 INFO r.a: ------------------ VM Info ------------------
2014/03/29 17:55:42:987 INFO r.a: -- OS Name: Windows 8.1
2014/03/29 17:55:42:987 INFO r.a: -- OS Arch: amd64
2014/03/29 17:55:42:988 INFO r.a: -- OS Vers: 6.3
2014/03/29 17:55:42:988 INFO r.a: -- Java Vers: 1.8.0
2014/03/29 17:55:42:989 INFO r.a: -- Java Home: C:\Program Files\Java\jdk1.8.0\jre
2014/03/29 17:55:42:989 INFO r.a: -- User Name: Brandon
2014/03/29 17:55:42:990 INFO r.a: -- User Home: C:\Users\Brandon
2014/03/29 17:55:42:990 INFO r.a: -- Cur dir: C:\Users\Brandon\Documents\NetBeansProjects\PirateLoader
2014/03/29 17:55:42:991 INFO r.a: ---------------------------------------------
2014/03/29 17:55:42:992 WARNING r.a: No resource certificate found, falling back to class signers
2014/03/29 17:55:43:065 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/libkeybd.so]
2014/03/29 17:55:43:066 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/libunsafe.so]
2014/03/29 17:55:43:067 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/liblwjgl64.so]
2014/03/29 17:55:43:068 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/liblwjgl.so]
2014/03/29 17:55:43:068 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/libopenal.so]
2014/03/29 17:55:43:069 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/libopenal64.so]
2014/03/29 17:55:43:069 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/libfroth.so]
2014/03/29 17:55:43:070 INFO r.a: Skipping [quals=mac os x, osname=windows 8.1, osarch=amd64, key=resource, value=[mac os x] native/liblwjgl.jnilib]
2014/03/29 17:55:43:070 INFO r.a: Skipping [quals=mac os x, osname=windows 8.1, osarch=amd64, key=resource, value=[mac os x] native/openal.dylib]
2014/03/29 17:55:43:071 INFO r.a: Skipping [quals=mac os x, osname=windows 8.1, osarch=amd64, key=resource, value=[mac os x] native/libfroth.jnilib]
2014/03/29 17:55:43:073 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=java_location, value=[linux] /yoclient/java_linux.jar]
2014/03/29 17:55:43:146 INFO r.a: Failed to find proxy settings in Windows registry [error=java.lang.UnsatisfiedLinkError: no jRegistryKey in java.library.path]
2014/03/29 17:55:43:151 INFO r.a: ---------------- Proxy Info -----------------
2014/03/29 17:55:43:151 INFO r.a: -- Proxy Host: null
2014/03/29 17:55:43:152 INFO r.a: -- Proxy Port: null
2014/03/29 17:55:43:152 INFO r.a: ---------------------------------------------
2014/03/29 17:55:43:156 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/libkeybd.so]
2014/03/29 17:55:43:157 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/libunsafe.so]
2014/03/29 17:55:43:157 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/liblwjgl64.so]
2014/03/29 17:55:43:158 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/liblwjgl.so]
2014/03/29 17:55:43:159 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/libopenal.so]
2014/03/29 17:55:43:159 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/libopenal64.so]
2014/03/29 17:55:43:161 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=resource, value=[linux] native/libfroth.so]
2014/03/29 17:55:43:162 INFO r.a: Skipping [quals=mac os x, osname=windows 8.1, osarch=amd64, key=resource, value=[mac os x] native/liblwjgl.jnilib]
2014/03/29 17:55:43:163 INFO r.a: Skipping [quals=mac os x, osname=windows 8.1, osarch=amd64, key=resource, value=[mac os x] native/openal.dylib]
2014/03/29 17:55:43:163 INFO r.a: Skipping [quals=mac os x, osname=windows 8.1, osarch=amd64, key=resource, value=[mac os x] native/libfroth.jnilib]
2014/03/29 17:55:43:165 INFO r.a: Skipping [quals=linux, osname=windows 8.1, osarch=amd64, key=java_location, value=[linux] /yoclient/java_linux.jar]
2014/03/29 17:55:43:190 INFO r.a: Able to lock for updates: true
.
.
.