X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fxline.h;h=886034bbafd81df76658a621dc28bf3b9ea0ef8e;hb=0d3ecb964292600ec1ce6ee1cef83f72185a8bcc;hp=74c58e05c87dd000c40fdc146fc6e362ddefc65a;hpb=f2b187052b6086d1a65ef9281f9aca9270075f06;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/xline.h b/include/xline.h index 74c58e05c..886034bba 100644 --- a/include/xline.h +++ b/include/xline.h @@ -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 @@ -14,11 +14,9 @@ #ifndef __XLINE_H #define __XLINE_H -#include -#include -#include -#include "users.h" -#include "channels.h" +//#include +//#include +//#include /** XLine is the base class for ban lines such as G lines and K lines. * Modules may derive from this, and their xlines will automatically be @@ -37,8 +35,9 @@ class CoreExport XLine : public classbase /** Default 'apply' action. Quits the user. * @param u User to apply the line against * @param line The line typed, used for display purposes in the quit message + * @param bancache If true, the user will be added to the bancache if they match. Else not. */ - void DefaultApply(User* u, const std::string &line); + void DefaultApply(User* u, const std::string &line, bool bancache); public: @@ -143,6 +142,8 @@ class CoreExport XLine : public classbase * type of line this is. */ const std::string type; + + virtual bool IsBurstable(); }; /** KLine class @@ -185,6 +186,8 @@ class CoreExport KLine : public XLine virtual const char* Displayable(); + virtual bool IsBurstable(); + /** Ident mask (ident part only) */ char* identmask; @@ -382,7 +385,7 @@ typedef std::pair IdentHostPair; * does not have to know the specifics of the internals of an XLine class * and/or how to call its constructor. */ -class CoreExport XLineFactory +class CoreExport XLineFactory : public classbase { protected: @@ -412,6 +415,8 @@ class CoreExport XLineFactory */ virtual XLine* Generate(time_t set_time, long duration, const char* source, const char* reason, const char* xline_specific_mask) = 0; + virtual bool AutoApplyToUserList(XLine* x) { return true; } + /** Destructor */ virtual ~XLineFactory() { } @@ -434,7 +439,7 @@ typedef std::map XLineFactMap; /** A map of XLines indexed by string */ -typedef std::map XLineLookup; +typedef std::map XLineLookup; /** A map of XLineLookup maps indexed by string */ @@ -452,7 +457,7 @@ typedef XLineLookup::iterator LookupIter; * or any other line created by a module. It also manages XLineFactory classes which * can generate a specialized XLine for use by another module. */ -class CoreExport XLineManager +class CoreExport XLineManager : public classbase { protected: /** The owner/creator of this class @@ -512,6 +517,10 @@ class CoreExport XLineManager */ XLineLookup* GetAll(const std::string &type); + /** Remove all lines of a certain type. + */ + void DelAll(const std::string &type); + /** Return all known types of line currently stored by the XLineManager. * @return A vector containing all known line types currently stored in the main list. */