diff --git a/composer.json b/composer.json index 4ba554594..80ad483a3 100644 --- a/composer.json +++ b/composer.json @@ -45,8 +45,8 @@ "pocketmine/log": "^0.4.0", "pocketmine/math": "~1.0.0", "pocketmine/nbt": "~1.0.0", - "pocketmine/raklib": "^0.15.0", - "pocketmine/raklib-ipc": "^0.2.0", + "pocketmine/raklib": "~1.0.0", + "pocketmine/raklib-ipc": "~1.0.0", "pocketmine/snooze": "^0.5.0", "ramsey/uuid": "~4.7.0", "symfony/filesystem": "~6.4.0" diff --git a/composer.lock b/composer.lock index c06fd4c78..d654c06c0 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f43d60f8c44393f5c42b7ba27cd8ccc0", + "content-hash": "651b773ac69b4a68e59f32b7a72ab357", "packages": [ { "name": "adhocore/json-comment", @@ -616,28 +616,28 @@ }, { "name": "pocketmine/raklib", - "version": "0.15.1", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/pmmp/RakLib.git", - "reference": "79b7b4d1d7516dc6e322514453645ad9452b20ca" + "reference": "fd74ba254d2cfaed1369ae5684cf85773edaaae9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/RakLib/zipball/79b7b4d1d7516dc6e322514453645ad9452b20ca", - "reference": "79b7b4d1d7516dc6e322514453645ad9452b20ca", + "url": "https://api.github.com/repos/pmmp/RakLib/zipball/fd74ba254d2cfaed1369ae5684cf85773edaaae9", + "reference": "fd74ba254d2cfaed1369ae5684cf85773edaaae9", "shasum": "" }, "require": { "ext-sockets": "*", - "php": "^8.0", + "php": "^8.1", "php-64bit": "*", "php-ipv6": "*", "pocketmine/binaryutils": "^0.2.0", "pocketmine/log": "^0.3.0 || ^0.4.0" }, "require-dev": { - "phpstan/phpstan": "1.9.17", + "phpstan/phpstan": "1.10.1", "phpstan/phpstan-strict-rules": "^1.0" }, "type": "library", @@ -653,32 +653,32 @@ "description": "A RakNet server implementation written in PHP", "support": { "issues": "https://github.com/pmmp/RakLib/issues", - "source": "https://github.com/pmmp/RakLib/tree/0.15.1" + "source": "https://github.com/pmmp/RakLib/tree/1.0.0" }, - "time": "2023-03-07T15:10:34+00:00" + "time": "2024-03-01T15:38:54+00:00" }, { "name": "pocketmine/raklib-ipc", - "version": "0.2.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/pmmp/RakLibIpc.git", - "reference": "26ed56fa9db06e4ca6e8920c0ede2e01e219bb9c" + "reference": "ce632ef2c6743e71eddb5dc329c49af6555f90bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/RakLibIpc/zipball/26ed56fa9db06e4ca6e8920c0ede2e01e219bb9c", - "reference": "26ed56fa9db06e4ca6e8920c0ede2e01e219bb9c", + "url": "https://api.github.com/repos/pmmp/RakLibIpc/zipball/ce632ef2c6743e71eddb5dc329c49af6555f90bc", + "reference": "ce632ef2c6743e71eddb5dc329c49af6555f90bc", "shasum": "" }, "require": { "php": "^8.0", "php-64bit": "*", "pocketmine/binaryutils": "^0.2.0", - "pocketmine/raklib": "^0.15.0" + "pocketmine/raklib": "^0.15.0 || ^1.0.0" }, "require-dev": { - "phpstan/phpstan": "1.9.17", + "phpstan/phpstan": "1.10.1", "phpstan/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -694,9 +694,9 @@ "description": "Channel-based protocols for inter-thread/inter-process communication with RakLib", "support": { "issues": "https://github.com/pmmp/RakLibIpc/issues", - "source": "https://github.com/pmmp/RakLibIpc/tree/0.2.0" + "source": "https://github.com/pmmp/RakLibIpc/tree/1.0.1" }, - "time": "2023-02-13T13:40:40+00:00" + "time": "2024-03-01T15:55:05+00:00" }, { "name": "pocketmine/snooze", diff --git a/src/network/mcpe/NetworkSession.php b/src/network/mcpe/NetworkSession.php index edb7f2549..fb369855d 100644 --- a/src/network/mcpe/NetworkSession.php +++ b/src/network/mcpe/NetworkSession.php @@ -708,17 +708,6 @@ class NetworkSession{ $this->flushSendBuffer(true); $this->sender->close(""); - foreach($this->ackPromisesByReceiptId as $resolvers){ - foreach($resolvers as $resolver){ - $resolver->reject(); - } - } - $this->ackPromisesByReceiptId = []; - foreach($this->sendBufferAckPromises as $resolver){ - $resolver->reject(); - } - $this->sendBufferAckPromises = []; - foreach($this->disposeHooks as $callback){ $callback(); } @@ -726,6 +715,19 @@ class NetworkSession{ $this->setHandler(null); $this->connected = false; + $ackPromisesByReceiptId = $this->ackPromisesByReceiptId; + $this->ackPromisesByReceiptId = []; + foreach($ackPromisesByReceiptId as $resolvers){ + foreach($resolvers as $resolver){ + $resolver->reject(); + } + } + $sendBufferAckPromises = $this->sendBufferAckPromises; + $this->sendBufferAckPromises = []; + foreach($sendBufferAckPromises as $resolver){ + $resolver->reject(); + } + $this->logger->info($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_network_session_close($reason))); } }