35        private string $description,
 
   37        private int $permission,
 
   38        private int $aliasEnumIndex,
 
   39        private array $chainedSubCommandDataIndexes,
 
   40        private array $overloads,
 
 
   43    public function getName() : string{ return $this->name; }
 
   45    public function getDescription() : string{ return $this->description; }
 
   47    public function getFlags() : int{ return $this->flags; }
 
   49    public function getPermission() : int{ return $this->permission; }
 
   51    public function getAliasEnumIndex() : int{ return $this->aliasEnumIndex; }
 
   65    public static function read(ByteBufferReader $in) : self{
 
   67        $description = CommonTypes::getString($in);
 
   68        $flags = LE::readUnsignedShort($in);
 
   69        $permission = Byte::readUnsigned($in);
 
   70        $aliasEnumIndex = LE::readSignedInt($in); 
 
   72        $chainedSubCommandDataIndexes = [];
 
   73        for($i = 0, $size = VarInt::readUnsignedInt($in); $i < $size; $i++){
 
   74            $chainedSubCommandDataIndexes[] = LE::readUnsignedShort($in);
 
   78        for($i = 0, $size = VarInt::readUnsignedInt($in); $i < $size; $i++){
 
   79            $overloads[] = CommandOverloadRawData::read($in);
 
   84            description: $description,
 
   86            permission: $permission,
 
   87            aliasEnumIndex: $aliasEnumIndex,
 
   88            chainedSubCommandDataIndexes: $chainedSubCommandDataIndexes,
 
   93    public function write(ByteBufferWriter $out) : void{
 
   95        CommonTypes::putString($out, $this->description);
 
   96        LE::writeUnsignedShort($out, $this->flags);
 
   97        Byte::writeUnsigned($out, $this->permission);
 
   98        LE::writeSignedInt($out, $this->aliasEnumIndex);
 
  100        VarInt::writeUnsignedInt($out, count($this->chainedSubCommandDataIndexes));
 
  101        foreach($this->chainedSubCommandDataIndexes as $index){
 
  102            LE::writeUnsignedShort($out, $index);
 
  105        VarInt::writeUnsignedInt($out, count($this->overloads));
 
  106        foreach($this->overloads as $overload){
 
  107            $overload->write($out);
 
 
__construct(private string $name, private string $description, private int $flags, private int $permission, private int $aliasEnumIndex, private array $chainedSubCommandDataIndexes, private array $overloads,)