From 53d209c9113917fdea50933b1548107f887bf3b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Le=C3=B3n?= <58715544+JavierLeon9966@users.noreply.github.com> Date: Thu, 10 Aug 2023 15:21:48 -0300 Subject: [PATCH] Await for all the async functions to resolve at the same time This should resolve the function 3x faster. --- .../CPlotClaimAddon/listener/PlotEventListener.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/ColinHDev/CPlotClaimAddon/listener/PlotEventListener.php b/src/ColinHDev/CPlotClaimAddon/listener/PlotEventListener.php index ef04ff0..3687d1c 100644 --- a/src/ColinHDev/CPlotClaimAddon/listener/PlotEventListener.php +++ b/src/ColinHDev/CPlotClaimAddon/listener/PlotEventListener.php @@ -52,26 +52,28 @@ private function onPlotEvent(PlotAsyncEvent $event) : void { $worldSettings = $plot->getWorldSettings(); $resourceManager = ResourceManager::getInstance(); + $gens = []; $biomeID = $resourceManager->getBiomeIDForWorld($worldName); if ($biomeID !== $worldSettings->getBiomeID()) { - yield from Await::promise( + $gens[] = Await::promise( static fn($resolve) => $plot->setBiome($biomeID, $resolve, $resolve) ); } $borderBlock = $resourceManager->getBorderBlockForWorld($worldName); if (!$borderBlock->isSameState($worldSettings->getBorderBlock())) { - yield from Await::promise( + $gens[] = Await::promise( static fn($resolve) => $plot->setBorderBlock($borderBlock, $resolve, $resolve) ); } $wallBlock = $resourceManager->getWallBlockForWorld($worldName); if (!$wallBlock->isSameState($worldSettings->getRoadBlock())) { - yield from Await::promise( + $gens[] = Await::promise( static fn($resolve) => $plot->setWallBlock($wallBlock, $resolve, $resolve) ); } + yield from Await::all($gens); $event->continue(); });