public:
/** Creates a channel record and initialises it with default values
- * @throw Nothing at present.
+ * @param name The name of the channel
+ * @param ts The creation time of the channel
+ * @throw CoreException if this channel name is in use
*/
Channel(const std::string &name, time_t ts);
* @param value True if you want to set the mode or false if you want to remove it
*/
void SetMode(ModeHandler* mode, bool value);
- void SetMode(char mode,bool mode_on);
/** Sets or unsets a custom mode in the channels info
* @param mode The mode character to set or unset
* If it is empty, the mode is unset; if it is nonempty, the mode is set.
*/
void SetModeParam(ModeHandler* mode, const std::string& parameter);
- void SetModeParam(char mode, const std::string& parameter);
/** Returns true if a mode is set on a channel
* @param mode The mode character you wish to query
* @return True if the custom mode is set, false if otherwise
*/
- inline bool IsModeSet(char mode) { return modes[mode-'A']; }
inline bool IsModeSet(ModeHandler* mode) { return modes[mode->GetModeChar()-'A']; }
-
+ bool IsModeSet(ModeHandler& mode) { return IsModeSet(&mode); }
+ bool IsModeSet(ChanModeReference& mode);
/** Returns the parameter for a custom mode on a channel.
* @param mode The mode character you wish to query
*
* @return The parameter for this mode is returned, or an empty string
*/
- std::string GetModeParameter(char mode);
std::string GetModeParameter(ModeHandler* mode);
+ std::string GetModeParameter(ChanModeReference& mode);
/** Sets the channel topic.
* @param user The user setting the topic.
* @param user The user to join to the channel
* @param privs Priviliges (prefix mode letters) to give to this user, may be NULL
* @param bursting True if this join is the result of a netburst (passed to modules in the OnUserJoin hook)
- * @param created True if this channel was just created by a local user (passed to modules in the OnUserJoin hook)
+ * @param created_by_local True if this channel was just created by a local user (passed to modules in the OnUserJoin hook)
*/
void ForceJoin(User* user, const std::string* privs = NULL, bool bursting = false, bool created_by_local = false);
{
return (userlist.find(user) != userlist.end());
}
+
+inline std::string Channel::GetModeParameter(ChanModeReference& mode)
+{
+ if (!mode)
+ return "";
+ return GetModeParameter(*mode);
+}
+
+inline bool Channel::IsModeSet(ChanModeReference& mode)
+{
+ if (!mode)
+ return false;
+ return IsModeSet(*mode);
+}