- std::deque<std::string>* params = (std::deque<std::string>*)event->GetData();
- if (event->GetEventID() == "send_metadata")
- {
- if (params->size() < 3)
- return;
- (*params)[2] = ":" + (*params)[2];
- Utils->DoOneToMany(ServerInstance->Config->GetSID(),"METADATA",*params);
- }
- else if (event->GetEventID() == "send_topic")
- {
- if (params->size() < 2)
- return;
- (*params)[1] = ":" + (*params)[1];
- params->insert(params->begin() + 1,ServerInstance->Config->ServerName);
- params->insert(params->begin() + 1,ConvToStr(ServerInstance->Time(true)));
- Utils->DoOneToMany(ServerInstance->Config->GetSID(),"FTOPIC",*params);
- }
- else if (event->GetEventID() == "send_mode")
- {
- if (params->size() < 2)
- return;
- // Insert the TS value of the object, either User or Channel
- time_t ourTS = 0;
- std::string output_text;
-
- /* Warning: in-place translation is only safe for type TR_NICK */
- for (size_t n = 0; n < params->size(); n++)
- ServerInstance->Parser->TranslateUIDs(TR_NICK, (*params)[n], (*params)[n]);
-
- User* a = ServerInstance->FindNick((*params)[0]);
- if (a)
- {
- ourTS = a->age;
- Utils->DoOneToMany(ServerInstance->Config->GetSID(),"MODE",*params);
- return;
- }
- else
- {
- Channel* a = ServerInstance->FindChan((*params)[0]);
- if (a)
- {
- ourTS = a->age;
- params->insert(params->begin() + 1,ConvToStr(ourTS));
- Utils->DoOneToMany(ServerInstance->Config->GetSID(),"FMODE",*params);
- }
- }
- }
- else if (event->GetEventID() == "send_mode_explicit")
- {
- if (params->size() < 2)
- return;
- std::string output_text;
-
- /* Warning: in-place translation is only safe for type TR_NICK */
- for (size_t n = 0; n < params->size(); n++)
- ServerInstance->Parser->TranslateUIDs(TR_NICK, (*params)[n], (*params)[n]);
-
- Utils->DoOneToMany(ServerInstance->Config->GetSID(),"MODE",*params);
- }
- else if (event->GetEventID() == "send_opers")
- {
- if (params->size() < 1)
- return;
- (*params)[0] = ":" + (*params)[0];
- Utils->DoOneToMany(ServerInstance->Config->GetSID(),"OPERNOTICE",*params);
- }
- else if (event->GetEventID() == "send_modeset")