*/ class UserChangedListener implements IEventListener { private IAvatarManager $avatarManager; public function __construct(IAvatarManager $avatarManager) { $this->avatarManager = $avatarManager; } public function handle(Event $event): void { if (!($event instanceof UserChangedEvent)) { return; } $user = $event->getUser(); $feature = $event->getFeature(); $oldValue = $event->getOldValue(); $value = $event->getValue(); // We only change the avatar on display name changes if ($feature === 'displayName') { try { $avatar = $this->avatarManager->getAvatar($user->getUID()); $avatar->userChanged($feature, $oldValue, $value); } catch (NotFoundException $e) { // no avatar to remove } } } }