001 package net.minecraft.client; 002 003 import cpw.mods.fml.relauncher.FMLRelauncher; 004 import cpw.mods.fml.relauncher.Side; 005 import cpw.mods.fml.relauncher.SideOnly; 006 import java.applet.Applet; 007 import java.awt.BorderLayout; 008 import java.awt.Canvas; 009 import net.minecraft.util.Session; 010 011 @SideOnly(Side.CLIENT) 012 public class MinecraftApplet extends Applet 013 { 014 /** Reference to the applet canvas. */ 015 private Canvas mcCanvas; 016 017 /** Reference to the Minecraft object. */ 018 private Minecraft mc; 019 020 /** Reference to the Minecraft main thread. */ 021 private Thread mcThread = null; 022 023 public void init() 024 { 025 FMLRelauncher.appletEntry(this); 026 } 027 028 public void fmlInitReentry() 029 { 030 this.mcCanvas = new CanvasMinecraftApplet(this); 031 boolean var1 = "true".equalsIgnoreCase(this.getParameter("fullscreen")); 032 this.mc = new MinecraftAppletImpl(this, this.mcCanvas, this, this.getWidth(), this.getHeight(), var1); 033 this.mc.minecraftUri = this.getDocumentBase().getHost(); 034 035 if (this.getDocumentBase().getPort() > 0) 036 { 037 this.mc.minecraftUri = this.mc.minecraftUri + ":" + this.getDocumentBase().getPort(); 038 } 039 040 if (this.getParameter("username") != null && this.getParameter("sessionid") != null) 041 { 042 this.mc.session = new Session(this.getParameter("username"), this.getParameter("sessionid")); 043 System.out.println("Setting user: " + this.mc.session.username + ", " + this.mc.session.sessionId); 044 } 045 else 046 { 047 this.mc.session = new Session("Player", ""); 048 } 049 050 this.mc.setDemo("true".equals(this.getParameter("demo"))); 051 052 if (this.getParameter("server") != null && this.getParameter("port") != null) 053 { 054 this.mc.setServer(this.getParameter("server"), Integer.parseInt(this.getParameter("port"))); 055 } 056 057 this.mc.hideQuitButton = !"true".equals(this.getParameter("stand-alone")); 058 this.setLayout(new BorderLayout()); 059 this.add(this.mcCanvas, "Center"); 060 this.mcCanvas.setFocusable(true); 061 this.mcCanvas.setFocusTraversalKeysEnabled(false); 062 this.validate(); 063 } 064 065 public void startMainThread() 066 { 067 if (this.mcThread == null) 068 { 069 this.mcThread = new Thread(this.mc, "Minecraft main thread"); 070 this.mcThread.start(); 071 } 072 } 073 074 public void start() 075 { 076 FMLRelauncher.appletStart(this); 077 } 078 079 public void fmlStartReentry() 080 { 081 if (this.mc != null) 082 { 083 this.mc.isGamePaused = false; 084 } 085 } 086 087 public void stop() 088 { 089 if (this.mc != null) 090 { 091 this.mc.isGamePaused = true; 092 } 093 } 094 095 public void destroy() 096 { 097 this.shutdown(); 098 } 099 100 /** 101 * Called when the applet window is closed. 102 */ 103 public void shutdown() 104 { 105 if (this.mcThread != null) 106 { 107 this.mc.shutdown(); 108 109 try 110 { 111 this.mcThread.join(10000L); 112 } 113 catch (InterruptedException var4) 114 { 115 try 116 { 117 this.mc.shutdownMinecraftApplet(); 118 } 119 catch (Exception var3) 120 { 121 var3.printStackTrace(); 122 } 123 } 124 125 this.mcThread = null; 126 } 127 } 128 }