private void init() {
		try {
			ip = getLocalAddress().toString().replace("/", "");
		} catch (SocketException e) {
			System.err.print(" LOBBY] [ERROR] " + e);
		}

		status = new JLabel("Enter a Username");
		status.setFont(new Font("Tahoma", Font.PLAIN, 20));
		status.setHorizontalAlignment(SwingConstants.CENTER);
		status.setBounds(0, 0, width, 30);
		add(status);

		status2 = new JLabel("");
		status2.setFont(new Font("Tahoma", Font.PLAIN, 15));
		status2.setHorizontalAlignment(SwingConstants.CENTER);
		status2.setBounds(0, 30, width, 30);
		add(status2);

		back = new JButton("Back");
		back.setBounds(10, 10, 75, 25);
		back.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				serverReset();
				if (MODE == CREATING) Window.restartApp(false);
				else Window.goToIntro();
			}
		});
		add(back);

		serverJoin = new JButton("Join Server");
		serverJoin.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				MODE = JOINING;
				update();
			}
		});

		usernameField = new JTextField(System.getProperty("user.name"));
		usernameField.setBounds(width / 4, 75, width / 2, 20);
		add(usernameField);

		nameChange = new JButton("Change Username");
		nameChange.setBounds(width / 4, 100, width / 4, 24);
		nameChange.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				MODE = USERNAME;
				update();
				nameOkay.setEnabled(true);
				nameChange.setEnabled(false);
				status.setText("Enter a Username");
				repaint();
			}
		});
		add(nameChange);

		nameOkay = new JButton("Set Username");
		nameOkay.setBounds(width / 2, 100, width / 4, 24);
		nameOkay.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (usernameField.getText().length() > 0) MODE = LOOKING;
				else MODE = USERNAME;
				update();
				username = usernameField.getText();
				status.setText(username);
				repaint();
			}
		});
		add(nameOkay);

		serverJoin.setBounds(width / 2, height - 100, width / 4, 23);
		add(serverJoin);

		serverChange = new JButton("Change IP");
		serverChange.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String newIP = JOptionPane.showInputDialog("Enter a new IP", ip);
				if (newIP != null) {
					status2.setText(ip = newIP);
					update();
				}
			}
		});
		serverChange.setBounds(width / 4, height - 100, width / 4, 23);
		serverChange.setVisible(false);
		add(serverChange);

		serverCreate = new JButton("Create Server");
		serverCreate.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (MODE == CREATING) {
					System.out.println(" LOBBY] Restarting app");
					Bootstrap.multi = true;
					Window.restartApp();
				} else {
					MODE = CREATING;
					update();
				}
			}
		});
		serverCreate.setBounds(width / 4, height - 100, width / 4, 23);
		add(serverCreate);

		serverScan = new JButton("Scan for Server on local network");
		serverScan.setBounds(width / 4, height - 130, width / 2, 23);
		serverScan.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				scanForIPs();
			}
		});
		add(serverScan);

		nameChange.setEnabled(false);
		serverChange.setEnabled(false);
		serverJoin.setEnabled(false);
		serverCreate.setEnabled(false);
		serverScan.setEnabled(false);
		usernameField.requestFocus();
	}