@Override public boolean fire(final Player player,final Sentence sentence,final Entity npc){
  final String temp=player.getQuest(questSlot,questIndex);
  if (temp == null) {
    return false;
  }
  final List<String> tokens=Arrays.asList(temp.split(","));
  if ((tokens.size() % 5) != 0) {
    logger.error("Wrong record in player's " + player.getName() + " quest slot ("+ questSlot+ ") : ["+ player.getQuest(questSlot)+ "]");
    return false;
  }
  for (int i=0; i < tokens.size() / 5; i++) {
    final String creatureName=tokens.get(i * 5);
    int toKillSolo;
    int toKillShared;
    int killedSolo;
    int killedShared;
    try {
      toKillSolo=Integer.parseInt(tokens.get(i * 5 + 1));
      toKillShared=Integer.parseInt(tokens.get(i * 5 + 2));
      killedSolo=Integer.parseInt(tokens.get(i * 5 + 3));
      killedShared=Integer.parseInt(tokens.get(i * 5 + 4));
    }
 catch (    NumberFormatException npe) {
      logger.error("NumberFormatException while parsing numbers in quest slot " + questSlot + " of player "+ player.getName()+ " , creature "+ i * 5);
      return false;
    }
    final int diffSolo=player.getSoloKill(creatureName) - killedSolo - toKillSolo;
    final int diffShared=player.getSharedKill(creatureName) - killedShared - toKillShared;
    if (diffSolo < 0) {
      return false;
    }
    if ((diffSolo + diffShared) < 0) {
      return false;
    }
  }
  return true;
}

@ Override public boolean fire ( final Player player , final Sentence sentence , final Entity npc ) { final String temp = player . getQuest ( questSlot , questIndex ) ; if ( temp == null ) { return false ; } final List < String > tokens = Arrays . asList ( temp . split ( "," ) ) ; if ( ( tokens . size ( ) % 5 ) != 0 ) { logger . error ( "Wrong record in player's " + player . getName ( ) + " quest slot (" + questSlot + ") : [" + player . getQuest ( questSlot ) + "]" ) ; return false ; } for ( int i = 0 ; i < tokens . size ( ) / 5 ; i ++ ) { final String creatureName = tokens . get ( i * 5 ) ; int toKillSolo ; int toKillShared ; int killedSolo ; int killedShared ; try { toKillSolo = Integer . parseInt ( tokens . get ( i * 5 + 1 ) ) ; toKillShared = Integer . parseInt ( tokens . get ( i * 5 + 2 ) ) ; killedSolo = Integer . parseInt ( tokens . get ( i * 5 + 3 ) ) ; killedShared = Integer . parseInt ( tokens . get ( i * 5 + 4 ) ) ; } catch ( NumberFormatException npe ) { logger . error ( "NumberFormatException while parsing numbers in quest slot " + questSlot + " of player " + player . getName ( ) + " , creature " + i * 5 ) ; return false ; } final int diffSolo = player . getSoloKill ( creatureName ) - killedSolo - toKillSolo ; final int diffShared = player . getSharedKill ( creatureName ) - killedShared - toKillShared ; if ( diffSolo < 0 ) { return false ; } if ( ( diffSolo + diffShared ) < 0 ) { return false ; } } return true ; }
return true if player have killed proper creature numbers .
