@Override @SuppressWarnings("unchecked") public Message<?> doHandleMessage( JabberMessage message, ConversationScope<String, Object> conversationScope) throws MessagingException { JabberMessageLogger.log(log, message, "YES"); // foos in progress if (MessageUtils.isFoosballInProgress(conversationScope)) { return new GenericMessage<Object>(Messages.FOOSBALL_IN_PROGRESS); } // foos hunting not start if (!MessageUtils.isHuntingMessagesSent(conversationScope)) { return new GenericMessage<Object>(Messages.NO_FOOSBALL_HUNTING); } conversationScope.refresh(); String playerJabber = MessageUtils.parseJabber(message.from()); Set<JoinedPlayer> players = MessageUtils.getFoosballPlayers(conversationScope); if (!players.contains(new JoinedPlayer(playerJabber))) { if (!foosball(playerJabber, players)) { // not complete foos return new GenericMessage<>( Messages.format(Messages.FOOSBALL, players.size(), foosballSize)); } else { letsGo(players); conversationScope.put(Constants.FOOSBALL_IN_PROGRESS, true); return null; // already send message about complete foot } } else { return new GenericMessage<>( Messages.format(Messages.FOOSBALL_ALREADY_IN, players.size(), foosballSize)); } }