From 7a8a97084d89c2b03c6b861768b8374ca681e0ec Mon Sep 17 00:00:00 2001 From: maxsupermanhd Date: Fri, 2 Dec 2022 16:17:04 +0300 Subject: [PATCH] Define errors --- save/region/mca.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/save/region/mca.go b/save/region/mca.go index e1631fc..1028ab6 100644 --- a/save/region/mca.go +++ b/save/region/mca.go @@ -8,6 +8,13 @@ import ( "time" ) +var ( + ErrNoSector = errors.New("sector does not exist") + ErrNoData = errors.New("data is missing") + ErrSectorNegativeLength = errors.New("declared length of data is negative") + ErrTooLarge = errors.New("data too large") +) + // Region contain 32*32 chunks in one .mca file type Region struct { f io.ReadWriteSeeker @@ -136,7 +143,7 @@ func sectorLoc(offset int32) (sec, num int32) { func (r *Region) ReadSector(x, z int) (data []byte, err error) { sec, num := sectorLoc(r.offsets[z][x]) if sec == 0 { - return nil, errors.New("sector not exist") + return nil, ErrNoSector } _, err = r.f.Seek(4096*int64(sec), 0) if err != nil { @@ -150,13 +157,13 @@ func (r *Region) ReadSector(x, z int) (data []byte, err error) { return } if length == 0 { - return nil, errors.New("data is missing") + return nil, ErrNoData } if length < 0 { - return nil, errors.New("declared length of data is negative") + return nil, ErrSectorNegativeLength } if length > 4096*num { - return nil, errors.New("data too large") + return nil, ErrTooLarge } data = make([]byte, length) _, err = io.ReadFull(reader, data) @@ -171,7 +178,7 @@ func (r *Region) WriteSector(x, z int, data []byte) error { // maximum chunk size is 1MB if need >= 256 { - return errors.New("data too large") + return ErrTooLarge } if n != 0 && now == need {