+ if (OverriddenMode)
+ {
+ if ((irc::string(command.c_str()) == "MODE") && (result == CMD_SUCCESS) && !ServerInstance->Modes->GetLastParse().empty())
+ {
+ std::string msg = std::string(user->nick)+" overriding modes: "+ServerInstance->Modes->GetLastParse()+" [Detail: ";
+ if (OverOps)
+ msg += ConvToStr(OverOps)+" op"+(OverOps != 1 ? "s" : "")+", ";
+ if (OverDeops)
+ msg += ConvToStr(OverDeops)+" deop"+(OverDeops != 1 ? "s" : "")+", ";
+ if (OverVoices)
+ msg += ConvToStr(OverVoices)+" voice"+(OverVoices != 1 ? "s" : "")+", ";
+ if (OverDevoices)
+ msg += ConvToStr(OverDevoices)+" devoice"+(OverDevoices != 1 ? "s" : "")+", ";
+ if (OverHalfops)
+ msg += ConvToStr(OverHalfops)+" halfop"+(OverHalfops != 1 ? "s" : "")+", ";
+ if (OverDehalfops)
+ msg += ConvToStr(OverDehalfops)+" dehalfop"+(OverDehalfops != 1 ? "s" : "")+", ";
+ if (OverOther)
+ msg += "others, ";
+ msg.replace(msg.length()-2, 2, 1, ']');
+ ServerInstance->SNO->WriteGlobalSno('G',msg);
+ }
+
+ OverriddenMode = OverOther = false;
+ OverOps = OverDeops = OverVoices = OverDevoices = OverHalfops = OverDehalfops = 0;
+ }