Releases: cirras/eolib-python
Releases · cirras/eolib-python
EOLib v2.0.2
Fixed
- Fix inaccurate deserialization of
WelcomeReplyServerPacketwhere non-chunked portions of the data structure were being treated as if they were chunked.
EOLib v2.0.1
Fixed
- Make
eolib.protocol.pub.servertypes available from the top-leveleolibpackage.
EOLib v2.0.0
Added
SpellReplyServerPacketpacket class.SkillStatRequirementsclass.PlayerEffectclass.TileEffectclass.EffectPlayerServerPacket.effectsfield.EffectAgreeServerPacket.effectsfield.AdminInteractTellServerPacket.gold_bankfield.
Changed
- Make protocol objects immutable.
- Protocol data structures are now fully instantiated via
__init__, and can't be modified later. - Array fields are now typed as tuples.
- Protocol data structures are now fully instantiated via
- Rename
QuestReportServerPacket.npc_idfield tonpc_index. - Make
CastReplyServerPacket.caster_tpfield optional. - Make
CastSpecServerPacket.caster_tpfield optional. - Make
CastAcceptServerPacket.caster_tpfield optional. - Make
CastAcceptServerPacket.experiencefield optional. - Make
CastAcceptServerPacket.level_upfield optional. - Make
NpcAcceptServerPacket.experiencefield optional. - Make
NpcAcceptServerPacket.level_upfield optional. - Change
TradeItemDatato represent a single player's trade items instead of both trade partners. - Change
TradeReplyServerPacket.trade_datafield type fromTradeItemDatatoTradeItemData[]. - Change
TradeAdminServerPacket.trade_datafield type fromTradeItemDatatoTradeItemData[]. - Change
TradeUseServerPacket.trade_datafield type fromTradeItemDatatoTradeItemData[].
Removed
- All protocol object field setters.
EffectPlayerServerPacket.player_idfield.EffectPlayerServerPacket.effect_idfield.EffectAgreeServerPacket.coordsfield.EffectAgreeServerPacket.effect_idfield.WalkPlayerServerPacket.Directionfield.
Fixed
- Fix incorrect (de)serialization of
EffectPlayerServerPacketdue to only the first effect in the array being recognized. - Fix incorrect (de)serialization of
EffectAgreeServerPacketdue to only the first effect in the array being recognized. - Fix inaccurate serialization of
QuestAcceptClientPacketwhere the char value 0 should be written forDialogReply.Ok. - Fix inaccurate serialization of
AccountReplyServerPacketwhere the string value "OK" should be written forAccountReply.Changed, but "NO" was being written instead. - Fix inaccurate serialization of
AdminInteractTellServerPacketwhere thegold_bankfield was missing. - Fix inaccurate serialization of
RecoverPlayerServerPacketwhere a trailing 0 short value was missing. - Fix inaccurate serialization of
ShopOpenServerPacketwhere a trailing break byte was erroneously being written. - Fix inaccurate serialization of
DoorOpenServerPacketwhere a trailing 0 char value was erroneously being written. - Change incorrect
CharacterStatsInfoLookup.secondary_statsfield type fromCharacterSecondaryStatstoCharacterSecondaryStatsInfoLookup. - Change incorrect
SkillLearn.stat_requirementsfield type fromCharacterBaseStatstoSkillStatRequirements.
EOLib v1.2.0
Added
- Support for Python 3.13.
- Support for Python 3.14.
- Support for server pub files:
DropRecordclass.DropNpcRecordclass.DropFileclass.InnQuestionRecordclass.InnRecordclass.InnFileclass.SkillMasterSkillRecordclass.SkillMasterRecordclass.SkillMasterFileclass.ShopTradeRecordclass.ShopCraftIngredientRecordclass.ShopCraftRecordclass.ShopRecordclass.ShopFileclass.TalkMessageRecordclass.TalkRecordclass.TalkFileclass.
GuildTakeClientPacket.guild_tagfield.
Fixed
- Fix bug on Python 3.13+ where any protocol enum instance constructed from an int value would be treated like an unrecognized value.
- Fix
AttributeErroron Python 3.14 because the readonly__doc__attribute was being assigned to in generated protocol code. - Fix incorrect (de)serialization of some data structures containing arrays with trailing delimiters.
- Fix incorrect (de)serialization of data structures containing both
<dummy>and<field>elements.
(OnlyChestCloseServerPacketwas impacted.) - Fix incorrect (de)serialization of
NpcAgreeServerPacketdue to thenpcsarray's length being treated as ashortinstead ofchar. - Fix incorrect (de)serialization of
GuildTakeClientPacketdue to missingguild_tagfield. - Fix incorrect (de)serialization of
AvatarAdminServerPacketdue to incorrect ordering of thecaster_directionanddamagefields. - Fix inaccurate (de)serialization of
JukeboxMsgClientPacketdue to the packet being treated as a chunked data structure. - Sanitize strings within chunked sections of protocol data structures.
- Generated code now sets
EoWriter.string_sanitization_modeduring serialization. - For more information, see Chunked Reading: Sanitization.
- Generated code now sets
- Properly escape characters from the upsteam protocol XML in docstrings and downstream generated documentation.
EOLib v1.1.1
EOLib v1.1.0
Added
WalkPlayerServerPacket.directionfield.
Changed
- Remove trailing break from
ArenaSpecServerPacket. - Remove trailing break from
ArenaAcceptServerPacket. - Deprecate
WalkPlayerServerPacket.Directionfield.
EOLib v1.0.0
Added
- Support for EO data structures:
- Client packets
- Server packets
- Endless Map Files (EMF)
- Endless Item Files (EIF)
- Endless NPC Files (ENF)
- Endless Spell Files (ESF)
- Endless Class Files (ECF)
- Utilities:
- Data reader
- Data writer
- Number encoding
- String encoding
- Data encryption
- Packet sequencer