@Override public boolean parse(GameMode gameMode, String value, URI source) { final StringTokenizer aTok = new StringTokenizer(value, "\t"); if (!aTok.hasMoreTokens()) { Logging.errorPrint("Empty tag in miscinfo.ACTYPE"); return false; } final String acType = aTok.nextToken(); while (aTok.hasMoreTokens()) { final String aString = aTok.nextToken(); if (aString.startsWith("ADD:")) { Collection<ACControl> controls = parseACControl(aString.substring(4)); if (controls == null) { return false; } gameMode.addACAdds(acType, controls); } else if (aString.startsWith("REMOVE:")) { Collection<ACControl> controls = parseACControl(aString.substring(7)); if (controls == null) { return false; } gameMode.addACRemoves(acType, controls); } else { Logging.errorPrint("Incorrect tag in miscinfo.ACTYPE: " + aString); return false; } } return true; }