8000 Releases · ethanmoffat/eolib-go · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: ethanmoffat/eolib-go

v3.0.1

29 Jan 05:22
e05b8a4
Compare
Choose a tag to compare

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

15 Oct 23:27
b11ecb6
Compare
Choose a tag to compare

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

06 Jun 05:28
619484f
Compare
Choose a tag to compare

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

01 May 01:55
5d021aa
Compare
Choose a tag to compare

Fixed:

  • Use Offset property for length fields that specify it. Fixes bug where map signs had incorrect Title length data during serialize/deserialize.

Pull requests:

  • #16 - Use Offset from protocol spec when generating code

v2.0.0

11 Apr 23:48
a011b87
Compare
Choose a tag to compare

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 chunking
  • GUILD_BUY - fix typo
  • GUILD_TAKE - add missing guild tag
  • AVATAR_ADMIN - fix field order
  • EFFECT_AGREE/EFFECT_PLAYER - update packet data to be arrays
  • CharacterStatsInfoLookup - secondary stats field type fixed

Pull requests:

  • #11 - Add top-level package docs
  • #12 - Update protocol to latest (2023-12-30)
  • #13 - Modify struct code generation
  • #14 - Use codegen library Jennifer
  • #15 - Update protocol to latest (2024-04-11)

v1.1.2

07 Nov 18:15
51d19a0
Compare
Choose a tag to compare

Added:

  • None

Updated:

  • Added session ID to bank packets (protocol update)

Fixed:

  • None

Pull requests:

  • #10 - Update eo-protocol to latest version (adds session ID to bank packets)

v1.1.1

09 Aug 04:49
1659fe3
Compare
Choose a tag to compare

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

05 Aug 03:21
dfedccf
Compare
Choose a tag to compare

Added:

  • EoReader methods: Slice, SliceFromIndex, and SliceFromCurrent.

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 a rand.

Fixed:

  • EoReader Remaining method could sometimes return a negative value in chunked reading mode.
  • Sequence generation in InitSequence used the incorrect formula.

Pull requests:

  • #7 - Add Slice method for EoReader.
  • #8 - Fix init sequence generation and change method signature for Serialize/Deserialize.

v1.0.0

25 Jul 17:10
e463a81
Compare
Choose a tag to compare

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
0