From dce58b1611e275118d418bfb3b4402bd14d279dd Mon Sep 17 00:00:00 2001 From: danieldg Date: Mon, 18 Jan 2010 23:49:23 +0000 Subject: Move lots of spanningtree items to commands git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12296 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree/metadata.cpp | 53 ++++++++++++++------------------- 1 file changed, 22 insertions(+), 31 deletions(-) (limited to 'src/modules/m_spanningtree/metadata.cpp') diff --git a/src/modules/m_spanningtree/metadata.cpp b/src/modules/m_spanningtree/metadata.cpp index 70bd0539b..4760793cb 100644 --- a/src/modules/m_spanningtree/metadata.cpp +++ b/src/modules/m_spanningtree/metadata.cpp @@ -12,50 +12,41 @@ */ #include "inspircd.h" -#include "xline.h" +#include "commands.h" #include "treesocket.h" #include "treeserver.h" #include "utils.h" -bool TreeSocket::MetaData(const std::string &prefix, parameterlist ¶ms) +CmdResult CommandMetadata::Handle(const std::vector& params, User *srcuser) { - if (params.size() < 2) - return true; - else if (params.size() < 3) - params.push_back(""); - TreeServer* ServerSource = Utils->FindServer(prefix); + std::string value = params.size() < 3 ? "" : params[2]; ExtensionItem* item = ServerInstance->Extensions.GetItem(params[1]); - if (ServerSource) + if (params[0] == "*") { - if (params[0] == "*") - { - FOREACH_MOD(I_OnDecodeMetaData,OnDecodeMetaData(NULL,params[1],params[2])); - } - else if (*(params[0].c_str()) == '#') + FOREACH_MOD(I_OnDecodeMetaData,OnDecodeMetaData(NULL,params[1],value)); + } + else if (*(params[0].c_str()) == '#') + { + Channel* c = ServerInstance->FindChan(params[0]); + if (c) { - Channel* c = ServerInstance->FindChan(params[0]); - if (c) - { - if (item) - item->unserialize(FORMAT_NETWORK, c, params[2]); - FOREACH_MOD(I_OnDecodeMetaData,OnDecodeMetaData(c,params[1],params[2])); - } + if (item) + item->unserialize(FORMAT_NETWORK, c, value); + FOREACH_MOD(I_OnDecodeMetaData,OnDecodeMetaData(c,params[1],value)); } - else if (*(params[0].c_str()) != '#') + } + else if (*(params[0].c_str()) != '#') + { + User* u = ServerInstance->FindNick(params[0]); + if (u) { - User* u = ServerInstance->FindNick(params[0]); - if (u) - { - if (item) - item->unserialize(FORMAT_NETWORK, u, params[2]); - FOREACH_MOD(I_OnDecodeMetaData,OnDecodeMetaData(u,params[1],params[2])); - } + if (item) + item->unserialize(FORMAT_NETWORK, u, value); + FOREACH_MOD(I_OnDecodeMetaData,OnDecodeMetaData(u,params[1],value)); } } - params[2] = ":" + params[2]; - Utils->DoOneToAllButSender(prefix,"METADATA",params,prefix); - return true; + return CMD_SUCCESS; } -- cgit v1.3.1-10-gc9f91