- if (modedata.empty())
- return;
-
- /* Warning: in-place translation is only safe for type TR_NICK */
- for (size_t n = 0; n < modedata.size(); n++)
- ServerInstance->Parser->TranslateUIDs(TR_NICK, modedata[n], modedata[n]);
-
- std::string uidtarget;
- ServerInstance->Parser->TranslateUIDs(TR_NICK, target, uidtarget);
- modedata.insert(modedata.begin(), uidtarget);
-
- User* a = ServerInstance->FindNick(uidtarget);
- if (a)
- {
- Utils->DoOneToMany(ServerInstance->Config->GetSID(),"MODE",modedata);
- return;
- }
- else
- {
- Channel* c = ServerInstance->FindChan(target);
- if (c)
- {
- modedata.insert(modedata.begin() + 1, ConvToStr(c->age));
- Utils->DoOneToMany(ServerInstance->Config->GetSID(),"FMODE",modedata);
- }
- }