From 914dd90b3d2fb60b87cbd5f8b0fdeb1264c1173f Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 19 Jul 2023 13:56:48 +0100 Subject: [PATCH] Use first-class closures in more places --- src/Server.php | 2 +- src/network/mcpe/InventoryManager.php | 4 +--- src/network/mcpe/NetworkSession.php | 10 +++------- src/network/mcpe/cache/CraftingDataCache.php | 12 +++--------- src/utils/RegistryTrait.php | 4 +--- 5 files changed, 9 insertions(+), 23 deletions(-) diff --git a/src/Server.php b/src/Server.php index f604c93d7..530b8d469 100644 --- a/src/Server.php +++ b/src/Server.php @@ -1009,7 +1009,7 @@ class Server{ $this->playerDataProvider = new DatFilePlayerDataProvider(Path::join($this->dataPath, "players")); - register_shutdown_function([$this, "crashDump"]); + register_shutdown_function($this->crashDump(...)); $loadErrorCount = 0; $this->pluginManager->loadPlugins($this->pluginPath, $loadErrorCount); diff --git a/src/network/mcpe/InventoryManager.php b/src/network/mcpe/InventoryManager.php index 316abfd3e..254eff910 100644 --- a/src/network/mcpe/InventoryManager.php +++ b/src/network/mcpe/InventoryManager.php @@ -116,9 +116,7 @@ class InventoryManager{ $this->addComplex(UIInventorySlotOffset::CURSOR, $this->player->getCursorInventory()); $this->addComplex(UIInventorySlotOffset::CRAFTING2X2_INPUT, $this->player->getCraftingGrid()); - $this->player->getInventory()->getHeldItemIndexChangeListeners()->add(function() : void{ - $this->syncSelectedHotbarSlot(); - }); + $this->player->getInventory()->getHeldItemIndexChangeListeners()->add($this->syncSelectedHotbarSlot(...)); } private function associateIdWithInventory(int $id, Inventory $inventory) : void{ diff --git a/src/network/mcpe/NetworkSession.php b/src/network/mcpe/NetworkSession.php index 252db34cf..dbd857b0f 100644 --- a/src/network/mcpe/NetworkSession.php +++ b/src/network/mcpe/NetworkSession.php @@ -197,7 +197,7 @@ class NetworkSession{ $this->setHandler(new SessionStartPacketHandler( $this, - fn() => $this->onSessionStartSuccess() + $this->onSessionStartSuccess(...) )); $this->manager->add($this); @@ -787,9 +787,7 @@ class NetworkSession{ $this->cipher = EncryptionContext::fakeGCM($encryptionKey); - $this->setHandler(new HandshakePacketHandler(function() : void{ - $this->onServerLoginSuccess(); - })); + $this->setHandler(new HandshakePacketHandler($this->onServerLoginSuccess(...))); $this->logger->debug("Enabled encryption"); })); }else{ @@ -818,9 +816,7 @@ class NetworkSession{ public function notifyTerrainReady() : void{ $this->logger->debug("Sending spawn notification, waiting for spawn response"); $this->sendDataPacket(PlayStatusPacket::create(PlayStatusPacket::PLAYER_SPAWN)); - $this->setHandler(new SpawnResponsePacketHandler(function() : void{ - $this->onClientSpawnResponse(); - })); + $this->setHandler(new SpawnResponsePacketHandler($this->onClientSpawnResponse(...))); } private function onClientSpawnResponse() : void{ diff --git a/src/network/mcpe/cache/CraftingDataCache.php b/src/network/mcpe/cache/CraftingDataCache.php index e6ac6167b..58aa94a88 100644 --- a/src/network/mcpe/cache/CraftingDataCache.php +++ b/src/network/mcpe/cache/CraftingDataCache.php @@ -95,12 +95,8 @@ final class CraftingDataCache{ $recipesWithTypeIds[] = new ProtocolShapelessRecipe( CraftingDataPacket::ENTRY_SHAPELESS, Binary::writeInt($index), - array_map(function(RecipeIngredient $item) use ($converter) : ProtocolRecipeIngredient{ - return $converter->coreRecipeIngredientToNet($item); - }, $recipe->getIngredientList()), - array_map(function(Item $item) use ($converter) : ItemStack{ - return $converter->coreItemStackToNet($item); - }, $recipe->getResults()), + array_map($converter->coreRecipeIngredientToNet(...), $recipe->getIngredientList()), + array_map($converter->coreItemStackToNet(...), $recipe->getResults()), $nullUUID, $typeTag, 50, @@ -118,9 +114,7 @@ final class CraftingDataCache{ CraftingDataPacket::ENTRY_SHAPED, Binary::writeInt($index), $inputs, - array_map(function(Item $item) use ($converter) : ItemStack{ - return $converter->coreItemStackToNet($item); - }, $recipe->getResults()), + array_map($converter->coreItemStackToNet(...), $recipe->getResults()), $nullUUID, CraftingRecipeBlockName::CRAFTING_TABLE, 50, diff --git a/src/utils/RegistryTrait.php b/src/utils/RegistryTrait.php index f8ffc1143..573f4737f 100644 --- a/src/utils/RegistryTrait.php +++ b/src/utils/RegistryTrait.php @@ -121,8 +121,6 @@ trait RegistryTrait{ */ private static function _registryGetAll() : array{ self::checkInit(); - return array_map(function(object $o) : object{ - return self::preprocessMember($o); - }, self::$members); + return array_map(self::preprocessMember(...), self::$members); } }