Explorar el Código

move Commands initialization to an init()

tags/v0.11.0-alpha
Shivaram Lingamneni hace 6 años
padre
commit
728863a17c
Se han modificado 1 ficheros con 256 adiciones y 252 borrados
  1. 256
    252
      irc/commands.go

+ 256
- 252
irc/commands.go Ver fichero

@@ -53,256 +53,260 @@ func (cmd *Command) Run(server *Server, client *Client, msg ircmsg.IrcMessage) b
53 53
 }
54 54
 
55 55
 // Commands holds all commands executable by a client connected to us.
56
-var Commands = map[string]Command{
57
-	"ACC": {
58
-		handler:   accHandler,
59
-		minParams: 3,
60
-	},
61
-	"AMBIANCE": {
62
-		handler:   sceneHandler,
63
-		minParams: 2,
64
-	},
65
-	"AUTHENTICATE": {
66
-		handler:      authenticateHandler,
67
-		usablePreReg: true,
68
-		minParams:    1,
69
-	},
70
-	"AWAY": {
71
-		handler:   awayHandler,
72
-		minParams: 0,
73
-	},
74
-	"CAP": {
75
-		handler:      capHandler,
76
-		usablePreReg: true,
77
-		minParams:    1,
78
-	},
79
-	"CHANSERV": {
80
-		handler:   csHandler,
81
-		minParams: 1,
82
-	},
83
-	"CS": {
84
-		handler:   csHandler,
85
-		minParams: 1,
86
-	},
87
-	"DEBUG": {
88
-		handler:   debugHandler,
89
-		minParams: 1,
90
-	},
91
-	"DLINE": {
92
-		handler:   dlineHandler,
93
-		minParams: 1,
94
-		oper:      true,
95
-	},
96
-	"HELP": {
97
-		handler:   helpHandler,
98
-		minParams: 0,
99
-	},
100
-	"HELPOP": {
101
-		handler:   helpHandler,
102
-		minParams: 0,
103
-	},
104
-	"INFO": {
105
-		handler: infoHandler,
106
-	},
107
-	"INVITE": {
108
-		handler:   inviteHandler,
109
-		minParams: 2,
110
-	},
111
-	"ISON": {
112
-		handler:   isonHandler,
113
-		minParams: 1,
114
-	},
115
-	"JOIN": {
116
-		handler:   joinHandler,
117
-		minParams: 1,
118
-	},
119
-	"KICK": {
120
-		handler:   kickHandler,
121
-		minParams: 2,
122
-	},
123
-	"KILL": {
124
-		handler:   killHandler,
125
-		minParams: 1,
126
-		oper:      true,
127
-		capabs:    []string{"oper:local_kill"}, //TODO(dan): when we have S2S, this will be checked in the command handler itself
128
-	},
129
-	"KLINE": {
130
-		handler:   klineHandler,
131
-		minParams: 1,
132
-		oper:      true,
133
-	},
134
-	"LANGUAGE": {
135
-		handler:      languageHandler,
136
-		usablePreReg: true,
137
-		minParams:    1,
138
-	},
139
-	"LIST": {
140
-		handler:   listHandler,
141
-		minParams: 0,
142
-	},
143
-	"LUSERS": {
144
-		handler:   lusersHandler,
145
-		minParams: 0,
146
-	},
147
-	"MODE": {
148
-		handler:   modeHandler,
149
-		minParams: 1,
150
-	},
151
-	"MONITOR": {
152
-		handler:   monitorHandler,
153
-		minParams: 1,
154
-	},
155
-	"MOTD": {
156
-		handler:   motdHandler,
157
-		minParams: 0,
158
-	},
159
-	"NAMES": {
160
-		handler:   namesHandler,
161
-		minParams: 0,
162
-	},
163
-	"NICK": {
164
-		handler:      nickHandler,
165
-		usablePreReg: true,
166
-		minParams:    1,
167
-	},
168
-	"NICKSERV": {
169
-		handler:   nsHandler,
170
-		minParams: 1,
171
-	},
172
-	"NOTICE": {
173
-		handler:   noticeHandler,
174
-		minParams: 2,
175
-	},
176
-	"NPC": {
177
-		handler:   npcHandler,
178
-		minParams: 3,
179
-	},
180
-	"NPCA": {
181
-		handler:   npcaHandler,
182
-		minParams: 3,
183
-	},
184
-	"NS": {
185
-		handler:   nsHandler,
186
-		minParams: 1,
187
-	},
188
-	"OPER": {
189
-		handler:   operHandler,
190
-		minParams: 2,
191
-	},
192
-	"PART": {
193
-		handler:   partHandler,
194
-		minParams: 1,
195
-	},
196
-	"PASS": {
197
-		handler:      passHandler,
198
-		usablePreReg: true,
199
-		minParams:    1,
200
-	},
201
-	"PING": {
202
-		handler:           pingHandler,
203
-		usablePreReg:      true,
204
-		minParams:         1,
205
-		leaveClientActive: true,
206
-	},
207
-	"PONG": {
208
-		handler:           pongHandler,
209
-		usablePreReg:      true,
210
-		minParams:         1,
211
-		leaveClientActive: true,
212
-	},
213
-	"PRIVMSG": {
214
-		handler:   privmsgHandler,
215
-		minParams: 2,
216
-	},
217
-	"PROXY": {
218
-		handler:      proxyHandler,
219
-		usablePreReg: true,
220
-		minParams:    5,
221
-	},
222
-	"RENAME": {
223
-		handler:   renameHandler,
224
-		minParams: 2,
225
-	},
226
-	"RESUME": {
227
-		handler:      resumeHandler,
228
-		usablePreReg: true,
229
-		minParams:    1,
230
-	},
231
-	"SANICK": {
232
-		handler:   sanickHandler,
233
-		minParams: 2,
234
-		oper:      true,
235
-	},
236
-	"SAMODE": {
237
-		handler:   modeHandler,
238
-		minParams: 1,
239
-		capabs:    []string{"samode"},
240
-	},
241
-	"SCENE": {
242
-		handler:   sceneHandler,
243
-		minParams: 2,
244
-	},
245
-	"TAGMSG": {
246
-		handler:   tagmsgHandler,
247
-		minParams: 1,
248
-	},
249
-	"QUIT": {
250
-		handler:      quitHandler,
251
-		usablePreReg: true,
252
-		minParams:    0,
253
-	},
254
-	"REHASH": {
255
-		handler:   rehashHandler,
256
-		minParams: 0,
257
-		oper:      true,
258
-		capabs:    []string{"oper:rehash"},
259
-	},
260
-	"TIME": {
261
-		handler:   timeHandler,
262
-		minParams: 0,
263
-	},
264
-	"TOPIC": {
265
-		handler:   topicHandler,
266
-		minParams: 1,
267
-	},
268
-	"UNDLINE": {
269
-		handler:   unDLineHandler,
270
-		minParams: 1,
271
-		oper:      true,
272
-	},
273
-	"UNKLINE": {
274
-		handler:   unKLineHandler,
275
-		minParams: 1,
276
-		oper:      true,
277
-	},
278
-	"USER": {
279
-		handler:      userHandler,
280
-		usablePreReg: true,
281
-		minParams:    4,
282
-	},
283
-	"USERHOST": {
284
-		handler:   userhostHandler,
285
-		minParams: 1,
286
-	},
287
-	"VERSION": {
288
-		handler:   versionHandler,
289
-		minParams: 0,
290
-	},
291
-	"WEBIRC": {
292
-		handler:      webircHandler,
293
-		usablePreReg: true,
294
-		minParams:    4,
295
-	},
296
-	"WHO": {
297
-		handler:   whoHandler,
298
-		minParams: 1,
299
-	},
300
-	"WHOIS": {
301
-		handler:   whoisHandler,
302
-		minParams: 1,
303
-	},
304
-	"WHOWAS": {
305
-		handler:   whowasHandler,
306
-		minParams: 1,
307
-	},
56
+var Commands map[string]Command
57
+
58
+func init() {
59
+	Commands = map[string]Command{
60
+		"ACC": {
61
+			handler:   accHandler,
62
+			minParams: 3,
63
+		},
64
+		"AMBIANCE": {
65
+			handler:   sceneHandler,
66
+			minParams: 2,
67
+		},
68
+		"AUTHENTICATE": {
69
+			handler:      authenticateHandler,
70
+			usablePreReg: true,
71
+			minParams:    1,
72
+		},
73
+		"AWAY": {
74
+			handler:   awayHandler,
75
+			minParams: 0,
76
+		},
77
+		"CAP": {
78
+			handler:      capHandler,
79
+			usablePreReg: true,
80
+			minParams:    1,
81
+		},
82
+		"CHANSERV": {
83
+			handler:   csHandler,
84
+			minParams: 1,
85
+		},
86
+		"CS": {
87
+			handler:   csHandler,
88
+			minParams: 1,
89
+		},
90
+		"DEBUG": {
91
+			handler:   debugHandler,
92
+			minParams: 1,
93
+		},
94
+		"DLINE": {
95
+			handler:   dlineHandler,
96
+			minParams: 1,
97
+			oper:      true,
98
+		},
99
+		"HELP": {
100
+			handler:   helpHandler,
101
+			minParams: 0,
102
+		},
103
+		"HELPOP": {
104
+			handler:   helpHandler,
105
+			minParams: 0,
106
+		},
107
+		"INFO": {
108
+			handler: infoHandler,
109
+		},
110
+		"INVITE": {
111
+			handler:   inviteHandler,
112
+			minParams: 2,
113
+		},
114
+		"ISON": {
115
+			handler:   isonHandler,
116
+			minParams: 1,
117
+		},
118
+		"JOIN": {
119
+			handler:   joinHandler,
120
+			minParams: 1,
121
+		},
122
+		"KICK": {
123
+			handler:   kickHandler,
124
+			minParams: 2,
125
+		},
126
+		"KILL": {
127
+			handler:   killHandler,
128
+			minParams: 1,
129
+			oper:      true,
130
+			capabs:    []string{"oper:local_kill"}, //TODO(dan): when we have S2S, this will be checked in the command handler itself
131
+		},
132
+		"KLINE": {
133
+			handler:   klineHandler,
134
+			minParams: 1,
135
+			oper:      true,
136
+		},
137
+		"LANGUAGE": {
138
+			handler:      languageHandler,
139
+			usablePreReg: true,
140
+			minParams:    1,
141
+		},
142
+		"LIST": {
143
+			handler:   listHandler,
144
+			minParams: 0,
145
+		},
146
+		"LUSERS": {
147
+			handler:   lusersHandler,
148
+			minParams: 0,
149
+		},
150
+		"MODE": {
151
+			handler:   modeHandler,
152
+			minParams: 1,
153
+		},
154
+		"MONITOR": {
155
+			handler:   monitorHandler,
156
+			minParams: 1,
157
+		},
158
+		"MOTD": {
159
+			handler:   motdHandler,
160
+			minParams: 0,
161
+		},
162
+		"NAMES": {
163
+			handler:   namesHandler,
164
+			minParams: 0,
165
+		},
166
+		"NICK": {
167
+			handler:      nickHandler,
168
+			usablePreReg: true,
169
+			minParams:    1,
170
+		},
171
+		"NICKSERV": {
172
+			handler:   nsHandler,
173
+			minParams: 1,
174
+		},
175
+		"NOTICE": {
176
+			handler:   noticeHandler,
177
+			minParams: 2,
178
+		},
179
+		"NPC": {
180
+			handler:   npcHandler,
181
+			minParams: 3,
182
+		},
183
+		"NPCA": {
184
+			handler:   npcaHandler,
185
+			minParams: 3,
186
+		},
187
+		"NS": {
188
+			handler:   nsHandler,
189
+			minParams: 1,
190
+		},
191
+		"OPER": {
192
+			handler:   operHandler,
193
+			minParams: 2,
194
+		},
195
+		"PART": {
196
+			handler:   partHandler,
197
+			minParams: 1,
198
+		},
199
+		"PASS": {
200
+			handler:      passHandler,
201
+			usablePreReg: true,
202
+			minParams:    1,
203
+		},
204
+		"PING": {
205
+			handler:           pingHandler,
206
+			usablePreReg:      true,
207
+			minParams:         1,
208
+			leaveClientActive: true,
209
+		},
210
+		"PONG": {
211
+			handler:           pongHandler,
212
+			usablePreReg:      true,
213
+			minParams:         1,
214
+			leaveClientActive: true,
215
+		},
216
+		"PRIVMSG": {
217
+			handler:   privmsgHandler,
218
+			minParams: 2,
219
+		},
220
+		"PROXY": {
221
+			handler:      proxyHandler,
222
+			usablePreReg: true,
223
+			minParams:    5,
224
+		},
225
+		"RENAME": {
226
+			handler:   renameHandler,
227
+			minParams: 2,
228
+		},
229
+		"RESUME": {
230
+			handler:      resumeHandler,
231
+			usablePreReg: true,
232
+			minParams:    1,
233
+		},
234
+		"SANICK": {
235
+			handler:   sanickHandler,
236
+			minParams: 2,
237
+			oper:      true,
238
+		},
239
+		"SAMODE": {
240
+			handler:   modeHandler,
241
+			minParams: 1,
242
+			capabs:    []string{"samode"},
243
+		},
244
+		"SCENE": {
245
+			handler:   sceneHandler,
246
+			minParams: 2,
247
+		},
248
+		"TAGMSG": {
249
+			handler:   tagmsgHandler,
250
+			minParams: 1,
251
+		},
252
+		"QUIT": {
253
+			handler:      quitHandler,
254
+			usablePreReg: true,
255
+			minParams:    0,
256
+		},
257
+		"REHASH": {
258
+			handler:   rehashHandler,
259
+			minParams: 0,
260
+			oper:      true,
261
+			capabs:    []string{"oper:rehash"},
262
+		},
263
+		"TIME": {
264
+			handler:   timeHandler,
265
+			minParams: 0,
266
+		},
267
+		"TOPIC": {
268
+			handler:   topicHandler,
269
+			minParams: 1,
270
+		},
271
+		"UNDLINE": {
272
+			handler:   unDLineHandler,
273
+			minParams: 1,
274
+			oper:      true,
275
+		},
276
+		"UNKLINE": {
277
+			handler:   unKLineHandler,
278
+			minParams: 1,
279
+			oper:      true,
280
+		},
281
+		"USER": {
282
+			handler:      userHandler,
283
+			usablePreReg: true,
284
+			minParams:    4,
285
+		},
286
+		"USERHOST": {
287
+			handler:   userhostHandler,
288
+			minParams: 1,
289
+		},
290
+		"VERSION": {
291
+			handler:   versionHandler,
292
+			minParams: 0,
293
+		},
294
+		"WEBIRC": {
295
+			handler:      webircHandler,
296
+			usablePreReg: true,
297
+			minParams:    4,
298
+		},
299
+		"WHO": {
300
+			handler:   whoHandler,
301
+			minParams: 1,
302
+		},
303
+		"WHOIS": {
304
+			handler:   whoisHandler,
305
+			minParams: 1,
306
+		},
307
+		"WHOWAS": {
308
+			handler:   whowasHandler,
309
+			minParams: 1,
310
+		},
311
+	}
308 312
 }

Loading…
Cancelar
Guardar