X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fchannels.h;h=9c231008a3ce28cb8a9bfb079c1bc7120a5610af;hb=78c14ffcc5429f4855e2f3a6c822a1d37f9f591a;hp=7f1be6c5a1ca4e4d52621b7b353e88504285b588;hpb=31f1e7ad092f8bf16ee653cc105eea4a769650ca;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/channels.h b/include/channels.h index 7f1be6c5a..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. */ - 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 @@ -349,11 +346,11 @@ class CoreExport Channel : public Extensible /** Part a user from this channel with the given reason. * If the reason field is NULL, no reason will be sent. * @param user The user who is parting (must be on this channel) - * @param reason The (optional) part reason + * @param reason The part reason * @return The number of users left on the channel. If this is zero * when the method returns, you MUST delete the Channel immediately! */ - long PartUser(User *user, const char* reason = NULL); + long PartUser(User *user, std::string &reason); /* Join a user to a channel. May be a channel that doesnt exist yet. * @param user The user to join to the channel. @@ -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();