Utils->DoOneToMany(ServerInstance->Config->GetSID(), "ENCAP", encap);
}
-void SpanningTreeProtocolInterface::SendMetaData(void* target, TargetTypeFlags type, const std::string &key, const std::string &data)
+void SpanningTreeProtocolInterface::SendMetaData(Extensible* target, const std::string &key, const std::string &data)
{
parameterlist params;
- switch (type)
- {
- case TYPE_USER:
- params.push_back(((User*)target)->uuid);
- break;
- case TYPE_CHANNEL:
- params.push_back(((Channel*)target)->name);
- break;
- case TYPE_SERVER:
- params.push_back("*");
- break;
- default:
- throw CoreException("I don't know how to handle TYPE_OTHER.");
- break;
- }
+ User* u = dynamic_cast<User*>(target);
+ Channel* c = dynamic_cast<Channel*>(target);
+ if (u)
+ params.push_back(u->uuid);
+ else if (c)
+ params.push_back(c->name);
+ else
+ params.push_back("*");
+
params.push_back(key);
params.push_back(":" + data);
Utils->DoOneToMany(ServerInstance->Config->GetSID(),"FTOPIC", params);
}
-void SpanningTreeProtocolInterface::SendMode(const std::string &target, const parameterlist &modedata, const std::deque<TranslateType> &translate)
+void SpanningTreeProtocolInterface::SendMode(const std::string &target, const parameterlist &modedata, const std::vector<TranslateType> &translate)
{
if (modedata.empty())
return;
}
}
}
-
-void SpanningTreeProtocolInterface::Introduce(User* user)
-{
- if (user->quitting)
- return;
- if (IS_LOCAL(user))
- {
- std::deque<std::string> params;
- params.push_back(user->uuid);
- params.push_back(ConvToStr(user->age));
- params.push_back(user->nick);
- params.push_back(user->host);
- params.push_back(user->dhost);
- params.push_back(user->ident);
- params.push_back(user->GetIPString());
- params.push_back(ConvToStr(user->signon));
- params.push_back("+"+std::string(user->FormatModes(true)));
- params.push_back(":"+std::string(user->fullname));
- Utils->DoOneToMany(ServerInstance->Config->GetSID(), "UID", params);
- }
-
- TreeServer* SourceServer = Utils->FindServer(user->server);
- if (SourceServer)
- {
- SourceServer->SetUserCount(1); // increment by 1
- }
-}