#!/bin/bash
# -*- coding: utf-8 -*-
###########################################################################
# #
# envbot - an irc bot in bash #
# Copyright (C) 2007-2008 Arvid Norlander #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program. If not, see . #
# #
###########################################################################
# This file contains a list of numerics that we *currently use*.
# It is therefore incomplete.
# Sources:
# RFC 1459
# RFC 2812
# http://www.alien.net.au/irc/irc2numerics.html
# http://www.inspircd.org/wiki/List_Of_Numerics
# These are from RFC 1459, if not mentioned otherwise
##########################
# Number -> name mapping #
##########################
# During connect, these are sent. They are NOT part of RFC 1459.
# For some format of the parameters varies between servers.
numeric[1]=RPL_WELCOME # "Welcome to "
numeric[2]=RPL_YOURHOST # "Your host is , running version "
numeric[3]=RPL_CREATED
numeric[4]=RPL_MYINFO # " "
numeric[5]=RPL_ISUPPORT # Not in any RFC. See http://www.irc.org/tech_docs/005.html for incomplete list.
numeric[6]=RPL_MAP # Not from any RFC
numeric[7]=RPL_MAPEND # Not from any RFC
numeric[8]=RPL_SNOMASK # Not from any RFC, used on Unreal
# Command replies.
numeric[205]=RPL_TRACEUSER
numeric[213]=RPL_STATSCLINE
numeric[219]=RPL_ENDOFSTATS
numeric[221]=RPL_UMODEIS
numeric[223]=RPL_STATSELINE # Not from any RFC. Conflicting use on different IRCds.
numeric[232]=RPL_RULES # Unreal usage. Conflicting use on different IRCds.
numeric[242]=RPL_STATSUPTIME
numeric[250]=RPL_STATSCONN # Not from any RFC. Conflicting use on different IRCds.
numeric[251]=RPL_LUSERCLIENT
numeric[252]=RPL_LUSEROP
numeric[253]=RPL_LUSERUNKNOWN
numeric[254]=RPL_LUSERCHANNELS
numeric[255]=RPL_LUSERME
numeric[256]=RPL_ADMINME
numeric[257]=RPL_ADMINLOC1
numeric[258]=RPL_ADMINLOC2
numeric[259]=RPL_ADMINEMAIL
numeric[263]=RPL_TRYAGAIN
numeric[265]=RPL_LOCALUSERS # Not from any RFC.
numeric[266]=RPL_GLOBALUSERS # Not from any RFC.
numeric[271]=RPL_SILELIST # Not from any RFC
numeric[272]=RPL_ENDOFSILELIST # Not from any RFC
numeric[301]=RPL_AWAY
numeric[302]=RPL_USERHOST
numeric[303]=RPL_ISON
numeric[304]=RPL_TEXT # Not from any RFC I think. And on InspIRCd this is used for syntax hints.
numeric[305]=RPL_UNAWAY
numeric[306]=RPL_UNAWAY
numeric[307]=RPL_WHOISREGNICK # Not from any RFC. Used on Unreal.
numeric[308]=RPL_RULESSTART # Unreal usage. Conflicting use on different IRCds.
numeric[309]=RPL_ENDOFRULES # Unreal usage. Conflicting use on different IRCds.
numeric[310]=RPL_WHOISHELPOP # Unreal usage. Conflicting use on different IRCds.
numeric[311]=RPL_WHOISUSER
numeric[312]=RPL_WHOISSERVER
numeric[313]=RPL_WHOISOPERATOR
numeric[314]=RPL_WHOWASUSER
numeric[315]=RPL_ENDOFWHO
numeric[317]=RPL_WHOISIDLE
numeric[318]=RPL_ENDOFWHOIS
numeric[319]=RPL_WHOISCHANNELS
numeric[320]=RPL_WHOISSPECIAL # Not from any RFC. Numeric called other things on other ircds.
# RPL_WHOISSPECIAL is what it is called on Unreal.
# Used for "connecting using ssl" on InspIRCd. Also used for SWHOIS.
# On hyperion used for "is identified to services".
numeric[321]=RPL_LISTSTART
numeric[322]=RPL_LIST
numeric[323]=RPL_LISTEND
numeric[324]=RPL_CHANNELMODEIS
numeric[329]=RPL_CREATIONTIME # Not from any RFC. Used on InspIRCd at least.
numeric[330]=RPL_WHOISACCOUNT # Not from any RFC. This is how it is used on InspIRCd with m_services_account.
numeric[331]=RPL_NOTOPIC
numeric[332]=RPL_TOPIC
numeric[333]=RPL_TOPICWHOTIME # Not from any RFC.
numeric[340]=RPL_USERIP # Not from any RFC.
numeric[341]=RPL_INVITING
numeric[346]=RPL_INVITELIST
numeric[347]=RPL_ENDOFINVITELIST
numeric[348]=RPL_EXCEPTLIST
numeric[349]=RPL_ENDOFEXCEPTLIST
numeric[351]=RPL_VERSION
numeric[352]=RPL_WHOREPLY
numeric[353]=RPL_NAMREPLY
numeric[364]=RPL_LINKS
numeric[365]=RPL_ENDOFLINKS
numeric[366]=RPL_ENDOFNAMES
numeric[367]=RPL_BANLIST
numeric[368]=RPL_ENDOFBANLIST
numeric[369]=RPL_ENDOFWHOWAS
numeric[371]=RPL_INFO
numeric[372]=RPL_MOTD
numeric[374]=RPL_ENDOFINFO
numeric[375]=RPL_MOTDSTART
numeric[376]=RPL_ENDOFMOTD
numeric[378]=RPL_WHOISHOST
numeric[381]=RPL_YOUREOPER
numeric[382]=RPL_REHASHING
numeric[391]=RPL_TIME
numeric[396]=RPL_HOSTHIDDEN # Not from any RFC.
# Errors
numeric[401]=ERR_NOSUCHNICK
numeric[402]=ERR_NOSUCHSERVER
numeric[403]=ERR_NOSUCHCHANNEL
numeric[404]=ERR_CANNOTSENDTOCHAN
numeric[405]=ERR_TOOMANYCHANNELS
numeric[406]=ERR_WASNOSUCHNICK
numeric[407]=ERR_TOOMANYTARGETS
numeric[412]=ERR_NOTEXTTOSEND
numeric[416]=ERR_TOOMANYMATCHES # Not from any RFC.
numeric[421]=ERR_UNKNOWNCOMMAND
numeric[422]=ERR_NOMOTD
numeric[432]=ERR_ERRONEUSNICKNAME # Bad/forbidden nickname
numeric[433]=ERR_NICKNAMEINUSE # Nick in use
numeric[438]=ERR_NICKTOOFAST # Not from any RFC. Used on ircu and Unreal (at least).
numeric[441]=ERR_USERNOTINCHANNEL
numeric[442]=ERR_NOTONCHANNEL
numeric[443]=ERR_USERONCHANNEL
numeric[445]=ERR_SUMMONDISABLED # Yep, most (all?) do nowdays :)
numeric[446]=ERR_USERSDISABLED # Yep, most (all?) do nowdays :)
numeric[447]=ERR_NONICKCHANGE # Not from any RFC.
numeric[460]=ERR_NOTFORHALFOPS # Not from any RFC. Unreal got this at least.
numeric[461]=ERR_NEEDMOREPARAMS
numeric[462]=ERR_ALREADYREGISTERED
numeric[468]=ERR_ONLYSERVERSCANCHANGE # Not from any RFC.
numeric[470]=ERR_LINKCHANNEL # Not from any RFC.
# InspIRCd example: :#channel has become full, so you are automatically being transferred to the linked channel #otherchannel
numeric[471]=ERR_CHANNELISFULL
numeric[472]=ERR_UNKNOWNMODE
numeric[473]=ERR_INVITEONLYCHAN
numeric[474]=ERR_BANNEDFROMCHAN
numeric[475]=ERR_BADCHANNELKEY
numeric[477]=ERR_NEEDREGGEDNICK # Not from any RFC.
numeric[478]=ERR_BANLISTFULL
numeric[480]=ERR_CANNOTKNOCK # Not from any RFC.
numeric[481]=ERR_NOPRIVILEGES
numeric[482]=ERR_CHANOPRIVSNEEDED
numeric[484]=ERR_ATTACKDENY # Name on Unreal. No idea use on Unreal.
# InspIRCd: 484 :Can't kick user from channel (+Q set)
numeric[489]=ERR_SECUREONLYCHAN # Not from any RFC. Used on Unreal and InspIRCd at least.
numeric[490]=ERR_ALLMUSTUSESSL # InspIRCd specific numeric. I made up this name, I don't know correct name.
# 490 :all members of the channel must be connected via SSL
numeric[491]=ERR_NOOPERHOST
numeric[495]=ERR_NOREJOINONKICK # InspIRCd specific numeric. I made up this name, I don't know correct name.
# 495 :You cannot rejoin this channel yet after being kicked (+J)
numeric[499]=ERR_CHANOWNPRIVNEEDED # Not from any RFC. Unreal got this at least.
numeric[501]=ERR_UMODEUNKNOWNFLAG # Some send this for unknown umodes. not all.
numeric[502]=ERR_USERSDONTMATCH # Trying to change mode for other user.
# Others. Not from any RFC but semi standard.
numeric[600]=RPL_LOGON # Unreal, InspIRCd and more
numeric[601]=RPL_LOGOFF # Unreal, InspIRCd and more
numeric[602]=RPL_WATCHOFF # Unreal, InspIRCd and more
numeric[604]=RPL_NOWON # Unreal, InspIRCd and more
numeric[605]=RPL_NOWOFF # Unreal, InspIRCd and more
numeric[606]=RPL_WATCHLIST # Unreal, InspIRCd and more
numeric[607]=RPL_ENDOFWATCHLIST # Unreal, InspIRCd and more
numeric[671]=RPL_WHOISSECURE # Used on Unreal for ssl clients.
# IRCd specific, these are InspIRCd ones unless said otherwise.
# As we can't include more than one meaning for every numeric conflicting
# ones may be added as comments. Modules depending on 9xx numerics should use the raw value.
# As I mainly use InspIRCd I prioritize those. ;)
numeric[900]=RPL_MODULES
numeric[901]=RPL_ENDOFMODULES
numeric[902]=RPL_COMMANDS # 902 :
numeric[903]=RPL_ENDOFCOMMANDS # 903 :End of COMMANDS list
numeric[936]=ERR_CENSORED # 936 :Your message contained a censored word, and was blocked
numeric[937]=ERR_ALREDYCENSORED # 937 :The word %s is already on the spamfilter list
numeric[938]=ERR_NOTCENSORED # 938 :No such spamfilter word is set
numeric[939]=ERR_SPAMFILTERLISTFULL # 939 :Channel spamfilter list is full
numeric[940]=RPL_ENDOFSPAMFILTER # 940 :End of channel spamfilter list
numeric[941]=RPL_SPAMFILTER # 941
numeric[942]=ERR_INVALIDNICK # 942 :Invalid user specified.
numeric[950]=RPL_SILENCEREMOVED # 950 :Removed !*@* from silence list
numeric[951]=RPL_SILENCEADDED # 951 :Added !*@* to silence list
numeric[952]=ERR_ALREADYSILENCE # 952 : is already on your silence list
numeric[972]=ERR_CANNOTDOCOMMAND # Unreal uses 972 (ERR_CANNOTDOCOMMAND) for umode +q, and other failed kicks.
# According to http://www.alien.net.au/irc/irc2numerics.html:
# "Works similarly to all of KineIRCd's CANNOT* numerics. This one indicates that a
# command could not be performed for an arbitrary reason. For example, a halfop trying to kick an op."
numeric[974]=ERR_CANNOTCHANGECHANMODE # Unreal uses 974 (ERR_CANNOTCHANGECHANMODE ?) for ERR_ALLMUSTUSESSL.