diff options
| author | 2010-01-18 23:49:23 +0000 | |
|---|---|---|
| committer | 2010-01-18 23:49:23 +0000 | |
| commit | dce58b1611e275118d418bfb3b4402bd14d279dd (patch) | |
| tree | e0c036dd49d629b7add3f079c17851198270f404 /src/modules/m_spanningtree/metadata.cpp | |
| parent | Include total CPU usage in STATS z (diff) | |
Move lots of spanningtree items to commands
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12296 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree/metadata.cpp')
| -rw-r--r-- | src/modules/m_spanningtree/metadata.cpp | 53 |
1 files changed, 22 insertions, 31 deletions
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<std::string>& 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; } |
