There is no listener, you can call that from anywhere as long as you know the player's level If you want to know when the player enters water, you should use a task to check
PHP: $this->getScheduler()->scheduleRepeatingTask(new class () extends \pocketmine\scheduler\Task{ public function onRun(int $currentTick) : void{ foreach(\pocketmine\Server::getInstance()->getOnlinePlayers() as $player){ if($player->getLevel()->getBlock($player) instanceof Water){ //do stuff } } }}, 1);
PHP: public function onMove(PlayerMoveEvent $event){ if($event->getPlayer()->isUnderWater()){ // code }}
P.S. isUnderwater = player's eye height is under water. Player can still have their feet in water but isUnderwater will return false