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(); } }