- if (smode)
- {
- this->Instance->SendMode(modelist, who);
- }
- else
- {
- this->Instance->CallCommandHandler("MODE", modelist, who);
- }
- /* HOT POTATO! PASS IT ON! */
- Utils->DoOneToAllButSender(source,"FMODE",params,sourceserv);
+ std::vector<std::string> modelist;
+ modelist.reserve(params.size()-1);
+ /* Insert everything into modelist except the TS (params[1]) */
+ modelist.push_back(params[0]);
+ modelist.insert(modelist.end(), params.begin()+2, params.end());
+
+ bool merge = (TS == ourTS) && IS_SERVER(who);
+ ServerInstance->Modes->Process(modelist, who, merge);
+ return CMD_SUCCESS;