- for (int j =0; j < Conf->Enumerate("type"); j++)
- {
- std::string typen = Conf->ReadValue("type","name",j);
- if (!strcmp(typen.c_str(),user->oper))
- {
- std::string ThisOpersModes = Conf->ReadValue("type","modes",j);
- if (ThisOpersModes != "")
+ std::string ThisOpersModes = typetag->second->getString("modes");
+ if (!ThisOpersModes.empty())
+ {
+ ApplyModes(user, ThisOpersModes);
+ }
+
+ if (!opername.empty()) // if user is local ..
+ {
+ for (int i = 0;; i++)
+ {
+ ConfigTag* tag = ServerInstance->Config->ConfValue("oper", i);
+ if (!tag)
+ break;
+ if (tag->getString("name") != opername)
+ continue;
+ ThisOpersModes = tag->getString("modes");
+ if (!ThisOpersModes.empty())