#include "inspircd.h"
#include "commands.h"
-CmdResult CommandMetadata::Handle(const std::vector<std::string>& params, User *srcuser)
+CmdResult CommandMetadata::Handle(User* srcuser, std::vector<std::string>& params)
{
if (params[0] == "*")
{
std::string value = params.size() < 3 ? "" : params[2];
- FOREACH_MOD(I_OnDecodeMetaData,OnDecodeMetaData(NULL,params[1],value));
+ FOREACH_MOD(OnDecodeMetaData, (NULL,params[1],value));
return CMD_SUCCESS;
}
ExtensionItem* item = ServerInstance->Extensions.GetItem(params[2]);
if (item)
item->unserialize(FORMAT_NETWORK, c, value);
- FOREACH_MOD(I_OnDecodeMetaData,OnDecodeMetaData(c,params[2],value));
+ FOREACH_MOD(OnDecodeMetaData, (c,params[2],value));
}
else
{
if (item)
item->unserialize(FORMAT_NETWORK, u, value);
- FOREACH_MOD(I_OnDecodeMetaData,OnDecodeMetaData(u,params[1],value));
+ FOREACH_MOD(OnDecodeMetaData, (u,params[1],value));
}
}
return CMD_SUCCESS;
}
+CommandMetadata::Builder::Builder(User* user, const std::string& key, const std::string& val)
+ : CmdBuilder("METADATA")
+{
+ push(user->uuid);
+ push(key);
+ push_last(val);
+}
+
+CommandMetadata::Builder::Builder(Channel* chan, const std::string& key, const std::string& val)
+ : CmdBuilder("METADATA")
+{
+ push(chan->name);
+ push_int(chan->age);
+ push(key);
+ push_last(val);
+}
+
+CommandMetadata::Builder::Builder(const std::string& key, const std::string& val)
+ : CmdBuilder("METADATA")
+{
+ push("*");
+ push(key);
+ push_last(val);
+}