mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-06 01:46:04 +00:00
Consolidated MCPE network binary handling methods into one class, remove protocol-specific methods from BinaryStream
Remove MCPE-network specific stuff from BinaryStream, added NetworkBinaryStream This removes dependencies of BinaryStream on core code, while providing some consolidation of network handling code.
This commit is contained in:
@ -30,8 +30,8 @@ use pocketmine\inventory\FurnaceRecipe;
|
||||
use pocketmine\inventory\ShapedRecipe;
|
||||
use pocketmine\inventory\ShapelessRecipe;
|
||||
use pocketmine\item\Item;
|
||||
use pocketmine\network\mcpe\NetworkBinaryStream;
|
||||
use pocketmine\network\mcpe\NetworkSession;
|
||||
use pocketmine\utils\BinaryStream;
|
||||
|
||||
class CraftingDataPacket extends DataPacket{
|
||||
public const NETWORK_ID = ProtocolInfo::CRAFTING_DATA_PACKET;
|
||||
@ -114,7 +114,7 @@ class CraftingDataPacket extends DataPacket{
|
||||
$this->getBool(); //cleanRecipes
|
||||
}
|
||||
|
||||
private static function writeEntry($entry, BinaryStream $stream){
|
||||
private static function writeEntry($entry, NetworkBinaryStream $stream){
|
||||
if($entry instanceof ShapelessRecipe){
|
||||
return self::writeShapelessRecipe($entry, $stream);
|
||||
}elseif($entry instanceof ShapedRecipe){
|
||||
@ -127,7 +127,7 @@ class CraftingDataPacket extends DataPacket{
|
||||
return -1;
|
||||
}
|
||||
|
||||
private static function writeShapelessRecipe(ShapelessRecipe $recipe, BinaryStream $stream){
|
||||
private static function writeShapelessRecipe(ShapelessRecipe $recipe, NetworkBinaryStream $stream){
|
||||
$stream->putUnsignedVarInt($recipe->getIngredientCount());
|
||||
foreach($recipe->getIngredientList() as $item){
|
||||
$stream->putSlot($item);
|
||||
@ -144,7 +144,7 @@ class CraftingDataPacket extends DataPacket{
|
||||
return CraftingDataPacket::ENTRY_SHAPELESS;
|
||||
}
|
||||
|
||||
private static function writeShapedRecipe(ShapedRecipe $recipe, BinaryStream $stream){
|
||||
private static function writeShapedRecipe(ShapedRecipe $recipe, NetworkBinaryStream $stream){
|
||||
$stream->putVarInt($recipe->getWidth());
|
||||
$stream->putVarInt($recipe->getHeight());
|
||||
|
||||
@ -165,7 +165,7 @@ class CraftingDataPacket extends DataPacket{
|
||||
return CraftingDataPacket::ENTRY_SHAPED;
|
||||
}
|
||||
|
||||
private static function writeFurnaceRecipe(FurnaceRecipe $recipe, BinaryStream $stream){
|
||||
private static function writeFurnaceRecipe(FurnaceRecipe $recipe, NetworkBinaryStream $stream){
|
||||
if(!$recipe->getInput()->hasAnyDamageValue()){ //Data recipe
|
||||
$stream->putVarInt($recipe->getInput()->getId());
|
||||
$stream->putVarInt($recipe->getInput()->getDamage());
|
||||
@ -195,7 +195,7 @@ class CraftingDataPacket extends DataPacket{
|
||||
protected function encodePayload(){
|
||||
$this->putUnsignedVarInt(count($this->entries));
|
||||
|
||||
$writer = new BinaryStream();
|
||||
$writer = new NetworkBinaryStream();
|
||||
foreach($this->entries as $d){
|
||||
$entryType = self::writeEntry($d, $writer);
|
||||
if($entryType >= 0){
|
||||
|
Reference in New Issue
Block a user