[IRC-DEV] Programa de Seguimiento de otras Redes: Undernet

Jordi Murgo jordi at lleida.com
Wed Nov 7 18:37:18 CET 2001


A las buenas,

A mi me ha tocado el Unreal (analizada version UnrealIRCD 3.2 [Selene]
beta4)

Introducción historica:

	- Unreal empezó como continuación al Elite-IRCd (2.0b13)
	- Elite es un heredero del Shadow (v3.9)
	- Shadow es una versión del Dreamforge de DALNET
	- Si no recuerdo mal, Dreamforge fué un branch (junto con dalnet) del
ircd2.8TS

Puntos negativos en protoclo Server-to-Server de Unreal:
	
	- No usa numericos para nicks.
	- Negocia el TOPIC mediante TS

Puntos positivos en protocolo Server 2 Server:

	- Tokenización de comandos
	- Agrupación de comandos en el burst (USER+NICK, JOINS+MODOS...)
	- Negociación de facilidades Server 2 Server
	- Soporta compresión Zlib
	- Soporta SSL
	- TS
	- Muy buena integración con Services (Modos/SVS*)

Puntos positivos del software para una red pública:

	- Se ha modularizado bastante, es de esperar que en un futuro se pueda
actualizar el IRCD en caliente, sin cerrar las sesiones existentes, pero
de momento no.
	- El fichero de configuración es múcho más claro, han abandonado el
estilo ircd.conf, y soporta includes.
	- Mediante fichero de configuración se pueden crear nuevos comandos
(por ejemplo /ns, /cs, /identify ...)
	- Mediante .conf se pueden poner regexp de palabras "feas", y los
canales y usuarios pueden activar el modo +G para que se activen dichos
filtros y en su lugar aparezca <censored>
	- Mediante .conf se puede crear una lista de niks y canales denegables
(regexp)
	- Los IRCops son "granularizables" mediante .conf (ver al final del
doc)
	- Se pueden filtrar DCCs mediante regexp en .conf
 	- Se pueden añadir lineas a los ficheros de .conf en linea (sin shell)
	- Rehash parciales del .conf
	- Completo kit de ayuda online para los ircops/opers/admins (comando
/HELPOP)
	- Soporte de EXCEPCIONES al equivalente de los GLINES
	- Modo canal Auditorium (+u) para canales de entrevistas ...
	- Modo canal paz (+Q) para evitar guerras de KICKs
	- Modos de usuario en canal: Creador / Protegido / Op / HalfOP / Voice
/ normal
	- Modo canal antiflood: +f *2:1 -> Hace kick y ban(*) si se superan las
2 lineas en 1 segundo.
	- Comando SHUN (silencia un usuario molesto -por nick o maskara-, por
un tiempo determinado), sin avisarle.
	- Ocultacion / personalización de IP visible.
	- Como mejora del ISON se añade WATCH +/-nicklist, que solo hace falta
enviarlo una vez.
	- Ver lista de comandos y modos en fichero anexo

En redes pequeñas o propietarias las facilidades de administracion /
abuso por parte de ircops son mayores (Modo +I (invisible al entrar a
canales..., forzar JOIN, forzar cambio de NICK ...))


En resumen, es un buen software, que si uno quiere montarse algo en casa
o con unos amigos, no tiene competencia en el mercado. Como software de
consulta para implementar nuevas facilidades en redes publicas,
implementa buenas ideas.

Saludos,	<jordi/>
-------------- next part --------------
Written by ^MrMike^ (mike at sector001.org) for the UnrealIRCd
Modified by codemastr to include a few other commands
(note, this file will be updated in CVS asap)

PRIVMSG
 - Used to send a message to a person or a channel
 Syntax: MSG <nick>,<nick2>,<nick3>,<nick4> <text>
 Example: PRIVMSG Stskeeps :Hello. Unreal is a very good ircd.
 Example: PRIVMSG Stskeeps,codemastr,DrBin :Hello Unreal Coding Team

NOTICE
 - Mainly used for one-time communication or for the results of a command.
 Syntax: NOTICE <nick>,<nick2>,<nick3>,<nick4> <text>
 Example: NOTICE codemastr :Hi. How are you?
 Example: NOTICE codemastr,Stskeeps :Hi codemastr and Stskeeps.

MODE
 - Used to change the mode of a channel or a user. You can only change modes for channel you    are an Operator or Half-Op on. Also, you can only changes user modes for yourself.
 Syntax: MODE <channel/user> <mode>
 Example: MODE #UnrealIRCD +tn
 Example: MODE #UnrealIRCD +ootn codemastr Stskeeps

NICK
 - Changes your "online identity" on a server. All those in the channel you are in will be    alerted of your nickname change.
 Syntax: NICK <new nickname>
 Example: NICK |codemastr|

JOIN
 - Used to enter one or more channels on an IRC server. All occupants of the channel will be    notified of your arrival.
 Syntax: JOIN <chan>,<chan2>,<chan3>
 Example: JOIN #UnrealIRCD
 Example: JOIN #UnrealIRCD,#OperHelp

PING
 - Determines the amount of lag (time it takes for a response to reach a person and come    back) between yourself and someone else.
 Syntax: PING <user>
 Example: PING Stskeeps

WHOIS
  - Shows information about the user in question, such as their "name", channels they are     currently in, their hostmask, etc.
 Syntax: WHOIS <user>
 Example: WHOIS DrBin

ISON
 - Used to determine of a certain user or users are currently on the IRC server based upon     their nickname.
 Syntax: ISON <user> <user2> <user3> <user4>
 Example: ISON Stskeeps DrBin codemastr NickServ ChanServ OperServ MemoServ

USER
 - Used during registration to server (i.e. during inital connection sequence.)

PART
 - Used to part (or leave) a channel you currently occupy. All those in the channel will be    notified of your departure.
 Syntax: PART <chan>,<chan2>,<chan3>,<chan4>
 Example: PART #UnrealIRCD
 Example: PART #UnrealIRCD,#OperHelp

QUIT
 - Disconnects you from the IRC server. Those in the channels you occupy will be notified of    your departure. If you do not specify a reason, your nickname becomes the reason.
 Syntax: QUIT <reason>
 Example: QUIT Leaving!

USERHOST
 - Returns the userhost of the user in question. Usually used by scripts or bots to retrieve    userhost information.
 Syntax: USERHOST <nickname>
 Example: USERHOST codemastr

SVSNICK
 - Can only be used by a U:Lined server (i.e. services). Changes the nickname of the user in    question.
 Syntax: SVSNICK <nickname> <new nickname> :<timestamp>
 Example: SVSNICK Stskeeps Techie :963086432

SVSMODE
 - Can only be used by a U:Lined server (i.e. services). Changes the mode of the channel or    user in question.
 Syntax: SVSMODE <channel/user> :<mode>
 Example: SVSMODE #UnrealIRCD :+o Stskeeps
 Example: SVSMODE codemastr :+i

LUSERS
 - Provides local and global user information (such as current and maximum user count).
 Syntax: LUSERS <server>

CHANSERV
 - Will send a secure message to ChanServ. Similar to /msg ChanServ, but more secure. May not work if server is configured improperly.

TOPIC
 - Sets/Changes the topic of the channel in question, or just display the current topic.
 Syntax: TOPIC <channel>
 Syntax: TOPIC <channel> <topic>
 Example: TOPIC #operhelp
 Example: TOPIC #UnrealIRCD Welcome to the Unreal IRCD Home Channel.

INVITE
 - Sends a user an invitation to join a perticular channel. You must be an operator on the    channel in order to invite a user into it.
 Syntax: INVITE <user> <channel>
 Example: INVITE codemastr #OperHelp

KICK
 - Removes a user from a channel. Can only be used by Operators or Half-Ops. If no reason is    specified, your nickname becomes the reason.
 Syntax: KICK <channel> <user> <reason>

WALLOPS
 - Sends a "message" to all those with the umode +w. Only IRCops can send wallops, while anyone can view them.
 Syntax: WALLOPS <message>

KILL
 - Forcefully disconnects a user from an IRC Sever. Can only be used by IRCops.
 Syntax: KILL <user> <reason>
 Example: KILL Clone5 Cloning is not allowed

AWAY
 - Sets your online status to "away".
 Syntax: AWAY <reason> (AWAY without a reason will unset you away)
 Example: AWAY Walking the dog...

SQUIT
 - Disconnects an IRC Server from the network
 Syntax: SQUIT <server>
 Example: SQUIT leaf.*

WHO
 - Searches user information (-i users only) for supplied information. IRCops are a ble to    search +i users.
 Syntax: WHO <search>
 Example: WHO *.aol.com

WHOWAS
 - Retrieves previous 'WHOIS' information for users no longer connected to the server.
 Syntax: WHOWAS <nickname>
 Example: WHOWAS Stskeeps

LIST
 - Provides a complete listing of all channels on the network. If a search string is    specified, it will only show those matching the search string.
 Syntax: LIST <search string>
 Example: LIST
 Example: LIST *ircd*

NAMES
 - Provides a list of users on the specified channel.
 Syntax: NAMES <channel>
 Example: NAMES #help

OPER
 - Attempts to give a user IRCop status.
 Syntax: OPER <uid> <pass>
 Example: OPER codemastr codeit

CONNECT
 - Links another IRC server to the one you are currently on. Remote connections are also    possible.
 Syntax: CONNECT <server>
 Syntax: <CONNECT> <hub> <port> <leaf>
 Example: CONNECT leaf.*
 Example: CONNECT hub.* 6667 leaf.*

VERSION
 - Provides version information of the IRCD software in usage.
 Syntax: VERSION

STATS
 - Provides certain statistical information about the server (for example, u will provide    uptime information).
 Syntax: STATS <letter>
 Example: STATS u

LINKS
 - Lists all of the servers currently linked to the network.
 Syntax: LINKS

ADMIN
 - Provides administrative information regarding the server.
 Syntax: ADMIN <server>

SAMODE
 - Allowed a services administrator to change the mode on a channel, without having operator   status.
 Syntax: SAMODE <channel> <mode>
 Example: SAMODE #UnrealIRCD +m

SVSKILL
 - Can only be used by a U:Lined server. Forcefully disconnects a user from the network.
 Syntax: SVSKILL <user> <reason>
 Example: SVSKILL codemastr Goodbye

SVSNOOP
 - Can only be used by a U:Lined server. Enabled or disables whether Global IRCop functions   exist on the server in question or not.
 Syntax: SVSNOOP <server> <+/->
 Example: SVSNOOP leaf.* -

MOTD
 - Displays the Message of the Day.
 Syntax: MOTD
 Syntax: MOTD <server>

KLINE
 - "Bans" a hostmask from connection to the IRC server.
 Syntax: KLINE <hostmask> <reason>
 Example: KLINE *@*.aol.com Abuse

UNKLINE
 - Removes a k:line from the server.
 Syntax: UNKLINE <hostmask>
 Example: UNKLINE *@*.aol.com

ZLINE
 - Disables all access to the IRC server from a specified IP.
 Syntax: ZLINE <ip>
 Example: ZLINE 127.0.0.1

UNZLINE
 - Removes a currently active z:Line.
 Syntax: UNZLINE <ip>
 Example: ZLINE 127.0.0.1

GLOBOPS
 - Sends a global "message" to all IRCops. Only viewable by IRCops (unlike WallOps, which can be viewed by normal users).
 Syntax: GLOBOPS <message>
 Example: GLOBOPS Going to be akilling those clones...

CHATOPS
 - GLOBOPS is usually reserved for important network information. Therefore, for Oper Chat,    CHATOPS was invented. IRCops with the +c flag enabled will be able to send/receive CHATOPS messages.
 Syntax: CHATOPS <message>
 Example: CHATOPS How's everyone doing today?

LOCOPS
 - Similar to GLOBOPS, except only received by those IRCops local to your server.
 Syntax: LOCOPS <message>
 Example: LOCOPS Going to be adding a temp k:line for that user...

REHASH
 - Prompts the server to reread its configuration file (ircd.conf). Will also remove any    temporarly lines (i.e. k:line).
 Syntax: REHASH

RESTART
 - Kills and restarts the irc daemon, disconnecting all users currently on that server.
 Syntax: RESTART
 Syntax: RESTART <password>

DIE
 - Kills the irc daemon, disconnecting all users currently on that server.
 Syntax: DIE
 Syntax: DIE <password>

RULES
 - Reads the rules.conf file and sends the contents to the user.
 Syntax: RULES

MAP
 - Provides a "network map" of the IRC network. Mainly used for routing purposes.
 Syntax: MAP

DALINFO
 - Original DALnet ircd credits.
 Syntax: DALINFO

MKPASSWD
 - Used for generating an encrypted password. Mainly used for encrypted O:Line passwords.
 Syntax: MKPASSWD <password>
 Example: MKPASSWD codeit

ADDLINE
 - Adds a line to the server's ircd.conf file. After added, you must REHASH the server for it to take affect.
 Syntax: ADDLINE <line>
 Example: ADDLINE C:127.0.0.1:server.dal.net:linking:7325:50

TECHAT
 - Similar to CHATOPS, but only Technical Admins are able to send/receive messages on this    "channel".
 Syntax: TECHAT <message>
 Example: TECHAT What do you think of the new routing map?

NACHAT
 - Similar to CHATOPS (and TECHAT), but only Network Admins are able to send/recieve messages.
 Syntax: NACHAT <message>
 Example: NACHAT Linking a new server in a couple minutes...

KNOCK
 - For channels which are invite only, you can "knock" on the channel to request an invite.
 Syntax: KNOCK <channel> <message>
 Example: KNOCK #secret_chan I'm an op, let me in!

CREDITS
 - Credits for Unreal IRCD.
 Syntax: CREDITS

LICENSE
 - GPL information.
 Syntax: LICENSE

SVSJOIN
 - Forces a user to join a channel. Can only be used by a U:Lined server.
 Syntax: SVSJOIN <nick> <channel>
 Example: SVSJOIN codemastr #jail

SAJOIN
 - Forces a user to join a channel. Can only be used by a Services Admin.
 Syntax: SAJOIN <nick> <channel>
 Example: SAJOIN Stskeeps #OperHelp

SVSPART
 - Forces a user to leave a channel. Can only be used by a U:Lined server.
 Syntax: SVSPART <nick> <channel>
 Example: SVSPART codemastr #jail

SAPART
 - Forces a user to leave a channel. Can only be used by a Services Admin.
 Syntax: SAPART <nick> <channel>
 Example: SAPART Stskeeps #OperHelp

SETHOST
 - Changes the hostname of yourself. Only available to IRCops.
 Syntax: SETHOST <host>
 Example: SETHOST coder.tspre.org

SETIDENT
 - Changes the ident of yourself. Only available to IRCops.
 Syntax: SETIDENT <ident>
 Example: SETIDENT coder

SETNAME
 - Changes the "IRC Name" (or "Real Name") of yourself. Available to everyone.
 Syntax: SETNAME <name>
 Example: SETNAME Unreal Coding Team Member

CHGHOST
 - Changes the hostname of a user currently on the IRC network. Only available to IRCops.
 Syntax: CHGHOST <nick> <host>
 Example: CHGHOST codemastr coder.tspre.org

CHGIDENT
 - Changes the ident of a user currently on the IRC network. Only available to IRCops.
 Syntax: CHGIDENT <nick> <ident>
 Example: CHGIDENT codemastr coder

CHGNAME
 - Changes the "IRC Name" (or "Real Name") of a user currently on the IRC network. Only    available to IRCops.
 Syntax: CHGNAME <nick> <name>
 Example: CHGNAME codemastr Unreal Coding Team Member

-------------- next part --------------
/*
 * example.conf by Daniel Hawton AKA Osiris (osiris at unrealircd.org) Last
 * updated 2. August 2001
 * 
 * Works for Unreal3.2 and up
 * 
 * Okay guys.  This is the new example.conf. Its look is much like C++, kinda.
 * Anyway it is time to go over this.  It's hard to pick up at first, but
 * with some pratice and reading you'll understand.
 * 
 * NOTE:  All lines, except the opening { line, end in an ;, including the
 * closing } line. The IRCd will ignore commented lines.
 */

/* Type of comments */
#Comment type 1 (Shell type)
// Comment type 2(C++ style)
/* Comment type 3 (C Style) */
#those lines are ignored by the ircd.

/*
 * NEW: me {} 
 * OLD: M:Line 
 * me {} defines the name, description and unreal server numeric for
 * this server. Syntax is as follows: 
 * me { 
 *  name "server.name"; 
 *  info "Server Description";
 *  numeric (server numeric*);
 * }; 
 * If linking, this numeric may not be used by any other server on the network.
 */

me
{
	name "irc.foonet.com";
	info "FooNet Server";
	numeric 1;
};

/*
 * NEW: admin {} 
 * OLD: A:Line Admin gives information on the server admin. you
 * may put as many lines under admin { as you wish. 
 * Syntax is as follows:
 * admin {
 *   "first line"; 
 *   "second line"; 
 *   [etc]
 * };
 */
admin {
	"Bob Smith";
	"bob";
	"widely at used.name";
};

/*
 * NEW: class {} 
 * OLD: Y:line (old was confusing) 
 * These define settings for classes. A class is a group setting for 
 * connections. Example, server connections, instead of going to a client's
 * class, you direct it to the server class. Syntax is as follows
 * class (class name)
 * {
 *     pingfreq (how often to ping a user/server in seconds);
 *     maxclients (how many connections for this class);
 *     sendq (maximum send queue from a connection);
 *  };
 */

class           clients
{
	pingfreq 90;
	maxclients 500;
	sendq 100000;
};

class           servers
{
	pingfreq 90;
	maxclients 10;		/* Max servers we can have linked at a time */
	sendq 1000000;
	connfreq 100; /* How many seconds between each connection attempt */
};

/*
 * NEW: allow {} 
 * OLD: I:Line
 * This defines allowing of connections...
 * Basically for clients, it allows them to connect so you can have some
 * control and/or set a password. 
 * Syntax is as follows: 
 * allow {
 *    ip (ip mask to allow);
 *    hostname (host mask);
 *    class (class to send them to [see class {}]);
 *    password "(password)"; (optional)
 *    maxperip (how many connections per ip); (optional) 
 * };
 */

allow {
	ip             *;
	hostname       *;
	class           clients;
	maxperip 5;
};

/* Passworded allow line */
allow {
	ip             *@*;
	hostname       *@*.passworded.ugly.people;
	class           clients;
	password "f00Ness";
	maxperip 1;
};

/*
 * NEW: allow channel {} 
 * OLD: chrestrict 
 * Allows a user to join a channel...
 * like an except from deny channel. 
 * Syntax:
 * allow channel {
 *   channel "channel name";
 * };
 */
allow           channel {
	channel "#WarezSucks";
};

/*
 * NEW: oper {} 
 * OLD: O:Line 
 * Defines an IRC Operator
 * IRC operators are there to keep sanity to the server and usually keep it
 * maintained and connected to the network. 
 * The syntax is as follows: 
 * oper (login) { 
 *     class (class to put them in, if different from I, moves them to new
 *                class); 
 *     from { 
 *        userhost (ident at host);
 *        userhost (ident at host);
 *     }; 
 *     flags
 *     { 
 *       (flags here*);
 *     };
 *     OR
 *     flags "old type flags, like OAaRD";
 * };
 */

/* OLD OPER FLAG  | NEW FLAG NAME
	O		global
	o		local
	a		services-admin
	A		admin
	r		can_rehash
	E		eyes
	D		can_die
	R		can_restart
	h		helpop
	w		can_wallops
	g		can_globops
	c		can_localroute
	L		can_globalroute
	k		can_localkill
	K		can_globalkill
	b		can_kline
	B		can_unkline
	n		can_localnotice
	G		can_globalnotice
	N		netadmin
	T		techadmin
	C		coadmin
	u		get_umodec
	f		get_umodef
		z		can_zline
	W		get_umodew
	^		can_stealth
	H		get_host
*/

oper bobsmith {
	class           clients;
	from {
		userhost bob at smithco.com;
	};
	password "f00";
	flags
	{
		netadmin;
		global;
	};
};
/*
 * NEW: listen {}
 * OLD: P:Line
 * This defines a port for the ircd to bind to, to
 * allow users/servers to connect to the server. 
 * Syntax is as follows:
 * listen (ip number):(port number) 
 * { 
 *   options {
 *     (options here);
 *   };
 * };
 * or for a plain
 * listen: listen (ip):(port);
 * 
 * NOTICE: for ipv6 ips (3ffe:b80:2:51d::2 etc), use listen [ip]:port;
 * 
 * That works also.
 */

/* Options for listen:
	OLD	| 	NEW
	S		serversonly
	C		clientsonly
	J		java
	s		ssl
	*		standard
*/

listen         *:6601
{
	options
	{
		ssl;
		clientsonly;
	};
};

listen         *:8067;
listen         *:6667;

/*
 * NEW: link {}
 * OLD: C/N:Lines
 * This defines an okay for a server connection.
 * NOTE: BOTH SERVERS NEED A LINK {} SETTING TO CONNECT PROPERLY!
 * Syntax is as follows:
 * link (server name)
 * {
 *	username	(username, * works too);
 * 	hostname	(ip number/hostmask);
 *	bind-ip		(What IP to bind to when connecting, or *);
 *	port		(port to connect to, if any);
 *	hub (If this is a hub, * works, or servermasks it may bring in);
 *	[or leaf *;]
 *	password-connect "(pass to send)";
 *	password-receive "(pass we should recieve)";
 *	class		(class to direct servers into);
 *	options {
 *		(options here*);
 *	};
 * };
*/

/*
	options:
	OLD	|	NEW
	S		ssl
	Z		zip
	N/A		autoconnect
	N/A		quarantine
*/


link            hub.mynet.com
{
	username	*;
	hostname 	1.2.3.4;
	bind-ip 	*;
	port 		7029;
	hub             *;
	password-connect "LiNk";
	password-receive "LiNk";
	class           servers;
		options {
			autoconnect;
			ssl;
			zip;
		};
};
/*
 *
 * NEW: ulines {}
 * OLD: U:Line
 * Lets these server's clients do pretty much anything.
 * Syntax is as follows:
 * ulines {
 *	(server to uline);
 *	(server to uline);
 * };
 * You may put as many servers in there as you like.
*/
ulines {
	services.roxnet.org;
	stats.roxnet.org;
};

/*
 * NEW: drpass {}
 * OLD: X:Line
 * This defines the passwords for /die and /restart.
 * Syntax is as follows:
 * drpass { 
 *  restart		"(password for restarting)";
 *  die		        "(password for die)";
 * };
 */
drpass {
	restart "I-love-to-restart";
	die "die-you-stupid";
};

/*
 * NEW: log {} OLD: N/A Tells the ircd where and what to log(s). You can have
 * as many as you wish.
 * 
 * FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
 * 
 * NOTICE: Right now, SEGV messages are *always* sent to ircd.log. codemastr is
 * working on a way to redirect the messages to this log file. *
 * Syntax: 
 * log "log file" 
 * {
 *    flags
 *    {
 *        flag;
 *        flag; 
 *        etc.. 
 *    }; 
 * };
 */

log "ircd.log" {
	/* Delete the log file and start a new one when it reaches 2MB, leave this out to always use the 
	   same log */
	maxsize 2097152;
	flags {
		oper;
		kline;
		connects;
		server-connects;
		kills;
		errors;
	};
};

/*
 * NEW: alias {}
 * OLD: N/A
 * This allows you to set command aliases such as /nickserv, /chanserv etc
 * FLAGS: services, stats, normal
 *
 * Syntax:
 * alias "name" {
 *	nick "points to";
 *	type aliastype;
 * };
 */

// This points the command /nickserv to the user NickServ who is connected to the set::services-name server
/*alias NickServ {
	nick "NickServ";
	type services;
};*/

// If you want the command to point to the same nick as the command, you can leave the nick entry out
//alias ChanServ { type services; };

// Points the /statserv command to the user StatServ on the set::stats-name server
//alias StatServ { type stats; };

// Points the /superbot command to the user SuperBot
//alias SuperBot { type normal; };


/* Standard aliases */
alias NickServ { type services; };
alias ChanServ { type services; };
alias OperServ { type services; };
alias HelpServ { type services; };
alias StatServ { type stats; };

/*
 * NEW: alias {}
 * OLD: N/A
 * This allows you to set command aliases such as /identify, /services, etc
 *
 * Syntax:
 * alias "name" {
 *	format "format string" {
 *		alias "points to";
 *		parameters "parameters to send";
 *	};
 *	type command;
 * };
 */
/* This is shown seperately because even though it has teh same name as the previous directive, it is very
 * different in syntax, although it provides a similar function and relys on the standard aliases to work.
 */
/*
alias "identify" {
	format "^#" {
		alias "chanserv";
		parameters "IDENTIFY %1-";
	};
	format "^[^#]" {
		alias "nickserv";
		parameters "IDENTIFY %1-";
	};
	type command;
};
*/
/* The alias::format directive is a regular expression. The first format matches the /identify command when
 * the first character is a #. It then passes this along to the chanserv alias with the parameters IDENTIFY
 * %1-. The second format matches then /identify command when the first character is not a #. It then
 * passes the command to the nickserv alias with parameters IDENTIFY %1-.
 */

/* The alias::format::parameters is similar to scripting languages. %N (where N is a number) represents a
 * parameter sent to the command (in this case /identify). If you specify %N- it means all parameters from
 * N until the last parameter in the string.
*/

/* Standard aliases */
alias "services" {
	format "^#" {
		alias "chanserv";
		parameters "%1-";
	};
	format "^[^#]" {
		alias "nickserv";
		parameters "%1-";
	};
	type command;
};

alias "identify" {
	format "^#" {
		alias "chanserv";
		parameters "IDENTIFY %1-";
	};
	format "^[^#]" {
		alias "nickserv";
		parameters "IDENTIFY %1-";
	};
	type command;
};


/*
 * NEW: tld {}
 * OLD: T:Line
 * This sets a different motd and rules files
 * depending on the clients hostmask.
 * Syntax is as follows: 
 * tld {
 *    mask (ident at host);
 *    motd "(motd file)";
 *    rules "(rules file)";
 * };
 */

tld {
	mask *@*.fr;
	motd "ircd.motd.fr";
	rules "ircd.rules.fr";
};

/*
 * NEW: ban nick {}
 * OLD: Q:Line
 * Bans a nickname, so it can't be used.
 * Syntax is as follows:
 * ban nick {
 *	mask "(nick to ban)";
 *	reason "(reason)";
 * };
*/
ban nick {
	mask "*C*h*a*n*S*e*r*v*";
	reason "Reserved for Services";
};
/*
 * NEW: ban ip {}
 * OLD: Z:Line
 * Bans an ip from connecting to the network.
 * Syntax:
 * ban ip { mask (ip number/hostmask); reason "(reason)"; };
*/
ban ip {
	mask 195.86.232.81;
	reason "Delinked server";
};
/*
 * NEW: ban server {}
 * OLD: Server Q:Line
 * Disables a server from connecting to you.
 * Syntax is as follows:
 * ban server {
 *	mask "(server name)";
 *	reason "(reason to give)";
 * };
*/

ban server {
	mask eris.berkeley.edu;
	reason "Get out of here.";
};
/*
 * NEW: ban user {}
 * OLD: K:Line
 * This makes it so a user from a certain mask can't connect
 * to your server.
 * Syntax:
 * ban user { mask (hostmask/ip number); reason "(reason)"; };
*/

ban user {
	mask *tirc@*.saturn.bbn.com;
        reason "Idiot";
};

/*
 * NEW: ban realname {}
 * OLD: n:Line
 * This bans a certain realname from being used.
 * Syntax:
 * ban realname {
 *	mask "(real name)";
 * 	reason "(reason)";
 * };
*/

ban realname {
	mask "Swat Team";
	reason "mIRKFORCE";
};

ban realname {
	mask "sub7server";
	reason "sub7";
};

/*
 * NOTE FOR ALL BANS, they may be repeated for addition entries!
 * 
 * NEW: except ban {} 
 * OLD: E:Line
 * This makes it so you can't get banned. 
 * Syntax:
 * except ban { mask (ident at host); };
 * Repeat the except ban {} as many times
 * as you want for different hosts.
 */

except ban {
	/* don't ban stskeeps */
	mask           *stskeeps at 212.*;
};

/*
 * NEW: except socks {} 
 * OLD: e:Line
 * Makes it so scan.so doesn't scan you.
 *
 * except scan { mask (ip number/hostmask); }; 
 * repeat except scan {} for each ip to except.
 */

except scan {
	mask 216.73.27.177;
};
/*
 * NEW: deny dcc {} 
 * OLD: dccdeny.conf
 * Use this to block dcc send's... stops
 * viruses better. 
 * Syntax: 
 * deny dcc 
 * { 
 *   filename "file to block (ie, *exe)";
 *   reason "reason";
 * };
 */
deny dcc {
	filename "*sub7*";
	reason "Possible Sub7 Virus";
};

/*
 * NEW: deny channel {}
 * OLD: N/A (NEW)
 * This blocks channels from being joined.
 * Syntax:
 * deny channel {
 * 	channel "(channel)";
 * 	reason "reason";
 * };
*/
deny channel {
	channel "*warez*";
	reason "Warez is illegal";
};

/*
 * NEW: vhost {}
 * OLD: Vhost.conf file
 * This sets a fake ip for non-opers, or
 * opers too lazy to /sethost :P
 * Syntax:  
 *   vhost { 
 *       vhost (vhost.com); 
 *       from {
 *            userhost (ident at host to allow to use it);
 *       };
 *       login (login name);
 *       password (password);
 *   };
 *        then to use this vhost, do /vhost (login) (password) in IRC
 */
vhost {
	vhost           i.hate.microsefrs.com;
	from {
		userhost       *@*.image.dk;
	};
	login           stskeeps;
	password        moocowsrulemyworld;
};

/* You can include other configuration files */
/* include "klines.conf"; */

/*
 * Cloak-keys must be > 10000, and random. MUST be the same all over the
 * network
 * 
 * cloak-keys { 39999; 99398; 99397; }; for example
 */

/* Network configuration */
set {
	network-name 		"ROXnet";
	default-server 		"irc.roxnet.org";
	services-server 	"services.roxnet.org";
	stats-server 		"stats.roxnet.org";
	help-channel 		"#ROXnet";
	hiddenhost-prefix	"rox";
	prefix-quit 		"no";
	cloak-keys {
		9666;
		3333;
		3330;
	};
	/* on-oper host */
	hosts {
		local		"locop.roxnet.org";
		global		"ircop.roxnet.org";
		coadmin		"coadmin.roxnet.org";
		admin		"admin.roxnet.org";
		servicesadmin 	"csops.roxnet.org";
		techadmin 	"techadmin.roxnet.org";
		netadmin 	"netadmin.roxnet.org";
		host-on-oper-up "no";
	};
};

/* Server specific configuration */

set {
	kline-address "set.this.email";
	modes-on-connect "+xw";
	oper-auto-join "#opers";
	dns {
		nameserver 127.0.0.1;
		timeout 2s;
		retries 2s;
	};
	options {
		enable-opermotd;
		enable-chatops;
		hide-ulines;
		identd-check;
		show-connect-info;
	};

	socks {
		ban-message "Insecure SOCKS server";
		quit-message "Insecure SOCKS server";
		ban-time "4d";
	};
	maxchannelsperuser 10;
	/* The minimum time a user must be connected before being allowed to use a QUIT message,
	 * This will hopefully help stop spam */
	anti-spam-quit-message-time 10s;
	
	/* This allows you to make certain stats oper only, use * for all stats or leave this out to allow 
	 * all users to use any stats. */
	oper-only-stats "okG";
};
/*
 * Need more help ? 
 * 1) Read the documentation like this file
 * 2) Come to irc.ircsystems.net #Unreal-Support
 * 3) Mail supporters at lists.unrealircd.org
 * 
 * Hope this helps you, -Osiris
 */
-------------- next part --------------
                                       ***************************************
                                       ********* UnrealIRCd Commands *********
                                       ***************************************
                                      
                                                     v2.0
						
                                                      By:
                                    
                                          hAtbLaDe <hAtbLaDe at Roxnet.org>



            Many times I have had users asking me how some command works & what are all the different
      options they can use with it. So I thought it would be a good idea & helpful for both chatters & IRC
      Operators , If they had a centralised command reference , rather than having to look all over for
      the syntax of new or old commands. In this list , I have tried to incorporate all the commands which
      work on UnrealIRCd , as best as possible. In case I have missed out any or there are any errors , please
      let me know , so I can fix them in the next amendment. With new features and modes being added all the
      time , this manual will be ever changing :-)


           Here is the command list :      


      **** NICK Command ***
   
      Changes your "Online Identity" on a server. All those in the channel you are in will be
      alerted of your nickname change.

      Syntax:  NICK <new nickname>
      Example: NICK hAtbLaDe1

      *** WHOIS Command ***

      Shows information about the user in question, such as their "Name", channels they are
      currently in, their hostmask, etc.

      Syntax:  WHOIS <user>
      Example: WHOIS hAtbLaDe

      *** WHO Command ***

      Searches User Information (-i users only) for supplied information. IRCops are able to
      search +i users & can use masks only. When used on a channel , it will give a list of 
      all the non-invisible users on that channel.
      
      Syntax:  WHO <mask>
               WHO <nickname>
               WHO <#channel>   
               WHO 0 o (Lists all Online IRC Operators currently online and not +i)
      Example: WHO *.aol.com
               WHO *Bot*
               WHO #UnrealIRCd

      *** WHOWAS Command ***

      Retrieves previous 'WHOIS' information for users no longer connected to the server.

      Syntax:  WHOWAS <nickname>
               WHOWAS <nickname> <max number of replies>
      Example: WHOWAS hAtbLaDe

      *** NAMES Command ***
  
      Provides a list of users on the specified channel.

      Syntax:  NAMES <channel>
      Example: NAMES #Support

      *** ISON Command ***
 
      Used to determine of a certain user or users are currently on the IRC server based upon
      their nickname.

      Syntax:  ISON <user> <user2> <user3> <user4>
      Example: ISON hAtbLaDe NickServ ChanServ OperServ MemoServ

      *** JOIN Command ***
   
      Used to enter one or more channels on an IRC server. All occupants of the channel will be
      notified of your arrival. JOIN with 0 as a parameter makes you Part all channels.

      Syntax:  JOIN <chan>,<chan2>,<chan3>
               JOIN 0 (Parts all channels)
      Example: JOIN #Support
               JOIN #Support,#Lobby

      *** PART Command ***
 
      Used to part (or leave) a channel you currently occupy. All those in the channel will be
      notified of your departure.

      Syntax:  PART <chan>,<chan2>,<chan3>,<chan4>
      Example: PART #Support
               PART #Lobby,#Support

      *** MOTD Command ***

      Displays the Message Of The Day.

      Syntax: MOTD
              MOTD <server>
 
      *** RULES Command ***

      Reads the ircd.rules file and sends the contents to the user.

      Syntax: RULES
              RULES <server>

      *** LUSERS Command ***

      Provides Local and Global user information (Such as Current and Maximum user count).

      Syntax: LUSERS

      *** MAP Command ***
      
      Provides a "Network Map" of the IRC network. Mainly used for routing purposes.

      Syntax: MAP

      *** QUIT Command ***

      Disconnects you from the IRC server. Those in the channels you occupy will be notified of
      your departure. If you do  not specify a reason, your nickname becomes the reason.

      Syntax:  QUIT <reason>
      Example: QUIT Leaving!

      *** PING Command ***

      The PING command is used to test the presence of an active client or
      server at the other end of the connection.  Servers send a PING
      message at regular intervals if no other activity detected coming
      from a connection.  If a connection fails to respond to a PING
      message within a set amount of time, that connection is closed.  A
      PING message MAY be sent even if the connection is active.
      Note that this is different from a CTCP PING command..

      Syntax:  PING <server> <server2>
      Example: PING irc.fyremoon.net
               PING hAtbLaDe
               PING hAtbLaDe irc2.dynam.ac

      *** PONG Command ***

      PONG message is a reply to ping message.  If parameter <server2> is
      given, this message will be forwarded to given target.  The <server>
      parameter is the name of the entity who has responded to PING message
      and generated this message.

      Syntax:  PONG <server> <server2> 
      Example: PONG irc.fyremoon.net irc2.dynam.ac 
               (PONG message from irc.fyremoon.net to irc2.dynam.ac).
 
      *** VERSION Command ***

      Provides version information of the IRCd software in usage.

      Syntax: VERSION
              VERSION <server>

      *** STATS Command ***

      Provides certain Statistical information about the server 

      Syntax:  STATS <flags>
      Example: STATS u

          ### Stats Flags ###

          k = Lists all the current K:Lines, Z:Lines (Banned hosts/IP) & E:Lines (K:Line exceptions)
          g = Lists all the current G:Lines (Banned hosts) & Shuns
          E = Lists all the current E:Lines (K:Line Exceptions)
          f = Lists all the current F:lines (Filename masks on DCCDENY)
          O = Lists all the current O:Lines (IRC Operator Lines)
          Q = Lists all the current Q:Lines (Forbidden Nicks)
          C = Lists all the current C/N:Lines (Servers to connect or accept connects from)
          H = Lists all the current H:Lines (Hub Lines) & L:Lines (Leaf Lines)
          n = Lists all the current n:Lines (GECOS Deny)
          V = Lists all the current VHost lines
          T = Lists all the current T:Lines (Specific MOTD/Rules Lines)
          Y = Lists all the current Y:Lines (Connection classes)
          U = Lists all the current U:Lines (Usually Services)
          v = Lists all the current V:Lines (Version Deny)
          D = Lists all the current D:Lines (Disallow Lines-Oper & Server Orig Connects)
          d = Lists all the current d:Lines (Disallow Lines-Autoconnects)
          e = Lists all the current e:Lines (Proxy scan exempt IPs)
          I = Lists all the current I:Lines (Client auth Lines)
          F = Lists all the current F:Lines (DCCDENY Lines)
          r = Lists all Channel Restrict lines
          N = Lists the Network Configuration report
          S = Gives the Dynamic Configuration report
          W = Gives the current Server Load
          q = Lists all the SQLINEed Nicks
          u = Server Uptime
          m = Gives the Server command list
          z = Gives Misc Server Information
          s = Returns the scache and NS numbers
          t = Returns Misc Info
          L = Information about current server connections

      *** LINKS Command ***

      Lists all of the servers currently linked to the network.

      Syntax: LINKS

      *** ADMIN Command ***

      Provides Administrative information regarding the server.

      Syntax: ADMIN <server>

      *** USERHOST Command ***

      Returns the userhost of the user in question. Usually used by scripts or bots to retrieve
      userhost information.

      Syntax:  USERHOST <nickname>
      Example: USERHOST hAtbLaDe

      *** TOPIC Command ***

      Sets/Changes the topic of the channel in question, or just display the current Topic.

      Syntax:  TOPIC <channel>
               TOPIC <channel> <topic>
      Example: TOPIC #operhelp
               TOPIC #Lobby Welcome to #Lobby!!
      
      *** INVITE Command ***

      Sends a user an invitation to join a particular channel. You must be an Operator on the
      channel in order to invite a user into it.

      Syntax:  INVITE <user> <channel>
      Example: INVITE hAtbLaDe #Support

      *** KICK Command ***

      Removes a user from a channel. Can only be used by Operators or Half-Ops. If no reason is
      specified, your nickname becomes the reason.

      Syntax:  KICK <channel>[,<channel2>..] <user>[,<user2>..] <reason>
      Example: KICK #Lobby foobar Language!
               KICK #Lobby,#OperHelp Lamer23,Luser12 Lamers!

      *** AWAY Command ***

      Sets your online status to "Away".

      Syntax:  AWAY <reason> (Marks you as 'Away' with the reason given) 
               AWAY          (Un-marks you as 'Away')
      Example: AWAY Lunch time!

      *** WATCH Command ***

      Watch is a new notify-type system in UnrealIRCd which is both faster
      and uses less network resources than any old-style notify
      system. The server will send you a message when any nickname
      in your watch list logs on or off.
      The watch list DOES NOT REMAIN BETWEEN SESSIONS - you (or your
      script or client) must add the nicknames to your watch list every
      time you connect to an IRC server.

      Syntax : WATCH +nick1 +nick2 +nick3  (Add nicknames)
               WATCH -nick                 (Delete nicknames)
               WATCH                       (View the watchlist)
 
      *** HELPOP Command ***

      HelpOp is a new system of getting IRC Server help. You type either
      /HELPOP ? <help system topic>  or /HELPOP ! <question>
      The "?" in /HELPOP means query the help system and if you get no
      response you can choose '!' to send it to the Help Operators online
      Using neither ? nor ! will mean the command will be first queried
      within the help system and if no match if found , it will be 
      forwarded to the help operators.
      
      Example: HELPOP ?CHMODES  (Channel Modes Help)
               HELPOP ?UMODES   (User Mode Help)


      *** LIST Command ***
	
      Provides a complete listing of all channels on the network. If a search string is
      specified, it will only show those matching the search string.

      Syntax:  LIST <search string>
      Example: LIST
               LIST *ircd*

      New extended /LIST command options are supported.  To use these
      features, you will likely need to prefix the LIST command with
      /QUOTE to avoid your client interpreting the command.

      Usage: /QUOTE LIST options
	
      If you don't include any options, the default is to send you the
      entire unfiltered list of channels. Below are the options you can
      use, and what channels LIST will return when you use them.
      >number  List channels with more than <number> people.
      <number  List channels with less than <number> people.
      C>number List channels created between now and <number> minutes ago.
      C<number List channels created earlier than <number> minutes ago.
      T>number List channels whose topics are older than <number> minutes
               (Ie., they have not changed in the last <number> minutes.
      T<number List channels whose topics are newer than <number> minutes.
      *mask*   List channels that match *mask*
      !*mask*  List channels that do not match *mask*

      NOTE : C & T parameters do not exist in Unreal 3.1.1-Darkshades.
      LIST defaults to sending a list of channels with 2 or more members,
      so use the >0 option to get the full channel listing.  

      *** PRIVMSG/NOTICE Command ***

      PRIVMSG and NOTICE, which are used internally by the client for
      /msg and /notice, in UnrealIRCd support two additional formats:
      /msg @#channel <text> will send the text to channel-ops on the
      given channel only. /msg @+#channel <text> will send the text
      to both ops and voiced users on the channel. While some clients
      may support these as-is, on others (such as ircII), it's necessary
      to use /quote privmsg @#channel <text> instead. You can also use
      % to signify HalfOps on the channel.

      Syntax:  MSG <nick>,<nick2>,<nick3>,<nick4> :<text>
      Example: PRIVMSG hAtbLaDe :Hello. 
               PRIVMSG hAtbLaDe,Hatter,GoodBot :Hello everyone!

      The format for the NOTICE command is the same as above.

      **** KNOCK Command ****

      For channels which are invite only, you can "Knock" on the channel to request an invite.
  
      The following criteria must be met : 
          - Channel is not +K (No knocks)
          - Channel is not +I (No invites!)
          - You're not banned!
          - And you are not already there

      Syntax:  KNOCK <channel> <message>
      Example: KNOCK #secret_chan I'm an op, let me in!
     
      *** SETNAME Command ***

      Allows users to change their 'Real name'
      directly online at IRC without reconnecting
   	
      Syntax: SETNAME <New Real Name>

      *** VHOST Command ***

      Hides your real hostname with a virtual hostname provided by the IRC server , using SetHost.

      Synatx:  VHOST login password
      Example: VHOST IWant newhost

      *** MODE Command ***

      Sets a mode on a Channel or User.
      UnrealIRCd has got some new Channel & User modes.
  
      Syntax:  MODE <channel/user> <mode>
      Example: MODE #Support +tn
               MODE #Support +ootn hAtbLaDe cb

		### Channel Modes ###
        
		p = Private channel
		s = Secret channel
		i = Invite-only allowed
		m = Moderated channel, noone can speak except users with mode +voh
		n = No messages from outside channel
		t = Only channel operators may set the topic
		r = Channel is registered
		R = Requires a registered nickname to join the channel
		c = No ANSI color can be sent to the channel (ColourBlock)
		q = Channel owner 
	      (*)Q = No kicks able in channel unless by U:Lines 
		O = IRCop only channel (Setable by IRCops)
		A = Administrator only channel (Setable by Admins)
		K = /Knock is not allowed
		V = /Invite is not allowed
		S = Strip all incoming colours away
		l <number of max users> = Channel may hold at most <number> of users
		b <nick!user at host>      = Bans the nick!user at host from the channel
		k <key>                 = Needs the channel key to join the channel
		o <nickname>            = Gives operator status to the user
		v <nickname>            = Gives voice to the user (May talk if chan is +m)
		L <chan2>               = If +l is full, the next user will auto-join <chan2>
		a <nickname>            = Gives protection to the user (No kick/drop)
		e <nick!user at host>      = Exception ban - If someone matches it
                                            they can join even if a ban matches them
	     (**)h <nickname>            = Gives halfop status to the user 
		f [*]<lines>:<seconds>  = Flood protection, if the * is given a user will
                                            be kick banned when they send <lines> in <seconds>
                                            If * is not given they are just kicked
		H                       = No +I users may join that channel. (Setable by Admins).
		N                       = No nickname changes are permitted in the channel.
		^                       = Reports Channel modes in bitstring.
                                            (Only exists in Development Versions i.e #define DEVELOP) 
		G                       = Makes the channel G Rated. Any words in badwords.channel.conf
                                            are replaced with <censored> in channel messages. 
		u                       = "Auditorium". Makes /names and /who #channel only show @'s
		C                       = No CTCPs allowed in the channel.
		z                       = Only Clients on a Secure Connection (SSL) can join.

 		(*)   Channel mode +Q 
   			This is the 'peace' mode. Noone can kick each other 
   			except by U:Lines. Bans can be placed though.

		(**)  Channel halfops (+h)  
  			If you are marked as halfop (% in /names) you can do:
    		          - Set topic
  		          - Kick non-ops
  		          - Set modes +vmntibe

		### User Modes ###

		O = Local IRC Operator
		o = Global IRC Operator
		i = Invisible (Not shown in /who searches)
		w = Can listen to wallop messages
		g = Can read & send to globops, and locops
		h = Available for help
		s = Can listen to server notices
		k = See's all the /KILL's which were executed
		S = For services only. (Protects them)
		a = Is a Services Administrator
		A = Is a Server Administrator
		N = Is a Network Administrator
		T = Is a Tech Admininistator
		C = Is a Co Administrator
		c = See's all Connects/Disconnects on local server
		f = Listen to flood alerts from server
		r = Identifies the nick as being registered
		x = Gives the user hidden hostname
		e = Can listen to server messages sent to +e users
		b = Can read & send to chatops
		W = (IRC Operators only) Lets you see when people does a /whois on you
		q = (Services Admins only) Only U:lines can kick you
		B = Marks you as being a Bot
		F = Lets you recieve far Connect notices & Local notices.
		I = Invisible Join/Part. Makes you being hidden at channels
		H = (IRC Operators only) Hide IRC Operator status in /who and /whois
		d = Makes it so you can not recieve channel messages
		v = Receive infected DCC send rejection notices
		t = Says that you are using a /vhost
		G = Filters out all bad words (badwords.message.conf) in messages with <censored>
		z = Marks the client as being on a Secure Connection (SSL).



	*** CREDITS Command ***
 
  	This command will list the credits to all the people who helped create UnrealIRCd
         	
	Syntax: CREDITS
	        CREDITS <server>


   	*** DALINFO Command ***

   	This command will list the Credits that the Dreamforge IRCd team/the IRCd developers
   	from the start when IRCd got developed
   	
	Syntax: DALINFO
 	        DALINFO <server>

	*** LICENSE Command ***
 
 	This command shows the GNU License Which is hard-coded into the IRCd

	Syntax: LICENSE
	        LICENSE <server>

        *** TIME Command ***

        Lists the current Server Date and Time.

        Syntax: TIME
                TIME <server>

        *** BOTMOTD Command ***

        Lists the IRCd Bot Message Of The Day

        Syntax: BOTMOTD
                BOTMOTD <server>
      	
        *** SILENCE Command ***

        Ignores messages from a user or list of users at the Server itself.

        Syntax: SILENCE +<nickname> (Adds a nickname to SILENCE list).
                SILENCE -<nickname> (Removes a nickname from the SILENCE list).
                SILENCE             (Lists the current SILENCE list)

        *** IDENTIFY Command ***

        An alias to allow you to identify to NickServ or ChanServ with your password.
        If it cannot find NickServ or ChanServ , it will report services as down.

        Syntax: IDENTIFY <password>            (Identify to NickServ)
                IDENTIFY #<channel> <password> (Identify to ChanServ as Founder of #channel)
        

	

					*********************************      
					***** IRC Operator Commands *****
					*********************************


      *** OPER Command ***

      Attempts to give a user IRC Operator status.
 
      Syntax:  OPER <uid> <password>
      Example: OPER hAtbLaDe foobar234

      *** WALLOPS Command ***

      Sends a "Message" to all those with the umode +w. Only IRCops can send wallops,
      while anyone can view them.
 
      Syntax: WALLOPS <message>

      *** GLOBOPS Command ***

      Sends a global "Message" to all IRCops. Only viewable by IRCops
      (unlike WALLOPS, which can be viewed by normal users).
 
      Syntax:  GLOBOPS <message>
      Example: GLOBOPS Going to be akilling those clones...

      *** CHATOPS Command ***

      GLOBOPS is usually reserved for important network information. Therefore, for Oper Chat,
      CHATOPS was invented. IRCops  with the +c flag enabled will be able to send/receive CHATOPS messages.
  
      Syntax:  CHATOPS <message>
      Example: CHATOPS How's everyone doing today?

      *** LOCOPS Command ***

      Similar to GLOBOPS, except only received by those IRCops local to your server.
 
      Syntax:  LOCOPS <message>
      Example: LOCOPS Going to be adding a temp k:line for that user...

      *** ADCHAT Command ***

      This command sends to all Admins online
      Only for Admins. This is a ChatOps style command
 
      Syntax:  ADCHAT <text>
      Example: ADCHAT Hey guys!
  
      *** NACHAT Command ***

      This command sends to all NetAdmins & TechAdmins online
      Only for Net/Techadmins. This is a ChatOps style command

      Syntax:  NACHAT <text>
      Example: NACHAT Hey guys!
   	
      *** TECHAT Command ***

      This command sends to all TechAdmins online
      Only for Net/Techadmins. This is a ChatOps style command

      Syntax:  TECHAT <text>
      Example: TECHAT Hey guys!

      *** KILL Command ***

      Forcefully Disconnects a user from an IRC Server.
      IRC Operators only.
  
      Syntax:  KILL <user> <reason>
      Example: KILL Clone5 Cloning is not allowed

      *** KLINE Command ***
 
      "Bans" a hostmask from connection to the IRC server.
      The user can however connect to other servers on the network !!
      IRC Operators only.
 
      Syntax:  KLINE <hostmask> <reason>
      Example: KLINE *@*.aol.com Abuse

      *** UNKLINE Command ***

      Removes a k:line from the server.
      IRC Operators only.
 
      Syntax:  UNKLINE <hostmask>
      Example: UNKLINE *@*.aol.com

      *** ZLINE Command ***

      Disables all access to the IRC server from a specified IP.
      The IP can however connect to other servers on the network !!
      IRC Operators only.
 
      Syntax:  ZLINE <ip> :reason
      Example: ZLINE 127.0.0.1 :Localhost

      *** UNZLINE Command ***

      Removes a currently active z:Line.
      IRC Operators only.
 
      Syntax:  UNZLINE <ip>
      Example: UNZLINE 127.0.0.1

      *** GLINE command ***

      This command provides timed G:Lines. If you match
      a G:Line you cannot connect to ANY server on the
      IRC network. A time of 0 in the GLINE makes it permanent (Never Expires).
      In Unreal 3.1.1 you may also specify the time in the format 1d10h15m30s.  
      IRC Operators only.

      Syntax:  GLINE <user at host mask> <seconds to be banned> :<reason> (Adds a G:line for user at host) 
               GLINE -<user at host mask>          (Removes a G:line for user at host)
      Example: GLINE *@*.dal.net 900 :Spammers  (Adds a 15 min G:line)
               GLINE *@*.dal.net 1d5h :Spammers (Adds a 29 hour G:line)
   	
      *** SHUN Command ***
     
      Prevents a user from executing ANY command except ADMIN and respond to Server Pings.
      This effectively prevents them from doing anything on the server.
      A time of 0 on the SHUN makes it permanent (Never Expires).
      In Unreal 3.1.1 you may also specify the time in the format 1d10h15m30s.  
      IRC Operators only.
      
      Syntax :  SHUN <nickname> <time> :<Reason>    (Shun the nickname for time)
                SHUN +<user at host> <time> :<Reason>  (Shun the user at host for time)
                SHUN -<user at host>                   (Removes the SHUN for user at host)
                SHUN                                (View the current SHUN list)

      Example : SHUN +foobar at aol.com 600 :Spamming (Shuns foobar at aol.com for 10 mins for Spamming) 
                SHUN +foobar at aol.com 1d6h :Spamming (Adds a 30 hour SHUN)

      *** AKILL Command *** (Use Services AKILL Instead)

      Adds an Autokill for the specific host mask. This prevents any user from that 
      hostmask from connecting to the network. 
      Services Admin & above only ..
  
      Syntax :  AKILL <user at host> :<Reason>
      Example : AKILL foo at aol.com :Spammers!

      *** RAKILL Command *** (Use Services AKILL Instead)
      
      Removes an AKILL set by an IRC Operator or Services.
      Services Admin & above only ..
   
      Syntax : RAKILL <user at host>      

      *** REHASH Command ***

      Prompts the server to reread the configuration files.
      IRC Operators only.
  
      Syntax: REHASH <servername> -<flags>
              REHASH -<flags>

      If servername and flags are not specified this rehashes the ircd.conf , removing
      any temporary k:lines.
      If servername is specified, this is used to rehash config files on servername
      Only TechAdmins and NetAdmins may specify a server name
      
      The flags are used to rehash other config files, valid flags are: 
            -dccdeny   - Rehashes dccdeny.conf
            -dynconf   - Rehashes UnrealIRCd Config and Network file
            -restrict  - Rehashes chrestrict.conf
            -vhost     - Rehashes vhost.conf
            -motd      - Rehashes all MOTD files and RULES files (including T:lines)
            -opermotd  - Rehashes the OPERMOTD
            -botmotd   - Rehashes the BOTMOTD
            -garbage   - Force garbage collection
            -badwords  - Rehashes the badwords config.

      *** RESTART Command ***

      Kills and restarts the IRC daemon, disconnecting all users currently on that server.
      IRC Operators only.
 
      Syntax: RESTART
              RESTART <password>
              RESTART <server> <password>

      *** DIE Command ***

      Kills the IRC daemon, disconnecting all users currently on the current server.
      IRC Operators only.
 
      Syntax: DIE
              DIE <password>
 
      *** LAG Command ***

      This command is like a Sonar or Traceroute for IRC servers
      You type in /LAG irc.fyremoon.net and it will
      reply from every server it passes with time and so on
      Useful for looking where lag is and optional TS future/past travels

      Syntax: LAG <servername>

      *** SETHOST Command ***

      This command is so you can change your
      Virtual host (hiddenhost) to everything you want to,
      Except special characters. 
      IRC Operators only.
	
      Syntax:  SETHOST <new hostname>
      Example: SETHOST microsoft.com
   	
      *** SETIDENT Command ***

      With this command you can change your Ident (username).
      IRC Operators only.
   	
      Syntax:  SETIDENT <new ident>
      Example: SETIDENT root

      *** CHGHOST Command ***

      Changes the hostname of a user currently on the IRC network.
      IRC Operators only.
 
      Syntax:  CHGHOST <nick> <host>
      Example: CHGHOST hAtbLaDe code.slashdot.org

      *** CHGIDENT Command ***

      Changes the ident of a user currently on the IRC network.
      IRC Operators only.
 
      Syntax:  CHGIDENT <nick> <ident>
      Example: CHGIDENT hAtbLaDe FreeBSD

      *** CHGNAME Command ***

      Changes the "IRC Name" (or "Real Name") of a user currently on the IRC network.
      IRC Operators only.
      
      Syntax:  CHGNAME <nick> <name>
      Example: CHGNAME hAtbLaDe TechAdmin on SomeNet

      *** SQUIT Command ***

      Disconnects an IRC Server from the network
      IRC Operators only.
 
      Syntax:  SQUIT <server>
      Example: SQUIT leaf.*

      *** CONNECT Command ***

      Links another IRC server to the one you are currently on. Remote connections are also
      possible.
      IRC Operators only.
 
      Syntax:  CONNECT <server>
               CONNECT <hub> <port> <leaf>
      Example: CONNECT leaf.*
               CONNECT hub.* 6667 leaf.*

      *** DCCDENY Command ***
   
      Adds a DCC Deny for that filename mask. This means that any DCC sends of that filename mask
      through the server will be rejected.
      IRC Operators only.

      Syntax : DCCDENY <filename mask> <reason>

      *** UNDCCDENY Command ***
 
      If the EXACT file you type is found it is removed, else it uses wildcards to search
      IRC Operators only.

      Syntax : UNDCCDENY <filename mask>

      *** SAJOIN Command ***

      Forces a user to join channel(s). Can only be used by a Services Admin.
 
      Syntax:  SAJOIN <nick> <channel>[,<channel2>..]
      Example: SAJOIN hAtbLaDe #OperHelp
               SAJOIN hAtbLaDe #Support,#IRCHelp

      *** SAPART Command ***

      Forces a user to leave channel(s). Can only be used by a Services Admin.
 
      Syntax:  SAPART <nick> <channel>[,<channel2>..]
      Example: SAPART hAtbLaDe #OperHelp
               SAPART hAtbLaDe #Support,#IRCHelp

      *** SAMODE Command ***
 
      Allows a Services Administrator to change the mode on a channel,
      without having Operator status.
 
      Syntax:  SAMODE <channel> <mode>
      Example: SAMODE #Support +m

      *** RPING Command ***	

      This will calculate the milliseconds (Lag) between servers
	
      Syntax: RPING <servermask>

      *** TRACE Command ***
  
      TRACE is useful to know what servers are connected to
      what. Sometimes TRACE can be confusing, especially if you are using
      it for the first time.  

      Syntax:  TRACE <servername> 
      Example: TRACE irc.fyremoon.net

      *** OPERMOTD Command ***

      Shows the IRCd Operator MOTD
      IRC Operators only.

      Syntax: OPERMOTD

      *** ADDMOTD Command ***

      This will add the text you specify to the MOTD
      (the general motd - T:lines doesnt count ..)
      Server Admin & Co-Admin only

      Syntax: ADDMOTD :text

      *** ADDOMOTD Command ***

      This will add the text you specify to the Operator MOTD
      Server Admin & Co-Admin only
	
      Syntax: ADDOMOTD :text

      *** SDESC Command ***

      With this command you can change your Server Info Line
      Without having to squit and reconnect.
      This is a Server Admin/Co Admin only command
   	
      Syntax:  SDESC <New description>
      Example: SDESC If you belong to me..		

      *** ADDLINE Command ***

      This command can be used to add lines to the ircd.conf file
      Only for Server Admins

      Syntax: ADDLINE <line>

      *** MKPASSWD Command ***

      This command will encrypt the string it has been given
      So u can add it directly to the ircd.conf if you use
      Encrypted passwords. 

      Syntax : MKPASSWD <string to be encrypted>

      *** TSCTL Command ***

      This is a highly advanced command
      IRC Operators only.

      Syntax: TSCTL OFFSET +|- <time>   (Adjust internal IRC clock)
              TSCTL TIME                (Will give TS report)
              TSCTL ALLTIME   (Shows the TS report of all Servers)
              TSCTL SVSTIME <timestamp>  (Sets the Time on all servers)

      *** HTM Command ***

      Switches the server In & Out of High Traffic Mode
      It is activated when the server is receiving extremely high amounts of information
      IRC Operators only.

      Syntax: HTM [option]

      If no option is specified it just displays the current HTM state
      If an option is specified it does a more specific task, valid options are:

      ON         - Force HTM to activate
      OFF        - Force HTM to deactivate
      NOISY      - Make HTM announce when it is entering/leaving HTM
      QUIET      - Stop HTM from announcing when it is entering/leaving HTM
      TO <value> - Tell HTM at what incoming rate to activate HTM



					*****************************************
					*** Services Commands (U:Lined Server)***
					*****************************************

      These commands can only be used by Services or some other server which has a U Line & so is allowed to
      make changes to the IRC Environment without any hindering. Most times 'raw' commands to services can
      only be sent by a person who is on the Services Operator , Services Administrator or who is the Services
      root.    
   
      *** SVSNICK Command ***

      Changes the nickname of the user in question.
      Must be sent through an U:Lined server.    

      Syntax:  SVSNICK <nickname> <new nickname> <timestamp>
      Example: SVSNICK hAtbLaDe Foobar 963086432

      *** SVSMODE Command ***

      Changes the mode of the user in question.
      Must be sent through an U:Lined server.    
 
      Syntax:  SVSMODE <nickname> <usermode>
      Example: SVSMODE hAtbLaDe +i

      *** SVSKILL Command ***

      Forcefully disconnects a user from the network.
      Must be sent through an U:Lined server.    
 
      Syntax:  SVSKILL <user> :<reason>
      Example: SVSKILL Lamer21 :Goodbye

      *** SVSNOOP Command ***

      Enabled or disables whether Global IRCop functions exist on the server in question or not.
      Must be sent through an U:Lined server.    
 
      Syntax:  SVSNOOP <server> <+/->
      Example: SVSNOOP leaf.* -

      *** SVSJOIN Command ***

      Forces a user to join a channel. 
      Must be sent through an U:Lined server.    
     
      Syntax:  SVSJOIN <nick> <channel>[,<channel2>..]
      Example: SVSJOIN hAtbLaDe #jail
               SVSJOIN hAtbLaDe #jail,#zoo

      *** SVSPART Command ***

      Forces a user to leave a channel.
      Must be sent through an U:Lined server.    
    
      Syntax:  SVSPART <nick> <channel>[,<channel2>..]
      Example: SVSPART hAtbLaDe #Hanson
               SVSPART hAtbLaDe #Hanson,#AOL

      *** SVSO Command ***

      Gives nick Operflags like the ones in O:lines, remember to set SVSMODE +o and alike.
      Must be sent through an U:Lined server.    

      Syntax:  SVSO <nick> <+operflags>    (Adds the Operflags)
               SVSO <nick> -               (Removes all O:Line flags)
      Example: SVSO SomeNick +bBkK

      *** SWHOIS Command ***

      Changes the WHOIS message of the Nickname.
      Must be sent through an U:Lined server.    

      Syntax:  SWHOIS <nick> :<message>     (Sets the SWHOIS)
               SWHOIS <nick> :              (Resets the SWHOIS)
      Example: SWHOIS SomeNick :is a lamer

      *** SQLINE Command ***

      Bans a Nickname or a certain Nickname mask from the Server.
      Must be sent through an U:Lined server.    

      Syntax : SQLINE <nickmask> :<Reason>
      Example: SQLINE *Bot* :No bots

      *** UNSQLINE Command ***

      Un-Bans a Nickname or Nickname mask
      Must be sent through an U:Lined server.    

      Synax :  UNSQLINE <nickmask> 
      Example: UNSQLINE *Bot*

      *** SVS2MODE Command ***

      Changes the Usermode of a nickname
      Must be sent through an U:Lined server.    

      Syntax : :services.somenet.com SVS2MODE <nickname> +<mode> 
      Example: :services.roxnet.org SVS2MODE hAtbLaDe +h

      *** SVSFLINE Command ***

      Adds the given Filename mask to DCCDENY
      Must be sent through an U:Lined server.    

      Syntax: :server SVSFLINE + file :reason (Add the filename)
              :server SVSFLINE - file (Deletes the filename)
              :server SVSFLINE *      (Wipes the DCCDENY list)

      *** SVSMOTD Command ***

      Changes the Services Message Of The Day
      Must be sent through an U:Lined server.    

      Syntax:  SVSMOTD # :<text> (Adds to Services MOTD)
               SVSMOTD !         (Deletes the MOTD)
               SVSMOTD ! :<text> (Deletes and Adds text)
      Example: SVSMOTD # :Services MOTD



                   
                                    ***********************************
                                    ***** UnrealIRCd O:Line flags ***** 
                                    ***********************************
	

		 r = Access to /rehash server
		 h = Oper can send /help ops - gets +h on oper up
		 g = Oper can send /globops
		 w = Oper can send /wallops
		 l = Oper can send /locops
		 c = Access to do local /squits and /connects
		 k = Access to do local /kills
		 b = Oper can /kline users from server
		 B = Oper can /unkline users from server
		 n = Oper can send local server notices (/notice $servername message)
		 u = Oper can set /umode +c
		 f = Oper can set /umode +f
		 O = Global oper, flags included: oRDK
		 o = Local oper, flags included: rhgwlckbBnuf
		 R = Access to /restart server
		 D = Access to /die server
		 K = Access to do global /kills
		 A = Gets +A on oper up. Server Administrator
		 a = Gets +a on oper up. Services Administrator
		 N = Gets +N on oper up. Network Administrator
		 T = Gets +T on oper up. Technical Administator
		 C = Gets +C on oper up. Co Administrator
		 Y = Access to do remote /squits and /connects
		 z = Can add /zlines
		 H = Gets +x on oper up.
		 W = Gets +W on oper up.	  
		 ^ = Allows to use umode +I
		 * = Flags AaNCTzSHW^


More information about the IRC-Dev mailing list