|
|
|
@@ -4135,7 +4135,7 @@ func (c *ServerData) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
if c.HasIcon {
|
|
|
|
|
temp, err = (*Int8ByteVarIntArray)(&c.Icon).ReadFrom(r)
|
|
|
|
|
temp, err = (&c.Icon).ReadFrom(r)
|
|
|
|
|
n += temp
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
@@ -4157,7 +4157,7 @@ func (c ServerData) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
if c.HasIcon {
|
|
|
|
|
temp, err = (*Int8ByteVarIntArray)(&c.Icon).WriteTo(w)
|
|
|
|
|
temp, err = (&c.Icon).WriteTo(w)
|
|
|
|
|
n += temp
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
@@ -7067,110 +7067,6 @@ func (c Waypoint) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// StringVarIntArray a utility type for encoding/decoding packet.String -> string[packet.VarInt] slice.
|
|
|
|
|
type StringVarIntArray []string
|
|
|
|
|
|
|
|
|
|
func (a StringVarIntArray) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
size := len(a)
|
|
|
|
|
nn, err := packet.VarInt(size).WriteTo(w)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
n += nn
|
|
|
|
|
for i := 0; i < size; i++ {
|
|
|
|
|
nn, err := packet.String(a[i]).WriteTo(w)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return n, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (a *StringVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
var size packet.VarInt
|
|
|
|
|
nn, err := size.ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
if size < 0 {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if size > 32767 {
|
|
|
|
|
return n, errors.New("array length greater than 32767")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
|
*a = make(StringVarIntArray, int(size))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := 0; i < int(size); i++ {
|
|
|
|
|
nn, err = (*packet.String)(&(*a)[i]).ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Int32VarIntVarIntArray a utility type for encoding/decoding packet.VarInt -> int32[packet.VarInt] slice.
|
|
|
|
|
type Int32VarIntVarIntArray []int32
|
|
|
|
|
|
|
|
|
|
func (a Int32VarIntVarIntArray) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
size := len(a)
|
|
|
|
|
nn, err := packet.VarInt(size).WriteTo(w)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
n += nn
|
|
|
|
|
for i := 0; i < size; i++ {
|
|
|
|
|
nn, err := packet.VarInt(a[i]).WriteTo(w)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return n, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (a *Int32VarIntVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
var size packet.VarInt
|
|
|
|
|
nn, err := size.ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
if size < 0 {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if size > 32767 {
|
|
|
|
|
return n, errors.New("array length greater than 32767")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
|
*a = make(Int32VarIntVarIntArray, int(size))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := 0; i < int(size); i++ {
|
|
|
|
|
nn, err = (*packet.VarInt)(&(*a)[i]).ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Int64VarLongVarIntArray a utility type for encoding/decoding packet.VarLong -> int64[packet.VarInt] slice.
|
|
|
|
|
type Int64VarLongVarIntArray []int64
|
|
|
|
|
|
|
|
|
@@ -7202,10 +7098,6 @@ func (a *Int64VarLongVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if size > 32767 {
|
|
|
|
|
return n, errors.New("array length greater than 32767")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
@@ -7223,6 +7115,54 @@ func (a *Int64VarLongVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// StringStringVarIntArray a utility type for encoding/decoding packet.String -> string[packet.VarInt] slice.
|
|
|
|
|
type StringStringVarIntArray []string
|
|
|
|
|
|
|
|
|
|
func (a StringStringVarIntArray) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
size := len(a)
|
|
|
|
|
nn, err := packet.VarInt(size).WriteTo(w)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
n += nn
|
|
|
|
|
for i := 0; i < size; i++ {
|
|
|
|
|
nn, err := packet.String(a[i]).WriteTo(w)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return n, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (a *StringStringVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
var size packet.VarInt
|
|
|
|
|
nn, err := size.ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
if size < 0 {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
|
*a = make(StringStringVarIntArray, int(size))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := 0; i < int(size); i++ {
|
|
|
|
|
nn, err = (*packet.String)(&(*a)[i]).ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Int8VarIntArray a utility type for encoding/decoding packet.Byte -> int8[packet.VarInt] slice.
|
|
|
|
|
type Int8VarIntArray []int8
|
|
|
|
|
|
|
|
|
@@ -7254,14 +7194,154 @@ func (a *Int8VarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if size > 32767 {
|
|
|
|
|
return n, errors.New("array length greater than 32767")
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
|
*a = make(Int8VarIntArray, int(size))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := 0; i < int(size); i++ {
|
|
|
|
|
nn, err = (*packet.Byte)(&(*a)[i]).ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// StringVarIntArray a utility type for encoding/decoding packet.String -> string[packet.VarInt] slice.
|
|
|
|
|
type StringVarIntArray []string
|
|
|
|
|
|
|
|
|
|
func (a StringVarIntArray) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
size := len(a)
|
|
|
|
|
nn, err := packet.VarInt(size).WriteTo(w)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
n += nn
|
|
|
|
|
for i := 0; i < size; i++ {
|
|
|
|
|
nn, err := packet.String(a[i]).WriteTo(w)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return n, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (a *StringVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
var size packet.VarInt
|
|
|
|
|
nn, err := size.ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
if size < 0 {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
|
*a = make(Int8VarIntArray, int(size))
|
|
|
|
|
*a = make(StringVarIntArray, int(size))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := 0; i < int(size); i++ {
|
|
|
|
|
nn, err = (*packet.String)(&(*a)[i]).ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// StringIdentifierVarIntArray a utility type for encoding/decoding packet.Identifier -> string[packet.VarInt] slice.
|
|
|
|
|
type StringIdentifierVarIntArray []string
|
|
|
|
|
|
|
|
|
|
func (a StringIdentifierVarIntArray) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
size := len(a)
|
|
|
|
|
nn, err := packet.VarInt(size).WriteTo(w)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
n += nn
|
|
|
|
|
for i := 0; i < size; i++ {
|
|
|
|
|
nn, err := packet.Identifier(a[i]).WriteTo(w)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return n, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (a *StringIdentifierVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
var size packet.VarInt
|
|
|
|
|
nn, err := size.ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
if size < 0 {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
|
*a = make(StringIdentifierVarIntArray, int(size))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := 0; i < int(size); i++ {
|
|
|
|
|
nn, err = (*packet.Identifier)(&(*a)[i]).ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Int8ByteVarIntArray a utility type for encoding/decoding packet.Byte -> int8[packet.VarInt] slice.
|
|
|
|
|
type Int8ByteVarIntArray []int8
|
|
|
|
|
|
|
|
|
|
func (a Int8ByteVarIntArray) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
size := len(a)
|
|
|
|
|
nn, err := packet.VarInt(size).WriteTo(w)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
n += nn
|
|
|
|
|
for i := 0; i < size; i++ {
|
|
|
|
|
nn, err := packet.Byte(a[i]).WriteTo(w)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return n, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (a *Int8ByteVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
var size packet.VarInt
|
|
|
|
|
nn, err := size.ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
if size < 0 {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
|
*a = make(Int8ByteVarIntArray, int(size))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := 0; i < int(size); i++ {
|
|
|
|
@@ -7306,10 +7386,6 @@ func (a *Int64VarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if size > 32767 {
|
|
|
|
|
return n, errors.New("array length greater than 32767")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
@@ -7327,58 +7403,6 @@ func (a *Int64VarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// StringIdentifierVarIntArray a utility type for encoding/decoding packet.Identifier -> string[packet.VarInt] slice.
|
|
|
|
|
type StringIdentifierVarIntArray []string
|
|
|
|
|
|
|
|
|
|
func (a StringIdentifierVarIntArray) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
size := len(a)
|
|
|
|
|
nn, err := packet.VarInt(size).WriteTo(w)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
n += nn
|
|
|
|
|
for i := 0; i < size; i++ {
|
|
|
|
|
nn, err := packet.Identifier(a[i]).WriteTo(w)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return n, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (a *StringIdentifierVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
var size packet.VarInt
|
|
|
|
|
nn, err := size.ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
if size < 0 {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if size > 32767 {
|
|
|
|
|
return n, errors.New("array length greater than 32767")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
|
*a = make(StringIdentifierVarIntArray, int(size))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := 0; i < int(size); i++ {
|
|
|
|
|
nn, err = (*packet.Identifier)(&(*a)[i]).ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// UuidUUIDUUIDVarIntArray a utility type for encoding/decoding packet.UUID -> uuid.UUID[packet.VarInt] slice.
|
|
|
|
|
type UuidUUIDUUIDVarIntArray []uuid.UUID
|
|
|
|
|
|
|
|
|
@@ -7410,10 +7434,6 @@ func (a *UuidUUIDUUIDVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if size > 32767 {
|
|
|
|
|
return n, errors.New("array length greater than 32767")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
@@ -7431,10 +7451,10 @@ func (a *UuidUUIDUUIDVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Int8ByteVarIntArray a utility type for encoding/decoding packet.Byte -> int8[packet.VarInt] slice.
|
|
|
|
|
type Int8ByteVarIntArray []int8
|
|
|
|
|
// Int32VarIntVarIntArray a utility type for encoding/decoding packet.VarInt -> int32[packet.VarInt] slice.
|
|
|
|
|
type Int32VarIntVarIntArray []int32
|
|
|
|
|
|
|
|
|
|
func (a Int8ByteVarIntArray) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
func (a Int32VarIntVarIntArray) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
size := len(a)
|
|
|
|
|
nn, err := packet.VarInt(size).WriteTo(w)
|
|
|
|
|
if err != nil {
|
|
|
|
@@ -7442,7 +7462,7 @@ func (a Int8ByteVarIntArray) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
}
|
|
|
|
|
n += nn
|
|
|
|
|
for i := 0; i < size; i++ {
|
|
|
|
|
nn, err := packet.Byte(a[i]).WriteTo(w)
|
|
|
|
|
nn, err := packet.VarInt(a[i]).WriteTo(w)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
@@ -7451,7 +7471,7 @@ func (a Int8ByteVarIntArray) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
return n, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (a *Int8ByteVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
func (a *Int32VarIntVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
var size packet.VarInt
|
|
|
|
|
nn, err := size.ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
@@ -7462,70 +7482,14 @@ func (a *Int8ByteVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if size > 32767 {
|
|
|
|
|
return n, errors.New("array length greater than 32767")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
|
*a = make(Int8ByteVarIntArray, int(size))
|
|
|
|
|
*a = make(Int32VarIntVarIntArray, int(size))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := 0; i < int(size); i++ {
|
|
|
|
|
nn, err = (*packet.Byte)(&(*a)[i]).ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// StringStringVarIntArray a utility type for encoding/decoding packet.String -> string[packet.VarInt] slice.
|
|
|
|
|
type StringStringVarIntArray []string
|
|
|
|
|
|
|
|
|
|
func (a StringStringVarIntArray) WriteTo(w io.Writer) (n int64, err error) {
|
|
|
|
|
size := len(a)
|
|
|
|
|
nn, err := packet.VarInt(size).WriteTo(w)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
n += nn
|
|
|
|
|
for i := 0; i < size; i++ {
|
|
|
|
|
nn, err := packet.String(a[i]).WriteTo(w)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return n, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (a *StringStringVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|
|
|
|
var size packet.VarInt
|
|
|
|
|
nn, err := size.ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
if size < 0 {
|
|
|
|
|
return n, errors.New("array length less than zero")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if size > 32767 {
|
|
|
|
|
return n, errors.New("array length greater than 32767")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if cap(*a) >= int(size) {
|
|
|
|
|
*a = (*a)[:int(size)]
|
|
|
|
|
} else {
|
|
|
|
|
*a = make(StringStringVarIntArray, int(size))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := 0; i < int(size); i++ {
|
|
|
|
|
nn, err = (*packet.String)(&(*a)[i]).ReadFrom(r)
|
|
|
|
|
nn, err = (*packet.VarInt)(&(*a)[i]).ReadFrom(r)
|
|
|
|
|
n += nn
|
|
|
|
|
if err != nil {
|
|
|
|
|
return n, err
|
|
|
|
|