@Override
    public void run() {
        while (Server.isRunning) {
            try {
                readConnection();
            } catch (SocketException e) {
                if (e.getMessage().equals("socket closed")) {
                    MaintenanceServer.println("Socket forcefully closed.");
                } else {
                    MaintenanceServer.printException(e);
                }
            } catch (Exception e) {
                MaintenanceServer.printException(e);
            }
        }
        
        try {
            if (!serverSocket.isClosed()) {
                serverSocket.close();
            }
        } catch (Exception e) {
            MaintenanceServer.printException(e);
        }
        
        MaintenanceServer.println("Server has been shutdown succesfully!");
    }