- if (mh->GetNumParams(plus) && value.empty())
- return CMD_FAILURE;
- std::vector<std::string> modes;
- modes.push_back(parameters[0]);
- modes.push_back((plus ? "+" : "-") + std::string(1, letter));
- modes.push_back(value);
- ServerInstance->SendGlobalMode(modes, src);
- return CMD_SUCCESS;
+ ModeHandler* mh = ServerInstance->Modes->FindMode(letter, MODETYPE_CHANNEL);
+ if (mh && mh->name == prop)
+ {
+ modes[1].append((plus ? "+" : "-") + std::string(1, letter));
+ if (mh->GetNumParams(plus))
+ {
+ if (i != parameters.size())
+ modes.push_back(parameters[i++]);
+ }
+ }