package com.kokakiwi.mclauncher.core.launcher;
import java.applet.Applet;
import java.applet.AppletStub;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.HeadlessException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.LinkedHashMap;
import java.util.Map;
import com.kokakiwi.mclauncher.api.LauncherAPI;
public class LauncherApplet extends Applet implements AppletStub
{
private static final long serialVersionUID = -2866153864231108251L;
private final LauncherAPI api;
private final Map<String, String> params = new LinkedHashMap<String, String>();
private Applet applet;
private boolean active = false;
private int context = 0;
public LauncherApplet(LauncherAPI api) throws HeadlessException
{
this.api = api;
params.put("stand-alone", "true");
params.put("username", api.getLoginer().getLastLogin().getUsername());
params.put("sessionid",
String.valueOf(api.getLoginer().getLastLogin().getSessionId()));
setBackground(Color.black);
}
public void appletResize(int width, int height)
{
}
public void replace(Applet applet)
{
this.applet = applet;
applet.setStub(this);
applet.setSize(getWidth(), getHeight());
setLayout(new BorderLayout());
add(applet, "Center");
applet.init();
active = true;
applet.start();
validate();
}
public boolean isActive()
{
if (context == 0)
{
context = -1;
try
{
if (getAppletContext() != null)
{
context = 1;
}
}
catch (final Exception localException)
{
}
}
if (context == -1)
{
return active;
}
return super.isActive();
}
public String getParameter(String name)
{
String custom = api.getConfig().getString(name);
if (custom == null)
{
custom = params.get(name);
if (custom == null)
{
try
{
custom = super.getParameter(name);
}
catch (final Exception e)
{
params.put(name, null);
}
}
}
System.out.println("Minecraft want param '" + name + "' = '" + custom
+ "'");
return custom;
}
public URL getDocumentBase()
{
try
{
return new URL(api.getConfig()
.getString("launcher.documentBaseURL"));
}
catch (final MalformedURLException e)
{
e.printStackTrace();
}
return null;
}
public void stop()
{
if (applet != null)
{
active = false;
applet.stop();
return;
}
}
public void destroy()
{
if (applet != null)
{
applet.destroy();
return;
}
}
public Map<String, String> getParams()
{
return params;
}
public Applet getApplet()
{
return applet;
}
public int getContext()
{
return context;
}
}