Watch
1
0
Fork
You've already forked mautrix-whatsapp
0
mirror of https://github.com/mautrix/whatsapp.git synced 2026-11-12 17:19:19 -05:00

Compare commits

...
Author SHA1 Message Date
Indent
51c6e5254e chatinfo: keep member event overrides when toggling announcement mode 2026-11-10 06:21:45 +00:00

View file

@ -436,24 +436,28 @@ func (wa *WhatsAppClient) wrapGroupInfoChange(ctx context.Context, evt *events.G
if memberChanges == nil { if memberChanges == nil {
memberChanges = &bridgev2.ChatMemberList{} memberChanges = &bridgev2.ChatMemberList{}
} }
memberChanges.PowerLevels = &bridgev2.PowerLevelOverrides{} memberChanges.PowerLevels = &bridgev2.PowerLevelOverrides{
Events: make(map[event.Type]int),
}
if evt.Announce != nil { if evt.Announce != nil {
if evt.Announce.IsAnnounce { if evt.Announce.IsAnnounce {
memberChanges.PowerLevels.EventsDefault = ptr.Ptr(adminPL) memberChanges.PowerLevels.EventsDefault = ptr.Ptr(adminPL)
} else { } else {
memberChanges.PowerLevels.EventsDefault = ptr.Ptr(defaultPL) memberChanges.PowerLevels.EventsDefault = ptr.Ptr(defaultPL)
} }
memberChanges.PowerLevels.Events[event.EventEncrypted] = defaultPL
memberChanges.PowerLevels.Events[event.EventReaction] = defaultPL
memberChanges.PowerLevels.Events[event.EventRedaction] = defaultPL
memberChanges.PowerLevels.Events[event.EventUnstablePollResponse] = defaultPL
} }
if evt.Locked != nil { if evt.Locked != nil {
metaChangePL := defaultPL metaChangePL := defaultPL
if evt.Locked.IsLocked { if evt.Locked.IsLocked {
metaChangePL = adminPL metaChangePL = adminPL
} }
memberChanges.PowerLevels.Events = map[event.Type]int{ memberChanges.PowerLevels.Events[event.StateRoomName] = metaChangePL
event.StateRoomName: metaChangePL, memberChanges.PowerLevels.Events[event.StateRoomAvatar] = metaChangePL
event.StateRoomAvatar: metaChangePL, memberChanges.PowerLevels.Events[event.StateTopic] = metaChangePL
event.StateTopic: metaChangePL,
}
} }
} }
return &bridgev2.ChatInfoChange{ return &bridgev2.ChatInfoChange{