@Override
   public void start() {
      if(this.applet != null) {
         this.applet.start();
      } else if(!this.minecraftStarted) {
         Thread t = new Thread() {
            @Override
            public void run() {
               Launcher.this.minecraft.run();

               try {
                  Launcher.this.minecraft.patchDir(jarfile);
                  Launcher.this.replace(Launcher.this.minecraft.loadApplet());
               } catch (ClassNotFoundException var2) {
                  var2.printStackTrace();
               } catch (InstantiationException var3) {
                  var3.printStackTrace();
               } catch (IllegalAccessException var4) {
                  var4.printStackTrace();
               } catch (Exception var5) {
                  var5.printStackTrace();
               }

            }
         };
         t.setDaemon(true);
         t.start();
         t = new Thread() {
            @Override
            public void run() {
               while(Launcher.this.applet == null) {
                  Launcher.this.repaint();

                  try {
                     Thread.sleep(10L);
                  } catch (InterruptedException var2) {
                     var2.printStackTrace();
                  }
               }

            }
         };
         t.setDaemon(true);
         t.start();
         this.minecraftStarted = true;
      }
   }