154        array $chainedSubCommandValues,
 
  157        array $chainedSubCommandData,
 
  160        array $enumConstraints,
 
  163        $result->enumValues = $enumValues;
 
  164        $result->chainedSubCommandValues = $chainedSubCommandValues;
 
  165        $result->postfixes = $postfixes;
 
  166        $result->enums = $enums;
 
  167        $result->chainedSubCommandData = $chainedSubCommandData;
 
  168        $result->commandData = $commandData;
 
  169        $result->softEnums = $softEnums;
 
  170        $result->enumConstraints = $enumConstraints;
 
 
  175        $this->enumValues = [];
 
  176        for($i = 0, $size = VarInt::readUnsignedInt($in); $i < $size; $i++){
 
  177            $this->enumValues[] = CommonTypes::getString($in);
 
  180        $this->chainedSubCommandValues = [];
 
  181        for($i = 0, $size = VarInt::readUnsignedInt($in); $i < $size; $i++){
 
  182            $this->chainedSubCommandValues[] = CommonTypes::getString($in);
 
  185        $this->postfixes = [];
 
  186        for($i = 0, $size = VarInt::readUnsignedInt($in); $i < $size; $i++){
 
  187            $this->postfixes[] = CommonTypes::getString($in);
 
  191        $valueListSize = count($this->enumValues);
 
  192        for($i = 0, $size = VarInt::readUnsignedInt($in); $i < $size; $i++){
 
  193            $this->enums[] = CommandEnumRawData::read($in, $valueListSize);
 
  196        $this->chainedSubCommandData = [];
 
  197        for($i = 0, $size = VarInt::readUnsignedInt($in); $i < $size; $i++){
 
  198            $this->chainedSubCommandData[] = ChainedSubCommandRawData::read($in);
 
  201        $this->commandData = [];
 
  202        for($i = 0, $size = VarInt::readUnsignedInt($in); $i < $size; $i++){
 
  203            $this->commandData[] = CommandRawData::read($in);
 
  206        $this->softEnums = [];
 
  207        for($i = 0, $size = VarInt::readUnsignedInt($in); $i < $size; $i++){
 
  208            $this->softEnums[] = CommandSoftEnum::read($in);
 
  211        $this->enumConstraints = [];
 
  212        for($i = 0, $size = VarInt::readUnsignedInt($in); $i < $size; $i++){
 
  213            $this->enumConstraints[] = CommandEnumConstraintRawData::read($in);
 
 
  218        VarInt::writeUnsignedInt($out, count($this->enumValues));
 
  219        foreach($this->enumValues as $value){
 
  220            CommonTypes::putString($out, $value);
 
  223        VarInt::writeUnsignedInt($out, count($this->chainedSubCommandValues));
 
  224        foreach($this->chainedSubCommandValues as $value){
 
  225            CommonTypes::putString($out, $value);
 
  228        VarInt::writeUnsignedInt($out, count($this->postfixes));
 
  229        foreach($this->postfixes as $postfix){
 
  230            CommonTypes::putString($out, $postfix);
 
  233        VarInt::writeUnsignedInt($out, count($this->enums));
 
  234        $valueListSize = count($this->enumValues);
 
  235        foreach($this->enums as $enum){
 
  236            $enum->write($out, $valueListSize);
 
  239        VarInt::writeUnsignedInt($out, count($this->chainedSubCommandData));
 
  240        foreach($this->chainedSubCommandData as $data){
 
  244        VarInt::writeUnsignedInt($out, count($this->commandData));
 
  245        foreach($this->commandData as $data){
 
  249        VarInt::writeUnsignedInt($out, count($this->softEnums));
 
  250        foreach($this->softEnums as $softEnum){
 
  251            $softEnum->write($out);
 
  254        VarInt::writeUnsignedInt($out, count($this->enumConstraints));
 
  255        foreach($this->enumConstraints as $constraint){
 
  256            $constraint->write($out);