BREAKING: update mautrix to 0.15.x
This commit is contained in:
64
vendor/maunium.net/go/mautrix/event/powerlevels.go
generated
vendored
64
vendor/maunium.net/go/mautrix/event/powerlevels.go
generated
vendored
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user