summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspecial <special@e03df62e-2008-0410-955e-edbf42e46eb7>2006-11-02 17:44:18 +0000
committerspecial <special@e03df62e-2008-0410-955e-edbf42e46eb7>2006-11-02 17:44:18 +0000
commitb5b704f5dd92e9ba2ac9f06ef4f43c7a20ff2589 (patch)
tree01786c7557402f717e5e2de0b901a0747e964598
parent1c600e3912db8d2ab0fd72fb3869083fcc6c9e46 (diff)
Added m_alltime
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5625 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/modules/m_alltime.cpp90
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 *) &params, 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;
+}