public void run() {
ServerSocket server;
try {
server = new ServerSocket(PORT);
} catch (BindException ex) {
this.logger.log(Level.SEVERE, "Failed to start the server on port" + PORT, ex);
return;
} catch (IOException ex) {
this.logger.log(Level.SEVERE, "Failed to start the server on port" + PORT, ex);
return;
}
while (isAlive()) {
Socket skt;
try {
skt = server.accept();
} catch (Exception ex) {
this.logger.info("Error while waiting for connection");
this.logger.info("Ignore this if you were disabling the plugin/server");
return;
}
logger.info("Socket accepted.");
BufferedReader reader;
try {
skt.setKeepAlive(true);
reader = new BufferedReader(new InputStreamReader(skt.getInputStream()));
} catch (Exception ex) {
this.logger.log(Level.SEVERE, "Encountered an error while opening socket data connections.", ex);
return;
}
CommandHandler handler = new CommandHandler(bukkitServer, logger);
try {
String line;
while ((line = reader.readLine()) != null) {
handler.parse(line);
}
} catch (Exception ex) {
this.logger.log(Level.SEVERE, "Encountered an error while reading from socket.", ex);
}
}
}