forked from External/ergo
implement draft/multiline
This commit is contained in:
parent
ec8b25e236
commit
358c4b7d81
14 changed files with 531 additions and 192 deletions
|
|
@ -16,6 +16,7 @@ type Command struct {
|
|||
oper bool
|
||||
usablePreReg bool
|
||||
leaveClientIdle bool // if true, leaves the client active time alone
|
||||
allowedInBatch bool // allowed in client-to-server batches
|
||||
minParams int
|
||||
capabs []string
|
||||
}
|
||||
|
|
@ -44,6 +45,11 @@ func (cmd *Command) Run(server *Server, client *Client, session *Session, msg ir
|
|||
rb.Add(nil, server.name, ERR_NEEDMOREPARAMS, client.Nick(), msg.Command, rb.target.t("Not enough parameters"))
|
||||
return false
|
||||
}
|
||||
if session.batch.label != "" && !cmd.allowedInBatch {
|
||||
rb.Add(nil, server.name, "FAIL", "BATCH", "MULTILINE_INVALID", client.t("Command not allowed during a multiline batch"))
|
||||
session.batch = MultilineBatch{}
|
||||
return false
|
||||
}
|
||||
|
||||
return cmd.handler(server, client, msg, rb)
|
||||
}()
|
||||
|
|
@ -92,6 +98,11 @@ func init() {
|
|||
handler: awayHandler,
|
||||
minParams: 0,
|
||||
},
|
||||
"BATCH": {
|
||||
handler: batchHandler,
|
||||
minParams: 1,
|
||||
allowedInBatch: true,
|
||||
},
|
||||
"BRB": {
|
||||
handler: brbHandler,
|
||||
minParams: 0,
|
||||
|
|
@ -193,8 +204,9 @@ func init() {
|
|||
minParams: 1,
|
||||
},
|
||||
"NOTICE": {
|
||||
handler: messageHandler,
|
||||
minParams: 2,
|
||||
handler: messageHandler,
|
||||
minParams: 2,
|
||||
allowedInBatch: true,
|
||||
},
|
||||
"NPC": {
|
||||
handler: npcHandler,
|
||||
|
|
@ -230,8 +242,9 @@ func init() {
|
|||
leaveClientIdle: true,
|
||||
},
|
||||
"PRIVMSG": {
|
||||
handler: messageHandler,
|
||||
minParams: 2,
|
||||
handler: messageHandler,
|
||||
minParams: 2,
|
||||
allowedInBatch: true,
|
||||
},
|
||||
"RENAME": {
|
||||
handler: renameHandler,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue