В упор не понимаю, почему не принимает 2 пункта, почему Метод clientMainLoop() должен бросать исключение IOException, если тип принятого сообщения не MessageType.TEXT, MessageType.USER_REMOVED или не MessageType.USER_ADDED. У меня, вроде же бросает.