From a9436cfe0603971e36c19bffff8995e99a8858d4 Mon Sep 17 00:00:00 2001 From: kostamax27 Date: Sat, 21 Jun 2025 14:37:09 +0300 Subject: [PATCH] Fix for player lag when handling many permissions. --- src/IvanCraft623/RankSystem/session/Session.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/IvanCraft623/RankSystem/session/Session.php b/src/IvanCraft623/RankSystem/session/Session.php index 31128d6..3118351 100644 --- a/src/IvanCraft623/RankSystem/session/Session.php +++ b/src/IvanCraft623/RankSystem/session/Session.php @@ -422,6 +422,9 @@ public function updateRanks() : void { public function updatePermissions() : void { $player = $this->getPlayer(); if ($player !== null) { + $callbacks = $player->getPermissionRecalculationCallbacks(); + $previous = $callbacks->toArray(); + $callbacks->clear(); foreach ($this->attachments as $attachment) { $player->removeAttachment($attachment); } @@ -429,6 +432,8 @@ public function updatePermissions() : void { foreach ($this->permissions as $permission) { $this->attachments[] = $player->addAttachment($this->plugin, $permission, true); } + $callbacks->add(...$previous); + $player->recalculatePermissions(); } }