]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree/metadata.cpp
Also synchronise the prefix rank between servers.
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / metadata.cpp
index 13ccabc353584754e189164f4373fed2b31b8ab3..52267c522923a7fb80ae49fac543f75385e2954e 100644 (file)
@@ -21,7 +21,7 @@
 #include "inspircd.h"
 #include "commands.h"
 
-CmdResult CommandMetadata::Handle(User* srcuser, std::vector<std::string>& params)
+CmdResult CommandMetadata::Handle(User* srcuser, Params& params)
 {
        if (params[0] == "*")
        {
@@ -49,19 +49,19 @@ CmdResult CommandMetadata::Handle(User* srcuser, std::vector<std::string>& param
                std::string value = params.size() < 4 ? "" : params[3];
 
                ExtensionItem* item = ServerInstance->Extensions.GetItem(params[2]);
-               if (item)
+               if ((item) && (item->type == ExtensionItem::EXT_CHANNEL))
                        item->unserialize(FORMAT_NETWORK, c, value);
                FOREACH_MOD(OnDecodeMetaData, (c,params[2],value));
        }
        else
        {
                User* u = ServerInstance->FindUUID(params[0]);
-               if ((u) && (!IS_SERVER(u)))
+               if (u)
                {
                        ExtensionItem* item = ServerInstance->Extensions.GetItem(params[1]);
                        std::string value = params.size() < 3 ? "" : params[2];
 
-                       if (item)
+                       if ((item) && (item->type == ExtensionItem::EXT_USER))
                                item->unserialize(FORMAT_NETWORK, u, value);
                        FOREACH_MOD(OnDecodeMetaData, (u,params[1],value));
                }