update protocol codecs: refine type definitions, fix inconsistent naming, and enhance component handling
This commit is contained in:
@ -3698,6 +3698,54 @@ func (a *Int32PrefixedArrayVarIntArray) ReadFrom(r io.Reader) (n int64, err erro
|
|||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Float32VarIntArray a utility type for encoding/decoding packet.Float -> float32[packet.VarInt] slice.
|
||||||
|
type Float32VarIntArray []float32
|
||||||
|
|
||||||
|
func (a Float32VarIntArray) 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.Float(a[i]).WriteTo(w)
|
||||||
|
n += nn
|
||||||
|
if err != nil {
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return n, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *Float32VarIntArray) 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(Float32VarIntArray, int(size))
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < int(size); i++ {
|
||||||
|
nn, err = (*packet.Float)(&(*a)[i]).ReadFrom(r)
|
||||||
|
n += nn
|
||||||
|
if err != nil {
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
|
||||||
// BoolVarIntArray a utility type for encoding/decoding packet.Boolean -> bool[packet.VarInt] slice.
|
// BoolVarIntArray a utility type for encoding/decoding packet.Boolean -> bool[packet.VarInt] slice.
|
||||||
type BoolVarIntArray []bool
|
type BoolVarIntArray []bool
|
||||||
|
|
||||||
@ -3841,51 +3889,3 @@ func (a *Int32VarIntVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|||||||
|
|
||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Float32VarIntArray a utility type for encoding/decoding packet.Float -> float32[packet.VarInt] slice.
|
|
||||||
type Float32VarIntArray []float32
|
|
||||||
|
|
||||||
func (a Float32VarIntArray) 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.Float(a[i]).WriteTo(w)
|
|
||||||
n += nn
|
|
||||||
if err != nil {
|
|
||||||
return n, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return n, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *Float32VarIntArray) 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(Float32VarIntArray, int(size))
|
|
||||||
}
|
|
||||||
|
|
||||||
for i := 0; i < int(size); i++ {
|
|
||||||
nn, err = (*packet.Float)(&(*a)[i]).ReadFrom(r)
|
|
||||||
n += nn
|
|
||||||
if err != nil {
|
|
||||||
return n, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return n, err
|
|
||||||
}
|
|
||||||
|
@ -343,54 +343,6 @@ func (c ConfigUpdateEnabledFeatures) WriteTo(w io.Writer) (n int64, err error) {
|
|||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Int8VarIntArray a utility type for encoding/decoding packet.Byte -> int8[packet.VarInt] slice.
|
|
||||||
type Int8VarIntArray []int8
|
|
||||||
|
|
||||||
func (a Int8VarIntArray) 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 *Int8VarIntArray) 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))
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
// StringIdentifierVarIntArray a utility type for encoding/decoding packet.Identifier -> string[packet.VarInt] slice.
|
// StringIdentifierVarIntArray a utility type for encoding/decoding packet.Identifier -> string[packet.VarInt] slice.
|
||||||
type StringIdentifierVarIntArray []string
|
type StringIdentifierVarIntArray []string
|
||||||
|
|
||||||
@ -438,3 +390,51 @@ func (a *StringIdentifierVarIntArray) ReadFrom(r io.Reader) (n int64, err error)
|
|||||||
|
|
||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Int8VarIntArray a utility type for encoding/decoding packet.Byte -> int8[packet.VarInt] slice.
|
||||||
|
type Int8VarIntArray []int8
|
||||||
|
|
||||||
|
func (a Int8VarIntArray) 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 *Int8VarIntArray) 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))
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
@ -3623,7 +3623,7 @@ func (c *Recipe) ReadFrom(r io.Reader) (n int64, err error) {
|
|||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
if c.HasIngredients {
|
if c.HasIngredients {
|
||||||
temp, err = (&c.Ingredients).ReadFrom(r)
|
temp, err = packet.Array(&c.Ingredients).ReadFrom(r)
|
||||||
n += temp
|
n += temp
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return n, err
|
return n, err
|
||||||
@ -3665,7 +3665,7 @@ func (c Recipe) WriteTo(w io.Writer) (n int64, err error) {
|
|||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
if c.HasIngredients {
|
if c.HasIngredients {
|
||||||
temp, err = (&c.Ingredients).WriteTo(w)
|
temp, err = packet.Array(&c.Ingredients).WriteTo(w)
|
||||||
n += temp
|
n += temp
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return n, err
|
return n, err
|
||||||
@ -7067,102 +7067,6 @@ func (c Waypoint) WriteTo(w io.Writer) (n int64, err error) {
|
|||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Int64VarLongVarIntArray a utility type for encoding/decoding packet.VarLong -> int64[packet.VarInt] slice.
|
|
||||||
type Int64VarLongVarIntArray []int64
|
|
||||||
|
|
||||||
func (a Int64VarLongVarIntArray) 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.VarLong(a[i]).WriteTo(w)
|
|
||||||
n += nn
|
|
||||||
if err != nil {
|
|
||||||
return n, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return n, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *Int64VarLongVarIntArray) 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(Int64VarLongVarIntArray, int(size))
|
|
||||||
}
|
|
||||||
|
|
||||||
for i := 0; i < int(size); i++ {
|
|
||||||
nn, err = (*packet.VarLong)(&(*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++ {
|
|
||||||
nn, err = (*packet.Byte)(&(*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.
|
// Int8VarIntArray a utility type for encoding/decoding packet.Byte -> int8[packet.VarInt] slice.
|
||||||
type Int8VarIntArray []int8
|
type Int8VarIntArray []int8
|
||||||
|
|
||||||
@ -7307,54 +7211,6 @@ func (a *StringIdentifierVarIntArray) ReadFrom(r io.Reader) (n int64, err error)
|
|||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// UuidUUIDUUIDVarIntArray a utility type for encoding/decoding packet.UUID -> uuid.UUID[packet.VarInt] slice.
|
|
||||||
type UuidUUIDUUIDVarIntArray []uuid.UUID
|
|
||||||
|
|
||||||
func (a UuidUUIDUUIDVarIntArray) 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.UUID(a[i]).WriteTo(w)
|
|
||||||
n += nn
|
|
||||||
if err != nil {
|
|
||||||
return n, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return n, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *UuidUUIDUUIDVarIntArray) 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(UuidUUIDUUIDVarIntArray, int(size))
|
|
||||||
}
|
|
||||||
|
|
||||||
for i := 0; i < int(size); i++ {
|
|
||||||
nn, err = (*packet.UUID)(&(*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.
|
// Int32VarIntVarIntArray a utility type for encoding/decoding packet.VarInt -> int32[packet.VarInt] slice.
|
||||||
type Int32VarIntVarIntArray []int32
|
type Int32VarIntVarIntArray []int32
|
||||||
|
|
||||||
@ -7403,6 +7259,54 @@ func (a *Int32VarIntVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Int64VarLongVarIntArray a utility type for encoding/decoding packet.VarLong -> int64[packet.VarInt] slice.
|
||||||
|
type Int64VarLongVarIntArray []int64
|
||||||
|
|
||||||
|
func (a Int64VarLongVarIntArray) 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.VarLong(a[i]).WriteTo(w)
|
||||||
|
n += nn
|
||||||
|
if err != nil {
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return n, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *Int64VarLongVarIntArray) 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(Int64VarLongVarIntArray, int(size))
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < int(size); i++ {
|
||||||
|
nn, err = (*packet.VarLong)(&(*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.
|
// StringStringVarIntArray a utility type for encoding/decoding packet.String -> string[packet.VarInt] slice.
|
||||||
type StringStringVarIntArray []string
|
type StringStringVarIntArray []string
|
||||||
|
|
||||||
@ -7498,3 +7402,99 @@ func (a *StringVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|||||||
|
|
||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UuidUUIDUUIDVarIntArray a utility type for encoding/decoding packet.UUID -> uuid.UUID[packet.VarInt] slice.
|
||||||
|
type UuidUUIDUUIDVarIntArray []uuid.UUID
|
||||||
|
|
||||||
|
func (a UuidUUIDUUIDVarIntArray) 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.UUID(a[i]).WriteTo(w)
|
||||||
|
n += nn
|
||||||
|
if err != nil {
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return n, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *UuidUUIDUUIDVarIntArray) 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(UuidUUIDUUIDVarIntArray, int(size))
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < int(size); i++ {
|
||||||
|
nn, err = (*packet.UUID)(&(*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++ {
|
||||||
|
nn, err = (*packet.Byte)(&(*a)[i]).ReadFrom(r)
|
||||||
|
n += nn
|
||||||
|
if err != nil {
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
@ -18,7 +18,7 @@ type Recipe struct {
|
|||||||
CategoryID int32 `mc:"VarInt"`
|
CategoryID int32 `mc:"VarInt"`
|
||||||
HasIngredients bool
|
HasIngredients bool
|
||||||
//opt:optional:HasIngredients
|
//opt:optional:HasIngredients
|
||||||
Ingredients RecipeIngredients
|
Ingredients []pk.IDSet
|
||||||
Flags int8
|
Flags int8
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2728,54 +2728,6 @@ func (c UseItemOn) WriteTo(w io.Writer) (n int64, err error) {
|
|||||||
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++ {
|
|
||||||
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.
|
// StringVarIntArray a utility type for encoding/decoding packet.String -> string[packet.VarInt] slice.
|
||||||
type StringVarIntArray []string
|
type StringVarIntArray []string
|
||||||
|
|
||||||
@ -2823,3 +2775,51 @@ func (a *StringVarIntArray) ReadFrom(r io.Reader) (n int64, err error) {
|
|||||||
|
|
||||||
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++ {
|
||||||
|
nn, err = (*packet.Byte)(&(*a)[i]).ReadFrom(r)
|
||||||
|
n += nn
|
||||||
|
if err != nil {
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
@ -72,12 +72,12 @@ func (c *SmithingTrim) ReadFrom(r io.Reader) (n int64, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
temp, err = (&c.Trim).ReadFrom(r)
|
temp, err = (&c.Material).ReadFrom(r)
|
||||||
n += temp
|
n += temp
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
temp, err = (&c.Remainder).ReadFrom(r)
|
temp, err = (*packet.VarInt)(&c.Pattern).ReadFrom(r)
|
||||||
n += temp
|
n += temp
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return n, err
|
return n, err
|
||||||
@ -92,12 +92,12 @@ func (c SmithingTrim) WriteTo(w io.Writer) (n int64, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
temp, err = (&c.Trim).WriteTo(w)
|
temp, err = (&c.Material).WriteTo(w)
|
||||||
n += temp
|
n += temp
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
temp, err = (&c.Remainder).WriteTo(w)
|
temp, err = (*packet.VarInt)(&c.Pattern).WriteTo(w)
|
||||||
n += temp
|
n += temp
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return n, err
|
return n, err
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package slot
|
package slot
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
"git.konjactw.dev/patyhank/minego/pkg/protocol/slot"
|
"git.konjactw.dev/patyhank/minego/pkg/protocol/slot"
|
||||||
@ -11,6 +12,7 @@ type DisplayType int32
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
DisplayEmpty DisplayType = iota
|
DisplayEmpty DisplayType = iota
|
||||||
|
DisplayAnyFuel
|
||||||
DisplayItem
|
DisplayItem
|
||||||
DisplayItemStack
|
DisplayItemStack
|
||||||
DisplayTag
|
DisplayTag
|
||||||
@ -38,37 +40,46 @@ func (s *Display) ReadFrom(r io.Reader) (n int64, err error) {
|
|||||||
switch displayType {
|
switch displayType {
|
||||||
case DisplayEmpty:
|
case DisplayEmpty:
|
||||||
return
|
return
|
||||||
|
case DisplayAnyFuel:
|
||||||
|
return
|
||||||
case DisplayItem:
|
case DisplayItem:
|
||||||
var item Item
|
var item Item
|
||||||
if _, err = item.ReadFrom(r); err != nil {
|
if _, err = item.ReadFrom(r); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
s.SlotDisplay = &item
|
||||||
case DisplayItemStack:
|
case DisplayItemStack:
|
||||||
var itemStack ItemStack
|
var itemStack ItemStack
|
||||||
if _, err = itemStack.ReadFrom(r); err != nil {
|
if _, err = itemStack.ReadFrom(r); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
s.SlotDisplay = &itemStack
|
||||||
case DisplayTag:
|
case DisplayTag:
|
||||||
var tag Tag
|
var tag Tag
|
||||||
if _, err = tag.ReadFrom(r); err != nil {
|
if _, err = tag.ReadFrom(r); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
s.SlotDisplay = &tag
|
||||||
case DisplaySmithingTrim:
|
case DisplaySmithingTrim:
|
||||||
var trim SmithingTrim
|
var trim SmithingTrim
|
||||||
if _, err = trim.ReadFrom(r); err != nil {
|
if _, err = trim.ReadFrom(r); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
s.SlotDisplay = &trim
|
||||||
case DisplayWithRemainder:
|
case DisplayWithRemainder:
|
||||||
var remainder WithRemainder
|
var remainder WithRemainder
|
||||||
if _, err = remainder.ReadFrom(r); err != nil {
|
if _, err = remainder.ReadFrom(r); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
s.SlotDisplay = &remainder
|
||||||
case DisplayComposite:
|
case DisplayComposite:
|
||||||
var composite Composite
|
var composite Composite
|
||||||
if _, err = composite.ReadFrom(r); err != nil {
|
if _, err = composite.ReadFrom(r); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
s.SlotDisplay = &composite
|
||||||
}
|
}
|
||||||
|
fmt.Println(s.SlotDisplay)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,9 +117,9 @@ func (i Tag) SlotDisplayType() DisplayType {
|
|||||||
|
|
||||||
//codec:gen
|
//codec:gen
|
||||||
type SmithingTrim struct {
|
type SmithingTrim struct {
|
||||||
Base Display
|
Base Display
|
||||||
Trim Display
|
Material Display
|
||||||
Remainder Display
|
Pattern int32 `mc:"VarInt"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i SmithingTrim) SlotDisplayType() DisplayType {
|
func (i SmithingTrim) SlotDisplayType() DisplayType {
|
||||||
|
@ -103,6 +103,7 @@ func (s *Slot) ReadFrom(r io.Reader) (n int64, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return temp, err
|
return temp, err
|
||||||
}
|
}
|
||||||
|
s.AddComponent = append(s.AddComponent, c)
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := int32(0); i < removeLens; i++ {
|
for i := int32(0); i < removeLens; i++ {
|
||||||
@ -111,7 +112,7 @@ func (s *Slot) ReadFrom(r io.Reader) (n int64, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return temp, err
|
return temp, err
|
||||||
}
|
}
|
||||||
|
s.RemoveComponent = append(s.RemoveComponent, ComponentID(id))
|
||||||
}
|
}
|
||||||
|
|
||||||
return n, nil
|
return n, nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user