]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/hash.h
Changed PEON to PAL as some people found it insulting.
[irc/evilnet/x3.git] / src / hash.h
index 63966c37cafedc77f1bbb9f511f8984593b45797..af76748c465cdb2656bbf5715df34c554e0869a9 100644 (file)
 #define MODE_UPASS             0x08000000 /* +U userpass */
 #define MODE_REMOVE             0x80000000
 
 #define MODE_UPASS             0x08000000 /* +U userpass */
 #define MODE_REMOVE             0x80000000
 
-#define FLAGS_OPER             0x0001 /* global operator +o */
-#define FLAGS_LOCOP            0x0002 /* Local operator +o */
-#define FLAGS_INVISIBLE                0x0004 /* invisible +i */
-#define FLAGS_WALLOP           0x0008 /* receives wallops +w */
-#define FLAGS_SERVNOTICE       0x0010 /* receives server notices +s */
-#define FLAGS_DEAF             0x0020 /* deaf +d */
-#define FLAGS_SERVICE          0x0040 /* cannot be kicked, killed or deoped +k */
-#define FLAGS_GLOBAL           0x0080 /* receives global messages +g */
-#define FLAGS_SETHOST          0x0100 /* sethost +h */
-#define FLAGS_PERSISTENT       0x0200 /* for reserved nicks, this isn't just one-shot */
-#define FLAGS_GAGGED           0x0400 /* for gagged users */
-#define FLAGS_AWAY             0x0800 /* for away users */
-#define FLAGS_STAMPED           0x1000 /* for users who have been stamped */
-#define FLAGS_HIDDEN_HOST       0x2000 /* user's host is masked by their account */
-#define FLAGS_REGNICK           0x4000 /* user owns their current nick */
-#define FLAGS_REGISTERING      0x8000 /* user has issued account register command, is waiting for email cookie */
-#define FLAGS_DUMMY             0x10000 /* user is not announced to other servers */
-#define FLAGS_NOIDLE            0x20000 /* hide idle time in whois +I */
-#define FLAGS_NOCHAN            0x40000 /* hide the users channels +n */
+#define FLAGS_OPER             0x000001 /* Operator +O */
+#define FLAGS_LOCOP            0x000002 /* Local operator +o */
+#define FLAGS_INVISIBLE                0x000004 /* invisible +i */
+#define FLAGS_WALLOP           0x000008 /* receives wallops +w */
+#define FLAGS_SERVNOTICE       0x000010 /* receives server notices +s */
+#define FLAGS_DEAF             0x000020 /* deaf +d */
+#define FLAGS_SERVICE          0x000040 /* cannot be kicked, killed or deoped +k */
+#define FLAGS_GLOBAL           0x000080 /* receives global messages +g */
+#define FLAGS_SETHOST          0x000100 /* sethost +h */
+#define FLAGS_PERSISTENT       0x000200 /* for reserved nicks, this isn't just one-shot */
+#define FLAGS_GAGGED           0x000400 /* for gagged users */
+#define FLAGS_AWAY             0x000800 /* for away users */
+#define FLAGS_STAMPED           0x001000 /* for users who have been stamped */
+#define FLAGS_HIDDEN_HOST       0x002000 /* user's host is masked by their account */
+#define FLAGS_REGNICK           0x004000 /* user owns their current nick */
+#define FLAGS_REGISTERING      0x008000 /* user has issued account register command, is waiting for email cookie */
+#define FLAGS_BOT              0x010000 /* Bot +B */
+#define FLAGS_HIDECHANS                0x020000 /* Hidden channels +n */
+#define FLAGS_HIDEIDLE         0x040000 /* Hidden idle time +I */
+#define FLAGS_XTRAOP           0x080000 /* Hidden idle time  */
+#define FLAGS_CLOAKHOST         0x100000 /* user has cloaked host */
+#define FLAGS_CLOAKIP           0x200000 /* user has cloaked ip */
 
 #define IsOper(x)               ((x)->modes & FLAGS_OPER)
 #define IsService(x)            ((x)->modes & FLAGS_SERVICE)
 #define IsDeaf(x)               ((x)->modes & FLAGS_DEAF)
 #define IsInvisible(x)          ((x)->modes & FLAGS_INVISIBLE)
 #define IsGlobal(x)             ((x)->modes & FLAGS_GLOBAL)
 
 #define IsOper(x)               ((x)->modes & FLAGS_OPER)
 #define IsService(x)            ((x)->modes & FLAGS_SERVICE)
 #define IsDeaf(x)               ((x)->modes & FLAGS_DEAF)
 #define IsInvisible(x)          ((x)->modes & FLAGS_INVISIBLE)
 #define IsGlobal(x)             ((x)->modes & FLAGS_GLOBAL)
-#define IsNoChan(x)             ((x)->modes & FLAGS_NOCHAN)
 #define IsWallOp(x)             ((x)->modes & FLAGS_WALLOP)
 #define IsServNotice(x)         ((x)->modes & FLAGS_SERVNOTICE)
 #define IsWallOp(x)             ((x)->modes & FLAGS_WALLOP)
 #define IsServNotice(x)         ((x)->modes & FLAGS_SERVNOTICE)
+#define IsBotM(x)                      ((x)->modes & FLAGS_BOT)
+#define IsHideChans(x)         ((x)->modes & FLAGS_HIDECHANS)
+#define IsHideIdle(x)          ((x)->modes & FLAGS_HIDEIDLE)
+#define IsXtraOp(x)            ((x)->modes & FLAGS_XTRAOP)
 #define IsSetHost(x)           ((x)->modes & FLAGS_SETHOST)
 #define IsGagged(x)             ((x)->modes & FLAGS_GAGGED)
 #define IsPersistent(x)         ((x)->modes & FLAGS_PERSISTENT) 
 #define IsSetHost(x)           ((x)->modes & FLAGS_SETHOST)
 #define IsGagged(x)             ((x)->modes & FLAGS_GAGGED)
 #define IsPersistent(x)         ((x)->modes & FLAGS_PERSISTENT) 
@@ -91,8 +97,6 @@
 #define IsHiddenHost(x)         ((x)->modes & FLAGS_HIDDEN_HOST)
 #define IsReggedNick(x)         ((x)->modes & FLAGS_REGNICK)
 #define IsRegistering(x)       ((x)->modes & FLAGS_REGISTERING)
 #define IsHiddenHost(x)         ((x)->modes & FLAGS_HIDDEN_HOST)
 #define IsReggedNick(x)         ((x)->modes & FLAGS_REGNICK)
 #define IsRegistering(x)       ((x)->modes & FLAGS_REGISTERING)
-#define IsDummy(x)              ((x)->modes & FLAGS_DUMMY)
-#define IsNoIdle(x)             ((x)->modes & FLAGS_NOIDLE)
 #define IsFakeHost(x)           ((x)->fakehost[0] != '\0')
 #define IsLocal(x)              ((x)->uplink == self)
 
 #define IsFakeHost(x)           ((x)->fakehost[0] != '\0')
 #define IsLocal(x)              ((x)->uplink == self)
 
 #define REALLEN         50
 #define TOPICLEN        250
 #define CHANNELLEN      200
 #define REALLEN         50
 #define TOPICLEN        250
 #define CHANNELLEN      200
-#define MARKLEN         20
+#define MARKLEN         200
 #define MAXOPLEVEL      999
 
 #define MAXMODEPARAMS  6
 #define MAXOPLEVEL      999
 
 #define MAXMODEPARAMS  6
@@ -129,6 +133,8 @@ enum Priv {
   PRIV_REMOTEREHASH,    /**< oper can remote REHASH */
   PRIV_RESTART,         /**< oper can RESTART */
   PRIV_DIE,             /**< oper can DIE */
   PRIV_REMOTEREHASH,    /**< oper can remote REHASH */
   PRIV_RESTART,         /**< oper can RESTART */
   PRIV_DIE,             /**< oper can DIE */
+  PRIV_ZLINE,           /**< oper can ZLINE */
+  PRIV_LOCAL_ZLINE,     /**< oper can local ZLINE */
   PRIV_GLINE,           /**< oper can GLINE */
   PRIV_LOCAL_GLINE,     /**< oper can local GLINE */
   PRIV_SHUN,            /**< oper can SHUN */
   PRIV_GLINE,           /**< oper can GLINE */
   PRIV_LOCAL_GLINE,     /**< oper can local GLINE */
   PRIV_SHUN,            /**< oper can SHUN */
@@ -146,12 +152,17 @@ enum Priv {
   PRIV_DISPLAY,         /**< "Is an oper" displayed */
   PRIV_SEE_OPERS,       /**< display hidden opers */
   PRIV_WIDE_GLINE,      /**< oper can set wider G-lines */
   PRIV_DISPLAY,         /**< "Is an oper" displayed */
   PRIV_SEE_OPERS,       /**< display hidden opers */
   PRIV_WIDE_GLINE,      /**< oper can set wider G-lines */
+  PRIV_WIDE_ZLINE,      /**< oper can set wider Z-Lines */
   PRIV_WIDE_SHUN,       /**< oper can set wider G-lines */
   PRIV_LIST_CHAN,       /**< oper can list secret channels */
   PRIV_FORCE_OPMODE,    /**< can hack modes on quarantined channels */
   PRIV_FORCE_LOCAL_OPMODE, /**< can hack modes on quarantined local channels */
   PRIV_CHECK,           /**< oper can use CHECK */
   PRIV_SEE_SECRET_CHAN, /**< oper can see +s channels in whois */
   PRIV_WIDE_SHUN,       /**< oper can set wider G-lines */
   PRIV_LIST_CHAN,       /**< oper can list secret channels */
   PRIV_FORCE_OPMODE,    /**< can hack modes on quarantined channels */
   PRIV_FORCE_LOCAL_OPMODE, /**< can hack modes on quarantined local channels */
   PRIV_CHECK,           /**< oper can use CHECK */
   PRIV_SEE_SECRET_CHAN, /**< oper can see +s channels in whois */
+  PRIV_WHOIS_NOTICE,    /**< oper can set/unset user mode +W */
+  PRIV_HIDE_IDLE,       /**< oper can set/unset user mode +I */
+  PRIV_XTRAOP,          /**< oper can set/unset user mode +X */
+  PRIV_HIDE_CHANNELS,   /**< oper can set/unset user mode +n */
   PRIV_LAST_PRIV        /**< number of privileges */
 };
 
   PRIV_LAST_PRIV        /**< number of privileges */
 };
 
@@ -213,7 +224,6 @@ struct userNode {
 
     time_t timestamp;             /* Time of last nick change */
     struct server *uplink;        /* Server that user is connected to */
 
     time_t timestamp;             /* Time of last nick change */
     struct server *uplink;        /* Server that user is connected to */
-    time_t idle_since;
     struct modeList channels;     /* Vector of channels user is in */
     struct Privs   privs;
 
     struct modeList channels;     /* Vector of channels user is in */
     struct Privs   privs;
 
@@ -366,6 +376,7 @@ void ReintroduceUser(struct userNode* user);
 typedef void (*nick_change_func_t)(struct userNode *user, const char *old_nick);
 void reg_nick_change_func(nick_change_func_t handler);
 void NickChange(struct userNode* user, const char *new_nick, int no_announce);
 typedef void (*nick_change_func_t)(struct userNode *user, const char *old_nick);
 void reg_nick_change_func(nick_change_func_t handler);
 void NickChange(struct userNode* user, const char *new_nick, int no_announce);
+void SVSNickChange(struct userNode* user, const char *new_nick);
 
 typedef void (*account_func_t) (struct userNode *user, const char *stamp);
 void reg_account_func(account_func_t handler);
 
 typedef void (*account_func_t) (struct userNode *user, const char *stamp);
 void reg_account_func(account_func_t handler);