From ee1e05c3e8b51fca93c8cf5514d45817a708b71f Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Fri, 24 Oct 2025 12:56:53 +0300 Subject: [PATCH] event: fix 32-bit compatibility --- event/powerlevels.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/event/powerlevels.go b/event/powerlevels.go index 50fe82df..708721f9 100644 --- a/event/powerlevels.go +++ b/event/powerlevels.go @@ -132,14 +132,18 @@ func (pl *PowerLevelsEventContent) GetUserLevel(userID id.UserID) int { return level } +const maxPL = 1<<53 - 1 + func (pl *PowerLevelsEventContent) SetUserLevel(userID id.UserID, level int) { pl.usersLock.Lock() defer pl.usersLock.Unlock() if pl.isCreator(userID) { return } - if level == math.MaxInt { - level = 1<<53 - 1 + if level == math.MaxInt && maxPL < math.MaxInt { + // Hack to avoid breaking on 32-bit systems (they're only slightly supported) + x := int64(maxPL) + level = int(x) } if level == pl.UsersDefault { delete(pl.Users, userID)