X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_remove.cpp;h=b87b5d2c129c519d1bcd6e817bd7edbd2da0b25a;hb=caa89fb37c532930805f0b144e3298624ec1adec;hp=fcd6ae9586147aeb117cdb2eb86b19638db27b9e;hpb=31e2d052252c4113ae9ea63844f60df7759a03be;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_remove.cpp b/src/modules/m_remove.cpp index fcd6ae958..b87b5d2c1 100644 --- a/src/modules/m_remove.cpp +++ b/src/modules/m_remove.cpp @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2007 InspIRCd Development Team + * InspIRCd: (C) 2002-2008 InspIRCd Development Team * See: http://www.inspircd.org/wiki/index.php/Credits * * This program is free but copyrighted software; see @@ -12,11 +12,6 @@ */ #include "inspircd.h" -#include -#include "users.h" -#include "channels.h" -#include "modules.h" -#include "configreader.h" /* $ModDesc: Provides a /remove command, this is mostly an alternative to /kick, except makes users appear to have parted the channel */ @@ -74,12 +69,12 @@ class RemoveBase } } - CmdResult Handle (const char** parameters, int pcnt, userrec *user, bool neworder) + CmdResult Handle (const char* const* parameters, int pcnt, User *user, bool neworder) { const char* channame; const char* username; - userrec* target; - chanrec* channel; + User* target; + Channel* channel; ModeLevel tlevel; ModeLevel ulevel; std::string reason; @@ -104,7 +99,7 @@ class RemoveBase /* Fix by brain - someone needs to learn to validate their input! */ if (!target || !channel) { - user->WriteServ("401 %s %s :No such nick/channel", user->nick, !target ? username : channame); + user->WriteNumeric(401, "%s %s :No such nick/channel", user->nick, !target ? username : channame); return CMD_FAILURE; } @@ -154,7 +149,7 @@ class RemoveBase tlevel = chartolevel(channel->GetPrefixChar(target)); } - hasnokicks = (ServerInstance->FindModule("m_nokicks.so") && channel->IsModeSet('Q')); + hasnokicks = (ServerInstance->Modules->Find("m_nokicks.so") && channel->IsModeSet('Q')); /* We support the +Q channel mode via. the m_nokicks module, if the module is loaded and the mode is set then disallow the /remove */ if ((!IS_LOCAL(user)) || (!supportnokicks || !hasnokicks || (ulevel == ULINE))) @@ -208,16 +203,17 @@ class RemoveBase /** Handle /REMOVE */ -class cmd_remove : public command_t, public RemoveBase +class CommandRemove : public Command, public RemoveBase { public: - cmd_remove(InspIRCd* Instance, bool& snk) : command_t(Instance, "REMOVE", 0, 2), RemoveBase(Instance, snk) + CommandRemove(InspIRCd* Instance, bool& snk) : Command(Instance, "REMOVE", 0, 2), RemoveBase(Instance, snk) { this->source = "m_remove.so"; syntax = " []"; + TRANSLATE4(TR_NICK, TR_TEXT, TR_TEXT, TR_END); } - CmdResult Handle (const char** parameters, int pcnt, userrec *user) + CmdResult Handle (const char* const* parameters, int pcnt, User *user) { return RemoveBase::Handle(parameters, pcnt, user, false); } @@ -225,16 +221,16 @@ class cmd_remove : public command_t, public RemoveBase /** Handle /FPART */ -class cmd_fpart : public command_t, public RemoveBase +class CommandFpart : public Command, public RemoveBase { public: - cmd_fpart(InspIRCd* Instance, bool& snk) : command_t(Instance, "FPART", 0, 2), RemoveBase(Instance, snk) + CommandFpart(InspIRCd* Instance, bool& snk) : Command(Instance, "FPART", 0, 2), RemoveBase(Instance, snk) { this->source = "m_remove.so"; syntax = " []"; } - CmdResult Handle (const char** parameters, int pcnt, userrec *user) + CmdResult Handle (const char* const* parameters, int pcnt, User *user) { return RemoveBase::Handle(parameters, pcnt, user, true); } @@ -242,8 +238,8 @@ class cmd_fpart : public command_t, public RemoveBase class ModuleRemove : public Module { - cmd_remove* mycommand; - cmd_fpart* mycommand2; + CommandRemove* mycommand; + CommandFpart* mycommand2; bool supportnokicks; @@ -251,24 +247,22 @@ class ModuleRemove : public Module ModuleRemove(InspIRCd* Me) : Module(Me) { - mycommand = new cmd_remove(ServerInstance, supportnokicks); - mycommand2 = new cmd_fpart(ServerInstance, supportnokicks); + mycommand = new CommandRemove(ServerInstance, supportnokicks); + mycommand2 = new CommandFpart(ServerInstance, supportnokicks); ServerInstance->AddCommand(mycommand); ServerInstance->AddCommand(mycommand2); OnRehash(NULL,""); + Implementation eventlist[] = { I_On005Numeric, I_OnRehash }; + ServerInstance->Modules->Attach(eventlist, this, 2); } - void Implements(char* List) - { - List[I_On005Numeric] = List[I_OnRehash] = 1; - } virtual void On005Numeric(std::string &output) { output.append(" REMOVE"); } - virtual void OnRehash(userrec* user, const std::string&) + virtual void OnRehash(User* user, const std::string&) { ConfigReader conf(ServerInstance); supportnokicks = conf.ReadFlag("remove", "supportnokicks", 0); @@ -280,7 +274,7 @@ class ModuleRemove : public Module virtual Version GetVersion() { - return Version(1, 1, 1, 0, VF_COMMON | VF_VENDOR, API_VERSION); + return Version(1, 2, 1, 0, VF_COMMON | VF_VENDOR, API_VERSION); } };