X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fchannels.h;h=9c231008a3ce28cb8a9bfb079c1bc7120a5610af;hb=78c14ffcc5429f4855e2f3a6c822a1d37f9f591a;hp=67a76f73be3ff5458f66f2f025f6138c2de24341;hpb=0b070b52bc8e8ceb52388e45cea90f4add119c4f;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/channels.h b/include/channels.h index 67a76f73b..9c231008a 100644 --- a/include/channels.h +++ b/include/channels.h @@ -137,12 +137,12 @@ class CoreExport Channel : public Extensible std::string name; /* CHANMAX */ /** Modes for the channel. - * This is not a null terminated string! It is a hash where + * This is not a null terminated string! It is a bitset where * each item in it represents if a mode is set. For example * for mode +A, index 0. Use modechar-65 to calculate which * field to check. */ - unsigned char modes[64]; + std::bitset<64> modes; /** User lists. * There are four user lists, one for @@ -197,16 +197,6 @@ class CoreExport Channel : public Extensible */ std::string setby; /* 128 */ - /** Contains the channel user limit. - * If this value is zero, there is no limit in place. - */ - short int limit; - - /** Contains the channel key. - * If this value is an empty string, there is no channel key in place. - */ - std::string key; /* 32 */ - /** The list of all bans set on the channel. */ BanList bans; @@ -242,6 +232,13 @@ class CoreExport Channel : public Extensible */ std::string GetModeParameter(char mode); + /** Sets the channel topic. + * @param u The user setting the topic + * @param t The topic to set it to. Non-const, as it may be modified by a hook. + * @param forceset If set to true then all access checks will be bypassed. + */ + int SetTopic(User *u, std::string &t, bool forceset = false); + /** Obtain the channel "user counter" * This returns the channel reference counter, which is initialized * to 0 when the channel is created and incremented/decremented @@ -535,6 +532,10 @@ class CoreExport Channel : public Extensible */ bool IsExtBanned(User *u, char type); + /** Overloaded version to check whether a particular string is extbanned + */ + bool IsExtBanned(const std::string &str, char type); + /** Clears the cached max bans value */ void ResetMaxBans();