- if (tokens.size() > 1)
- {
- // process mode params
- int i = 2;
- for (unsigned int k = 1; k < tokens.size(); k++)
- {
- modes[i] = (char*)tokens[k].c_str();
- ServerInstance->Log(DEBUG, "m_opermodes.so: got mode param: %s", modes[i]);
- i++;
- }
- }
- std::deque<std::string> n;
- Event rmode((char *)&n, NULL, "send_mode");
- n.push_back(user->nick);
- n.push_back(modes[0]);
- for (unsigned int j = 1; j < tokens.size(); j++)
+ if (!opername.empty()) // if user is local ..
+ {
+ for (int j = 0; j < Conf->Enumerate("oper"); j++)
+ {
+ if (opername == Conf->ReadValue("oper", "name", j))
+ {
+ std::string ThisOpersModes = Conf->ReadValue("oper", "modes", j);
+ if (!ThisOpersModes.empty())