From de42e2b770a60ed0aeae037916e50e11e7d92c74 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Thu, 19 Oct 2023 16:19:39 +0200 Subject: [PATCH] Powerbot: fix crash when a user is entirely unknown but has a managed PL. --- misc/infrastructure/powerbot/powerlevels.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/infrastructure/powerbot/powerlevels.go b/misc/infrastructure/powerbot/powerlevels.go index ef40fd8c..42a33c1e 100644 --- a/misc/infrastructure/powerbot/powerlevels.go +++ b/misc/infrastructure/powerbot/powerlevels.go @@ -114,7 +114,7 @@ func syncPowerLevels(client *mautrix.Client, room id.RoomID, roomGroup []Room, s } // TODO: Also skip users who aren't in the room for ages. score := scores[room][user] - if level >= minPowerLevel && level <= maxPowerLevel && score.CurrentState == NotActive && time.Now().After(score.LastEvent.Add(powerExpireTime)) { + if level >= minPowerLevel && level <= maxPowerLevel && (score == nil || (score.CurrentState == NotActive && time.Now().After(score.LastEvent.Add(powerExpireTime)))) { // User is inactive - prune them from the power level list. Saves space. // But this doesn't mark the list dirty as there is no need to send an update. log.Printf("room %v user %v power level: PRUNE %v (%v)", room, user, level, score) -- 2.39.2