Bladeren bron

support $$server and $#hostname global messages

tags/v2.7.0-rc1
jesopo 3 jaren geleden
bovenliggende
commit
0a1537f928
1 gewijzigde bestanden met toevoegingen van 21 en 0 verwijderingen
  1. 21
    0
      irc/handlers.go

+ 21
- 0
irc/handlers.go Bestand weergeven

@@ -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[1:], 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 matcher.MatchString(fmt.Sprintf("$%s", tClient.server.name)) ||    // $$servername
2173
+				matcher.MatchString(fmt.Sprintf("#%s", tClient.Hostname())) { // $#hostname
2174
+
2175
+				tnick := tClient.Details().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]

Laden…
Annuleren
Opslaan