]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules.h
Where others charge, we give for free. Have fun and use wisely. With great power...
[user/henk/code/inspircd.git] / include / modules.h
index 97529e3134bd1f323f897e7a430db0e46b8a1ec9..51eb5a19baaba9f8affcf6bb1e0e5918adca4a13 100644 (file)
@@ -75,7 +75,7 @@ enum MessageType {
  * ipv4 servers, so this value will be ten times as
  * high on ipv6 servers.
  */
-#define NATIVE_API_VERSION 11017
+#define NATIVE_API_VERSION 11021
 #ifdef IPV6
 #define API_VERSION (NATIVE_API_VERSION * 10)
 #else
@@ -191,6 +191,8 @@ typedef std::map<std::string, std::pair<int, modulelist> > interfacelist;
 #define IS_LOCAL(x) ((x->GetFd() > -1) && (x->GetFd() <= MAX_DESCRIPTORS))
 #define IS_REMOTE(x) (x->GetFd() < 0)
 #define IS_MODULE_CREATED(x) (x->GetFd() == FD_MAGIC_NUMBER)
+#define IS_OPER(x) (*x->oper)
+#define IS_AWAY(x) (*x->awaymsg)
 
 /** Holds a module's Version information
  *  The four members (set by the constructor only) indicate details as to the version number
@@ -471,9 +473,10 @@ class Module : public Extensible
         * This event is only called when the user is fully registered when they quit. To catch
         * raw disconnections, use the OnUserDisconnect method.
         * @param user The user who is quitting
-        * @param message The user's quit message
+        * @param message The user's quit message (as seen by non-opers)
+        * @param oper_message The user's quit message (as seen by opers)
         */
-       virtual void OnUserQuit(userrec* user, const std::string &message);
+       virtual void OnUserQuit(userrec* user, const std::string &message, const std::string &oper_message);
 
        /** Called whenever a user's socket is closed.
         * The details of the exiting user are available to you in the parameter userrec *user
@@ -493,8 +496,10 @@ class Module : public Extensible
         * and the details of the channel they have joined is available in the variable chanrec *channel
         * @param user The user who is joining
         * @param channel The channel being joined
+        * @param silent Change this to true if you want to conceal the JOIN command from the other users
+        * of the channel (useful for modules such as auditorium)
         */
-       virtual void OnUserJoin(userrec* user, chanrec* channel);
+       virtual void OnUserJoin(userrec* user, chanrec* channel, bool &silent);
 
        /** Called after a user joins a channel
         * Identical to OnUserJoin, but called immediately afterwards, when any linking module has
@@ -510,8 +515,10 @@ class Module : public Extensible
         * @param user The user who is parting
         * @param channel The channel being parted
         * @param partmessage The part message, or an empty string
+        * @param silent Change this to true if you want to conceal the PART command from the other users
+        * of the channel (useful for modules such as auditorium)
         */
-       virtual void OnUserPart(userrec* user, chanrec* channel, const std::string &partmessage);
+       virtual void OnUserPart(userrec* user, chanrec* channel, const std::string &partmessage, bool &silent);
 
        /** Called on rehash.
         * This method is called prior to a /REHASH or when a SIGHUP is received from the operating
@@ -577,8 +584,10 @@ class Module : public Extensible
         * @param user The user being kicked
         * @param chan The channel the user is being kicked from
         * @param reason The kick reason
+        * @param silent Change this to true if you want to conceal the PART command from the other users
+        * of the channel (useful for modules such as auditorium)
         */
-       virtual void OnUserKick(userrec* source, userrec* user, chanrec* chan, const std::string &reason);
+       virtual void OnUserKick(userrec* source, userrec* user, chanrec* chan, const std::string &reason, bool &silent);
 
        /** Called whenever a user opers locally.
         * The userrec will contain the oper mode 'o' as this function is called after any modifications