+ if (IsValidChannelName(parameters[0]))
+ {
+ // parameters[0] = #channel
+ // parameters[1] = 1h3m2s
+ // parameters[2] = Tortoise abuser
+ long length = Srv->CalcDuration(parameters[1]);
+ std::string reason = (pcnt > 2) ? parameters[2] : "No reason supplied";
+
+ cbans.push_back(CBan(parameters[0], user->nick, TIME, length, reason));
+
+ std::sort(cbans.begin(), cbans.end(), CBanComp);
+
+ if(length > 0)
+ {
+ user->WriteServ( "385 %s %s :Added %lu second channel ban (%s)", user->nick, parameters[0], length, reason.c_str());
+ ServerInstance->WriteOpers("*** %s added %lu second channel ban on %s (%s)", user->nick, length, parameters[0], reason.c_str());
+ }
+ else
+ {
+ user->WriteServ( "385 %s %s :Added permenant channel ban (%s)", user->nick, parameters[0], reason.c_str());
+ ServerInstance->WriteOpers("*** %s added permenant channel ban on %s (%s)", user->nick, parameters[0], reason.c_str());
+ }
+ }
+ else
+ {
+ user->WriteServ( "403 %s %s :Invalid channel name", user->nick, parameters[0]);
+ }