Bläddra i källkod

Merge pull request #1629 from jesopo/global-notice

implement mass/global messaging
tags/v2.7.0-rc1
Shivaram Lingamneni 3 år sedan
förälder
incheckning
8bf6231ec6
Inget konto är kopplat till bidragsgivarens mejladress
3 ändrade filer med 23 tillägg och 0 borttagningar
  1. 1
    0
      default.yaml
  2. 21
    0
      irc/handlers.go
  3. 1
    0
      traditional.yaml

+ 1
- 0
default.yaml Visa fil

@@ -622,6 +622,7 @@ oper-classes:
622 622
             - "chanreg"
623 623
             - "history"
624 624
             - "defcon"
625
+            - "massmessage"
625 626
 
626 627
 # ircd operators
627 628
 opers:

+ 21
- 0
irc/handlers.go Visa fil

@@ -2157,6 +2157,27 @@ func dispatchMessageToTarget(client *Client, tags map[string]string, histType hi
2157 2157
 			return
2158 2158
 		}
2159 2159
 		channel.SendSplitMessage(command, lowestPrefix, tags, client, message, rb)
2160
+	} else if target[0] == '$' && len(target) > 2 && client.Oper().HasRoleCapab("massmessage") {
2161
+		details := client.Details()
2162
+		matcher, err := utils.CompileGlob(target[2:], false)
2163
+		if err != nil {
2164
+			rb.Add(nil, server.name, ERR_UNKNOWNERROR, details.nick, command, client.t("Erroneous target"))
2165
+			return
2166
+		}
2167
+
2168
+		nickMaskString := details.nickMask
2169
+		accountName := details.accountName
2170
+		isBot := client.HasMode(modes.Bot)
2171
+		for _, tClient := range server.clients.AllClients() {
2172
+			if (target[1] == '$' && matcher.MatchString(tClient.server.name)) || // $$servername
2173
+				(target[1] == '#' && matcher.MatchString(tClient.Hostname())) { // $#hostname
2174
+
2175
+				tnick := tClient.Nick()
2176
+				for _, session := range tClient.Sessions() {
2177
+					session.sendSplitMsgFromClientInternal(false, nickMaskString, accountName, isBot, nil, command, tnick, message)
2178
+				}
2179
+			}
2180
+		}
2160 2181
 	} else {
2161 2182
 		lowercaseTarget := strings.ToLower(target)
2162 2183
 		service, isService := OragonoServices[lowercaseTarget]

+ 1
- 0
traditional.yaml Visa fil

@@ -594,6 +594,7 @@ oper-classes:
594 594
             - "chanreg"
595 595
             - "history"
596 596
             - "defcon"
597
+            - "massmessage"
597 598
 
598 599
 # ircd operators
599 600
 opers:

Laddar…
Avbryt
Spara