Releases: ethanmoffat/eolib-go
Releases · ethanmoffat/eolib-go
v3.0.1
Minor bugfix release.
Fixed:
- CHEST_CLOSE packet special case (optional field followed by dummy) now correctly writes either the optional field OR the dummy value, instead of writing both. Deserialization will only read the optional field if there are enough bytes available.
Pull Requests:
- #24 - CHEST_CLOSE special case
Full Changelog: v3.0.0...v3.0.1
v3.0.0
This major release fixes package versioning issues intrinsic to the Go module system. All v2 versions of eolib-go should be considered broken and unusable in the Go module system.
Added:
- v3 sub-package with copies of entire repo directory structure.
go get github.com/ethanmoffat/eolib-go/v3
to use the latest version.
Updated:
- Pulled in latest eo-protocol updates as of 2024-10-15.
Fixed:
- Use correct type override for
enums
during serialize/deserialize calls, if present. - Calculate element size for array loops over structures. Allows readers to ignore trailing elements with incomplete data.
Pull requests:
- #18 - (De)Serialize enums with type size specifiers. Update protocol with bug fixes.
- #19 - Update protocol to latest commit. Addresses two bugs (SPELL_REPLY and QUEST_REPORT).
- #20 - Update protocol to latest (as of 2024-08-21).
- #21 - Calculate element size for most array loops.
- #22 - Update protocol submodules to latest commit. No impact on generated code function.
Full Changelog: v2.1.0...v3.0.0
v2.1.0
Added:
- Break bytes that are not in a chunked section will return an error during code generation.
- Lengths that are not referenced by another instruction will return an error during code generation.
ByteSize
field has been added to all generated structs. Returns the size of data that was read during deserialization.- Assert that fixed-length fields are the correct length during serialization.
Updated:
- Length instructions no longer generate a field in generated code. The length used for (de)serialization is implicit based on the size of the collection.
Fixed:
- Correct calculation of type sizes for deserialization purposes.
- Corrected call to
Remaining
when deserializing data. No longer used in loop condition.
Pull requests:
- #17 - Fix generated code: bug discovery from eolib-dotnet implementation
v2.0.1
v2.0.0
Added:
- Top-level package docs are now available
- Server pub files are now generated
Updated:
- Code generation now uses a proper codegen library (github.com/dave/jennifer)
Fixed:
NPC_AGREE
server packet - npc count is now the correct type (char)- Arena packets have correct chunking delimiters
- Added comments to various struct members
JUKEBOX_MSG
- remove chunkingGUILD_BUY
- fix typoGUILD_TAKE
- add missing guild tagAVATAR_ADMIN
- fix field orderEFFECT_AGREE
/EFFECT_PLAYER
- update packet data to be arraysCharacterStatsInfoLookup
- secondary stats field type fixed
Pull requests:
v1.1.2
v1.1.1
Added:
- None
Updated:
- None
Fixed:
- Add support for
optional
attribute in protocol XML (was previously ignored). Optional values will no longer be serialized/deserialized if they are not present in data. - Fix deserialize bug for slices of primitive types. Data was incorrectly deserialized directly to the current index of the slice without first appending a new element to the slice, which would cause a panic.
Pull requests:
- #9 - Add support for optional values from protocol XML (and other codegen bug fixes)
v1.1.0
Added:
- EoReader methods:
Slice
,SliceFromIndex
, andSliceFromCurrent
.
Updated:
- eo-protocol bumped to version cirras/eo-protocol@7032f45.
- breaking change Serialize/Deserialize now take a pointer to an
EoWriter
/EoReader
. - breaking change
GenerateXXX
methods for sequences now take a pointer to arand
.
Fixed:
- EoReader
Remaining
method could sometimes return a negative value in chunked reading mode. - Sequence generation in InitSequence used the incorrect formula.
Pull requests:
v1.0.0
Initial release. Contains generated code for the EO v0.0.28 protocol, as well as functions for:
- Encoding/decoding numbers and strings
- Reading/writing EO data
- Managing sequence numbers
- Verifying server hash
Helper functions also exist for:
- Converting a packet ID to a strongly-typed implementation of the
net.Packet
interface