|
@@ -1287,12 +1287,24 @@ func (channel *Channel) SendSplitMessage(command string, minPrefixMode modes.Mod
|
1287
|
1287
|
chname = fmt.Sprintf("%s%s", modes.ChannelModePrefixes[minPrefixMode], chname)
|
1288
|
1288
|
}
|
1289
|
1289
|
|
|
1290
|
+ if channel.flags.HasMode(modes.OpModerated) {
|
|
1291
|
+ channel.stateMutex.RLock()
|
|
1292
|
+ cuModes := channel.members[client]
|
|
1293
|
+ channel.stateMutex.RUnlock()
|
|
1294
|
+ if cuModes.HighestChannelUserMode() == modes.Mode(0) {
|
|
1295
|
+ // max(statusmsg_minmode, halfop)
|
|
1296
|
+ if minPrefixMode == modes.Mode(0) || minPrefixMode == modes.Voice {
|
|
1297
|
+ minPrefixMode = modes.Halfop
|
|
1298
|
+ }
|
|
1299
|
+ }
|
|
1300
|
+ }
|
|
1301
|
+
|
1290
|
1302
|
// send echo-message
|
1291
|
1303
|
rb.addEchoMessage(clientOnlyTags, details.nickMask, details.accountName, command, chname, message)
|
1292
|
1304
|
|
1293
|
1305
|
for _, member := range channel.Members() {
|
1294
|
1306
|
if minPrefixMode != modes.Mode(0) && !channel.ClientIsAtLeast(member, minPrefixMode) {
|
1295
|
|
- // STATUSMSG
|
|
1307
|
+ // STATUSMSG or OpModerated
|
1296
|
1308
|
continue
|
1297
|
1309
|
}
|
1298
|
1310
|
|
|
@@ -1320,7 +1332,7 @@ func (channel *Channel) SendSplitMessage(command string, minPrefixMode modes.Mod
|
1320
|
1332
|
}
|
1321
|
1333
|
}
|
1322
|
1334
|
|
1323
|
|
- // #959: don't save STATUSMSG
|
|
1335
|
+ // #959: don't save STATUSMSG (or OpModerated)
|
1324
|
1336
|
if minPrefixMode == modes.Mode(0) {
|
1325
|
1337
|
channel.AddHistoryItem(history.Item{
|
1326
|
1338
|
Type: histType,
|