/** A list of users on a channel
*/
-typedef std::map<userrec*,userrec*> CUList;
+typedef std::map<userrec*,std::string> CUList;
/** Shorthand for CUList::iterator
*/
prefixlist prefixes;
+ /** Maximum number of bans (cached)
+ */
+ int maxbans;
+
public:
/** The channels name.
*/
/** The last user to set the topic.
* If this member is an empty string, no topic was ever set.
*/
- char setby[NICKMAX];
+ char setby[128];
/** Contains the channel user limit.
* If this value is zero, there is no limit in place.
* been created if the channel did not exist before the user was joined to it.
* If the user could not be joined to a channel, the return value may be NULL.
*/
- static chanrec* JoinUser(InspIRCd* ServerInstance, userrec *user, const char* cn, bool override, const char* key = "");
+ static chanrec* JoinUser(InspIRCd* ServerInstance, userrec *user, const char* cn, bool override, const char* key, time_t TS = 0);
/** Write to a channel, from a user, using va_args for text
* @param user User whos details to prefix the line with
/** Spool the NAMES list for this channel to the given user
* @param user The user to spool the NAMES list to
+ * @param ulist The user list to send, NULL to use the
+ * channel's default names list of everyone
*/
- void UserList(userrec *user);
+ void UserList(userrec *user, CUList* ulist = NULL);
/** Get the number of invisible users on this channel
* @return Number of invisible users
*/
bool IsBanned(userrec* user);
+ /** Clears the cached max bans value
+ */
+ void ResetMaxBans();
+
/** Destructor for chanrec
*/
virtual ~chanrec() { /* stub */ }