2014-01-31 03:23:52 +00:00
/*
* Copyright ( c ) 2003 - 2004 E . Will et al .
* Copyright ( c ) 2005 - 2008 Atheme Development Group
* Copyright ( c ) 2008 - 2010 ShadowIRCd Development Group
* Copyright ( c ) 2013 PonyChat Development Group
* Rights to this code are documented in doc / LICENSE .
*
* This file contains protocol support for ponychat - ircd .
*
*/
# include "atheme.h"
# include "uplink.h"
# include "pmodule.h"
# include "protocol/shadowircd.h"
2015-02-19 20:46:39 +00:00
DECLARE_MODULE_V1 ( " protocol/elemental-ircd " , true , _modinit , NULL , PACKAGE_STRING , " Elemental-IRCd Development Team http://github.com/elemental-ircd/elemental-ircd " ) ;
2014-01-31 03:23:52 +00:00
/* *INDENT-OFF* */
ircd_t elemental_ircd = {
2015-02-19 20:46:39 +00:00
" Elemental-IRCd 7.0 " , /* IRCd name */
2014-08-03 17:38:55 +00:00
" $$ " , /* TLD Prefix, used by Global. */
true , /* Whether or not we use IRCNet/TS6 UID */
false , /* Whether or not we use RCOMMAND */
true , /* Whether or not we support channel owners. */
true , /* Whether or not we support channel protection. */
true , /* Whether or not we support halfops. */
false , /* Whether or not we use P10 */
false , /* Whether or not we use vHosts. */
CMODE_EXLIMIT | CMODE_PERM | CMODE_IMMUNE , /* Oper-only cmodes */
CSTATUS_OWNER , /* Integer flag for owner channel flag. */
CSTATUS_PROTECT , /* Integer flag for protect channel flag. */
CSTATUS_HALFOP , /* Integer flag for halfops. */
2015-02-19 20:46:39 +00:00
" +q " , /* Mode we set for owner. */
2014-08-03 17:38:55 +00:00
" +a " , /* Mode we set for protect. */
" +h " , /* Mode we set for halfops. */
PROTOCOL_SHADOWIRCD , /* Protocol type */
CMODE_PERM , /* Permanent cmodes */
CMODE_IMMUNE , /* Oper-immune cmode */
2015-02-19 20:46:39 +00:00
" beIy " , /* Ban-like cmodes */
2014-08-03 17:38:55 +00:00
' e ' , /* Except mchar */
' I ' , /* Invex mchar */
IRCD_CIDR_BANS | IRCD_HOLDNICK /* Flags */
2014-01-31 03:23:52 +00:00
} ;
struct cmode_ elemental_mode_list [ ] = {
2014-08-03 17:38:55 +00:00
{ ' i ' , CMODE_INVITE } ,
{ ' m ' , CMODE_MOD } ,
{ ' n ' , CMODE_NOEXT } ,
{ ' p ' , CMODE_PRIV } ,
{ ' s ' , CMODE_SEC } ,
{ ' t ' , CMODE_TOPIC } ,
{ ' c ' , CMODE_NOCOLOR } ,
{ ' r ' , CMODE_REGONLY } ,
{ ' z ' , CMODE_OPMOD } ,
{ ' g ' , CMODE_FINVITE } ,
{ ' L ' , CMODE_EXLIMIT } ,
{ ' P ' , CMODE_PERM } ,
{ ' F ' , CMODE_FTARGET } ,
{ ' Q ' , CMODE_DISFWD } ,
{ ' M ' , CMODE_IMMUNE } ,
{ ' C ' , CMODE_NOCTCP } ,
{ ' A ' , CMODE_ADMINONLY } ,
{ ' O ' , CMODE_OPERONLY } ,
{ ' S ' , CMODE_SSLONLY } ,
{ ' D ' , CMODE_NOACTIONS } ,
{ ' T ' , CMODE_NONOTICE } ,
{ ' G ' , CMODE_NOCAPS } ,
{ ' E ' , CMODE_NOKICKS } ,
{ ' d ' , CMODE_NONICKS } ,
{ ' K ' , CMODE_NOREPEAT } ,
{ ' J ' , CMODE_KICKNOREJOIN } ,
{ ' \0 ' , 0 }
2014-01-31 03:23:52 +00:00
} ;
struct cmode_ elemental_status_mode_list [ ] = {
2015-02-19 20:46:39 +00:00
{ ' q ' , CSTATUS_OWNER } ,
2014-08-03 17:38:55 +00:00
{ ' a ' , CSTATUS_PROTECT } ,
{ ' o ' , CSTATUS_OP } ,
{ ' h ' , CSTATUS_HALFOP } ,
{ ' v ' , CSTATUS_VOICE } ,
{ ' \0 ' , 0 }
2014-01-31 03:23:52 +00:00
} ;
struct cmode_ elemental_prefix_mode_list [ ] = {
2014-08-03 17:38:55 +00:00
{ ' ~ ' , CSTATUS_OWNER } ,
2015-02-19 20:46:39 +00:00
{ ' & ' , CSTATUS_PROTECT } ,
2014-08-03 17:38:55 +00:00
{ ' @ ' , CSTATUS_OP } ,
{ ' % ' , CSTATUS_HALFOP } ,
{ ' + ' , CSTATUS_VOICE } ,
{ ' \0 ' , 0 }
2014-01-31 03:23:52 +00:00
} ;
struct cmode_ elemental_user_mode_list [ ] = {
2014-08-03 17:38:55 +00:00
{ ' a ' , UF_ADMIN } ,
{ ' i ' , UF_INVIS } ,
{ ' o ' , UF_IRCOP } ,
{ ' D ' , UF_DEAF } ,
{ ' \0 ' , 0 }
2014-01-31 03:23:52 +00:00
} ;
/* *INDENT-ON* */
void _modinit ( module_t * m )
{
2014-08-03 17:38:55 +00:00
MODULE_TRY_REQUEST_DEPENDENCY ( m , " protocol/charybdis " ) ;
2014-01-31 03:23:52 +00:00
2014-08-03 17:38:55 +00:00
mode_list = elemental_mode_list ;
user_mode_list = elemental_user_mode_list ;
status_mode_list = elemental_status_mode_list ;
prefix_mode_list = elemental_prefix_mode_list ;
2014-01-31 03:23:52 +00:00
2014-08-03 17:38:55 +00:00
ircd = & elemental_ircd ;
2014-01-31 03:23:52 +00:00
2014-08-03 17:38:55 +00:00
m - > mflags = MODTYPE_CORE ;
2014-01-31 03:23:52 +00:00
2014-08-03 17:38:55 +00:00
pmodule_loaded = true ;
2014-01-31 03:23:52 +00:00
}
/* vim:cinoptions=>s,e0,n0,f0,{0,}0,^0,=s,ps,t0,c3,+s,(2s,us,)20,*30,gs,hs
* vim : ts = 8
* vim : sw = 8
* vim : noexpandtab
*/