X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fchannels.h;h=82bf508539b171ebd1c834f0b598bdeca02266ae;hb=db7cc57f444a82df65f47b4f7058560e645e35cf;hp=220c56cf9532720620ac3e29e0d7637577c64707;hpb=5abd3b1cc5fba26486d71c6a415fae797388ddf3;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/channels.h b/include/channels.h index 220c56cf9..82bf50853 100644 --- a/include/channels.h +++ b/include/channels.h @@ -29,6 +29,7 @@ enum ChannelModes { /* Forward declarations - needed */ class User; +struct ModResult; /** Holds an entry for a ban list, exemption list, or invite list. * This class contains a single element in a channel list, such as a banlist. @@ -136,6 +137,10 @@ class CoreExport Channel : public Extensible */ std::string name; /* CHANMAX */ + /** Time that the object was instantiated (used for TS calculation etc) + */ + time_t age; + /** Modes for the channel. * This is not a null terminated string! It is a bitset where * each item in it represents if a mode is set. For example @@ -425,6 +430,8 @@ class CoreExport Channel : public Extensible * @param text A std::string containing the output line without prefix */ void WriteAllExcept(User* user, bool serversource, char status, CUList &except_list, const std::string& text); + /** Write a line of text that already includes the source */ + void RawWriteAllExcept(User* user, bool serversource, char status, CUList &except_list, const std::string& text); /** Returns the maximum number of bans allowed to be set on this channel * @return The maximum number of bans allowed @@ -524,14 +531,12 @@ class CoreExport Channel : public Extensible * a given user for this channel. * @param u The user to match bans against * @param type The type of extban to check - * @returns 1 = exempt, 0 = no match, -1 = banned */ - int GetExtBanStatus(User *u, char type); + ModResult GetExtBanStatus(User *u, char type); /** Overloaded version to check whether a particular string is extbanned - * @returns 1 = exempt, 0 = no match, -1 = banned */ - int GetExtBanStatus(const std::string &str, char type); + ModResult GetExtBanStatus(const std::string &str, char type); /** Clears the cached max bans value */ @@ -542,18 +547,4 @@ class CoreExport Channel : public Extensible virtual ~Channel() { /* stub */ } }; -static inline int banmatch_reduce(int v1, int v2) -{ - int a1 = abs(v1); - int a2 = abs(v2); - if (a1 > a2) - return v1; - else if (a2 > a1) - return v2; - else if (v1 > v2) - return v1; - // otherwise v2 > v1 or equal - return v2; -} - #endif