From b5b704f5dd92e9ba2ac9f06ef4f43c7a20ff2589 Mon Sep 17 00:00:00 2001 From: special Date: Thu, 2 Nov 2006 17:44:18 +0000 Subject: Added m_alltime git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5625 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_alltime.cpp | 90 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/modules/m_alltime.cpp (limited to 'src/modules/m_alltime.cpp') 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 +#include +#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 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; +} -- cgit v1.2.3