]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree/protocolinterface.cpp
MetaData rework
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / protocolinterface.cpp
index 722b7c543994ff5b62517144b992b059962aded6..804a451ca96cb6e2bae57a73f51c64a6de84564a 100644 (file)
@@ -31,25 +31,19 @@ void SpanningTreeProtocolInterface::SendEncapsulatedData(parameterlist &encap)
        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);
 
@@ -68,7 +62,7 @@ void SpanningTreeProtocolInterface::SendTopic(Channel* channel, std::string &top
        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;
@@ -176,30 +170,3 @@ void SpanningTreeProtocolInterface::SendUserNotice(User* target, const std::stri
                }
        }
 }
-
-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
-       }
-}