X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fchannels.h;h=bf06e760a98ab0445771b87bd4044eec0af8a361;hb=ba0d375f7a28b529770791f4568d787aca6dcf96;hp=50076fd86b6b1771b618bd95fba303d9d01b9bd1;hpb=32a26fa539242d009ffab01e09cafdaba9270dac;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/channels.h b/include/channels.h index 50076fd86..bf06e760a 100644 --- a/include/channels.h +++ b/include/channels.h @@ -41,10 +41,10 @@ class HostItem : public classbase time_t set_time; /** Who added the item */ - char set_by[64]; + std::string set_by; /** The actual item data */ - char data[MAXBUF]; + std::string data; HostItem() { /* stub */ } virtual ~HostItem() { /* stub */ } @@ -134,7 +134,7 @@ class CoreExport Channel : public Extensible /** The channel's name. */ - char name[CHANMAX]; + std::string name; /* CHANMAX */ /** Modes for the channel. * This is not a null terminated string! It is a hash where @@ -142,7 +142,7 @@ class CoreExport Channel : public Extensible * for mode +A, index 0. Use modechar-65 to calculate which * field to check. */ - char modes[64]; + unsigned char modes[64]; /** User lists. * There are four user lists, one for @@ -180,7 +180,7 @@ class CoreExport Channel : public Extensible /** Channel topic. * If this is an empty string, no channel topic is set. */ - char topic[MAXTOPIC]; + std::string topic; /* MAXTOPIC */ /** Creation time. * This is a timestamp (TS) value. @@ -195,7 +195,7 @@ class CoreExport Channel : public Extensible /** The last user to set the topic. * If this member is an empty string, no topic was ever set. */ - char setby[128]; + std::string setby; /* 128 */ /** Contains the channel user limit. * If this value is zero, there is no limit in place. @@ -205,7 +205,7 @@ class CoreExport Channel : public Extensible /** Contains the channel key. * If this value is an empty string, there is no channel key in place. */ - char key[32]; + std::string key; /* 32 */ /** The list of all bans set on the channel. */ @@ -344,7 +344,7 @@ class CoreExport Channel : public Extensible * @return The number of users left on the channel. If this is zero * when the method returns, you MUST delete the Channel immediately! */ - long ServerKickUser(User* user, const char* reason, bool triggerevents); + long ServerKickUser(User* user, const char* reason, bool triggerevents, const char* servername = NULL); /** Part a user from this channel with the given reason. * If the reason field is NULL, no reason will be sent. @@ -371,7 +371,7 @@ class CoreExport Channel : public Extensible * @param text A printf-style format string which builds the output line without prefix * @param ... Zero or more POD types */ - void WriteChannel(User* user, const char* text, ...); + void WriteChannel(User* user, const char* text, ...) CUSTOM_PRINTF(3, 4); /** Write to a channel, from a user, using std::string for text * @param user User whos details to prefix the line with @@ -384,7 +384,7 @@ class CoreExport Channel : public Extensible * @param text A printf-style format string which builds the output line without prefix * @param ... Zero or more POD type */ - void WriteChannelWithServ(const char* ServName, const char* text, ...); + void WriteChannelWithServ(const char* ServName, const char* text, ...) CUSTOM_PRINTF(3, 4); /** Write to a channel, from a server, using std::string for text * @param ServName Server name to prefix the line with @@ -401,7 +401,7 @@ class CoreExport Channel : public Extensible * @param text A printf-style format string which builds the output line without prefix * @param ... Zero or more POD type */ - void WriteAllExceptSender(User* user, bool serversource, char status, const char* text, ...); + void WriteAllExceptSender(User* user, bool serversource, char status, const char* text, ...) CUSTOM_PRINTF(5, 6); /** Write to all users on a channel except a list of users, using va_args for text * @param user User whos details to prefix the line with, and to omit from receipt of the message @@ -412,7 +412,7 @@ class CoreExport Channel : public Extensible * @param text A printf-style format string which builds the output line without prefix * @param ... Zero or more POD type */ - void WriteAllExcept(User* user, bool serversource, char status, CUList &except_list, const char* text, ...); + void WriteAllExcept(User* user, bool serversource, char status, CUList &except_list, const char* text, ...) CUSTOM_PRINTF(6, 7); /** Write to all users on a channel except a specific user, using std::string for text. * Internally, this calls WriteAllExcept(). @@ -528,6 +528,13 @@ class CoreExport Channel : public Extensible */ bool IsBanned(User* user); + /** Check whether an extban of a given type matches + * a given user for this channel. + * @param u The user to match bans against + * @param type The type of extban to check + */ + bool IsExtBanned(User *u, char type); + /** Clears the cached max bans value */ void ResetMaxBans();