commit 0844932

delthas  ·  2022-12-21 14:57:30 +0000 UTC
parent e02f743
Implement /OPER

Fixes: https://todo.sr.ht/~taiite/senpai/105
3 files changed,  +24, -0
+17, -0
 1@@ -89,6 +89,14 @@ func init() {
 2 			Desc:      "change your nickname",
 3 			Handle:    commandDoNick,
 4 		},
 5+		"OPER": {
 6+			AllowHome: true,
 7+			MinArgs:   2,
 8+			MaxArgs:   2,
 9+			Usage:     "<username> <password>",
10+			Desc:      "log in to an operator account",
11+			Handle:    commandDoOper,
12+		},
13 		"MODE": {
14 			AllowHome: true,
15 			MaxArgs:   maxArgsInfinite,
16@@ -420,6 +428,15 @@ func commandDoNick(app *App, args []string) (err error) {
17 	return
18 }
19 
20+func commandDoOper(app *App, args []string) (err error) {
21+	s := app.CurrentSession()
22+	if s == nil {
23+		return errOffline
24+	}
25+	s.Oper(args[0], args[1])
26+	return
27+}
28+
29 func commandDoMode(app *App, args []string) (err error) {
30 	_, target := app.win.CurrentBuffer()
31 	if len(args) > 0 && !strings.HasPrefix(args[0], "+") && !strings.HasPrefix(args[0], "-") {
+3, -0
 1@@ -178,6 +178,9 @@ _name_ is matched case-insensitively.  It can be one of the following:
 2 *NICK* <nickname>
 3 	Change your nickname.
 4 
 5+*OPER* <username> <password>
 6+	Log in to an operator account.
 7+
 8 *MODE* <nick/channel> <flags> [args]
 9 	Change channel or user modes.
10 
+4, -0
 1@@ -361,6 +361,10 @@ func (s *Session) ChangeNick(nick string) {
 2 	s.out <- NewMessage("NICK", nick)
 3 }
 4 
 5+func (s *Session) Oper(username string, password string) {
 6+	s.out <- NewMessage("OPER", username, password)
 7+}
 8+
 9 func (s *Session) MOTD() {
10 	s.out <- NewMessage("MOTD")
11 }