/* Unreal IRCD 3.2.x functions
*
* (C) 2003-2008 Anope Team
* Contact us at info@anope.org
*
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
*
*/
/*************************************************************************/
#include "services.h"
#include "pseudo.h"
/* User Modes */
#define UMODE_a 0x00000001 /* a Services Admin */
#define UMODE_h 0x00000002 /* h Available for help (HelpOp) */
#define UMODE_i 0x00000004 /* i Invisible (not shown in /who) */
#define UMODE_o 0x00000008 /* o Global IRC Operator */
#define UMODE_r 0x00000010 /* r Identifies the nick as being registered */
#define UMODE_w 0x00000020 /* w Can listen to wallop messages */
#define UMODE_A 0x00000040 /* A Server Admin */
#define UMODE_N 0x00000080 /* N Network Administrator */
#define UMODE_O 0x00000100 /* O Local IRC Operator */
#define UMODE_C 0x00000200 /* C Co-Admin */
#define UMODE_d 0x00000400 /* d Makes it so you can not receive channel PRIVMSGs */
#define UMODE_p 0x00000800 /* Hides the channels you are in in a /whois reply */
#define UMODE_q 0x00001000 /* q Only U:Lines can kick you (Services Admins Only) */
#define UMODE_s 0x00002000 /* s Can listen to server notices */
#define UMODE_t 0x00004000 /* t Says you are using a /vhost */
#define UMODE_v 0x00008000 /* v Receives infected DCC Send Rejection notices */
#define UMODE_z 0x00010000 /* z Indicates that you are an SSL client */
#define UMODE_B 0x00020000 /* B Marks you as being a Bot */
#define UMODE_G 0x00040000 /* G Filters out all the bad words per configuration */
#define UMODE_H 0x00080000 /* H Hide IRCop Status (IRCop Only) */
#define UMODE_S 0x00100000 /* S services client */
#define UMODE_V 0x00200000 /* V Marks you as a WebTV user */
#define UMODE_W 0x00400000 /* W Lets you see when people do a /whois on you */
#define UMODE_T 0x00800000 /* T Prevents you from receiving CTCPs */
#define UMODE_g 0x20000000 /* g Can send & read globops and locops */
#define UMODE_x 0x40000000 /* x Gives user a hidden hostname */
#define UMODE_R 0x80000000 /* Allows you to only receive PRIVMSGs/NOTICEs from registered (+r) users */
/*************************************************************************/
/* Channel Modes */
#define CMODE_i 0x00000001
#define CMODE_m 0x00000002
#define CMODE_n 0x00000004
#define CMODE_p 0x00000008
#define CMODE_s 0x00000010
#define CMODE_t 0x00000020
#define CMODE_k 0x00000040 /* These two used only by ChanServ */
#define CMODE_l 0x00000080
#define CMODE_R 0x00000100 /* Only identified users can join */
#define CMODE_r 0x00000200 /* Set for all registered channels */
#define CMODE_c 0x00000400
#define CMODE_A 0x00000800
/* #define CMODE_H 0x00001000 Was now +I may not join, but Unreal Removed it and it will not set in 3.2 */
#define CMODE_K 0x00002000
#define CMODE_L 0x00004000
#define CMODE_O 0x00008000
#define CMODE_Q 0x00010000
#define CMODE_S 0x00020000
#define CMODE_V 0x00040000
#define CMODE_f 0x00080000
#define CMODE_G 0x00100000
#define CMODE_C 0x00200000
#define CMODE_u 0x00400000
#define CMODE_z 0x00800000
#define CMODE_N 0x01000000
#define CMODE_T 0x02000000
#define CMODE_M 0x04000000
/* Default Modes with MLOCK */
#define DEFAULT_MLOCK CMODE_n | CMODE_t | CMODE_r
IRCDVar myIrcd[] = {
{"UnrealIRCd 3.2.x", /* ircd name */
"+oS", /* nickserv mode */
"+oS", /* chanserv mode */
"+oS", /* memoserv mode */
"+oS", /* hostserv mode */
"+ioS", /* operserv mode */
"+oS", /* botserv mode */
"+oS", /* helpserv mode */
"+ioS", /* Global mode */
"+qS", /* Used by BotServ Bots */
5, /* Chan Max Symbols */
"-cilmnpstuzACGHKMNOQRSTV", /* Modes to Remove */
"+ao", /* Channel Umode used by Botserv bots */
1, /* SVSNICK */
1, /* Vhost */
1, /* Has Owner */
"+q", /* Mode to set for an owner */
"-q", /* Mode to unset for an owner */
"+a", /* Mode to set for channel admin */
"-a", /* Mode to unset for channel admin */
"+rd", /* Mode On Reg */
NULL, /* Mode on ID for Roots */
NULL, /* Mode on ID for Admins */
NULL, /* Mode on ID for Opers */
"-r+d", /* Mode on UnReg */
"-r+d", /* Mode on Nick Change */
1, /* Supports SGlines */
1, /* Supports SQlines */
1, /* Supports SZlines */
1, /* Supports Halfop +h */
3, /* Number of server args */
0, /* Join 2 Set */
0, /* Join 2 Message */
1, /* Has exceptions +e */
1, /* TS Topic Forward */
0, /* TS Topci Backward */
UMODE_S, /* Protected Umode */
0, /* Has Admin */
0, /* Chan SQlines */
0, /* Quit on Kill */
1, /* SVSMODE unban */
1, /* Has Protect */
1, /* Reverse */
1, /* Chan Reg */
CMODE_r, /* Channel Mode */
1, /* vidents */
1, /* svshold */
1, /* time stamp on mode */
1, /* NICKIP */
1, /* O:LINE */
1, /* UMODE */
1, /* VHOST ON NICK */
1, /* Change RealName */
CMODE_K, /* No Knock */
CMODE_A, /* Admin Only */
DEFAULT_MLOCK, /* Default MLOCK */
UMODE_x, /* Vhost Mode */
1, /* +f */
1, /* +L */
CMODE_f, /* +f Mode */
CMODE_L, /* +L Mode */
0, /* On nick change check if they could be identified */
1, /* No Knock requires +i */
NULL, /* CAPAB Chan Modes */
1, /* We support Unreal TOKENS */
0, /* TOKENS are CASE Sensitive */
1, /* TIME STAMPS are BASE64 */
1, /* +I support */
'&', /* SJOIN ban char */
'\"', /* SJOIN except char */
'\'', /* SJOIN invite char */
1, /* Can remove User Channel Modes with SVSMODE */
0, /* Sglines are not enforced until user reconnects */
"x", /* vhost char */
0, /* ts6 */
1,
|