From 632ca0fd6a2cfa3d06f87b77ccffcc2e5a835572 Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 7 Apr 2004 18:01:00 +0000 Subject: Fixed actions in m_filter Added new m_saquit by w00t git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@422 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_filter.cpp | 2 +- src/modules/m_saquit.cpp | 86 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 src/modules/m_saquit.cpp (limited to 'src/modules') diff --git a/src/modules/m_filter.cpp b/src/modules/m_filter.cpp index eaa07c7c3..d975e13c1 100644 --- a/src/modules/m_filter.cpp +++ b/src/modules/m_filter.cpp @@ -44,7 +44,7 @@ class ModuleFilter : public Module delete Conf; } - // format of a config entry is + // format of a config entry is virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string text) { diff --git a/src/modules/m_saquit.cpp b/src/modules/m_saquit.cpp new file mode 100644 index 000000000..d7151e5ec --- /dev/null +++ b/src/modules/m_saquit.cpp @@ -0,0 +1,86 @@ +/* + * SAQUIT module for InspIRCd + * Author: w00t + * Version: 1.0.0.0 + * + * Syntax: /SAQUIT [reason] + * Makes it appear as though has /quit with [reason] + * + */ + +#include +#include +#include "users.h" +#include "channels.h" +#include "modules.h" + +/* $ModDesc: Provides support for an SAQUIT command, exits user with a reason */ + +Server *Srv; + +void handle_saquit(char **parameters, int pcnt, userrec *user) +{ + userrec* dest = Srv->FindNick(std::string(parameters[0])); + if (dest) + { + + std::string line = ""; + for (int i = 1; i < pcnt - 1; i++) + { + line = line + std::string(parameters[i]) + " "; + } + line = line + std::string(parameters[pcnt-1]) + + Srv->SendOpers(std::string(user->nick)+" used SAQUIT to make "+std::string(dest->nick)+" quit with a reason of "+line); + Srv->QuitUser(dest, line); + } +} + + +class ModuleSaquit : public Module +{ + public: + ModuleSaquit() + { + Srv = new Server; + Srv->AddCommand("SAQUIT",handle_saquit,'o',2); + } + + virtual ~ModuleSaquit() + { + delete Srv; + } + + virtual Version GetVersion() + { + return Version(1,0,0,0); + } + +}; + +// stuff down here is the module-factory stuff. For basic modules you can ignore this. + +class ModuleSaquitFactory : public ModuleFactory +{ + public: + ModuleSaquitFactory() + { + } + + ~ModuleSaquitFactory() + { + } + + virtual Module * CreateModule() + { + return new ModuleSaquit; + } + +}; + + +extern "C" void * init_module( void ) +{ + return new ModuleSaquitFactory; +} + -- cgit v1.2.3