divide network\mcpe namespace into more subnamespaces

This commit is contained in:
Dylan K. Taylor 2019-06-27 19:39:59 +01:00
parent 872b6ed708
commit e7733718b6
29 changed files with 61 additions and 50 deletions

View File

@ -50,10 +50,10 @@ use pocketmine\nbt\BigEndianNbtSerializer;
use pocketmine\nbt\NbtDataException;
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\nbt\TreeRoot;
use pocketmine\network\mcpe\CompressBatchPromise;
use pocketmine\network\mcpe\CompressBatchTask;
use pocketmine\network\mcpe\NetworkCipher;
use pocketmine\network\mcpe\NetworkCompression;
use pocketmine\network\mcpe\compression\CompressBatchPromise;
use pocketmine\network\mcpe\compression\CompressBatchTask;
use pocketmine\network\mcpe\compression\Zlib as ZlibNetworkCompression;
use pocketmine\network\mcpe\encryption\NetworkCipher;
use pocketmine\network\mcpe\NetworkSession;
use pocketmine\network\mcpe\PacketBatch;
use pocketmine\network\mcpe\protocol\ClientboundPacket;
@ -1089,15 +1089,15 @@ class Server{
$this->asyncPool = new AsyncPool($poolSize, (int) max(-1, (int) $this->getProperty("memory.async-worker-hard-limit", 256)), $this->autoloader, $this->logger);
if($this->getProperty("network.batch-threshold", 256) >= 0){
NetworkCompression::$THRESHOLD = (int) $this->getProperty("network.batch-threshold", 256);
ZlibNetworkCompression::$THRESHOLD = (int) $this->getProperty("network.batch-threshold", 256);
}else{
NetworkCompression::$THRESHOLD = -1;
ZlibNetworkCompression::$THRESHOLD = -1;
}
NetworkCompression::$LEVEL = $this->getProperty("network.compression-level", 7);
if(NetworkCompression::$LEVEL < 1 or NetworkCompression::$LEVEL > 9){
$this->logger->warning("Invalid network compression level " . NetworkCompression::$LEVEL . " set, setting to default 7");
NetworkCompression::$LEVEL = 7;
ZlibNetworkCompression::$LEVEL = $this->getProperty("network.compression-level", 7);
if(ZlibNetworkCompression::$LEVEL < 1 or ZlibNetworkCompression::$LEVEL > 9){
$this->logger->warning("Invalid network compression level " . ZlibNetworkCompression::$LEVEL . " set, setting to default 7");
ZlibNetworkCompression::$LEVEL = 7;
}
$this->networkCompressionAsync = (bool) $this->getProperty("network.async-compression", true);
@ -1463,7 +1463,7 @@ class Server{
$stream = PacketBatch::fromPackets(...$ev->getPackets());
if(NetworkCompression::$THRESHOLD < 0 or strlen($stream->getBuffer()) < NetworkCompression::$THRESHOLD){
if(ZlibNetworkCompression::$THRESHOLD < 0 or strlen($stream->getBuffer()) < ZlibNetworkCompression::$THRESHOLD){
foreach($recipients as $target){
foreach($ev->getPackets() as $pk){
$target->addToSendBuffer($pk);
@ -1491,9 +1491,9 @@ class Server{
try{
Timings::$playerNetworkSendCompressTimer->startTiming();
$compressionLevel = NetworkCompression::$LEVEL;
$compressionLevel = ZlibNetworkCompression::$LEVEL;
$buffer = $stream->getBuffer();
if(NetworkCompression::$THRESHOLD < 0 or strlen($buffer) < NetworkCompression::$THRESHOLD){
if(ZlibNetworkCompression::$THRESHOLD < 0 or strlen($buffer) < ZlibNetworkCompression::$THRESHOLD){
$compressionLevel = 0; //Do not compress packets under the threshold
$forceSync = true;
}
@ -1503,7 +1503,7 @@ class Server{
$task = new CompressBatchTask($buffer, $compressionLevel, $promise);
$this->asyncPool->submitTask($task);
}else{
$promise->resolve(NetworkCompression::compress($buffer, $compressionLevel));
$promise->resolve(ZlibNetworkCompression::compress($buffer, $compressionLevel));
}
return $promise;

View File

@ -25,7 +25,7 @@ namespace pocketmine\block\tile;
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\nbt\TreeRoot;
use pocketmine\network\mcpe\NetworkNbtSerializer;
use pocketmine\network\mcpe\serializer\NetworkNbtSerializer;
use function get_class;
abstract class Spawnable extends Tile{

View File

@ -24,8 +24,8 @@ declare(strict_types=1);
namespace pocketmine\inventory;
use pocketmine\item\Item;
use pocketmine\network\mcpe\CompressBatchPromise;
use pocketmine\network\mcpe\NetworkCompression;
use pocketmine\network\mcpe\compression\CompressBatchPromise;
use pocketmine\network\mcpe\compression\Zlib;
use pocketmine\network\mcpe\PacketBatch;
use pocketmine\network\mcpe\protocol\CraftingDataPacket;
use pocketmine\timings\Timings;
@ -117,7 +117,7 @@ class CraftingManager{
}
$this->craftingDataCache = new CompressBatchPromise();
$this->craftingDataCache->resolve(NetworkCompression::compress(PacketBatch::fromPackets($pk)->getBuffer()));
$this->craftingDataCache->resolve(Zlib::compress(PacketBatch::fromPackets($pk)->getBuffer()));
Timings::$craftingDataCacheRebuildTimer->stopTiming();
}

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace pocketmine\network\mcpe;
use pocketmine\math\Vector3;
use pocketmine\network\mcpe\compression\CompressBatchPromise;
use pocketmine\world\ChunkListener;
use pocketmine\world\ChunkListenerNoOpTrait;
use pocketmine\world\format\Chunk;

View File

@ -23,7 +23,10 @@ declare(strict_types=1);
namespace pocketmine\network\mcpe;
use pocketmine\network\mcpe\compression\CompressBatchPromise;
use pocketmine\network\mcpe\compression\Zlib;
use pocketmine\network\mcpe\protocol\FullChunkDataPacket;
use pocketmine\network\mcpe\serializer\ChunkSerializer;
use pocketmine\scheduler\AsyncTask;
use pocketmine\world\format\Chunk;
use pocketmine\world\format\io\FastChunkSerializer;
@ -45,7 +48,7 @@ class ChunkRequestTask extends AsyncTask{
private $tiles = "";
public function __construct(int $chunkX, int $chunkZ, Chunk $chunk, CompressBatchPromise $promise, ?\Closure $onError = null){
$this->compressionLevel = NetworkCompression::$LEVEL;
$this->compressionLevel = Zlib::$LEVEL;
$this->chunk = FastChunkSerializer::serialize($chunk);
$this->chunkX = $chunkX;
@ -58,7 +61,7 @@ class ChunkRequestTask extends AsyncTask{
public function onRun() : void{
$chunk = ChunkSerializer::serialize(FastChunkSerializer::deserialize($this->chunk), $this->tiles);
$this->setResult(NetworkCompression::compress(PacketBatch::fromPackets(FullChunkDataPacket::create($this->chunkX, $this->chunkZ, $chunk))->getBuffer(), $this->compressionLevel));
$this->setResult(Zlib::compress(PacketBatch::fromPackets(FullChunkDataPacket::create($this->chunkX, $this->chunkZ, $chunk))->getBuffer(), $this->compressionLevel));
}
public function onError() : void{

View File

@ -33,6 +33,10 @@ use pocketmine\event\server\DataPacketSendEvent;
use pocketmine\form\Form;
use pocketmine\math\Vector3;
use pocketmine\network\BadPacketException;
use pocketmine\network\mcpe\compression\CompressBatchPromise;
use pocketmine\network\mcpe\compression\Zlib;
use pocketmine\network\mcpe\encryption\NetworkCipher;
use pocketmine\network\mcpe\encryption\PrepareEncryptionTask;
use pocketmine\network\mcpe\handler\DeathPacketHandler;
use pocketmine\network\mcpe\handler\HandshakePacketHandler;
use pocketmine\network\mcpe\handler\InGamePacketHandler;
@ -280,7 +284,7 @@ class NetworkSession{
Timings::$playerNetworkReceiveDecompressTimer->startTiming();
try{
$stream = new PacketBatch(NetworkCompression::decompress($payload));
$stream = new PacketBatch(Zlib::decompress($payload));
}catch(\ErrorException $e){
$this->logger->debug("Failed to decompress packet: " . base64_encode($payload));
//TODO: this isn't incompatible game version if we already established protocol version

View File

@ -25,6 +25,7 @@ namespace pocketmine\network\mcpe;
use pocketmine\network\mcpe\protocol\Packet;
use pocketmine\network\mcpe\protocol\PacketPool;
use pocketmine\network\mcpe\serializer\NetworkBinaryStream;
use pocketmine\utils\BinaryDataException;
class PacketBatch extends NetworkBinaryStream{

View File

@ -21,13 +21,14 @@
declare(strict_types=1);
namespace pocketmine\network\mcpe;
namespace pocketmine\network\mcpe\auth;
use Mdanter\Ecc\Crypto\Key\PublicKeyInterface;
use Mdanter\Ecc\Crypto\Signature\Signature;
use Mdanter\Ecc\Serializer\PublicKey\DerPublicKeySerializer;
use Mdanter\Ecc\Serializer\PublicKey\PemPublicKeySerializer;
use Mdanter\Ecc\Serializer\Signature\DerSignatureSerializer;
use pocketmine\network\mcpe\NetworkSession;
use pocketmine\network\mcpe\protocol\LoginPacket;
use pocketmine\scheduler\AsyncTask;
use function assert;

View File

@ -21,7 +21,7 @@
declare(strict_types=1);
namespace pocketmine\network\mcpe;
namespace pocketmine\network\mcpe\auth;
class VerifyLoginException extends \RuntimeException{

View File

@ -21,7 +21,7 @@
declare(strict_types=1);
namespace pocketmine\network\mcpe;
namespace pocketmine\network\mcpe\compression;
use pocketmine\utils\Utils;
use function array_push;

View File

@ -21,7 +21,7 @@
declare(strict_types=1);
namespace pocketmine\network\mcpe;
namespace pocketmine\network\mcpe\compression;
use pocketmine\scheduler\AsyncTask;
@ -44,7 +44,7 @@ class CompressBatchTask extends AsyncTask{
}
public function onRun() : void{
$this->setResult(NetworkCompression::compress($this->data, $this->level));
$this->setResult(Zlib::compress($this->data, $this->level));
}
public function onCompletion() : void{

View File

@ -21,13 +21,13 @@
declare(strict_types=1);
namespace pocketmine\network\mcpe;
namespace pocketmine\network\mcpe\compression;
use function zlib_decode;
use function zlib_encode;
use const ZLIB_ENCODING_DEFLATE;
final class NetworkCompression{
final class Zlib{
public static $LEVEL = 7;
public static $THRESHOLD = 256;

View File

@ -21,7 +21,7 @@
declare(strict_types=1);
namespace pocketmine\network\mcpe;
namespace pocketmine\network\mcpe\encryption;
use Crypto\Cipher;
use pocketmine\utils\Binary;

View File

@ -21,7 +21,7 @@
declare(strict_types=1);
namespace pocketmine\network\mcpe;
namespace pocketmine\network\mcpe\encryption;
use Mdanter\Ecc\Crypto\Key\PrivateKeyInterface;
use Mdanter\Ecc\Crypto\Key\PublicKeyInterface;
@ -30,6 +30,7 @@ use Mdanter\Ecc\Serializer\PrivateKey\DerPrivateKeySerializer;
use Mdanter\Ecc\Serializer\PrivateKey\PemPrivateKeySerializer;
use Mdanter\Ecc\Serializer\PublicKey\DerPublicKeySerializer;
use Mdanter\Ecc\Serializer\Signature\DerSignatureSerializer;
use pocketmine\network\mcpe\NetworkSession;
use pocketmine\scheduler\AsyncTask;
use function base64_encode;
use function gmp_strval;

View File

@ -38,7 +38,6 @@ use pocketmine\math\Vector3;
use pocketmine\nbt\NbtDataException;
use pocketmine\nbt\tag\StringTag;
use pocketmine\network\BadPacketException;
use pocketmine\network\mcpe\NetworkNbtSerializer;
use pocketmine\network\mcpe\NetworkSession;
use pocketmine\network\mcpe\protocol\AdventureSettingsPacket;
use pocketmine\network\mcpe\protocol\AnimatePacket;
@ -81,6 +80,7 @@ use pocketmine\network\mcpe\protocol\types\NormalTransactionData;
use pocketmine\network\mcpe\protocol\types\ReleaseItemTransactionData;
use pocketmine\network\mcpe\protocol\types\UseItemOnEntityTransactionData;
use pocketmine\network\mcpe\protocol\types\UseItemTransactionData;
use pocketmine\network\mcpe\serializer\NetworkNbtSerializer;
use pocketmine\player\Player;
use function array_push;
use function base64_encode;

View File

@ -25,8 +25,8 @@ namespace pocketmine\network\mcpe\handler;
use pocketmine\entity\Skin;
use pocketmine\event\player\PlayerPreLoginEvent;
use pocketmine\network\mcpe\auth\ProcessLoginTask;
use pocketmine\network\mcpe\NetworkSession;
use pocketmine\network\mcpe\ProcessLoginTask;
use pocketmine\network\mcpe\protocol\LoginPacket;
use pocketmine\network\mcpe\protocol\PlayStatusPacket;
use pocketmine\network\mcpe\protocol\ProtocolInfo;

View File

@ -33,7 +33,7 @@ use pocketmine\item\Item;
use pocketmine\item\ItemFactory;
use pocketmine\network\BadPacketException;
use pocketmine\network\mcpe\handler\PacketHandler;
use pocketmine\network\mcpe\NetworkBinaryStream;
use pocketmine\network\mcpe\serializer\NetworkBinaryStream;
use function count;
use function str_repeat;

View File

@ -26,7 +26,7 @@ namespace pocketmine\network\mcpe\protocol;
#include <rules/DataPacket.h>
use pocketmine\network\BadPacketException;
use pocketmine\network\mcpe\NetworkBinaryStream;
use pocketmine\network\mcpe\serializer\NetworkBinaryStream;
use pocketmine\utils\BinaryDataException;
use pocketmine\utils\Utils;
use function bin2hex;

View File

@ -28,9 +28,9 @@ namespace pocketmine\network\mcpe\protocol;
use pocketmine\math\Vector3;
use pocketmine\network\mcpe\handler\PacketHandler;
use pocketmine\network\mcpe\NetworkBinaryStream;
use pocketmine\network\mcpe\protocol\types\PlayerPermissions;
use pocketmine\network\mcpe\protocol\types\RuntimeBlockMapping;
use pocketmine\network\mcpe\serializer\NetworkBinaryStream;
use function count;
class StartGamePacket extends DataPacket implements ClientboundPacket{

View File

@ -24,8 +24,8 @@ declare(strict_types=1);
namespace pocketmine\network\mcpe\protocol\types;
use pocketmine\network\BadPacketException;
use pocketmine\network\mcpe\NetworkBinaryStream;
use pocketmine\network\mcpe\protocol\InventoryTransactionPacket;
use pocketmine\network\mcpe\serializer\NetworkBinaryStream;
use function count;
class MismatchTransactionData extends TransactionData{

View File

@ -32,7 +32,7 @@ use pocketmine\inventory\transaction\action\InventoryAction;
use pocketmine\inventory\transaction\action\SlotChangeAction;
use pocketmine\item\Item;
use pocketmine\network\BadPacketException;
use pocketmine\network\mcpe\NetworkBinaryStream;
use pocketmine\network\mcpe\serializer\NetworkBinaryStream;
use pocketmine\player\Player;
use pocketmine\utils\BinaryDataException;
@ -97,7 +97,7 @@ class NetworkInventoryAction{
public $newItem;
/**
* @param NetworkBinaryStream $packet
* @param \pocketmine\network\mcpe\serializer\NetworkBinaryStream $packet
*
* @return $this
*
@ -132,7 +132,7 @@ class NetworkInventoryAction{
}
/**
* @param NetworkBinaryStream $packet
* @param \pocketmine\network\mcpe\serializer\NetworkBinaryStream $packet
*
* @throws \InvalidArgumentException
*/

View File

@ -23,8 +23,8 @@ declare(strict_types=1);
namespace pocketmine\network\mcpe\protocol\types;
use pocketmine\network\mcpe\NetworkBinaryStream;
use pocketmine\network\mcpe\protocol\InventoryTransactionPacket;
use pocketmine\network\mcpe\serializer\NetworkBinaryStream;
class NormalTransactionData extends TransactionData{

View File

@ -25,8 +25,8 @@ namespace pocketmine\network\mcpe\protocol\types;
use pocketmine\item\Item;
use pocketmine\math\Vector3;
use pocketmine\network\mcpe\NetworkBinaryStream;
use pocketmine\network\mcpe\protocol\InventoryTransactionPacket;
use pocketmine\network\mcpe\serializer\NetworkBinaryStream;
class ReleaseItemTransactionData extends TransactionData{
public const ACTION_RELEASE = 0; //bow shoot

View File

@ -24,7 +24,7 @@ declare(strict_types=1);
namespace pocketmine\network\mcpe\protocol\types;
use pocketmine\network\BadPacketException;
use pocketmine\network\mcpe\NetworkBinaryStream;
use pocketmine\network\mcpe\serializer\NetworkBinaryStream;
use pocketmine\utils\BinaryDataException;
use function count;
@ -45,7 +45,7 @@ abstract class TransactionData{
abstract public function getTypeId() : int;
/**
* @param NetworkBinaryStream $stream
* @param \pocketmine\network\mcpe\serializer\NetworkBinaryStream $stream
*
* @throws BinaryDataException
* @throws BadPacketException
@ -59,7 +59,7 @@ abstract class TransactionData{
}
/**
* @param NetworkBinaryStream $stream
* @param \pocketmine\network\mcpe\serializer\NetworkBinaryStream $stream
*
* @throws BinaryDataException
* @throws BadPacketException

View File

@ -25,8 +25,8 @@ namespace pocketmine\network\mcpe\protocol\types;
use pocketmine\item\Item;
use pocketmine\math\Vector3;
use pocketmine\network\mcpe\NetworkBinaryStream;
use pocketmine\network\mcpe\protocol\InventoryTransactionPacket;
use pocketmine\network\mcpe\serializer\NetworkBinaryStream;
class UseItemOnEntityTransactionData extends TransactionData{
public const ACTION_INTERACT = 0;

View File

@ -25,8 +25,8 @@ namespace pocketmine\network\mcpe\protocol\types;
use pocketmine\item\Item;
use pocketmine\math\Vector3;
use pocketmine\network\mcpe\NetworkBinaryStream;
use pocketmine\network\mcpe\protocol\InventoryTransactionPacket;
use pocketmine\network\mcpe\serializer\NetworkBinaryStream;
class UseItemTransactionData extends TransactionData{
public const ACTION_CLICK_BLOCK = 0;

View File

@ -21,7 +21,7 @@
declare(strict_types=1);
namespace pocketmine\network\mcpe;
namespace pocketmine\network\mcpe\serializer;
use pocketmine\block\tile\Spawnable;
use pocketmine\network\mcpe\protocol\types\RuntimeBlockMapping;

View File

@ -21,7 +21,7 @@
declare(strict_types=1);
namespace pocketmine\network\mcpe;
namespace pocketmine\network\mcpe\serializer;
#include <rules/DataPacket.h>
@ -30,8 +30,8 @@ use pocketmine\item\Item;
use pocketmine\item\ItemFactory;
use pocketmine\item\ItemIds;
use pocketmine\math\Vector3;
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\nbt\NbtDataException;
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\nbt\TreeRoot;
use pocketmine\network\BadPacketException;
use pocketmine\network\mcpe\protocol\types\CommandOriginData;

View File

@ -21,7 +21,7 @@
declare(strict_types=1);
namespace pocketmine\network\mcpe;
namespace pocketmine\network\mcpe\serializer;
use pocketmine\nbt\LittleEndianNbtSerializer;
use function count;