private CharacterItemManager characterItemManager;
@Transactional
public Quest start(){
try {
Quest quest = Quest.findRandomByInactive();
List<Character> characters = Character.findRandomByOnline(Quest.CHARACTERS_PER_QUEST);
quest.setCharacters(new HashSet<Character>(characters));
for(Character character : quest.getCharacters()){
character.setQuest(quest);
}
quest.setExpRemaining(quest.getExpTotal());
quest.setStep(1);
stepReached(quest);
bulletinManager.publish(stepReached(quest));
quest.merge();
return quest;
} catch (NotEnoughPlayersError e) {
return null;
} catch (EmptyResultDataAccessException e){