package uc.protocols.hub; import helpers.GH; import java.io.IOException; import java.util.regex.Pattern; import logger.LoggerFactory; import org.apache.log4j.Logger; import uc.crypto.HashValue; import uc.protocols.DCProtocol; import uc.user.User; public class OpList extends AbstractNMDCHubProtocolCommand { private static Logger logger = LoggerFactory.make(); /** * parses a oplist.. * $OpList nick $$ nick2 $$ nick3 | ..usw */ @Override public void handle(Hub hub,String command) throws IOException { String[] b = command.split(" ", 2)[1].split(Pattern.quote("$$"));//cut away prefix.. and separate to nicks if (b.length > Hub.MAX_USERS) { logger.warn("oplist too long: "+b.length); return; } logger.debug("Oplist: "+b.length); for (String nick : b) { nick = nick.trim(); if (!GH.isEmpty(nick)) { HashValue userid = DCProtocol.nickToUserID(nick, hub); User usr = hub.getUser(userid); if (usr == null) { usr = hub.getDcc().getPopulation().get(nick, userid); usr.setProperty(INFField.CT, Byte.toString(User.CT_OPERATOR)); hub.insertUser(usr); } else { usr.setOp(true); } } } } }