+ /** Return the channel's modes with parameters.
+ * @param showkey If this is set to true, the actual key is shown,
+ * otherwise it is replaced with '<KEY>'
+ * @return The channel mode string
+ */
+ char* ChanModes(bool showkey);
+
+ /** Spool the NAMES list for this channel to the given user
+ * @param user The user to spool the NAMES list to
+ */
+ void UserList(User *user);
+
+ /** Get the number of invisible users on this channel
+ * @return Number of invisible users
+ */
+ int CountInvisible();
+
+ /** Get a users prefix on this channel in a string.
+ * @param user The user to look up
+ * @return A character array containing the prefix string.
+ * Unlike GetStatus and GetStatusFlags which will only return the
+ * core specified modes @, % and + (op, halfop and voice), GetPrefixChar
+ * will also return module-defined prefixes. If the user has to prefix,
+ * an empty but non-null string is returned. If the user has multiple
+ * prefixes, the highest is returned. If you do not recognise the prefix
+ * character you can get, you can deal with it in a 'proprtional' manner
+ * compared to known prefixes, using GetPrefixValue().
+ */
+ const char* GetPrefixChar(User *user);
+
+ /** Return all of a users mode prefixes into a char* string.
+ * @param user The user to look up
+ * @return A list of all prefix characters. The prefixes will always
+ * be in rank order, greatest first, as certain IRC clients require
+ * this when multiple prefixes are used names lists.
+ */
+ const char* GetAllPrefixChars(User* user);