#include "inspircd.h"
#include "xline.h"
-#include "m_spanningtree/treesocket.h"
-#include "m_spanningtree/treeserver.h"
-#include "m_spanningtree/utils.h"
+#include "treesocket.h"
+#include "treeserver.h"
+#include "utils.h"
/* $ModDep: m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/treesocket.h */
-bool TreeSocket::MetaData(const std::string &prefix, std::deque<std::string> ¶ms)
+bool TreeSocket::MetaData(const std::string &prefix, parameterlist ¶ms)
{
if (params.size() < 2)
return true;
else if (params.size() < 3)
params.push_back("");
TreeServer* ServerSource = Utils->FindServer(prefix);
+ ExtensionItem* item = Extensible::GetItem(params[1]);
if (ServerSource)
{
if (params[0] == "*")
{
- FOREACH_MOD_I(this->ServerInstance,I_OnDecodeMetaData,OnDecodeMetaData(TYPE_OTHER,NULL,params[1],params[2]));
+ FOREACH_MOD(I_OnDecodeMetaData,OnDecodeMetaData(NULL,params[1],params[2]));
}
else if (*(params[0].c_str()) == '#')
{
- Channel* c = this->ServerInstance->FindChan(params[0]);
+ Channel* c = ServerInstance->FindChan(params[0]);
if (c)
{
- FOREACH_MOD_I(this->ServerInstance,I_OnDecodeMetaData,OnDecodeMetaData(TYPE_CHANNEL,c,params[1],params[2]));
+ if (item)
+ item->unserialize(FORMAT_NETWORK, c, params[2]);
+ FOREACH_MOD(I_OnDecodeMetaData,OnDecodeMetaData(c,params[1],params[2]));
}
}
else if (*(params[0].c_str()) != '#')
{
- User* u = this->ServerInstance->FindNick(params[0]);
+ User* u = ServerInstance->FindNick(params[0]);
if (u)
{
- FOREACH_MOD_I(this->ServerInstance,I_OnDecodeMetaData,OnDecodeMetaData(TYPE_USER,u,params[1],params[2]));
+ if (item)
+ item->unserialize(FORMAT_NETWORK, u, params[2]);
+ FOREACH_MOD(I_OnDecodeMetaData,OnDecodeMetaData(u,params[1],params[2]));
}
}
}