BREAKING: update mautrix to 0.15.x

This commit is contained in:
Aine
2023-06-01 14:32:20 +00:00
parent a6b20a75ab
commit 2bdb8ca635
222 changed files with 7851 additions and 23986 deletions

View File

@@ -13,7 +13,7 @@ import (
)
// PowerLevelsEventContent represents the content of a m.room.power_levels state event content.
// https://spec.matrix.org/v1.2/client-server-api/#mroompower_levels
// https://spec.matrix.org/v1.5/client-server-api/#mroompower_levels
type PowerLevelsEventContent struct {
usersLock sync.RWMutex
Users map[id.UserID]int `json:"users,omitempty"`
@@ -23,6 +23,8 @@ type PowerLevelsEventContent struct {
Events map[string]int `json:"events,omitempty"`
EventsDefault int `json:"events_default,omitempty"`
Notifications *NotificationPowerLevels `json:"notifications,omitempty"`
StateDefaultPtr *int `json:"state_default,omitempty"`
InvitePtr *int `json:"invite,omitempty"`
@@ -32,6 +34,66 @@ type PowerLevelsEventContent struct {
HistoricalPtr *int `json:"historical,omitempty"`
}
func copyPtr(ptr *int) *int {
if ptr == nil {
return nil
}
val := *ptr
return &val
}
func copyMap[Key comparable](m map[Key]int) map[Key]int {
if m == nil {
return nil
}
copied := make(map[Key]int, len(m))
for k, v := range m {
copied[k] = v
}
return copied
}
func (pl *PowerLevelsEventContent) Clone() *PowerLevelsEventContent {
if pl == nil {
return nil
}
return &PowerLevelsEventContent{
Users: copyMap(pl.Users),
UsersDefault: pl.UsersDefault,
Events: copyMap(pl.Events),
EventsDefault: pl.EventsDefault,
StateDefaultPtr: copyPtr(pl.StateDefaultPtr),
Notifications: pl.Notifications.Clone(),
InvitePtr: copyPtr(pl.InvitePtr),
KickPtr: copyPtr(pl.KickPtr),
BanPtr: copyPtr(pl.BanPtr),
RedactPtr: copyPtr(pl.RedactPtr),
HistoricalPtr: copyPtr(pl.HistoricalPtr),
}
}
type NotificationPowerLevels struct {
RoomPtr *int `json:"room,omitempty"`
}
func (npl *NotificationPowerLevels) Clone() *NotificationPowerLevels {
if npl == nil {
return nil
}
return &NotificationPowerLevels{
RoomPtr: copyPtr(npl.RoomPtr),
}
}
func (npl *NotificationPowerLevels) Room() int {
if npl != nil && npl.RoomPtr != nil {
return *npl.RoomPtr
}
return 50
}
func (pl *PowerLevelsEventContent) Invite() int {
if pl.InvitePtr != nil {
return *pl.InvitePtr