]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_ircv3_servertime.cpp
Fix various cases of broken indentation.
[user/henk/code/inspircd.git] / src / modules / m_ircv3_servertime.cpp
index ec6e48daaa219d0870e96fd0dfce2382004db67c..3e059719d13ac6bac1f03b6cf5968912595fc9fc 100644 (file)
 #include "inspircd.h"
 #include "modules/ircv3.h"
 #include "modules/ircv3_servertime.h"
+#include "modules/server.h"
 
-class ServerTimeTag : public IRCv3::ServerTime::Manager, public IRCv3::CapTag<ServerTimeTag>
+class ServerTimeTag
+       : public IRCv3::ServerTime::Manager
+       , public IRCv3::CapTag<ServerTimeTag>
+       , public ServerProtocol::MessageEventListener
 {
        time_t lasttime;
        long lasttimens;
@@ -45,6 +49,7 @@ class ServerTimeTag : public IRCv3::ServerTime::Manager, public IRCv3::CapTag<Se
        ServerTimeTag(Module* mod)
                : IRCv3::ServerTime::Manager(mod)
                , IRCv3::CapTag<ServerTimeTag>(mod, "server-time", "time")
+               , ServerProtocol::MessageEventListener(mod)
                , lasttime(0)
                , lasttimens(0)
        {
@@ -53,9 +58,18 @@ class ServerTimeTag : public IRCv3::ServerTime::Manager, public IRCv3::CapTag<Se
 
        const std::string* GetValue(const ClientProtocol::Message& msg)
        {
+               // Client protocol.
                RefreshTimeString();
                return &lasttimestring;
        }
+
+       void OnBuildMessage(User* source, const char* command, ClientProtocol::TagMap& tags) CXX11_OVERRIDE
+       {
+               // Server protocol.
+               RefreshTimeString();
+               tags.insert(std::make_pair(tagname, ClientProtocol::MessageTagData(this, lasttimestring)));
+       }
+
 };
 
 class ModuleIRCv3ServerTime : public Module