comboy-autumn 3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.textile +1192 -0
- data/autumn.gemspec +25 -0
- data/bin/autumn +27 -0
- data/lib/autumn.rb +2 -0
- data/lib/autumn/authentication.rb +290 -0
- data/lib/autumn/channel_leaf.rb +107 -0
- data/lib/autumn/coder.rb +166 -0
- data/lib/autumn/console_boot.rb +9 -0
- data/lib/autumn/ctcp.rb +250 -0
- data/lib/autumn/daemon.rb +207 -0
- data/lib/autumn/datamapper_hacks.rb +290 -0
- data/lib/autumn/foliater.rb +231 -0
- data/lib/autumn/formatting.rb +236 -0
- data/lib/autumn/generator.rb +231 -0
- data/lib/autumn/genesis.rb +191 -0
- data/lib/autumn/inheritable_attributes.rb +162 -0
- data/lib/autumn/leaf.rb +738 -0
- data/lib/autumn/log_facade.rb +49 -0
- data/lib/autumn/misc.rb +87 -0
- data/lib/autumn/script.rb +74 -0
- data/lib/autumn/speciator.rb +165 -0
- data/lib/autumn/stem.rb +919 -0
- data/lib/autumn/stem_facade.rb +176 -0
- data/resources/daemons/Anothernet.yml +3 -0
- data/resources/daemons/AustHex.yml +29 -0
- data/resources/daemons/Bahamut.yml +67 -0
- data/resources/daemons/Dancer.yml +3 -0
- data/resources/daemons/GameSurge.yml +3 -0
- data/resources/daemons/IRCnet.yml +3 -0
- data/resources/daemons/Ithildin.yml +7 -0
- data/resources/daemons/KineIRCd.yml +56 -0
- data/resources/daemons/PTlink.yml +6 -0
- data/resources/daemons/QuakeNet.yml +20 -0
- data/resources/daemons/RFC1459.yml +158 -0
- data/resources/daemons/RFC2811.yml +16 -0
- data/resources/daemons/RFC2812.yml +36 -0
- data/resources/daemons/RatBox.yml +25 -0
- data/resources/daemons/Ultimate.yml +24 -0
- data/resources/daemons/Undernet.yml +6 -0
- data/resources/daemons/Unreal.yml +110 -0
- data/resources/daemons/_Other.yml +7 -0
- data/resources/daemons/aircd.yml +33 -0
- data/resources/daemons/bdq-ircd.yml +3 -0
- data/resources/daemons/hybrid.yml +38 -0
- data/resources/daemons/ircu.yml +67 -0
- data/resources/daemons/tr-ircd.yml +8 -0
- data/skel/Rakefile +135 -0
- data/skel/config/global.yml +2 -0
- data/skel/config/seasons/testing/database.yml +7 -0
- data/skel/config/seasons/testing/leaves.yml +7 -0
- data/skel/config/seasons/testing/season.yml +2 -0
- data/skel/config/seasons/testing/stems.yml +9 -0
- data/skel/leaves/administrator/README +20 -0
- data/skel/leaves/administrator/controller.rb +67 -0
- data/skel/leaves/administrator/views/autumn.txt.erb +1 -0
- data/skel/leaves/administrator/views/reload.txt.erb +11 -0
- data/skel/leaves/insulter/README +17 -0
- data/skel/leaves/insulter/controller.rb +65 -0
- data/skel/leaves/insulter/views/about.txt.erb +1 -0
- data/skel/leaves/insulter/views/help.txt.erb +1 -0
- data/skel/leaves/insulter/views/insult.txt.erb +1 -0
- data/skel/leaves/scorekeeper/README +34 -0
- data/skel/leaves/scorekeeper/config.yml +2 -0
- data/skel/leaves/scorekeeper/controller.rb +104 -0
- data/skel/leaves/scorekeeper/helpers/general.rb +64 -0
- data/skel/leaves/scorekeeper/models/channel.rb +12 -0
- data/skel/leaves/scorekeeper/models/person.rb +14 -0
- data/skel/leaves/scorekeeper/models/pseudonym.rb +11 -0
- data/skel/leaves/scorekeeper/models/score.rb +14 -0
- data/skel/leaves/scorekeeper/tasks/stats.rake +17 -0
- data/skel/leaves/scorekeeper/views/about.txt.erb +1 -0
- data/skel/leaves/scorekeeper/views/change.txt.erb +5 -0
- data/skel/leaves/scorekeeper/views/history.txt.erb +11 -0
- data/skel/leaves/scorekeeper/views/points.txt.erb +5 -0
- data/skel/leaves/scorekeeper/views/usage.txt.erb +1 -0
- data/skel/script/console +34 -0
- data/skel/script/daemon +29 -0
- data/skel/script/destroy +48 -0
- data/skel/script/generate +48 -0
- data/skel/script/server +15 -0
- metadata +170 -0
@@ -0,0 +1,176 @@
|
|
1
|
+
# Defines the Autumn::StemFacade class, which provides additional convenience
|
2
|
+
# methods to Autumn::Stem.
|
3
|
+
|
4
|
+
module Autumn
|
5
|
+
|
6
|
+
# A collection of convenience methods that are added to the Stem class. These
|
7
|
+
# methods serve two purposes; one, to allow easier backwards compatibility
|
8
|
+
# with Autumn Leaves 1.0 (which had a simpler one-stem-per-leaf approach), and
|
9
|
+
# two, to make it easier or more Ruby-like to perform certain IRC actions.
|
10
|
+
|
11
|
+
module StemFacade
|
12
|
+
|
13
|
+
# Sends a message to one or more channels or nicks. If no channels or nicks
|
14
|
+
# are specified, broadcasts the message to every channel the stem is in. If
|
15
|
+
# you are sending a message to a channel you must prefix it correctly; the
|
16
|
+
# "#" will not be added before the channel name for you.
|
17
|
+
#
|
18
|
+
# message "Look at me!" # Broadcasts to all channels
|
19
|
+
# message "I love kitties", '#kitties' # Sends a message to one channel or person
|
20
|
+
# message "Learn to RTFM", '#help', 'NoobGuy' # Sends a message to two channels or people
|
21
|
+
|
22
|
+
def message(msg, *chans)
|
23
|
+
return if msg.nil? or msg.empty?
|
24
|
+
chans = channels if chans.empty?
|
25
|
+
if @throttle then
|
26
|
+
Thread.exclusive { msg.each_line { |line| privmsgt chans.to_a, line.strip unless line.strip.empty? } }
|
27
|
+
else
|
28
|
+
msg.each_line { |line| privmsg chans.to_a, line.strip unless line.strip.empty? }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# Sets the topic for one or more channels. If no channels are specified,
|
33
|
+
# sets the topic of every channel the stem is in.
|
34
|
+
#
|
35
|
+
# set_topic "Bots sure are fun!", 'bots', 'morebots'
|
36
|
+
|
37
|
+
def set_topic(motd, *chans)
|
38
|
+
return if motd.nil?
|
39
|
+
chans = chans.empty? ? channels : chans.map { |chan| normalized_channel_name chan }
|
40
|
+
chans.each { |chan| topic chan, motd }
|
41
|
+
end
|
42
|
+
|
43
|
+
# Joins a channel by name. If the channel is password-protected, specify the
|
44
|
+
# +password+ parameter. Of course, you could always just call the +join+
|
45
|
+
# method (since each IRC command has a method named after it), but the
|
46
|
+
# advantage to using this method is that it will also update the
|
47
|
+
# <tt>@channel_passwords</tt> instance variable. Internal consistency is a
|
48
|
+
# good thing, so please use this method.
|
49
|
+
|
50
|
+
def join_channel(channel, password=nil)
|
51
|
+
channel = normalized_channel_name(channel)
|
52
|
+
return if channels.include? channel
|
53
|
+
join channel, password
|
54
|
+
@channel_passwords[channel] = password if password
|
55
|
+
end
|
56
|
+
|
57
|
+
# Leaves a channel, specified by name.
|
58
|
+
|
59
|
+
def leave_channel(channel)
|
60
|
+
channel = normalized_channel_name(channel)
|
61
|
+
return unless channels.include? channel
|
62
|
+
part channel
|
63
|
+
end
|
64
|
+
|
65
|
+
# Changes this stem's IRC nick. Note that the stem's original nick will
|
66
|
+
# still be used by the logger.
|
67
|
+
|
68
|
+
def change_nick(new_nick)
|
69
|
+
nick new_nick
|
70
|
+
end
|
71
|
+
|
72
|
+
# Grants a privilege to a channel member, such as voicing a member. The stem
|
73
|
+
# must have the required privilege level to perform this command.
|
74
|
+
# +privilege+ can either be a symbol from the Daemon instance or a string
|
75
|
+
# with the letter code for the privilege.
|
76
|
+
#
|
77
|
+
# grant_user_privilege 'mychannel', 'Somedude', :operator
|
78
|
+
# grant_user_privilege '#mychannel', 'Somedude', 'oa'
|
79
|
+
|
80
|
+
def grant_user_privilege(channel, nick, privilege)
|
81
|
+
channel = normalized_channel_name(channel)
|
82
|
+
privcode = server_type.privilege.index(privilege).chr if server_type.privilege.value? privilege
|
83
|
+
privcode ||= privilege
|
84
|
+
mode channel, "+#{privcode}", nick
|
85
|
+
end
|
86
|
+
|
87
|
+
# Removes a privilege to a channel member, such as voicing a member. The
|
88
|
+
# stem must have the required privilege level to perform this command.
|
89
|
+
# +privilege+ can either be a symbol from the Daemon instance or a string
|
90
|
+
# with the letter code for the privilege.
|
91
|
+
|
92
|
+
def remove_user_privilege(channel, nick, privilege)
|
93
|
+
channel = normalized_channel_name(channel)
|
94
|
+
privcode = server_type.privilege.index(privilege).chr if server_type.privilege.value? privilege
|
95
|
+
privcode ||= privilege
|
96
|
+
mode channel, "-#{privcode}", nick
|
97
|
+
end
|
98
|
+
|
99
|
+
# Grants a usermode to an IRC nick, such as making a nick invisible.
|
100
|
+
# The stem must have the required privilege level to perform this command.
|
101
|
+
# (Generally, one can only change his own usermode unless he is a server
|
102
|
+
# op.) +mode+ can either be a symbol from the Daemon instance or a string
|
103
|
+
# with the letter code for the usermode.
|
104
|
+
#
|
105
|
+
# grant_usermode 'Spycloak', :invisible
|
106
|
+
# grant_usermode 'UpMobility', 'os'
|
107
|
+
|
108
|
+
def grant_usermode(nick, property)
|
109
|
+
propcode = server_type.usermode.index(property).chr if server_type.usermode.value? property
|
110
|
+
propcode ||= property
|
111
|
+
mode nick, "+#{property}"
|
112
|
+
end
|
113
|
+
|
114
|
+
# Revokes a usermode from an IRC nick, such as removing invisibility. The
|
115
|
+
# stem must have the required privilege level to perform this command.
|
116
|
+
# (Generally, one can only change his own usermode unless he is a server
|
117
|
+
# op.) +mode+ can either be a symbol from the Daemon instance or a string
|
118
|
+
# with the letter code for the usermode.
|
119
|
+
|
120
|
+
def remove_usermode(nick, property)
|
121
|
+
propcode = server_type.usermode.index(property).chr if server_type.usermode.value? property
|
122
|
+
propcode ||= property
|
123
|
+
mode nick, "-#{property}"
|
124
|
+
end
|
125
|
+
|
126
|
+
# Sets a property of a channel, such as moderated. The stem must have the
|
127
|
+
# required privilege level to perform this command. +property+ can either be
|
128
|
+
# a symbol from the Daemon instance or a string with the letter code for the
|
129
|
+
# property. If the property takes an argument (such as when setting a
|
130
|
+
# channel password), pass it as the +argument+ paramter.
|
131
|
+
#
|
132
|
+
# set_channel_property '#mychannel', :secret
|
133
|
+
# set_channel_property 'mychannel', :keylock, 'mypassword'
|
134
|
+
# set_channel_property '#mychannel', 'ntr'
|
135
|
+
|
136
|
+
def set_channel_property(channel, property, argument=nil)
|
137
|
+
channel = normalized_channel_name(channel)
|
138
|
+
propcode = server_type.channel_property.index(property).chr if server_type.channel_property.value? property
|
139
|
+
propcode ||= property
|
140
|
+
mode channel, "+#{propcode}", argument
|
141
|
+
end
|
142
|
+
|
143
|
+
# Removes a property of a channel, such as moderated. The stem must have the
|
144
|
+
# required privilege level to perform this command. +property+ can either be
|
145
|
+
# a symbol from the Daemon instance or a string with the letter code for the
|
146
|
+
# property. If the property takes an argument (such as when removing a
|
147
|
+
# channel password), pass it as the +argument+ paramter.
|
148
|
+
|
149
|
+
def unset_channel_property(channel, property, argument=nil)
|
150
|
+
channel = normalized_channel_name(channel)
|
151
|
+
propcode = server_type.channel_property.index(property).chr if server_type.channel_property.value? property
|
152
|
+
propcode ||= property
|
153
|
+
mode channel, "-#{propcode}", argument
|
154
|
+
end
|
155
|
+
|
156
|
+
# Returns an array of nicks for users that are in a channel.
|
157
|
+
|
158
|
+
def users(channel)
|
159
|
+
channel = normalized_channel_name(channel)
|
160
|
+
@chan_mutex.synchronize { @channel_members[channel] && @channel_members[channel].keys }
|
161
|
+
end
|
162
|
+
|
163
|
+
# Returns the privilege level of a channel member. The privilege level will
|
164
|
+
# be a symbol from the Daemon instance. Returns nil if the channel member
|
165
|
+
# doesn't exist or if the bot is not on the given channel. Returns an array
|
166
|
+
# of privileges if the server supports multiple privileges per user, and the
|
167
|
+
# user has more than one privilege.
|
168
|
+
#
|
169
|
+
# +user+ can be a nick or a sender hash.
|
170
|
+
|
171
|
+
def privilege(channel, user)
|
172
|
+
user = user[:nick] if user.kind_of? Hash
|
173
|
+
@chan_mutex.synchronize { @channel_members[channel] && @channel_members[channel][user] }
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
---
|
2
|
+
channel_mode:
|
3
|
+
e: :event
|
4
|
+
event:
|
5
|
+
434: :err_servicenameinuse
|
6
|
+
357: :rpl_map
|
7
|
+
385: :rpl_notoperanymore
|
8
|
+
380: :rpl_yourhelper
|
9
|
+
358: :rpl_mapmore
|
10
|
+
430: :err_eventnickchange
|
11
|
+
320: :rpl_whoisvirt
|
12
|
+
309: :rpl_whoishelper
|
13
|
+
480: :err_nouline
|
14
|
+
359: :rpl_mapend
|
15
|
+
310: :rpl_whoisservice
|
16
|
+
503: :err_vworldwarn
|
17
|
+
520: :err_whotrunc
|
18
|
+
377: :rpl_spam
|
19
|
+
328: :rpl_channel_url
|
20
|
+
240: :rpl_statsxline
|
21
|
+
378: :rpl_motd
|
22
|
+
307: :rpl_suserhost
|
23
|
+
usermode:
|
24
|
+
v: :host_hiding
|
25
|
+
l: :listall
|
26
|
+
a: :errors
|
27
|
+
h: :helper
|
28
|
+
T: :w_lined
|
29
|
+
t: :z_lined
|
@@ -0,0 +1,67 @@
|
|
1
|
+
---
|
2
|
+
channel_mode:
|
3
|
+
L: :listed
|
4
|
+
M: :modreg
|
5
|
+
c: :nocolour
|
6
|
+
O: :oper_only
|
7
|
+
R: :regonly
|
8
|
+
r: :registered
|
9
|
+
event:
|
10
|
+
522: :err_whosyntax
|
11
|
+
225: :rpl_statszline
|
12
|
+
605: :rpl_nowoff
|
13
|
+
484: :err_desync
|
14
|
+
440: :err_servicesdown
|
15
|
+
429: :err_toomanyaway
|
16
|
+
308: :rpl_whoisadmin
|
17
|
+
220: :rpl_statsbline
|
18
|
+
600: :rpl_logon
|
19
|
+
523: :err_wholimexceed
|
20
|
+
512: :err_toomanywatch
|
21
|
+
468: :err_onlyserverscanchange
|
22
|
+
435: :err_banonchan
|
23
|
+
226: :rpl_statscount
|
24
|
+
617: :rpl_dccstatus
|
25
|
+
606: :rpl_watchlist
|
26
|
+
408: :err_nocolorsonchan
|
27
|
+
309: :rpl_whoissadmin
|
28
|
+
265: :rpl_localusers
|
29
|
+
601: :rpl_logoff
|
30
|
+
227: :rpl_statsgline
|
31
|
+
618: :rpl_dcclist
|
32
|
+
607: :rpl_endofwatchlist
|
33
|
+
310: :rpl_whoissvcmsg
|
34
|
+
266: :rpl_globalusers
|
35
|
+
222: :rpl_statsbline
|
36
|
+
602: :rpl_watchoff
|
37
|
+
514: :err_toomanydcc
|
38
|
+
338: :rpl_whoisactually
|
39
|
+
619: :rpl_endofdcclist
|
40
|
+
487: :err_msgservices
|
41
|
+
245: :rpl_statssline
|
42
|
+
223: :rpl_statseline
|
43
|
+
999: :err_numeric_err
|
44
|
+
603: :rpl_watchstat
|
45
|
+
328: :rpl_channel_url
|
46
|
+
620: :rpl_dccinfo
|
47
|
+
521: :err_listsyntax
|
48
|
+
477: :err_needreggednick
|
49
|
+
334: :rpl_commandsyntax
|
50
|
+
224: :rpl_statsfline
|
51
|
+
604: :rpl_nowon
|
52
|
+
329: :rpl_creationtime
|
53
|
+
307: :rpl_whoisregnick
|
54
|
+
usermode:
|
55
|
+
k: :kills
|
56
|
+
A: :server_admin
|
57
|
+
a: :services_admin
|
58
|
+
m: :spambots
|
59
|
+
b: :chatops
|
60
|
+
y: :stats_links
|
61
|
+
n: :routing
|
62
|
+
d: :debug
|
63
|
+
f: :floods
|
64
|
+
R: :no_non_registered
|
65
|
+
r: :registered
|
66
|
+
g: :globops
|
67
|
+
h: :helper
|
@@ -0,0 +1,56 @@
|
|
1
|
+
---
|
2
|
+
server_mode:
|
3
|
+
L: :default_language
|
4
|
+
l: :lazy_leaf
|
5
|
+
A: :auto_tbs
|
6
|
+
a: :autoconnect
|
7
|
+
M: :modes_locked
|
8
|
+
n: :no_oper
|
9
|
+
D: :debugging
|
10
|
+
F: :full
|
11
|
+
H: :hidden
|
12
|
+
T: :testlink
|
13
|
+
channel_mode:
|
14
|
+
"!": :service
|
15
|
+
event:
|
16
|
+
973: :err_cannotchangeumode
|
17
|
+
687: :rpl_yourlanguageis
|
18
|
+
665: :rpl_otherumodeis
|
19
|
+
979: :err_servermodelock
|
20
|
+
682: :rpl_networks
|
21
|
+
671: :rpl_whoissecure
|
22
|
+
660: :rpl_traceroute_hop
|
23
|
+
974: :err_cannotchangechanmode
|
24
|
+
688: :rpl_language
|
25
|
+
666: :rpl_endof_generic
|
26
|
+
980: :err_badcharencoding
|
27
|
+
661: :rpl_traceroute_start
|
28
|
+
975: :err_cannotchangeservermode
|
29
|
+
689: :rpl_whoisstaff
|
30
|
+
678: :rpl_luserstaff
|
31
|
+
981: :err_toomanylanguages
|
32
|
+
662: :rpl_modechangewarn
|
33
|
+
976: :err_cannotsendtonick
|
34
|
+
690: :rpl_whoislanguage
|
35
|
+
679: :rpl_timeonserveris
|
36
|
+
982: :err_nolanguage
|
37
|
+
663: :rpl_chanredir
|
38
|
+
977: :err_unknownservermode
|
39
|
+
983: :err_texttooshort
|
40
|
+
664: :rpl_servmodeis
|
41
|
+
301: :rpl_away
|
42
|
+
4: :rpl_myinfo
|
43
|
+
670: :rpl_whowasdetails
|
44
|
+
user_prefix:
|
45
|
+
"!": :service
|
46
|
+
usermode:
|
47
|
+
d: :deaf
|
48
|
+
R: :no_non_registered
|
49
|
+
g: :callerid
|
50
|
+
s: :server_notices
|
51
|
+
h: :helper
|
52
|
+
channel_prefix:
|
53
|
+
.: :softchan
|
54
|
+
"~": :global
|
55
|
+
privilege:
|
56
|
+
"!": :service
|
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
channel_mode:
|
3
|
+
D: :deljoins
|
4
|
+
d: :has_hidden
|
5
|
+
u: :noquitparts
|
6
|
+
event:
|
7
|
+
291: :rpl_endofcheck
|
8
|
+
550: :err_badhostmask
|
9
|
+
286: :rpl_chkhead
|
10
|
+
551: :err_hostunavail
|
11
|
+
485: :err_isrealservice
|
12
|
+
287: :rpl_chanuser
|
13
|
+
552: :err_usingsline
|
14
|
+
486: :err_accountonly
|
15
|
+
288: :rpl_patchhead
|
16
|
+
553: :err_statssline
|
17
|
+
355: :rpl_namreply_
|
18
|
+
289: :rpl_patchcon
|
19
|
+
290: :rpl_datastr
|
20
|
+
285: :rpl_newhostis
|
@@ -0,0 +1,158 @@
|
|
1
|
+
---
|
2
|
+
channel_mode:
|
3
|
+
v: :voice
|
4
|
+
k: :keylock
|
5
|
+
l: :limit
|
6
|
+
m: :moderated
|
7
|
+
b: :ban
|
8
|
+
n: :no_external_msgs
|
9
|
+
o: :oper
|
10
|
+
p: :private
|
11
|
+
s: :secret
|
12
|
+
t: :topic_lock
|
13
|
+
i: :invite_only
|
14
|
+
event:
|
15
|
+
462: :err_alreadyregistered
|
16
|
+
203: :rpl_traceunknown
|
17
|
+
314: :rpl_whowasuser
|
18
|
+
351: :rpl_version
|
19
|
+
481: :err_noprivileges
|
20
|
+
407: :err_toomanytargets
|
21
|
+
444: :err_nologin
|
22
|
+
259: :rpl_adminemail
|
23
|
+
463: :err_nopermforhost
|
24
|
+
204: :rpl_traceoperator
|
25
|
+
241: :rpl_statslline
|
26
|
+
315: :rpl_endofwho
|
27
|
+
352: :rpl_whoreply
|
28
|
+
482: :err_chanoprivsneeded
|
29
|
+
445: :err_summondisabled
|
30
|
+
371: :rpl_info
|
31
|
+
501: :err_umodeunknownflag
|
32
|
+
464: :err_passwdmismatch
|
33
|
+
205: :rpl_traceuser
|
34
|
+
242: :rpl_statsuptime
|
35
|
+
316: :rpl_whoischanop
|
36
|
+
353: :rpl_namreply
|
37
|
+
483: :err_cantkillserver
|
38
|
+
261: :rpl_tracelog
|
39
|
+
372: :rpl_motd
|
40
|
+
409: :err_noorigin
|
41
|
+
446: :err_usersdisabled
|
42
|
+
502: :err_usersdontmatch
|
43
|
+
465: :err_yourebannedcreep
|
44
|
+
206: :rpl_traceserver
|
45
|
+
243: :rpl_statsoline
|
46
|
+
317: :rpl_whoisidle
|
47
|
+
391: :rpl_time
|
48
|
+
373: :rpl_infostart
|
49
|
+
466: :err_youwillbebanned
|
50
|
+
244: :rpl_statshline
|
51
|
+
318: :rpl_endofwhois
|
52
|
+
392: :rpl_usersstart
|
53
|
+
300: :rpl_none
|
54
|
+
374: :rpl_endofinfo
|
55
|
+
411: :err_norecipient
|
56
|
+
467: :err_keyset
|
57
|
+
208: :rpl_tracenewtype
|
58
|
+
319: :rpl_whoischannels
|
59
|
+
393: :rpl_users
|
60
|
+
301: :rpl_away
|
61
|
+
375: :rpl_motdstart
|
62
|
+
412: :err_notexttosend
|
63
|
+
394: :rpl_endofusers
|
64
|
+
431: :err_nonicknamegiven
|
65
|
+
302: :rpl_userhost
|
66
|
+
376: :rpl_endofmotd
|
67
|
+
413: :err_notoplevel
|
68
|
+
321: :rpl_liststart
|
69
|
+
395: :rpl_nousers
|
70
|
+
432: :err_erroneusnickname
|
71
|
+
303: :rpl_ison
|
72
|
+
414: :err_wildtoplevel
|
73
|
+
451: :err_notregistered
|
74
|
+
322: :rpl_list
|
75
|
+
433: :err_nicknameinuse
|
76
|
+
211: :rpl_statslinkinfo
|
77
|
+
341: :rpl_inviting
|
78
|
+
471: :err_channelisfull
|
79
|
+
212: :rpl_statscommands
|
80
|
+
323: :rpl_listend
|
81
|
+
231: :rpl_serviceinfo
|
82
|
+
305: :rpl_unaway
|
83
|
+
342: :rpl_summoning
|
84
|
+
472: :err_unknownmode
|
85
|
+
213: :rpl_statscline
|
86
|
+
324: :rpl_channelmodeis
|
87
|
+
361: :rpl_killdone
|
88
|
+
491: :err_nooperhost
|
89
|
+
232: :rpl_endofservices
|
90
|
+
306: :rpl_nowaway
|
91
|
+
473: :err_inviteonlychan
|
92
|
+
436: :err_nickcollision
|
93
|
+
214: :rpl_statsnline
|
94
|
+
251: :rpl_luserclient
|
95
|
+
362: :rpl_closing
|
96
|
+
492: :err_noservicehost
|
97
|
+
233: :rpl_service
|
98
|
+
381: :rpl_youreoper
|
99
|
+
474: :err_bannedfromchan
|
100
|
+
215: :rpl_statsiline
|
101
|
+
252: :rpl_luserop
|
102
|
+
363: :rpl_closeend
|
103
|
+
382: :rpl_rehashing
|
104
|
+
475: :err_badchannelkey
|
105
|
+
216: :rpl_statskline
|
106
|
+
253: :rpl_luserunknown
|
107
|
+
364: :rpl_links
|
108
|
+
401: :err_nosuchnick
|
109
|
+
217: :rpl_statsqline
|
110
|
+
254: :rpl_luserchannels
|
111
|
+
365: :rpl_endoflinks
|
112
|
+
402: :err_nosuchserver
|
113
|
+
384: :rpl_myportis
|
114
|
+
421: :err_unknowncommand
|
115
|
+
255: :rpl_luserme
|
116
|
+
366: :rpl_endofnames
|
117
|
+
403: :err_nosuchchannel
|
118
|
+
218: :rpl_statsyline
|
119
|
+
311: :rpl_whoisuser
|
120
|
+
422: :err_nomotd
|
121
|
+
200: :rpl_tracelink
|
122
|
+
367: :rpl_banlist
|
123
|
+
404: :err_cannotsendtochan
|
124
|
+
441: :err_usernotinchannel
|
125
|
+
219: :rpl_endofstats
|
126
|
+
256: :rpl_adminme
|
127
|
+
312: :rpl_whoisserver
|
128
|
+
423: :err_noadmininfo
|
129
|
+
201: :rpl_traceconnecting
|
130
|
+
331: :rpl_notopic
|
131
|
+
368: :rpl_endofbanlist
|
132
|
+
405: :err_toomanychannels
|
133
|
+
442: :err_notonchannel
|
134
|
+
257: :rpl_adminloc1
|
135
|
+
424: :err_fileerror
|
136
|
+
461: :err_needmoreparams
|
137
|
+
202: :rpl_tracehandshake
|
138
|
+
313: :rpl_whoisoperator
|
139
|
+
369: :rpl_endofwhowas
|
140
|
+
406: :err_wasnosuchnick
|
141
|
+
443: :err_useronchannel
|
142
|
+
221: :rpl_umodeis
|
143
|
+
258: :rpl_adminloc2
|
144
|
+
332: :rpl_topic
|
145
|
+
user_prefix:
|
146
|
+
"@": :operator
|
147
|
+
+: :voiced
|
148
|
+
usermode:
|
149
|
+
w: :wallops
|
150
|
+
o: :global_operator
|
151
|
+
s: :server_notices
|
152
|
+
i: :invisible
|
153
|
+
channel_prefix:
|
154
|
+
"#": :network
|
155
|
+
"&": :local
|
156
|
+
privilege:
|
157
|
+
v: :voiced
|
158
|
+
o: :operator
|