update to 1.16 and removes usage of "io/ioutil"
This commit is contained in:
@ -101,21 +101,21 @@ func UnCompress(data []byte) (*Packet, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
uncompressData := make([]byte, sizeUncompressed)
|
||||
uncompressedData := make([]byte, sizeUncompressed)
|
||||
if sizeUncompressed != 0 { // != 0 means compressed, let's decompress
|
||||
r, err := zlib.NewReader(reader)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("decompress fail: %v", err)
|
||||
}
|
||||
defer r.Close()
|
||||
_, err = io.ReadFull(r, uncompressData)
|
||||
_, err = io.ReadFull(r, uncompressedData)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("decompress fail: %v", err)
|
||||
}
|
||||
} else {
|
||||
uncompressData = data[1:]
|
||||
uncompressedData = data[1:]
|
||||
}
|
||||
buf := bytes.NewBuffer(uncompressData)
|
||||
buf := bytes.NewBuffer(uncompressedData)
|
||||
var packetID VarInt
|
||||
if err := packetID.Decode(buf); err != nil {
|
||||
return nil, fmt.Errorf("read packet id fail: %v", err)
|
||||
@ -130,7 +130,11 @@ func UnCompress(data []byte) (*Packet, error) {
|
||||
func Compress(data []byte) []byte {
|
||||
var b bytes.Buffer
|
||||
w := zlib.NewWriter(&b)
|
||||
w.Write(data)
|
||||
w.Close()
|
||||
if _, err := w.Write(data); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if err := w.Close(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return b.Bytes()
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package packet
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"io"
|
||||
"math"
|
||||
@ -76,6 +77,7 @@ type (
|
||||
UUID uuid.UUID
|
||||
|
||||
//NBT encode a value as Named Binary Tag
|
||||
//Tips: define your own struct and implement pk.Field for better performance
|
||||
NBT struct {
|
||||
V interface{}
|
||||
}
|
||||
@ -407,6 +409,15 @@ func (d *Double) Decode(r DecodeReader) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Encode a NBT
|
||||
func (n NBT) Encode() []byte {
|
||||
var buf bytes.Buffer
|
||||
if err := nbt.NewEncoder(&buf).Encode(n.V); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return buf.Bytes()
|
||||
}
|
||||
|
||||
// Decode a NBT
|
||||
func (n NBT) Decode(r DecodeReader) error {
|
||||
return nbt.NewDecoder(r).Decode(n.V)
|
||||
|
Reference in New Issue
Block a user