public Updater() {
		try {
			File f = new File("log.txt");
			this.log(f.getAbsolutePath(),false);
			this.consoleWriter = new PrintWriter(new FileOutputStream(f));
		} catch(Exception e) {
			this.log_file = false;
			this.log(e.getMessage(),true);
		}
		
		this.loadSettings();
		this.heartbeat_thread = new Heartbeat(this);
		this.world = new World(this);
		this.world.loadWorld(new File(this.level_name+".mclevel"));
		this.server = new Server(this);
		if(!this.nogui) {
			this.window = new Gui(this);
		}
		
		String[] file_names = new File("plugins/").list();
		for(int k=0;k!=file_names.length;k++) {
			String name = file_names[k];
			if(name.endsWith(".jar")) {
				try {
					ClassicPlugin c = (ClassicPlugin)loadPluginFromFile(new File("plugins/"+name));
					c.init(this);
					c.setID(k);
					this.log("Enabling plugin "+name);
					c.onEnable();
					this.plugins.add(c);
				} catch(Exception e) {
					this.fatalError("Could not load plugin "+name);
				}
			}
		}
		
		Thread t = new Thread(this);
		t.start();
	}