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 }