LastParse.clear();
LastParseParams.clear();
LastParseTranslate.clear();
+ LastChangeList.clear();
if ((!targetchannel) && ((!targetuser) || (IS_SERVER(targetuser))))
{
return;
}
- std::string mode_sequence = parameters[1];
+ const std::string& mode_sequence = parameters[1];
std::string output_mode;
std::string output_parameters;
LastParseParams.push_back(parameter);
LastParseTranslate.push_back(mh->GetTranslateType());
}
+ LastChangeList.push(mh, adding, parameter);
if ((output_mode.length() + output_parameters.length() > 450)
|| (output_mode.length() > 100)
LastParse.append(output_mode);
LastParse.append(output_parameters);
- if (!(flags & MODE_LOCALONLY))
- ServerInstance->PI->SendMode(user, targetuser, targetchannel, LastParseParams, LastParseTranslate);
-
if (targetchannel)
targetchannel->WriteChannel(user, "MODE " + LastParse);
else
targetuser->WriteFrom(user, "MODE " + LastParse);
- FOREACH_MOD(OnMode, (user, targetuser, targetchannel, LastParseParams, LastParseTranslate));
+ FOREACH_MOD(OnMode, (user, targetuser, targetchannel, LastChangeList, flags, output_mode));
}
else if (targetchannel && parameters.size() == 2)
{
}
}
-void ModeParser::DisplayListModes(User* user, Channel* chan, std::string &mode_sequence)
+void ModeParser::DisplayListModes(User* user, Channel* chan, const std::string& mode_sequence)
{
seq++;