autumn 3.1.8
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS +11 -0
- data/CHANGELOG +567 -0
- data/MANIFEST +110 -0
- data/README +1114 -0
- data/README.textile +1153 -0
- data/Rakefile +75 -0
- data/autumn.gemspec +44 -0
- data/bin/autumn +11 -0
- data/lib/autumn.rb +8 -0
- data/lib/autumn/authentication.rb +238 -0
- data/lib/autumn/channel_leaf.rb +107 -0
- data/lib/autumn/coder.rb +166 -0
- data/lib/autumn/console_boot.rb +10 -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 +190 -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/resources/daemons/Anothernet.yml +3 -0
- data/lib/autumn/resources/daemons/AustHex.yml +29 -0
- data/lib/autumn/resources/daemons/Bahamut.yml +67 -0
- data/lib/autumn/resources/daemons/Dancer.yml +3 -0
- data/lib/autumn/resources/daemons/GameSurge.yml +3 -0
- data/lib/autumn/resources/daemons/IRCnet.yml +3 -0
- data/lib/autumn/resources/daemons/Ithildin.yml +7 -0
- data/lib/autumn/resources/daemons/KineIRCd.yml +56 -0
- data/lib/autumn/resources/daemons/PTlink.yml +6 -0
- data/lib/autumn/resources/daemons/QuakeNet.yml +20 -0
- data/lib/autumn/resources/daemons/RFC1459.yml +158 -0
- data/lib/autumn/resources/daemons/RFC2811.yml +16 -0
- data/lib/autumn/resources/daemons/RFC2812.yml +36 -0
- data/lib/autumn/resources/daemons/RatBox.yml +25 -0
- data/lib/autumn/resources/daemons/Ultimate.yml +24 -0
- data/lib/autumn/resources/daemons/Undernet.yml +6 -0
- data/lib/autumn/resources/daemons/Unreal.yml +110 -0
- data/lib/autumn/resources/daemons/_Other.yml +7 -0
- data/lib/autumn/resources/daemons/aircd.yml +33 -0
- data/lib/autumn/resources/daemons/bdq-ircd.yml +3 -0
- data/lib/autumn/resources/daemons/hybrid.yml +38 -0
- data/lib/autumn/resources/daemons/ircu.yml +67 -0
- data/lib/autumn/resources/daemons/tr-ircd.yml +8 -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/lib/autumn/tool/bin.rb +301 -0
- data/lib/autumn/tool/create.rb +48 -0
- data/lib/autumn/tool/project_creator.rb +110 -0
- data/lib/autumn/version.rb +3 -0
- data/lib/skel/Rakefile +163 -0
- data/lib/skel/config/global.yml +2 -0
- data/lib/skel/config/seasons/testing/database.yml +4 -0
- data/lib/skel/config/seasons/testing/leaves.yml +9 -0
- data/lib/skel/config/seasons/testing/season.yml +2 -0
- data/lib/skel/config/seasons/testing/stems.yml +10 -0
- data/lib/skel/leaves/administrator/README +20 -0
- data/lib/skel/leaves/administrator/controller.rb +67 -0
- data/lib/skel/leaves/administrator/views/autumn.txt.erb +1 -0
- data/lib/skel/leaves/administrator/views/reload.txt.erb +11 -0
- data/lib/skel/leaves/insulter/README +17 -0
- data/lib/skel/leaves/insulter/controller.rb +65 -0
- data/lib/skel/leaves/insulter/views/about.txt.erb +1 -0
- data/lib/skel/leaves/insulter/views/help.txt.erb +1 -0
- data/lib/skel/leaves/insulter/views/insult.txt.erb +1 -0
- data/lib/skel/leaves/scorekeeper/README +34 -0
- data/lib/skel/leaves/scorekeeper/config.yml +2 -0
- data/lib/skel/leaves/scorekeeper/controller.rb +104 -0
- data/lib/skel/leaves/scorekeeper/helpers/general.rb +64 -0
- data/lib/skel/leaves/scorekeeper/models/channel.rb +12 -0
- data/lib/skel/leaves/scorekeeper/models/person.rb +14 -0
- data/lib/skel/leaves/scorekeeper/models/pseudonym.rb +11 -0
- data/lib/skel/leaves/scorekeeper/models/score.rb +14 -0
- data/lib/skel/leaves/scorekeeper/tasks/stats.rake +17 -0
- data/lib/skel/leaves/scorekeeper/views/about.txt.erb +1 -0
- data/lib/skel/leaves/scorekeeper/views/change.txt.erb +5 -0
- data/lib/skel/leaves/scorekeeper/views/history.txt.erb +11 -0
- data/lib/skel/leaves/scorekeeper/views/points.txt.erb +5 -0
- data/lib/skel/leaves/scorekeeper/views/usage.txt.erb +1 -0
- data/lib/skel/log/README +1 -0
- data/lib/skel/script/console +28 -0
- data/lib/skel/script/destroy +48 -0
- data/lib/skel/script/generate +48 -0
- data/lib/skel/shared/README +1 -0
- data/lib/skel/tmp/README +1 -0
- data/spec/authentication_spec.rb +328 -0
- data/spec/channel_leaf_spec.rb +142 -0
- data/spec/coder_spec.rb +146 -0
- data/spec/ctcp_spec.rb +222 -0
- data/spec/daemon_spec.rb +202 -0
- data/spec/datamapper_hacks_spec.rb +164 -0
- data/tasks/authors.rake +30 -0
- data/tasks/changelog.rake +18 -0
- data/tasks/copyright.rake +21 -0
- data/tasks/doc.rake +7 -0
- data/tasks/gem.rake +23 -0
- data/tasks/gem_installer.rake +76 -0
- data/tasks/install_dependencies.rake +6 -0
- data/tasks/manifest.rake +4 -0
- data/tasks/rcov.rake +23 -0
- data/tasks/release.rake +52 -0
- data/tasks/reversion.rake +8 -0
- data/tasks/setup.rake +24 -0
- data/tasks/spec.rake +7 -0
- data/tasks/yard.rake +4 -0
- metadata +188 -0
@@ -0,0 +1,49 @@
|
|
1
|
+
# Defines the Autumn::LogFacade class, which makes it easier for Stems and
|
2
|
+
# Leaves to add their information to outgoing log messages.
|
3
|
+
|
4
|
+
module Autumn
|
5
|
+
|
6
|
+
# This class is a facade for Ruby's +Logger+ that adds additional information
|
7
|
+
# to log entries. LogFacade will pass any method calls onto a Logger instance,
|
8
|
+
# but reformat log entries to include an Autumn object's type and name.
|
9
|
+
#
|
10
|
+
# For example, if you wanted a LogFacade for a Leaf named "Scorekeeper", you
|
11
|
+
# could instantiate one:
|
12
|
+
#
|
13
|
+
# facade = LogFacade.new(logger, 'Leaf', 'Scorekeeper')
|
14
|
+
#
|
15
|
+
# And a call such as:
|
16
|
+
#
|
17
|
+
# facade.info "Starting up"
|
18
|
+
#
|
19
|
+
# Would be reformatted as "Scorekeeper (Leaf): Starting up".
|
20
|
+
#
|
21
|
+
# In addition, this class will log messages to STDOUT if the +debug+ global
|
22
|
+
# option is set. Instantiation of this class is handled by Genesis and should
|
23
|
+
# not normally be done by the user.
|
24
|
+
|
25
|
+
class LogFacade
|
26
|
+
# The Autumn object type (typically "Stem" or "Leaf").
|
27
|
+
attr :type
|
28
|
+
# The name of the Autumn object.
|
29
|
+
attr :name
|
30
|
+
|
31
|
+
# Creates a new facade for +logger+ that prepends type and name information
|
32
|
+
# to each log message.
|
33
|
+
|
34
|
+
def initialize(logger, type, name)
|
35
|
+
@type = type
|
36
|
+
@name = name
|
37
|
+
@logger = logger
|
38
|
+
@stdout = Speciator.instance.season(:logging) == 'debug'
|
39
|
+
end
|
40
|
+
|
41
|
+
def method_missing(meth, *args) # :nodoc:
|
42
|
+
if args.size == 1 and args.only.kind_of? String then
|
43
|
+
args = [ "#{name} (#{type}): #{args.only}" ]
|
44
|
+
end
|
45
|
+
@logger.send meth, *args
|
46
|
+
puts (args.first.kind_of?(Exception) ? (args.first.to_s + "\n" + args.first.backtrace.join("\n")) : args.first) if @stdout
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/autumn/misc.rb
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
# Miscellaneous extra methods and objects used by Autumn, and additions to Ruby
|
2
|
+
# Core objects.
|
3
|
+
|
4
|
+
require 'thread'
|
5
|
+
require 'english/style'
|
6
|
+
|
7
|
+
class Numeric # :nodoc:
|
8
|
+
|
9
|
+
# Possibly pluralizes a noun based on this number's value. Returns this number
|
10
|
+
# and the noun as a string. This method attempts to use the Ruby English gem
|
11
|
+
# if available, and falls back on the very simple default of appending an "s"
|
12
|
+
# to the word to make it plural. If the Ruby English gem is not available, you
|
13
|
+
# can specify a custom plural form for the word. Examples:
|
14
|
+
#
|
15
|
+
# 5.pluralize('dog') #=> "5 dogs"
|
16
|
+
# 1.pluralize('car') #=> "1 car"
|
17
|
+
# 7.pluralize('mouse', 'mice') #=> "7 mice" (only necessary if Ruby English is not installed)
|
18
|
+
|
19
|
+
def pluralize(singular, plural=nil)
|
20
|
+
begin
|
21
|
+
return "#{to_s} #{self == 1 ? singular : singular.plural}"
|
22
|
+
rescue Gem::LoadError
|
23
|
+
plural ||= singular + 's'
|
24
|
+
return "#{to_s} #{(self == 1) ? singular : plural}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
class String # :nodoc:
|
30
|
+
include English::Style
|
31
|
+
|
32
|
+
# Returns a copy of this string with the first character dropped.
|
33
|
+
|
34
|
+
def except_first
|
35
|
+
self[1, size-1]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
class Hash # :nodoc:
|
40
|
+
|
41
|
+
# Returns a hash that gives back the key if it has no value for that key.
|
42
|
+
|
43
|
+
def self.parroting(hsh={})
|
44
|
+
hsh ||= Hash.new
|
45
|
+
Hash.new { |h, k| k }.update(hsh)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# An implementation of +SizedQueue+ that, instead of blocking when the queue is
|
50
|
+
# full, simply discards the overflow, forgetting it.
|
51
|
+
|
52
|
+
class ForgetfulQueue < Queue # :nodoc:
|
53
|
+
|
54
|
+
# Creates a new sized queue.
|
55
|
+
|
56
|
+
def initialize(capacity)
|
57
|
+
@max = capacity
|
58
|
+
end
|
59
|
+
|
60
|
+
# Returns true if this queue is at maximum size.
|
61
|
+
|
62
|
+
def full?
|
63
|
+
size == @max
|
64
|
+
end
|
65
|
+
|
66
|
+
# Pushes an object onto the queue. If there is no space left on the queue,
|
67
|
+
# does nothing.
|
68
|
+
|
69
|
+
def push(obj)
|
70
|
+
Thread.exclusive { super unless full? }
|
71
|
+
end
|
72
|
+
alias_method :<<, :push
|
73
|
+
alias_method :enq, :push
|
74
|
+
end
|
75
|
+
|
76
|
+
# Adds the only method to Set.
|
77
|
+
|
78
|
+
class Set # :nodoc:
|
79
|
+
|
80
|
+
# Returns the only element of a one-element set. Raises an exception if there
|
81
|
+
# isn't exactly one element in the set.
|
82
|
+
|
83
|
+
def only
|
84
|
+
raise IndexError, "Set#only called on non-single-element set" unless size == 1
|
85
|
+
to_a.first
|
86
|
+
end
|
87
|
+
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
|