- if (modedata.empty())
- return;
-
- std::string outdata;
-
- /* 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], outdata);
- modedata[n] = outdata;
- }
-
- std::string uidtarget;
- ServerInstance->Parser->TranslateUIDs(TR_NICK, target, uidtarget);
- modedata.insert(modedata.begin(), uidtarget);
-
- for (size_t n = 0; n < modedata.size(); n++)
- {
- ServerInstance->Logs->Log("m_spanningtree", DEBUG, "modedata[%d]=\"%s\"", n, modedata[n].c_str());
- }
-
- 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);
- }
- }