putByte() public method

public putByte ( $v )
 private static function writeEnchantList(EnchantmentList $list, BinaryStream $stream)
 {
     $stream->putByte($list->getSize());
     for ($i = 0; $i < $list->getSize(); ++$i) {
         $entry = $list->getSlot($i);
         $stream->putInt($entry->getCost());
         $stream->putByte(count($entry->getEnchantments()));
         foreach ($entry->getEnchantments() as $enchantment) {
             $stream->putInt($enchantment->getId());
             $stream->putInt($enchantment->getLevel());
         }
         $stream->putString($entry->getRandomName());
     }
     return CraftingDataPacket::ENTRY_ENCHANT_LIST;
 }
示例#2
0
 /**
  * Writes a coded metadata string
  *
  * @param array $data
  *
  * @return string
  */
 public static function writeMetadata(array $data)
 {
     $stream = new BinaryStream();
     $stream->putUnsignedVarInt(count($data));
     foreach ($data as $key => $d) {
         $stream->putUnsignedVarInt($key);
         //data key
         $stream->putUnsignedVarInt($d[0]);
         //data type
         switch ($d[0]) {
             case Entity::DATA_TYPE_BYTE:
                 $stream->putByte($d[1]);
                 break;
             case Entity::DATA_TYPE_SHORT:
                 $stream->putLShort($d[1]);
                 //SIGNED short!
                 break;
             case Entity::DATA_TYPE_INT:
                 $stream->putVarInt($d[1]);
                 break;
             case Entity::DATA_TYPE_FLOAT:
                 $stream->putLFloat($d[1]);
                 break;
             case Entity::DATA_TYPE_STRING:
                 $stream->putString($d[1]);
                 break;
             case Entity::DATA_TYPE_SLOT:
                 //TODO: change this implementation (use objects)
                 $stream->putSlot(Item::get($d[1][0], $d[1][2], $d[1][1]));
                 //ID, damage, count
                 break;
             case Entity::DATA_TYPE_POS:
                 //TODO: change this implementation (use objects)
                 $stream->putBlockCoords($d[1][0], $d[1][1], $d[1][2]);
                 //x, y, z
                 break;
             case Entity::DATA_TYPE_LONG:
                 $stream->putVarInt($d[1]);
                 //TODO: varint64 support
                 break;
             case Entity::DATA_TYPE_VECTOR3F:
                 //TODO: change this implementation (use objects)
                 $stream->putVector3f($d[1][0], $d[1][1], $d[1][2]);
                 //x, y, z
         }
     }
     return $stream->getBuffer();
 }