浏览代码

Support bot mode +B

tags/v0.11.0-alpha
Daniel Oaks 6 年前
父节点
当前提交
3b3c1c733a
共有 3 个文件被更改,包括 7 次插入2 次删除
  1. 3
    2
      irc/modes.go
  2. 1
    0
      irc/numerics.go
  3. 3
    0
      irc/server.go

+ 3
- 2
irc/modes.go 查看文件

@@ -96,6 +96,7 @@ func (modes Modes) String() string {
96 96
 // User Modes
97 97
 const (
98 98
 	Away            Mode = 'a'
99
+	Bot             Mode = 'B'
99 100
 	Invisible       Mode = 'i'
100 101
 	LocalOperator   Mode = 'O'
101 102
 	Operator        Mode = 'o'
@@ -110,7 +111,7 @@ const (
110 111
 var (
111 112
 	// SupportedUserModes are the user modes that we actually support (modifying).
112 113
 	SupportedUserModes = Modes{
113
-		Away, Invisible, Operator, RegisteredOnly, ServerNotice, UserRoleplaying,
114
+		Away, Bot, Invisible, Operator, RegisteredOnly, ServerNotice, UserRoleplaying,
114 115
 	}
115 116
 	// supportedUserModesString acts as a cache for when we introduce users
116 117
 	supportedUserModesString = SupportedUserModes.String()
@@ -276,7 +277,7 @@ func (client *Client) applyUserModeChanges(force bool, changes ModeChanges) Mode
276 277
 
277 278
 	for _, change := range changes {
278 279
 		switch change.mode {
279
-		case Invisible, WallOps, UserRoleplaying, Operator, LocalOperator, RegisteredOnly:
280
+		case Bot, Invisible, WallOps, UserRoleplaying, Operator, LocalOperator, RegisteredOnly:
280 281
 			switch change.op {
281 282
 			case Add:
282 283
 				if !force && (change.mode == Operator || change.mode == LocalOperator) {

+ 1
- 0
irc/numerics.go 查看文件

@@ -72,6 +72,7 @@ const (
72 72
 	RPL_NOTOPIC                     = "331"
73 73
 	RPL_TOPIC                       = "332"
74 74
 	RPL_TOPICTIME                   = "333"
75
+	RPL_WHOISBOT                    = "335"
75 76
 	RPL_WHOISACTUALLY               = "338"
76 77
 	RPL_INVITING                    = "341"
77 78
 	RPL_SUMMONING                   = "342"

+ 3
- 0
irc/server.go 查看文件

@@ -988,6 +988,9 @@ func (client *Client) getWhoisOf(target *Client) {
988 988
 	if target.flags[TLS] {
989 989
 		client.Send(nil, client.server.name, RPL_WHOISSECURE, client.nick, target.nick, "is using a secure connection")
990 990
 	}
991
+	if target.flags[Bot] {
992
+		client.Send(nil, client.server.name, RPL_WHOISBOT, client.nick, target.nick, ircfmt.Unescape("is a $bBot$b on ")+client.server.networkName)
993
+	}
991 994
 	if target.certfp != "" && (client.flags[Operator] || client == target) {
992 995
 		client.Send(nil, client.server.name, RPL_WHOISCERTFP, client.nick, target.nick, fmt.Sprintf("has client certificate fingerprint %s", target.certfp))
993 996
 	}

正在加载...
取消
保存