diff options
author | special <special@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-11-02 17:44:18 +0000 |
---|---|---|
committer | special <special@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-11-02 17:44:18 +0000 |
commit | b5b704f5dd92e9ba2ac9f06ef4f43c7a20ff2589 (patch) | |
tree | 01786c7557402f717e5e2de0b901a0747e964598 /src/modules/m_alltime.cpp | |
parent | 1c600e3912db8d2ab0fd72fb3869083fcc6c9e46 (diff) |
Added m_alltime
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5625 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_alltime.cpp')
-rw-r--r-- | src/modules/m_alltime.cpp | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/src/modules/m_alltime.cpp b/src/modules/m_alltime.cpp new file mode 100644 index 000000000..4701b1cc1 --- /dev/null +++ b/src/modules/m_alltime.cpp @@ -0,0 +1,90 @@ +/* Written by Special (john@yarbbles.com) */ + +using namespace std; + +#include <stdio.h> +#include <string> +#include "inspircd.h" +#include "modules.h" + +/* $ModDesc: Display timestamps from all servers connected to the network */ + +class cmd_alltime : public command_t +{ + public: + cmd_alltime(InspIRCd *Instance) : command_t(Instance, "ALLTIME", 'o', 0) + { + this->source = "m_alltime.so"; + syntax = ""; + } + + CmdResult Handle(const char **parameters, int pcnt, userrec *user) + { + char fmtdate[64]; + time_t time = ServerInstance->Time(); + strftime(fmtdate, sizeof(fmtdate), "%F %T", gmtime(&time)); + + string msg = ":" + string(ServerInstance->Config->ServerName) + " NOTICE " + user->nick + " :Time for " + + ServerInstance->Config->ServerName + " is: " + fmtdate; + + if (IS_LOCAL(user)) + { + user->Write(msg); + } + else + { + deque<string> params; + params.push_back(user->nick); + params.push_back(msg); + Event ev((char *) ¶ms, NULL, "send_push"); + ev.Send(ServerInstance); + } + + return CMD_SUCCESS; + } +}; + +class Modulealltime : public Module +{ + cmd_alltime *mycommand; + public: + Modulealltime(InspIRCd *Me) + : Module::Module(Me) + { + mycommand = new cmd_alltime(ServerInstance); + ServerInstance->AddCommand(mycommand); + } + + virtual ~Modulealltime() + { + } + + virtual Version GetVersion() + { + return Version(1, 0, 0, 0, VF_COMMON | VF_VENDOR, API_VERSION); + } + +}; + +class ModulealltimeFactory : public ModuleFactory +{ + public: + ModulealltimeFactory() + { + } + + ~ModulealltimeFactory() + { + } + + virtual Module *CreateModule(InspIRCd *Me) + { + return new Modulealltime(Me); + } +}; + + +extern "C" void *init_module(void) +{ + return new ModulealltimeFactory; +} |