@Override
	public void start() {
		
		Logger l = plugin.getLogger();
		try {
			
			if (socket == null) {
				socket = new ServerSocket(port);	
				running = true;
			}
			
			if (running) {
				try {
					l.log(Level.INFO, "Waiting for connection..");
					Socket client = socket.accept();
					ClientHandler handler = new ClientHandler(client, plugin);
					l.log(Level.INFO, "New client submitted: " + client.getInetAddress());
					service.submit(handler);
				} catch (IOException e) {
					e.printStackTrace();
					l.log(Level.SEVERE, e.getMessage());
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}