- 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")
- {
- if (params->size() < 2)
- return;
- (*params)[1] = ":" + (*params)[1];
- Utils->DoOneToMany(ServerInstance->Config->GetSID(),"MODENOTICE",*params);
- }
- else if (event->GetEventID() == "send_snoset")
- {
- if (params->size() < 2)
- return;
- (*params)[1] = ":" + (*params)[1];
- Utils->DoOneToMany(ServerInstance->Config->GetSID(),"SNONOTICE",*params);
- }
- else if (event->GetEventID() == "send_push")
- {
- if (params->size() < 2)
- return;
-
- User *a = ServerInstance->FindNick((*params)[0]);
-
- if (!a)
- return;
-
- (*params)[0] = a->uuid;
- (*params)[1] = ":" + (*params)[1];
- Utils->DoOneToOne(ServerInstance->Config->GetSID(), "PUSH", *params, a->server);