summaryrefslogtreecommitdiff
path: root/include/usermanager.h
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-02-02 20:55:16 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-02-02 20:55:16 +0000
commitdd98d56cabcd08a3d5207454e002b187af98d28a (patch)
treeeb1eda174686679b500dee7d9f35a8c67a15971e /include/usermanager.h
parent0808eb7a9dd3b339f5b37f0ee67c5253ccbc2956 (diff)
Move some stuff to usermanager, remove a little header insanity, remove trace because it's still less useful than a chocolate fireman.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8790 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'include/usermanager.h')
-rw-r--r--include/usermanager.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/include/usermanager.h b/include/usermanager.h
index f994e9739..33b97129a 100644
--- a/include/usermanager.h
+++ b/include/usermanager.h
@@ -14,6 +14,8 @@
#ifndef __USERMANAGER_H
#define __USERMANAGER_H
+#include <list>
+
/** A list of ip addresses cross referenced against clone counts */
typedef std::map<irc::string, unsigned int> clonemap;
@@ -31,6 +33,29 @@ class CoreExport UserManager : public classbase
ServerInstance = Instance;
}
+
+ /** Client list, a hash_map containing all clients, local and remote
+ */
+ user_hash* clientlist;
+
+ /** Client list stored by UUID. Contains all clients, and is updated
+ * automatically by the constructor and destructor of User.
+ */
+ user_hash* uuidlist;
+
+ /** Local client list, a vector containing only local clients
+ */
+ std::vector<User*> local_users;
+
+ /** Oper list, a vector containing all local and remote opered users
+ */
+ std::list<User*> all_opers;
+
+ /** Number of unregistered users online right now.
+ * (Unregistered means before USER/NICK/dns)
+ */
+ int unregistered_count;
+
/** Map of global ip addresses for clone counting
* XXX - this should be private, but m_clones depends on it currently.
*/
@@ -101,6 +126,35 @@ class CoreExport UserManager : public classbase
* @return The number of local users
*/
unsigned int LocalUserCount();
+
+
+
+
+ /** Number of users with a certain mode set on them
+ */
+ int ModeCount(const char mode);
+
+ /** Send a server notice to all local users
+ * @param text The text format string to send
+ * @param ... The format arguments
+ */
+ void ServerNoticeAll(char* text, ...);
+
+ /** Send a server message (PRIVMSG) to all local users
+ * @param text The text format string to send
+ * @param ... The format arguments
+ */
+ void ServerPrivmsgAll(char* text, ...);
+
+ /** Send text to all users with a specific set of modes
+ * @param modes The modes to check against, without a +, e.g. 'og'
+ * @param flags one of WM_OR or WM_AND. If you specify WM_OR, any one of the
+ * mode characters in the first parameter causes receipt of the message, and
+ * if you specify WM_OR, all the modes must be present.
+ * @param text The text format string to send
+ * @param ... The format arguments
+ */
+ void WriteMode(const char* modes, int flags, const char* text, ...);
};
#endif