Java Code:
import java.applet.Applet;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Component;import java.awt.Cursor;import java.awt.Desktop;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.Desktop.Action;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.image.BufferedImage;import java.io.IOException;import java.net.URI;import java.net.URISyntaxException;import java.net.URL;import java.net.URLDecoder;import java.util.Properties;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;import javax.imageio.ImageIO;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JMenuBar;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPopupMenu;import javax.swing.UIManager;public class Loader
extends Applet implements ActionListener { public static Properties client_parameters
= new Properties(); public JFrame frame
; public JPanel panel
= new JPanel(); public static boolean usingRS
= false; public static boolean useIsaac
= false; public static String IP
= "host.playworldpw.com"; public static boolean LOBBY_ENABLED
= false; public static boolean DISABLE_XTEA_CRASH
= true; public static boolean DISABLE_USELESS_PACKETS
= true; public static boolean DISABLE_RSA
= false; public static final int REVISION
= 718; public static String SERVERIP
= "server.playworldpw.com"; public static String LOBBYIP
= "server.playworldpw.com"; public static final int LOBBYPORT
= 5555; public static int client
= 1; public static boolean logged
= true; public static String name
= ""; public static String title
= ", "; private JMenuBar menu
; public static String LOBBY_IP
= "host.playworldpw.com"; public static final int LOBBY_PORT
= 43595; public static int SUB_REVISION
= 4; public static Loader instance
; public static int[] outSizes
= new int[256]; public static boolean localHost
; final JButton forums
= new JButton(new ImageIcon(this.
getClass().
getResource("resources/forum.png"))); final JButton highscores
= new JButton(new ImageIcon(this.
getClass().
getResource("resources/hiscore.png"))); final JButton vote
= new JButton(new ImageIcon(this.
getClass().
getResource("resources/vote.png"))); final JButton store
= new JButton(new ImageIcon(this.
getClass().
getResource("resources/store.png"))); final JButton printscreen
= new JButton(new ImageIcon(this.
getClass().
getResource("resources/screenshot.png"))); final JButton fps
= new JButton(new ImageIcon(this.
getClass().
getResource("resources/framespersecond.png"))); final JButton info
= new JButton(new ImageIcon(this.
getClass().
getResource("resources/information.png"))); final JButton settings
= new JButton(new ImageIcon(this.
getClass().
getResource("resources/settings.png"))); public Loader
() { } public static void main
(String[] var0
) throws Exception { Loader var1
= new Loader
(); var1.
checkClient(); var1.
doFrame(); } public void init
() { instance
= this; this.
doApplet(); } void doApplet
() { this.
setParams(); this.
startClient(); } private void checkClient
() { Object[] var1
= new Object[]{"PlayWorld",
"The Medows",
"Amity",
"w141"}; int var2
= JOptionPane.
showOptionDialog(this.
frame,
"Which world would you like to play? ",
"World Selector",
1,
3,
(Icon)null, var1, var1
[0]); client
+= var2
; } private void openForums
() { Object[] var1
= new Object[]{"PlayWorld",
"The Medows",
"Amity",
"w141"}; int var2
= JOptionPane.
showOptionDialog(this.
frame,
"Which server Forums would you like to open? ",
"Forum selector",
1,
3,
(Icon)null, var1, var1
[0]); try { if(var2
== 1) { openWebpage
(new URL("http://playworldpw.com/medows/forum/forums")); } else if(var2
== 2) { openWebpage
(new URL("http://playworldpw.com/amity/forum/forums")); } else if(var2
== 3) { openWebpage
(new URL("http://playworldpw.com/w141/forum/forums")); } else { openWebpage
(new URL("http://playworldpw.com/forum/forums")); } } catch (Exception var4
) { var4.
printStackTrace(); } } public void doFrame
() { this.
setParams(); this.
openFrame(); this.
startClient(); } void setParams
() { client_parameters.
put("separate_jvm",
"true"); client_parameters.
put("boxbgcolor",
"black"); client_parameters.
put("image",
"http://www.runescape.com/img/game/splash2.gif"); client_parameters.
put("centerimage",
"true"); client_parameters.
put("boxborder",
"false"); client_parameters.
put("java_arguments",
"-Xmx256m -Xss2m -Dsun.java2d.noddraw=true -XX:CompileThreshold=1500 -Xincgc -XX:+UseConcMarkSweepGC -XX:+UseParNewGC"); client_parameters.
put("27",
"0"); client_parameters.
put("1",
"0"); client_parameters.
put("16",
"false"); client_parameters.
put("17",
"false"); client_parameters.
put("21",
this.
getWorld()); client_parameters.
put("30",
"false"); client_parameters.
put("20", LOBBY_IP
); client_parameters.
put("29",
""); client_parameters.
put("11",
"true"); client_parameters.
put("25",
"1378752098"); client_parameters.
put("28",
"0"); client_parameters.
put("8",
".runescape.com"); client_parameters.
put("23",
"false"); client_parameters.
put("32",
"0"); client_parameters.
put("15",
"wwGlrZHF5gKN6D3mDdihco3oPeYN2KFybL9hUUFqOvk"); client_parameters.
put("0",
"IjGJjn4L3q5lRpOR9ClzZQ"); client_parameters.
put("2",
""); client_parameters.
put("4",
this.
getWorld()); client_parameters.
put("14",
""); client_parameters.
put("5",
"8194"); client_parameters.
put("-1",
"QlwePyRU5GcnAn1lr035ag"); client_parameters.
put("6",
"0"); client_parameters.
put("24",
"true,false,0,43,200,18,0,21,354,-15,Verdana,11,0xF4ECE9,candy_bar_middle.gif,candy_bar_back.gif,candy_bar_outline_left.gif,candy_bar_outline_right.gif,candy_bar_outline_top.gif,candy_bar_outline_bottom.gif,loadbar_body_left.gif,loadbar_body_right.gif,loadbar_body_fill.gif,6"); client_parameters.
put("3",
"hAJWGrsaETglRjuwxgMvwnlA/d5W6cEgoYWx"); client_parameters.
put("12",
"false"); client_parameters.
put("13",
"0"); client_parameters.
put("26",
"0"); client_parameters.
put("9",
"77"); client_parameters.
put("22",
"false"); client_parameters.
put("18",
"false"); client_parameters.
put("33",
""); client_parameters.
put("haveie6",
"false"); } public String getWorldName
() { return client
== 1?"PlayWorld":(client
== 2?"The Medows":(client
== 3?"Amity":(client
== 4?"w141":"PlayWorld"))); } public String getWorld
() { return client
== 1?"1":(client
== 2?"2":(client
== 3?"3":(client
== 4?"141":"1"))); } public static String getWorld2
() { return client
== 1?"1":(client
== 2?"2":(client
== 3?"3":(client
== 4?"141":"1"))); } void StartRunnable
() { Runnable var1
= new Runnable() { public void run
() { Loader.
this.
frame.
setTitle(Loader.
this.
getWorldName()); Loader.
name = Loader.
this.
getWorldName(); try { BufferedImage var1
= ImageIO.
read(this.
getClass().
getResource("/clientlogo" + Loader.
this.
getWorld() + ".png")); Loader.
this.
frame.
setIconImage(var1
); } catch (Exception var2
) { var2.
printStackTrace(); } } }; ScheduledExecutorService var2
= Executors.
newScheduledThreadPool(1); var2.
scheduleAtFixedRate(var1, 0L, 1L, TimeUnit.
SECONDS); } void openFrame
() { this.
frame = new JFrame(this.
getWorldName()); this.
frame.
setLayout(new BorderLayout()); this.
panel.
setLayout(new BorderLayout()); this.
panel.
add(this); this.
panel.
setPreferredSize(new Dimension(765,
503)); this.
frame.
getContentPane().
add(this.
panel,
"Center"); this.
frame.
setDefaultCloseOperation(3); Toolkit var1
= this.
frame.
getToolkit(); try { BufferedImage var2
= ImageIO.
read(this.
getClass().
getResource("/clientlogo" + this.
getWorld() + ".png")); this.
frame.
setIconImage(var2
); } catch (Exception var4
) { var4.
printStackTrace(); } title
= name
+ title
; try { UIManager.
setLookAndFeel("org.jvnet.substance.skin.SubstanceWindowsLookAndFeel"); JFrame.
setDefaultLookAndFeelDecorated(true); JDialog.
setDefaultLookAndFeelDecorated(true); } catch (Exception var3
) { ; } JPopupMenu.
setDefaultLightWeightPopupEnabled(false); this.
menu = new JMenuBar(); this.
menu.
setBackground(Color.
decode("#f0efef")); this.
forums.
addMouseListener(new MouseAdapter() { public void mouseEntered
(MouseEvent var1
) { Loader.
this.
forums.
setCursor(new Cursor(12)); Loader.
this.
forums.
setBorderPainted(true); Loader.
this.
forums.
setToolTipText("Visit our Forums!"); } public void mouseExited
(MouseEvent var1
) { Loader.
this.
forums.
setCursor(new Cursor(0)); Loader.
this.
forums.
setBorderPainted(false); } }); this.
forums.
setBorderPainted(false); this.
forums.
setContentAreaFilled(false); this.
highscores.
createToolTip(); this.
highscores.
addMouseListener(new MouseAdapter() { public void mouseEntered
(MouseEvent var1
) { Loader.
this.
highscores.
setCursor(new Cursor(12)); Loader.
this.
highscores.
setBorderPainted(true); Loader.
this.
highscores.
setToolTipText("View the rank table for all players!"); } public void mouseExited
(MouseEvent var1
) { Loader.
this.
highscores.
setCursor(new Cursor(0)); Loader.
this.
highscores.
setBorderPainted(false); Loader.
this.
highscores.
setToolTipText((String)null); } }); this.
highscores.
setBorderPainted(false); this.
highscores.
setContentAreaFilled(false); this.
vote.
createToolTip(); this.
vote.
addMouseListener(new MouseAdapter() { public void mouseEntered
(MouseEvent var1
) { Loader.
this.
vote.
setCursor(new Cursor(12)); Loader.
this.
vote.
setBorderPainted(true); Loader.
this.
vote.
setToolTipText("Vote to help the server and get awesome rewards!"); } public void mouseExited
(MouseEvent var1
) { Loader.
this.
vote.
setCursor(new Cursor(0)); Loader.
this.
vote.
setBorderPainted(false); Loader.
this.
vote.
setToolTipText((String)null); } }); this.
vote.
setBorderPainted(false); this.
vote.
setContentAreaFilled(false); this.
store.
createToolTip(); this.
store.
addMouseListener(new MouseAdapter() { public void mouseEntered
(MouseEvent var1
) { Loader.
this.
store.
setCursor(new Cursor(12)); Loader.
this.
store.
setBorderPainted(true); Loader.
this.
store.
setToolTipText("Visit the donation shop."); } public void mouseExited
(MouseEvent var1
) { Loader.
this.
store.
setCursor(new Cursor(0)); Loader.
this.
store.
setBorderPainted(false); Loader.
this.
store.
setToolTipText((String)null); } }); this.
store.
setBorderPainted(false); this.
store.
setContentAreaFilled(false); this.
fps.
addMouseListener(new MouseAdapter() { public void mouseEntered
(MouseEvent var1
) { Loader.
this.
fps.
setCursor(new Cursor(12)); Loader.
this.
fps.
setBorderPainted(true); Loader.
this.
fps.
setToolTipText("Toggle the FPS display."); } public void mouseExited
(MouseEvent var1
) { Loader.
this.
fps.
setCursor(new Cursor(0)); Loader.
this.
fps.
setBorderPainted(false); } }); this.
fps.
setBorderPainted(false); this.
fps.
setContentAreaFilled(false); this.
printscreen.
createToolTip(); this.
printscreen.
addMouseListener(new MouseAdapter() { public void mouseEntered
(MouseEvent var1
) { Loader.
this.
printscreen.
setCursor(new Cursor(12)); Loader.
this.
printscreen.
setBorderPainted(true); Loader.
this.
printscreen.
setToolTipText("Open a new Client."); } public void mouseExited
(MouseEvent var1
) { Loader.
this.
printscreen.
setCursor(new Cursor(0)); Loader.
this.
printscreen.
setBorderPainted(false); Loader.
this.
printscreen.
setToolTipText((String)null); } }); this.
printscreen.
setBorderPainted(false); this.
printscreen.
setContentAreaFilled(false); this.
info.
createToolTip(); this.
info.
addMouseListener(new MouseAdapter() { public void mouseEntered
(MouseEvent var1
) { Loader.
this.
info.
setCursor(new Cursor(12)); Loader.
this.
info.
setBorderPainted(true); Loader.
this.
info.
setToolTipText("Contact the Support Team!"); } public void mouseExited
(MouseEvent var1
) { Loader.
this.
info.
setCursor(new Cursor(0)); Loader.
this.
info.
setBorderPainted(false); Loader.
this.
info.
setToolTipText((String)null); } }); this.
info.
setBorderPainted(false); this.
info.
setContentAreaFilled(false); this.
settings.
addMouseListener(new MouseAdapter() { public void mouseEntered
(MouseEvent var1
) { Loader.
this.
settings.
setCursor(new Cursor(12)); Loader.
this.
settings.
setBorderPainted(true); Loader.
this.
settings.
setToolTipText("Change Worlds."); } public void mouseExited
(MouseEvent var1
) { Loader.
this.
settings.
setCursor(new Cursor(0)); Loader.
this.
settings.
setBorderPainted(false); Loader.
this.
settings.
setToolTipText((String)null); } }); this.
settings.
setBorderPainted(false); this.
settings.
setContentAreaFilled(false); this.
printscreen.
addMouseListener(new MouseAdapter() { public void mouseClicked
(MouseEvent var1
) { if(var1.
getButton() == 3 || var1.
isPopupTrigger()) { try { String var2
= System.
getProperty("os.name"); if(var2.
startsWith("Mac") || var2.
startsWith("Linux")) { JOptionPane.
showMessageDialog((Component)null,
"Could not open screenshots folder on " + System.
getProperty("os.name") + ".",
"Sadface",
0); return; } Runtime.
getRuntime().
exec("rundll32 url.dll,FileProtocolHandler " + System.
getenv("USERPROFILE") + "/Rain/Screenshots"); } catch (Exception var3
) { var3.
printStackTrace(); } } } }); this.
frame.
setJMenuBar(this.
menu); this.
menu.
add(this.
printscreen); this.
menu.
add(this.
forums); this.
menu.
add(this.
highscores); this.
menu.
add(this.
vote); this.
menu.
add(this.
store); this.
menu.
add(this.
fps); this.
menu.
add(this.
info); this.
menu.
add(this.
settings); this.
printscreen.
addActionListener(this); this.
printscreen.
setActionCommand("1"); this.
forums.
addActionListener(this); this.
forums.
setActionCommand("2"); this.
highscores.
addActionListener(this); this.
highscores.
setActionCommand("3"); this.
vote.
addActionListener(this); this.
vote.
setActionCommand("4"); this.
store.
addActionListener(this); this.
store.
setActionCommand("5"); this.
fps.
addActionListener(this); this.
fps.
setActionCommand("6"); this.
info.
addActionListener(this); this.
info.
setActionCommand("7"); this.
settings.
addActionListener(this); this.
settings.
setActionCommand("8"); this.
StartRunnable(); this.
frame.
pack(); this.
frame.
setVisible(true); } void startClient
() { try { client var1
= new client
(); var1.
supplyApplet(this); var1.
init(); var1.
start(); } catch (Exception var2
) { var2.
printStackTrace(); } } public String getParameter
(String var1
) { return (String)client_parameters.
get(var1
); } public URL getDocumentBase
() { return this.
getCodeBase(); } public URL getCodeBase
() { try { URL var1
= new URL("http://" + IP
); return var1
; } catch (Exception var3
) { var3.
printStackTrace(); return null; } } void printOut
() throws IOException { String var1
= ""; int[] var2
= outSizes
; int var3
= var2.
length; for(int var4
= 0; var4
< var3
; ++var4
) { int var5
= var2
[var4
]; var1
= var1
+ var5
+ ", "; } System.
out.
println("in = new int[] {" + var1
+ "};"); } public static void openWebpage
(URI var0
) { Desktop var1
= Desktop.
isDesktopSupported()?Desktop.
getDesktop():null; if(var1
!= null && var1.
isSupported(Action.
BROWSE)) { try { var1.
browse(var0
); } catch (Exception var3
) { var3.
printStackTrace(); } } } public static void openWebpage
(URL var0
) { try { openWebpage
(var0.
toURI()); } catch (URISyntaxException var2
) { var2.
printStackTrace(); } } public void actionPerformed
(ActionEvent var1
) { int var2
= Integer.
parseInt(var1.
getActionCommand()); switch(var2
) { case 1: try { String var3
= Loader.
class.
getProtectionDomain().
getCodeSource().
getLocation().
getPath(); String var4
= URLDecoder.
decode(var3,
"UTF-8"); var4
= var4.
replaceAll("\\/",
"\\"); var4
= var4.
substring(1); System.
out.
println(var4
); ProcessBuilder var5
= new ProcessBuilder
(new String[]{"java",
"-jar", var4
}); Process var6
= var5.
start(); } catch (Exception var12
) { var12.
printStackTrace(); } break; case 2: try { this.
openForums(); } catch (Exception var11
) { var11.
printStackTrace(); } break; case 3: try { openWebpage
(new URL("http://playworldpw.com/highscores")); } catch (Exception var10
) { var10.
printStackTrace(); } break; case 4: try { openWebpage
(new URL("http://playworldpw.com/vote")); } catch (Exception var9
) { var9.
printStackTrace(); } break; case 5: try { if(client
== 2) { openWebpage
(new URL("http://playworldpw.com/medows/shop")); } else if(client
== 3) { openWebpage
(new URL("http://playworldpw.com/amity/forum/account/upgrades")); } else if(client
== 4) { openWebpage
(new URL("http://playworldpw.com/w141/forum/account/upgrades")); } else { openWebpage
(new URL("http://playworldpw.com/forum/account/upgrades")); } } catch (Exception var8
) { var8.
printStackTrace(); } break; case 6: Configuration.
clientFPS = !Configuration.
clientFPS; break; case 7: try { if(client
== 2) { openWebpage
(new URL("http://playworldpw.com/medows/forum/misc/contact")); } else if(client
== 3) { openWebpage
(new URL("http://playworldpw.com/amity/forum/misc/contact")); } else if(client
== 4) { openWebpage
(new URL("http://playworldpw.com/w141/forum/misc/contact")); } else { openWebpage
(new URL("http://playworldpw.com/forum/misc/contact")); } } catch (Exception var7
) { var7.
printStackTrace(); } break; case 8: if(!logged
) { JOptionPane.
showMessageDialog((Component)null,
"You must logout to switch Worlds.",
"Error!",
1); return; } if(client
== 1) { client
= 2; } else if(client
== 2) { client
= 3; } else if(client
== 3) { client
= 4; } else if(client
== 4) { client
= 1; } } }}