eolib 1.1.0__py3-none-any.whl → 1.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. eolib/__about__.py +1 -1
  2. eolib/encrypt/encryption_utils.py +8 -0
  3. eolib/protocol/_generated/coords.py +10 -6
  4. eolib/protocol/_generated/emote.py +1 -1
  5. eolib/protocol/_generated/map/emf.py +113 -109
  6. eolib/protocol/_generated/map/map_graphic_layer.py +13 -9
  7. eolib/protocol/_generated/map/map_graphic_row.py +16 -12
  8. eolib/protocol/_generated/map/map_graphic_row_tile.py +10 -6
  9. eolib/protocol/_generated/map/map_item.py +22 -18
  10. eolib/protocol/_generated/map/map_legacy_door_key.py +10 -6
  11. eolib/protocol/_generated/map/map_npc.py +19 -15
  12. eolib/protocol/_generated/map/map_sign.py +18 -14
  13. eolib/protocol/_generated/map/map_tile_spec_row.py +16 -12
  14. eolib/protocol/_generated/map/map_tile_spec_row_tile.py +10 -6
  15. eolib/protocol/_generated/map/map_warp.py +16 -12
  16. eolib/protocol/_generated/map/map_warp_row.py +16 -12
  17. eolib/protocol/_generated/map/map_warp_row_tile.py +10 -6
  18. eolib/protocol/_generated/net/char_item.py +10 -6
  19. eolib/protocol/_generated/net/client/account_agree_client_packet.py +21 -12
  20. eolib/protocol/_generated/net/client/account_create_client_packet.py +41 -32
  21. eolib/protocol/_generated/net/client/account_request_client_packet.py +10 -3
  22. eolib/protocol/_generated/net/client/admin_interact_report_client_packet.py +16 -7
  23. eolib/protocol/_generated/net/client/admin_interact_tell_client_packet.py +10 -3
  24. eolib/protocol/_generated/net/client/attack_use_client_packet.py +13 -6
  25. eolib/protocol/_generated/net/client/bank_add_client_packet.py +13 -6
  26. eolib/protocol/_generated/net/client/bank_open_client_packet.py +10 -3
  27. eolib/protocol/_generated/net/client/bank_take_client_packet.py +13 -6
  28. eolib/protocol/_generated/net/client/barber_buy_client_packet.py +16 -9
  29. eolib/protocol/_generated/net/client/barber_open_client_packet.py +10 -3
  30. eolib/protocol/_generated/net/client/board_create_client_packet.py +21 -12
  31. eolib/protocol/_generated/net/client/board_open_client_packet.py +10 -3
  32. eolib/protocol/_generated/net/client/board_remove_client_packet.py +13 -6
  33. eolib/protocol/_generated/net/client/board_take_client_packet.py +13 -6
  34. eolib/protocol/_generated/net/client/book_request_client_packet.py +10 -3
  35. eolib/protocol/_generated/net/client/byte_coords.py +10 -6
  36. eolib/protocol/_generated/net/client/chair_request_client_packet.py +24 -14
  37. eolib/protocol/_generated/net/client/character_create_client_packet.py +29 -20
  38. eolib/protocol/_generated/net/client/character_remove_client_packet.py +13 -6
  39. eolib/protocol/_generated/net/client/character_request_client_packet.py +11 -2
  40. eolib/protocol/_generated/net/client/character_take_client_packet.py +10 -3
  41. eolib/protocol/_generated/net/client/chest_add_client_packet.py +13 -6
  42. eolib/protocol/_generated/net/client/chest_open_client_packet.py +10 -3
  43. eolib/protocol/_generated/net/client/chest_take_client_packet.py +13 -6
  44. eolib/protocol/_generated/net/client/citizen_accept_client_packet.py +13 -6
  45. eolib/protocol/_generated/net/client/citizen_open_client_packet.py +10 -3
  46. eolib/protocol/_generated/net/client/citizen_remove_client_packet.py +10 -3
  47. eolib/protocol/_generated/net/client/citizen_reply_client_packet.py +25 -16
  48. eolib/protocol/_generated/net/client/citizen_request_client_packet.py +13 -6
  49. eolib/protocol/_generated/net/client/connection_accept_client_packet.py +16 -9
  50. eolib/protocol/_generated/net/client/connection_ping_client_packet.py +8 -4
  51. eolib/protocol/_generated/net/client/door_open_client_packet.py +10 -3
  52. eolib/protocol/_generated/net/client/emote_report_client_packet.py +10 -3
  53. eolib/protocol/_generated/net/client/face_player_client_packet.py +10 -3
  54. eolib/protocol/_generated/net/client/global_close_client_packet.py +8 -4
  55. eolib/protocol/_generated/net/client/global_open_client_packet.py +8 -4
  56. eolib/protocol/_generated/net/client/global_player_client_packet.py +8 -4
  57. eolib/protocol/_generated/net/client/global_remove_client_packet.py +8 -4
  58. eolib/protocol/_generated/net/client/guild_accept_client_packet.py +11 -4
  59. eolib/protocol/_generated/net/client/guild_agree_client_packet.py +44 -30
  60. eolib/protocol/_generated/net/client/guild_buy_client_packet.py +13 -6
  61. eolib/protocol/_generated/net/client/guild_create_client_packet.py +25 -16
  62. eolib/protocol/_generated/net/client/guild_junk_client_packet.py +10 -3
  63. eolib/protocol/_generated/net/client/guild_kick_client_packet.py +13 -6
  64. eolib/protocol/_generated/net/client/guild_open_client_packet.py +10 -3
  65. eolib/protocol/_generated/net/client/guild_player_client_packet.py +21 -12
  66. eolib/protocol/_generated/net/client/guild_rank_client_packet.py +16 -9
  67. eolib/protocol/_generated/net/client/guild_remove_client_packet.py +10 -3
  68. eolib/protocol/_generated/net/client/guild_report_client_packet.py +13 -6
  69. eolib/protocol/_generated/net/client/guild_request_client_packet.py +21 -12
  70. eolib/protocol/_generated/net/client/guild_take_client_packet.py +37 -7
  71. eolib/protocol/_generated/net/client/guild_tell_client_packet.py +13 -6
  72. eolib/protocol/_generated/net/client/guild_use_client_packet.py +10 -3
  73. eolib/protocol/_generated/net/client/init_init_client_packet.py +23 -15
  74. eolib/protocol/_generated/net/client/item_drop_client_packet.py +15 -8
  75. eolib/protocol/_generated/net/client/item_get_client_packet.py +10 -3
  76. eolib/protocol/_generated/net/client/item_junk_client_packet.py +10 -3
  77. eolib/protocol/_generated/net/client/item_use_client_packet.py +10 -3
  78. eolib/protocol/_generated/net/client/jukebox_msg_client_packet.py +16 -7
  79. eolib/protocol/_generated/net/client/jukebox_open_client_packet.py +10 -3
  80. eolib/protocol/_generated/net/client/jukebox_use_client_packet.py +13 -6
  81. eolib/protocol/_generated/net/client/locker_add_client_packet.py +13 -6
  82. eolib/protocol/_generated/net/client/locker_buy_client_packet.py +8 -4
  83. eolib/protocol/_generated/net/client/locker_open_client_packet.py +10 -3
  84. eolib/protocol/_generated/net/client/locker_take_client_packet.py +13 -6
  85. eolib/protocol/_generated/net/client/login_request_client_packet.py +17 -8
  86. eolib/protocol/_generated/net/client/marriage_open_client_packet.py +10 -3
  87. eolib/protocol/_generated/net/client/marriage_request_client_packet.py +19 -10
  88. eolib/protocol/_generated/net/client/message_ping_client_packet.py +8 -4
  89. eolib/protocol/_generated/net/client/npc_range_request_client_packet.py +17 -10
  90. eolib/protocol/_generated/net/client/paperdoll_add_client_packet.py +13 -6
  91. eolib/protocol/_generated/net/client/paperdoll_remove_client_packet.py +13 -6
  92. eolib/protocol/_generated/net/client/paperdoll_request_client_packet.py +10 -3
  93. eolib/protocol/_generated/net/client/party_accept_client_packet.py +13 -6
  94. eolib/protocol/_generated/net/client/party_remove_client_packet.py +10 -3
  95. eolib/protocol/_generated/net/client/party_request_client_packet.py +13 -6
  96. eolib/protocol/_generated/net/client/party_take_client_packet.py +10 -3
  97. eolib/protocol/_generated/net/client/player_range_request_client_packet.py +11 -4
  98. eolib/protocol/_generated/net/client/players_accept_client_packet.py +10 -3
  99. eolib/protocol/_generated/net/client/players_list_client_packet.py +8 -4
  100. eolib/protocol/_generated/net/client/players_request_client_packet.py +8 -4
  101. eolib/protocol/_generated/net/client/priest_accept_client_packet.py +10 -3
  102. eolib/protocol/_generated/net/client/priest_open_client_packet.py +10 -3
  103. eolib/protocol/_generated/net/client/priest_request_client_packet.py +16 -7
  104. eolib/protocol/_generated/net/client/priest_use_client_packet.py +10 -3
  105. eolib/protocol/_generated/net/client/quest_accept_client_packet.py +36 -26
  106. eolib/protocol/_generated/net/client/quest_list_client_packet.py +10 -3
  107. eolib/protocol/_generated/net/client/quest_use_client_packet.py +13 -6
  108. eolib/protocol/_generated/net/client/range_request_client_packet.py +18 -9
  109. eolib/protocol/_generated/net/client/refresh_request_client_packet.py +8 -4
  110. eolib/protocol/_generated/net/client/shop_buy_client_packet.py +13 -6
  111. eolib/protocol/_generated/net/client/shop_create_client_packet.py +13 -6
  112. eolib/protocol/_generated/net/client/shop_open_client_packet.py +10 -3
  113. eolib/protocol/_generated/net/client/shop_sell_client_packet.py +13 -6
  114. eolib/protocol/_generated/net/client/sit_request_client_packet.py +24 -14
  115. eolib/protocol/_generated/net/client/spell_request_client_packet.py +13 -6
  116. eolib/protocol/_generated/net/client/spell_target_group_client_packet.py +13 -6
  117. eolib/protocol/_generated/net/client/spell_target_other_client_packet.py +22 -15
  118. eolib/protocol/_generated/net/client/spell_target_self_client_packet.py +16 -9
  119. eolib/protocol/_generated/net/client/spell_use_client_packet.py +10 -3
  120. eolib/protocol/_generated/net/client/stat_skill_add_client_packet.py +35 -21
  121. eolib/protocol/_generated/net/client/stat_skill_junk_client_packet.py +10 -3
  122. eolib/protocol/_generated/net/client/stat_skill_open_client_packet.py +10 -3
  123. eolib/protocol/_generated/net/client/stat_skill_remove_client_packet.py +13 -6
  124. eolib/protocol/_generated/net/client/stat_skill_take_client_packet.py +13 -6
  125. eolib/protocol/_generated/net/client/talk_admin_client_packet.py +10 -3
  126. eolib/protocol/_generated/net/client/talk_announce_client_packet.py +10 -3
  127. eolib/protocol/_generated/net/client/talk_msg_client_packet.py +10 -3
  128. eolib/protocol/_generated/net/client/talk_open_client_packet.py +10 -3
  129. eolib/protocol/_generated/net/client/talk_player_client_packet.py +10 -3
  130. eolib/protocol/_generated/net/client/talk_report_client_packet.py +10 -3
  131. eolib/protocol/_generated/net/client/talk_request_client_packet.py +10 -3
  132. eolib/protocol/_generated/net/client/talk_tell_client_packet.py +16 -7
  133. eolib/protocol/_generated/net/client/talk_use_client_packet.py +10 -3
  134. eolib/protocol/_generated/net/client/trade_accept_client_packet.py +11 -4
  135. eolib/protocol/_generated/net/client/trade_add_client_packet.py +10 -3
  136. eolib/protocol/_generated/net/client/trade_agree_client_packet.py +10 -3
  137. eolib/protocol/_generated/net/client/trade_close_client_packet.py +8 -4
  138. eolib/protocol/_generated/net/client/trade_remove_client_packet.py +10 -3
  139. eolib/protocol/_generated/net/client/trade_request_client_packet.py +11 -4
  140. eolib/protocol/_generated/net/client/walk_action.py +13 -9
  141. eolib/protocol/_generated/net/client/walk_admin_client_packet.py +10 -3
  142. eolib/protocol/_generated/net/client/walk_player_client_packet.py +10 -3
  143. eolib/protocol/_generated/net/client/walk_spec_client_packet.py +10 -3
  144. eolib/protocol/_generated/net/client/warp_accept_client_packet.py +13 -6
  145. eolib/protocol/_generated/net/client/warp_take_client_packet.py +13 -6
  146. eolib/protocol/_generated/net/client/welcome_agree_client_packet.py +71 -45
  147. eolib/protocol/_generated/net/client/welcome_msg_client_packet.py +13 -6
  148. eolib/protocol/_generated/net/client/welcome_request_client_packet.py +10 -3
  149. eolib/protocol/_generated/net/item.py +10 -6
  150. eolib/protocol/_generated/net/server/account_reply_server_packet.py +91 -57
  151. eolib/protocol/_generated/net/server/admin_interact_agree_server_packet.py +10 -3
  152. eolib/protocol/_generated/net/server/admin_interact_list_server_packet.py +30 -21
  153. eolib/protocol/_generated/net/server/admin_interact_remove_server_packet.py +10 -3
  154. eolib/protocol/_generated/net/server/admin_interact_reply_server_packet.py +52 -36
  155. eolib/protocol/_generated/net/server/admin_interact_tell_server_packet.py +36 -27
  156. eolib/protocol/_generated/net/server/arena_accept_server_packet.py +24 -15
  157. eolib/protocol/_generated/net/server/arena_drop_server_packet.py +8 -4
  158. eolib/protocol/_generated/net/server/arena_spec_server_packet.py +28 -19
  159. eolib/protocol/_generated/net/server/arena_use_server_packet.py +10 -3
  160. eolib/protocol/_generated/net/server/attack_error_server_packet.py +8 -4
  161. eolib/protocol/_generated/net/server/attack_player_server_packet.py +13 -6
  162. eolib/protocol/_generated/net/server/avatar_admin_server_packet.py +39 -32
  163. eolib/protocol/_generated/net/server/avatar_agree_server_packet.py +10 -3
  164. eolib/protocol/_generated/net/server/avatar_change.py +53 -38
  165. eolib/protocol/_generated/net/server/avatar_change_type.py +1 -1
  166. eolib/protocol/_generated/net/server/avatar_remove_server_packet.py +13 -6
  167. eolib/protocol/_generated/net/server/avatar_reply_server_packet.py +25 -18
  168. eolib/protocol/_generated/net/server/bank_open_server_packet.py +16 -9
  169. eolib/protocol/_generated/net/server/bank_reply_server_packet.py +13 -6
  170. eolib/protocol/_generated/net/server/barber_agree_server_packet.py +13 -6
  171. eolib/protocol/_generated/net/server/barber_open_server_packet.py +10 -3
  172. eolib/protocol/_generated/net/server/big_coords.py +10 -6
  173. eolib/protocol/_generated/net/server/board_open_server_packet.py +22 -15
  174. eolib/protocol/_generated/net/server/board_player_server_packet.py +15 -6
  175. eolib/protocol/_generated/net/server/board_post_listing.py +17 -11
  176. eolib/protocol/_generated/net/server/book_reply_server_packet.py +20 -12
  177. eolib/protocol/_generated/net/server/cast_accept_server_packet.py +22 -15
  178. eolib/protocol/_generated/net/server/cast_reply_server_packet.py +31 -24
  179. eolib/protocol/_generated/net/server/cast_spec_server_packet.py +19 -12
  180. eolib/protocol/_generated/net/server/chair_close_server_packet.py +13 -6
  181. eolib/protocol/_generated/net/server/chair_player_server_packet.py +16 -9
  182. eolib/protocol/_generated/net/server/chair_remove_server_packet.py +13 -6
  183. eolib/protocol/_generated/net/server/chair_reply_server_packet.py +16 -9
  184. eolib/protocol/_generated/net/server/character_base_stats.py +22 -18
  185. eolib/protocol/_generated/net/server/character_base_stats_welcome.py +22 -18
  186. eolib/protocol/_generated/net/server/character_details.py +42 -36
  187. eolib/protocol/_generated/net/server/character_elemental_stats.py +22 -18
  188. eolib/protocol/_generated/net/server/character_map_info.py +70 -64
  189. eolib/protocol/_generated/net/server/character_player_server_packet.py +13 -6
  190. eolib/protocol/_generated/net/server/character_reply_server_packet.py +111 -79
  191. eolib/protocol/_generated/net/server/character_secondary_stats.py +19 -15
  192. eolib/protocol/_generated/net/server/character_secondary_stats_info_lookup.py +19 -15
  193. eolib/protocol/_generated/net/server/character_selection_list_entry.py +34 -28
  194. eolib/protocol/_generated/net/server/character_stats_equipment_change.py +16 -12
  195. eolib/protocol/_generated/net/server/character_stats_info_lookup.py +25 -21
  196. eolib/protocol/_generated/net/server/character_stats_reset.py +31 -27
  197. eolib/protocol/_generated/net/server/character_stats_update.py +22 -18
  198. eolib/protocol/_generated/net/server/character_stats_welcome.py +34 -30
  199. eolib/protocol/_generated/net/server/chest_agree_server_packet.py +11 -4
  200. eolib/protocol/_generated/net/server/chest_close_server_packet.py +16 -5
  201. eolib/protocol/_generated/net/server/chest_get_server_packet.py +17 -10
  202. eolib/protocol/_generated/net/server/chest_open_server_packet.py +14 -7
  203. eolib/protocol/_generated/net/server/chest_reply_server_packet.py +20 -13
  204. eolib/protocol/_generated/net/server/chest_spec_server_packet.py +8 -4
  205. eolib/protocol/_generated/net/server/citizen_accept_server_packet.py +10 -3
  206. eolib/protocol/_generated/net/server/citizen_open_server_packet.py +27 -18
  207. eolib/protocol/_generated/net/server/citizen_remove_server_packet.py +10 -3
  208. eolib/protocol/_generated/net/server/citizen_reply_server_packet.py +10 -3
  209. eolib/protocol/_generated/net/server/citizen_request_server_packet.py +10 -3
  210. eolib/protocol/_generated/net/server/connection_player_server_packet.py +13 -6
  211. eolib/protocol/_generated/net/server/dialog_entry.py +24 -17
  212. eolib/protocol/_generated/net/server/dialog_quest_entry.py +10 -6
  213. eolib/protocol/_generated/net/server/door_close_server_packet.py +10 -3
  214. eolib/protocol/_generated/net/server/door_open_server_packet.py +11 -4
  215. eolib/protocol/_generated/net/server/effect_admin_server_packet.py +19 -12
  216. eolib/protocol/_generated/net/server/effect_agree_server_packet.py +13 -6
  217. eolib/protocol/_generated/net/server/effect_player_server_packet.py +13 -6
  218. eolib/protocol/_generated/net/server/effect_report_server_packet.py +8 -4
  219. eolib/protocol/_generated/net/server/effect_spec_server_packet.py +47 -33
  220. eolib/protocol/_generated/net/server/effect_target_other_server_packet.py +20 -13
  221. eolib/protocol/_generated/net/server/effect_use_server_packet.py +24 -14
  222. eolib/protocol/_generated/net/server/emote_player_server_packet.py +13 -6
  223. eolib/protocol/_generated/net/server/equipment_change.py +20 -16
  224. eolib/protocol/_generated/net/server/equipment_character_select.py +19 -15
  225. eolib/protocol/_generated/net/server/equipment_map_info.py +23 -19
  226. eolib/protocol/_generated/net/server/equipment_paperdoll.py +50 -46
  227. eolib/protocol/_generated/net/server/equipment_welcome.py +49 -45
  228. eolib/protocol/_generated/net/server/face_player_server_packet.py +13 -6
  229. eolib/protocol/_generated/net/server/global_backfill_message.py +13 -7
  230. eolib/protocol/_generated/net/server/group_heal_target_player.py +13 -9
  231. eolib/protocol/_generated/net/server/guild_accept_server_packet.py +10 -3
  232. eolib/protocol/_generated/net/server/guild_agree_server_packet.py +25 -16
  233. eolib/protocol/_generated/net/server/guild_buy_server_packet.py +10 -3
  234. eolib/protocol/_generated/net/server/guild_create_server_packet.py +28 -19
  235. eolib/protocol/_generated/net/server/guild_kick_server_packet.py +8 -4
  236. eolib/protocol/_generated/net/server/guild_member.py +17 -11
  237. eolib/protocol/_generated/net/server/guild_open_server_packet.py +10 -3
  238. eolib/protocol/_generated/net/server/guild_rank_server_packet.py +16 -9
  239. eolib/protocol/_generated/net/server/guild_reply_server_packet.py +49 -31
  240. eolib/protocol/_generated/net/server/guild_report_server_packet.py +47 -42
  241. eolib/protocol/_generated/net/server/guild_request_server_packet.py +13 -6
  242. eolib/protocol/_generated/net/server/guild_sell_server_packet.py +10 -3
  243. eolib/protocol/_generated/net/server/guild_staff.py +13 -7
  244. eolib/protocol/_generated/net/server/guild_take_server_packet.py +10 -3
  245. eolib/protocol/_generated/net/server/guild_tell_server_packet.py +20 -13
  246. eolib/protocol/_generated/net/server/init_ban_type.py +1 -1
  247. eolib/protocol/_generated/net/server/init_init_server_packet.py +190 -124
  248. eolib/protocol/_generated/net/server/init_reply.py +3 -0
  249. eolib/protocol/_generated/net/server/item_accept_server_packet.py +10 -3
  250. eolib/protocol/_generated/net/server/item_add_server_packet.py +19 -12
  251. eolib/protocol/_generated/net/server/item_agree_server_packet.py +10 -3
  252. eolib/protocol/_generated/net/server/item_drop_server_packet.py +22 -15
  253. eolib/protocol/_generated/net/server/item_get_server_packet.py +16 -9
  254. eolib/protocol/_generated/net/server/item_junk_server_packet.py +16 -9
  255. eolib/protocol/_generated/net/server/item_kick_server_packet.py +13 -6
  256. eolib/protocol/_generated/net/server/item_map_info.py +16 -12
  257. eolib/protocol/_generated/net/server/item_obtain_server_packet.py +13 -6
  258. eolib/protocol/_generated/net/server/item_remove_server_packet.py +10 -3
  259. eolib/protocol/_generated/net/server/item_reply_server_packet.py +100 -74
  260. eolib/protocol/_generated/net/server/item_spec_server_packet.py +8 -4
  261. eolib/protocol/_generated/net/server/jukebox_agree_server_packet.py +10 -3
  262. eolib/protocol/_generated/net/server/jukebox_msg_server_packet.py +19 -12
  263. eolib/protocol/_generated/net/server/jukebox_open_server_packet.py +13 -6
  264. eolib/protocol/_generated/net/server/jukebox_player_server_packet.py +10 -3
  265. eolib/protocol/_generated/net/server/jukebox_reply_server_packet.py +8 -4
  266. eolib/protocol/_generated/net/server/jukebox_use_server_packet.py +14 -3
  267. eolib/protocol/_generated/net/server/level_up_stats.py +22 -18
  268. eolib/protocol/_generated/net/server/locker_buy_server_packet.py +13 -6
  269. eolib/protocol/_generated/net/server/locker_get_server_packet.py +17 -10
  270. eolib/protocol/_generated/net/server/locker_open_server_packet.py +14 -7
  271. eolib/protocol/_generated/net/server/locker_reply_server_packet.py +17 -10
  272. eolib/protocol/_generated/net/server/locker_spec_server_packet.py +10 -3
  273. eolib/protocol/_generated/net/server/login_reply.py +6 -0
  274. eolib/protocol/_generated/net/server/login_reply_server_packet.py +80 -50
  275. eolib/protocol/_generated/net/server/map_drain_damage_other.py +13 -9
  276. eolib/protocol/_generated/net/server/map_file.py +7 -3
  277. eolib/protocol/_generated/net/server/marriage_open_server_packet.py +10 -3
  278. eolib/protocol/_generated/net/server/marriage_reply_server_packet.py +24 -14
  279. eolib/protocol/_generated/net/server/message_accept_server_packet.py +16 -9
  280. eolib/protocol/_generated/net/server/message_close_server_packet.py +8 -4
  281. eolib/protocol/_generated/net/server/message_open_server_packet.py +10 -3
  282. eolib/protocol/_generated/net/server/message_pong_server_packet.py +8 -4
  283. eolib/protocol/_generated/net/server/music_player_server_packet.py +10 -3
  284. eolib/protocol/_generated/net/server/nearby_info.py +26 -22
  285. eolib/protocol/_generated/net/server/npc_accept_server_packet.py +16 -9
  286. eolib/protocol/_generated/net/server/npc_agree_server_packet.py +19 -12
  287. eolib/protocol/_generated/net/server/npc_dialog_server_packet.py +13 -6
  288. eolib/protocol/_generated/net/server/npc_junk_server_packet.py +10 -3
  289. eolib/protocol/_generated/net/server/npc_killed_data.py +28 -24
  290. eolib/protocol/_generated/net/server/npc_map_info.py +16 -12
  291. eolib/protocol/_generated/net/server/npc_player_server_packet.py +30 -21
  292. eolib/protocol/_generated/net/server/npc_reply_server_packet.py +25 -18
  293. eolib/protocol/_generated/net/server/npc_spec_server_packet.py +13 -6
  294. eolib/protocol/_generated/net/server/npc_update_attack.py +22 -18
  295. eolib/protocol/_generated/net/server/npc_update_chat.py +15 -11
  296. eolib/protocol/_generated/net/server/npc_update_position.py +13 -9
  297. eolib/protocol/_generated/net/server/online_player.py +26 -20
  298. eolib/protocol/_generated/net/server/paperdoll_agree_server_packet.py +22 -15
  299. eolib/protocol/_generated/net/server/paperdoll_ping_server_packet.py +12 -5
  300. eolib/protocol/_generated/net/server/paperdoll_remove_server_packet.py +19 -12
  301. eolib/protocol/_generated/net/server/paperdoll_reply_server_packet.py +18 -9
  302. eolib/protocol/_generated/net/server/party_add_server_packet.py +10 -3
  303. eolib/protocol/_generated/net/server/party_agree_server_packet.py +13 -6
  304. eolib/protocol/_generated/net/server/party_close_server_packet.py +8 -4
  305. eolib/protocol/_generated/net/server/party_create_server_packet.py +13 -5
  306. eolib/protocol/_generated/net/server/party_exp_share.py +16 -12
  307. eolib/protocol/_generated/net/server/party_list_server_packet.py +13 -5
  308. eolib/protocol/_generated/net/server/party_member.py +20 -16
  309. eolib/protocol/_generated/net/server/party_remove_server_packet.py +10 -3
  310. eolib/protocol/_generated/net/server/party_reply_server_packet.py +35 -21
  311. eolib/protocol/_generated/net/server/party_request_server_packet.py +16 -9
  312. eolib/protocol/_generated/net/server/party_target_group_server_packet.py +11 -4
  313. eolib/protocol/_generated/net/server/players_agree_server_packet.py +10 -3
  314. eolib/protocol/_generated/net/server/players_list.py +17 -13
  315. eolib/protocol/_generated/net/server/players_list_friends.py +17 -13
  316. eolib/protocol/_generated/net/server/players_list_server_packet.py +12 -3
  317. eolib/protocol/_generated/net/server/players_net242_server_packet.py +10 -3
  318. eolib/protocol/_generated/net/server/players_ping_server_packet.py +10 -3
  319. eolib/protocol/_generated/net/server/players_pong_server_packet.py +10 -3
  320. eolib/protocol/_generated/net/server/players_remove_server_packet.py +10 -3
  321. eolib/protocol/_generated/net/server/players_reply_server_packet.py +12 -3
  322. eolib/protocol/_generated/net/server/priest_open_server_packet.py +10 -3
  323. eolib/protocol/_generated/net/server/priest_reply_server_packet.py +10 -3
  324. eolib/protocol/_generated/net/server/priest_request_server_packet.py +13 -6
  325. eolib/protocol/_generated/net/server/pub_file.py +10 -6
  326. eolib/protocol/_generated/net/server/quest_dialog_server_packet.py +36 -30
  327. eolib/protocol/_generated/net/server/quest_list_server_packet.py +42 -28
  328. eolib/protocol/_generated/net/server/quest_progress_entry.py +23 -17
  329. eolib/protocol/_generated/net/server/quest_report_server_packet.py +17 -9
  330. eolib/protocol/_generated/net/server/range_reply_server_packet.py +10 -3
  331. eolib/protocol/_generated/net/server/recover_agree_server_packet.py +16 -9
  332. eolib/protocol/_generated/net/server/recover_list_server_packet.py +13 -6
  333. eolib/protocol/_generated/net/server/recover_player_server_packet.py +13 -6
  334. eolib/protocol/_generated/net/server/recover_reply_server_packet.py +24 -17
  335. eolib/protocol/_generated/net/server/recover_target_group_server_packet.py +22 -15
  336. eolib/protocol/_generated/net/server/refresh_reply_server_packet.py +10 -3
  337. eolib/protocol/_generated/net/server/server_settings.py +25 -21
  338. eolib/protocol/_generated/net/server/shop_buy_server_packet.py +16 -9
  339. eolib/protocol/_generated/net/server/shop_craft_item.py +13 -9
  340. eolib/protocol/_generated/net/server/shop_create_server_packet.py +19 -12
  341. eolib/protocol/_generated/net/server/shop_open_server_packet.py +26 -17
  342. eolib/protocol/_generated/net/server/shop_sell_server_packet.py +16 -9
  343. eolib/protocol/_generated/net/server/shop_sold_item.py +10 -6
  344. eolib/protocol/_generated/net/server/shop_trade_item.py +16 -12
  345. eolib/protocol/_generated/net/server/sit_close_server_packet.py +13 -6
  346. eolib/protocol/_generated/net/server/sit_player_server_packet.py +17 -10
  347. eolib/protocol/_generated/net/server/sit_remove_server_packet.py +13 -6
  348. eolib/protocol/_generated/net/server/sit_reply_server_packet.py +17 -10
  349. eolib/protocol/_generated/net/server/skill_learn.py +25 -21
  350. eolib/protocol/_generated/net/server/spell_error_server_packet.py +8 -4
  351. eolib/protocol/_generated/net/server/spell_player_server_packet.py +13 -6
  352. eolib/protocol/_generated/net/server/spell_request_server_packet.py +13 -6
  353. eolib/protocol/_generated/net/server/spell_target_group_server_packet.py +23 -16
  354. eolib/protocol/_generated/net/server/spell_target_other_server_packet.py +28 -21
  355. eolib/protocol/_generated/net/server/spell_target_self_server_packet.py +25 -18
  356. eolib/protocol/_generated/net/server/stat_skill_accept_server_packet.py +13 -6
  357. eolib/protocol/_generated/net/server/stat_skill_junk_server_packet.py +10 -3
  358. eolib/protocol/_generated/net/server/stat_skill_open_server_packet.py +20 -11
  359. eolib/protocol/_generated/net/server/stat_skill_player_server_packet.py +13 -6
  360. eolib/protocol/_generated/net/server/stat_skill_remove_server_packet.py +10 -3
  361. eolib/protocol/_generated/net/server/stat_skill_reply_server_packet.py +24 -14
  362. eolib/protocol/_generated/net/server/stat_skill_take_server_packet.py +13 -6
  363. eolib/protocol/_generated/net/server/talk_admin_server_packet.py +16 -7
  364. eolib/protocol/_generated/net/server/talk_announce_server_packet.py +16 -7
  365. eolib/protocol/_generated/net/server/talk_list_server_packet.py +14 -5
  366. eolib/protocol/_generated/net/server/talk_msg_server_packet.py +16 -7
  367. eolib/protocol/_generated/net/server/talk_open_server_packet.py +13 -6
  368. eolib/protocol/_generated/net/server/talk_player_server_packet.py +13 -6
  369. eolib/protocol/_generated/net/server/talk_reply_server_packet.py +13 -6
  370. eolib/protocol/_generated/net/server/talk_request_server_packet.py +16 -7
  371. eolib/protocol/_generated/net/server/talk_server_server_packet.py +10 -3
  372. eolib/protocol/_generated/net/server/talk_spec_server_packet.py +10 -3
  373. eolib/protocol/_generated/net/server/talk_tell_server_packet.py +16 -7
  374. eolib/protocol/_generated/net/server/trade_admin_server_packet.py +10 -3
  375. eolib/protocol/_generated/net/server/trade_agree_server_packet.py +13 -6
  376. eolib/protocol/_generated/net/server/trade_close_server_packet.py +10 -3
  377. eolib/protocol/_generated/net/server/trade_item_data.py +22 -16
  378. eolib/protocol/_generated/net/server/trade_open_server_packet.py +23 -14
  379. eolib/protocol/_generated/net/server/trade_reply_server_packet.py +10 -3
  380. eolib/protocol/_generated/net/server/trade_request_server_packet.py +14 -7
  381. eolib/protocol/_generated/net/server/trade_spec_server_packet.py +10 -3
  382. eolib/protocol/_generated/net/server/trade_use_server_packet.py +10 -3
  383. eolib/protocol/_generated/net/server/walk_close_server_packet.py +8 -4
  384. eolib/protocol/_generated/net/server/walk_open_server_packet.py +8 -4
  385. eolib/protocol/_generated/net/server/walk_player_server_packet.py +16 -9
  386. eolib/protocol/_generated/net/server/walk_reply_server_packet.py +23 -14
  387. eolib/protocol/_generated/net/server/warp_agree_server_packet.py +32 -20
  388. eolib/protocol/_generated/net/server/warp_create_server_packet.py +10 -3
  389. eolib/protocol/_generated/net/server/warp_player_server_packet.py +10 -3
  390. eolib/protocol/_generated/net/server/warp_request_server_packet.py +36 -26
  391. eolib/protocol/_generated/net/server/welcome_net242_server_packet.py +10 -3
  392. eolib/protocol/_generated/net/server/welcome_net243_server_packet.py +10 -3
  393. eolib/protocol/_generated/net/server/welcome_net244_server_packet.py +10 -3
  394. eolib/protocol/_generated/net/server/welcome_ping_server_packet.py +10 -3
  395. eolib/protocol/_generated/net/server/welcome_pong_server_packet.py +10 -3
  396. eolib/protocol/_generated/net/server/welcome_reply_server_packet.py +161 -147
  397. eolib/protocol/_generated/net/spell.py +10 -6
  398. eolib/protocol/_generated/net/three_item.py +10 -6
  399. eolib/protocol/_generated/net/version.py +13 -9
  400. eolib/protocol/_generated/net/weight.py +10 -6
  401. eolib/protocol/_generated/pub/ecf.py +21 -17
  402. eolib/protocol/_generated/pub/ecf_record.py +36 -32
  403. eolib/protocol/_generated/pub/eif.py +21 -17
  404. eolib/protocol/_generated/pub/eif_record.py +130 -126
  405. eolib/protocol/_generated/pub/enf.py +21 -17
  406. eolib/protocol/_generated/pub/enf_record.py +72 -68
  407. eolib/protocol/_generated/pub/esf.py +21 -17
  408. eolib/protocol/_generated/pub/esf_record.py +106 -102
  409. eolib/protocol/_generated/pub/server/__init__.py +30 -0
  410. eolib/protocol/_generated/pub/server/drop_file.py +81 -0
  411. eolib/protocol/_generated/pub/server/drop_npc_record.py +116 -0
  412. eolib/protocol/_generated/pub/server/drop_record.py +149 -0
  413. eolib/protocol/_generated/pub/server/inn_file.py +81 -0
  414. eolib/protocol/_generated/pub/server/inn_question_record.py +119 -0
  415. eolib/protocol/_generated/pub/server/inn_record.py +383 -0
  416. eolib/protocol/_generated/pub/server/shop_craft_ingredient_record.py +107 -0
  417. eolib/protocol/_generated/pub/server/shop_craft_record.py +110 -0
  418. eolib/protocol/_generated/pub/server/shop_file.py +81 -0
  419. eolib/protocol/_generated/pub/server/shop_record.py +253 -0
  420. eolib/protocol/_generated/pub/server/shop_trade_record.py +157 -0
  421. eolib/protocol/_generated/pub/server/skill_master_file.py +81 -0
  422. eolib/protocol/_generated/pub/server/skill_master_record.py +224 -0
  423. eolib/protocol/_generated/pub/server/skill_master_skill_record.py +336 -0
  424. eolib/protocol/_generated/pub/server/talk_file.py +81 -0
  425. eolib/protocol/_generated/pub/server/talk_message_record.py +90 -0
  426. eolib/protocol/_generated/pub/server/talk_record.py +145 -0
  427. eolib/protocol/protocol_enum_meta.py +1 -3
  428. eolib/protocol/pub/server/__init__.py +8 -0
  429. eolib/py.typed +0 -0
  430. {eolib-1.1.0.dist-info → eolib-1.2.0.dist-info}/METADATA +8 -6
  431. {eolib-1.1.0.dist-info → eolib-1.2.0.dist-info}/RECORD +433 -413
  432. {eolib-1.1.0.dist-info → eolib-1.2.0.dist-info}/WHEEL +1 -1
  433. {eolib-1.1.0.dist-info → eolib-1.2.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -10,6 +10,9 @@ from .....data.eo_writer import EoWriter
10
10
  from .....data.eo_reader import EoReader
11
11
 
12
12
  class JukeboxReplyServerPacket(Packet):
13
+ """
14
+ Reply to unsuccessfully requesting a song
15
+ """
13
16
  _byte_size: int = 0
14
17
 
15
18
  @property
@@ -60,9 +63,11 @@ class JukeboxReplyServerPacket(Packet):
60
63
  writer (EoWriter): The writer that the data will be serialized to.
61
64
  data (JukeboxReplyServerPacket): The data to serialize.
62
65
  """
63
- old_writer_length: int = len(writer)
64
- if len(writer) == old_writer_length:
66
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
67
+ try:
65
68
  writer.add_short(1)
69
+ finally:
70
+ writer.string_sanitization_mode = old_string_sanitization_mode
66
71
 
67
72
  @staticmethod
68
73
  def deserialize(reader: EoReader) -> "JukeboxReplyServerPacket":
@@ -79,8 +84,7 @@ class JukeboxReplyServerPacket(Packet):
79
84
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
80
85
  try:
81
86
  reader_start_position: int = reader.position
82
- if reader.position == reader_start_position:
83
- reader.get_short()
87
+ reader.get_short()
84
88
  data._byte_size = reader.position - reader_start_position
85
89
  return data
86
90
  finally:
@@ -11,6 +11,9 @@ from .....data.eo_writer import EoWriter
11
11
  from .....data.eo_reader import EoReader
12
12
 
13
13
  class JukeboxUseServerPacket(Packet):
14
+ """
15
+ Play jukebox music
16
+ """
14
17
  _byte_size: int = 0
15
18
  _track_id: int = None # type: ignore [assignment]
16
19
 
@@ -27,6 +30,8 @@ class JukeboxUseServerPacket(Packet):
27
30
  @property
28
31
  def track_id(self) -> int:
29
32
  """
33
+ This value is 1-indexed
34
+
30
35
  Note:
31
36
  - Value range is 0-64008.
32
37
  """
@@ -35,6 +40,8 @@ class JukeboxUseServerPacket(Packet):
35
40
  @track_id.setter
36
41
  def track_id(self, track_id: int) -> None:
37
42
  """
43
+ This value is 1-indexed
44
+
38
45
  Note:
39
46
  - Value range is 0-64008.
40
47
  """
@@ -78,9 +85,13 @@ class JukeboxUseServerPacket(Packet):
78
85
  writer (EoWriter): The writer that the data will be serialized to.
79
86
  data (JukeboxUseServerPacket): The data to serialize.
80
87
  """
81
- if data._track_id is None:
82
- raise SerializationError("track_id must be provided.")
83
- writer.add_short(data._track_id)
88
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
89
+ try:
90
+ if data._track_id is None:
91
+ raise SerializationError("track_id must be provided.")
92
+ writer.add_short(data._track_id)
93
+ finally:
94
+ writer.string_sanitization_mode = old_string_sanitization_mode
84
95
 
85
96
  @staticmethod
86
97
  def deserialize(reader: EoReader) -> "JukeboxUseServerPacket":
@@ -134,24 +134,28 @@ class LevelUpStats:
134
134
  writer (EoWriter): The writer that the data will be serialized to.
135
135
  data (LevelUpStats): The data to serialize.
136
136
  """
137
- if data._level is None:
138
- raise SerializationError("level must be provided.")
139
- writer.add_char(data._level)
140
- if data._stat_points is None:
141
- raise SerializationError("stat_points must be provided.")
142
- writer.add_short(data._stat_points)
143
- if data._skill_points is None:
144
- raise SerializationError("skill_points must be provided.")
145
- writer.add_short(data._skill_points)
146
- if data._max_hp is None:
147
- raise SerializationError("max_hp must be provided.")
148
- writer.add_short(data._max_hp)
149
- if data._max_tp is None:
150
- raise SerializationError("max_tp must be provided.")
151
- writer.add_short(data._max_tp)
152
- if data._max_sp is None:
153
- raise SerializationError("max_sp must be provided.")
154
- writer.add_short(data._max_sp)
137
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
138
+ try:
139
+ if data._level is None:
140
+ raise SerializationError("level must be provided.")
141
+ writer.add_char(data._level)
142
+ if data._stat_points is None:
143
+ raise SerializationError("stat_points must be provided.")
144
+ writer.add_short(data._stat_points)
145
+ if data._skill_points is None:
146
+ raise SerializationError("skill_points must be provided.")
147
+ writer.add_short(data._skill_points)
148
+ if data._max_hp is None:
149
+ raise SerializationError("max_hp must be provided.")
150
+ writer.add_short(data._max_hp)
151
+ if data._max_tp is None:
152
+ raise SerializationError("max_tp must be provided.")
153
+ writer.add_short(data._max_tp)
154
+ if data._max_sp is None:
155
+ raise SerializationError("max_sp must be provided.")
156
+ writer.add_short(data._max_sp)
157
+ finally:
158
+ writer.string_sanitization_mode = old_string_sanitization_mode
155
159
 
156
160
  @staticmethod
157
161
  def deserialize(reader: EoReader) -> "LevelUpStats":
@@ -11,6 +11,9 @@ from .....data.eo_writer import EoWriter
11
11
  from .....data.eo_reader import EoReader
12
12
 
13
13
  class LockerBuyServerPacket(Packet):
14
+ """
15
+ Response to buying a locker space upgrade from a banker NPC
16
+ """
14
17
  _byte_size: int = 0
15
18
  _gold_amount: int = None # type: ignore [assignment]
16
19
  _locker_upgrades: int = None # type: ignore [assignment]
@@ -95,12 +98,16 @@ class LockerBuyServerPacket(Packet):
95
98
  writer (EoWriter): The writer that the data will be serialized to.
96
99
  data (LockerBuyServerPacket): The data to serialize.
97
100
  """
98
- if data._gold_amount is None:
99
- raise SerializationError("gold_amount must be provided.")
100
- writer.add_int(data._gold_amount)
101
- if data._locker_upgrades is None:
102
- raise SerializationError("locker_upgrades must be provided.")
103
- writer.add_char(data._locker_upgrades)
101
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
102
+ try:
103
+ if data._gold_amount is None:
104
+ raise SerializationError("gold_amount must be provided.")
105
+ writer.add_int(data._gold_amount)
106
+ if data._locker_upgrades is None:
107
+ raise SerializationError("locker_upgrades must be provided.")
108
+ writer.add_char(data._locker_upgrades)
109
+ finally:
110
+ writer.string_sanitization_mode = old_string_sanitization_mode
104
111
 
105
112
  @staticmethod
106
113
  def deserialize(reader: EoReader) -> "LockerBuyServerPacket":
@@ -14,6 +14,9 @@ from .....data.eo_writer import EoWriter
14
14
  from .....data.eo_reader import EoReader
15
15
 
16
16
  class LockerGetServerPacket(Packet):
17
+ """
18
+ Response to taking an item from a bank locker
19
+ """
17
20
  _byte_size: int = 0
18
21
  _taken_item: ThreeItem = None # type: ignore [assignment]
19
22
  _weight: Weight = None # type: ignore [assignment]
@@ -91,16 +94,20 @@ class LockerGetServerPacket(Packet):
91
94
  writer (EoWriter): The writer that the data will be serialized to.
92
95
  data (LockerGetServerPacket): The data to serialize.
93
96
  """
94
- if data._taken_item is None:
95
- raise SerializationError("taken_item must be provided.")
96
- ThreeItem.serialize(writer, data._taken_item)
97
- if data._weight is None:
98
- raise SerializationError("weight must be provided.")
99
- Weight.serialize(writer, data._weight)
100
- if data._locker_items is None:
101
- raise SerializationError("locker_items must be provided.")
102
- for i in range(len(data._locker_items)):
103
- ThreeItem.serialize(writer, data._locker_items[i])
97
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
98
+ try:
99
+ if data._taken_item is None:
100
+ raise SerializationError("taken_item must be provided.")
101
+ ThreeItem.serialize(writer, data._taken_item)
102
+ if data._weight is None:
103
+ raise SerializationError("weight must be provided.")
104
+ Weight.serialize(writer, data._weight)
105
+ if data._locker_items is None:
106
+ raise SerializationError("locker_items must be provided.")
107
+ for i in range(len(data._locker_items)):
108
+ ThreeItem.serialize(writer, data._locker_items[i])
109
+ finally:
110
+ writer.string_sanitization_mode = old_string_sanitization_mode
104
111
 
105
112
  @staticmethod
106
113
  def deserialize(reader: EoReader) -> "LockerGetServerPacket":
@@ -14,6 +14,9 @@ from .....data.eo_writer import EoWriter
14
14
  from .....data.eo_reader import EoReader
15
15
 
16
16
  class LockerOpenServerPacket(Packet):
17
+ """
18
+ Opening a bank locker
19
+ """
17
20
  _byte_size: int = 0
18
21
  _locker_coords: Coords = None # type: ignore [assignment]
19
22
  _locker_items: list[ThreeItem] = None # type: ignore [assignment]
@@ -82,13 +85,17 @@ class LockerOpenServerPacket(Packet):
82
85
  writer (EoWriter): The writer that the data will be serialized to.
83
86
  data (LockerOpenServerPacket): The data to serialize.
84
87
  """
85
- if data._locker_coords is None:
86
- raise SerializationError("locker_coords must be provided.")
87
- Coords.serialize(writer, data._locker_coords)
88
- if data._locker_items is None:
89
- raise SerializationError("locker_items must be provided.")
90
- for i in range(len(data._locker_items)):
91
- ThreeItem.serialize(writer, data._locker_items[i])
88
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
89
+ try:
90
+ if data._locker_coords is None:
91
+ raise SerializationError("locker_coords must be provided.")
92
+ Coords.serialize(writer, data._locker_coords)
93
+ if data._locker_items is None:
94
+ raise SerializationError("locker_items must be provided.")
95
+ for i in range(len(data._locker_items)):
96
+ ThreeItem.serialize(writer, data._locker_items[i])
97
+ finally:
98
+ writer.string_sanitization_mode = old_string_sanitization_mode
92
99
 
93
100
  @staticmethod
94
101
  def deserialize(reader: EoReader) -> "LockerOpenServerPacket":
@@ -15,6 +15,9 @@ from .....data.eo_writer import EoWriter
15
15
  from .....data.eo_reader import EoReader
16
16
 
17
17
  class LockerReplyServerPacket(Packet):
18
+ """
19
+ Response to adding an item to a bank locker
20
+ """
18
21
  _byte_size: int = 0
19
22
  _deposited_item: Item = None # type: ignore [assignment]
20
23
  _weight: Weight = None # type: ignore [assignment]
@@ -92,16 +95,20 @@ class LockerReplyServerPacket(Packet):
92
95
  writer (EoWriter): The writer that the data will be serialized to.
93
96
  data (LockerReplyServerPacket): The data to serialize.
94
97
  """
95
- if data._deposited_item is None:
96
- raise SerializationError("deposited_item must be provided.")
97
- Item.serialize(writer, data._deposited_item)
98
- if data._weight is None:
99
- raise SerializationError("weight must be provided.")
100
- Weight.serialize(writer, data._weight)
101
- if data._locker_items is None:
102
- raise SerializationError("locker_items must be provided.")
103
- for i in range(len(data._locker_items)):
104
- ThreeItem.serialize(writer, data._locker_items[i])
98
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
99
+ try:
100
+ if data._deposited_item is None:
101
+ raise SerializationError("deposited_item must be provided.")
102
+ Item.serialize(writer, data._deposited_item)
103
+ if data._weight is None:
104
+ raise SerializationError("weight must be provided.")
105
+ Weight.serialize(writer, data._weight)
106
+ if data._locker_items is None:
107
+ raise SerializationError("locker_items must be provided.")
108
+ for i in range(len(data._locker_items)):
109
+ ThreeItem.serialize(writer, data._locker_items[i])
110
+ finally:
111
+ writer.string_sanitization_mode = old_string_sanitization_mode
105
112
 
106
113
  @staticmethod
107
114
  def deserialize(reader: EoReader) -> "LockerReplyServerPacket":
@@ -11,6 +11,9 @@ from .....data.eo_writer import EoWriter
11
11
  from .....data.eo_reader import EoReader
12
12
 
13
13
  class LockerSpecServerPacket(Packet):
14
+ """
15
+ Reply to trying to add an item to a full locker
16
+ """
14
17
  _byte_size: int = 0
15
18
  _locker_max_items: int = None # type: ignore [assignment]
16
19
 
@@ -78,9 +81,13 @@ class LockerSpecServerPacket(Packet):
78
81
  writer (EoWriter): The writer that the data will be serialized to.
79
82
  data (LockerSpecServerPacket): The data to serialize.
80
83
  """
81
- if data._locker_max_items is None:
82
- raise SerializationError("locker_max_items must be provided.")
83
- writer.add_char(data._locker_max_items)
84
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
85
+ try:
86
+ if data._locker_max_items is None:
87
+ raise SerializationError("locker_max_items must be provided.")
88
+ writer.add_char(data._locker_max_items)
89
+ finally:
90
+ writer.string_sanitization_mode = old_string_sanitization_mode
84
91
 
85
92
  @staticmethod
86
93
  def deserialize(reader: EoReader) -> "LockerSpecServerPacket":
@@ -15,5 +15,11 @@ class LoginReply(IntEnum, metaclass=ProtocolEnumMeta):
15
15
  WrongUserPassword = 2
16
16
  Ok = 3
17
17
  Banned = 4
18
+ """
19
+ The official client won't display a message until the connection from the server is closed
20
+ """
18
21
  LoggedIn = 5
19
22
  Busy = 6
23
+ """
24
+ The official client won't display a message until the connection from the server is closed
25
+ """
@@ -15,6 +15,9 @@ from .....data.eo_writer import EoWriter
15
15
  from .....data.eo_reader import EoReader
16
16
 
17
17
  class LoginReplyServerPacket(Packet):
18
+ """
19
+ Login reply
20
+ """
18
21
  _byte_size: int = 0
19
22
  _reply_code: LoginReply = None # type: ignore [assignment]
20
23
  _reply_code_data: 'LoginReplyServerPacket.ReplyCodeData' = None
@@ -86,33 +89,39 @@ class LoginReplyServerPacket(Packet):
86
89
  writer (EoWriter): The writer that the data will be serialized to.
87
90
  data (LoginReplyServerPacket): The data to serialize.
88
91
  """
89
- if data._reply_code is None:
90
- raise SerializationError("reply_code must be provided.")
91
- writer.add_short(int(data._reply_code))
92
- if data._reply_code == LoginReply.WrongUser:
93
- if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataWrongUser):
94
- raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataWrongUser for reply_code " + LoginReply(data._reply_code).name + ".")
95
- LoginReplyServerPacket.ReplyCodeDataWrongUser.serialize(writer, data._reply_code_data)
96
- elif data._reply_code == LoginReply.WrongUserPassword:
97
- if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataWrongUserPassword):
98
- raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataWrongUserPassword for reply_code " + LoginReply(data._reply_code).name + ".")
99
- LoginReplyServerPacket.ReplyCodeDataWrongUserPassword.serialize(writer, data._reply_code_data)
100
- elif data._reply_code == LoginReply.Ok:
101
- if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataOk):
102
- raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataOk for reply_code " + LoginReply(data._reply_code).name + ".")
103
- LoginReplyServerPacket.ReplyCodeDataOk.serialize(writer, data._reply_code_data)
104
- elif data._reply_code == LoginReply.Banned:
105
- if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataBanned):
106
- raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataBanned for reply_code " + LoginReply(data._reply_code).name + ".")
107
- LoginReplyServerPacket.ReplyCodeDataBanned.serialize(writer, data._reply_code_data)
108
- elif data._reply_code == LoginReply.LoggedIn:
109
- if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataLoggedIn):
110
- raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataLoggedIn for reply_code " + LoginReply(data._reply_code).name + ".")
111
- LoginReplyServerPacket.ReplyCodeDataLoggedIn.serialize(writer, data._reply_code_data)
112
- elif data._reply_code == LoginReply.Busy:
113
- if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataBusy):
114
- raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataBusy for reply_code " + LoginReply(data._reply_code).name + ".")
115
- LoginReplyServerPacket.ReplyCodeDataBusy.serialize(writer, data._reply_code_data)
92
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
93
+ try:
94
+ writer.string_sanitization_mode = True
95
+ if data._reply_code is None:
96
+ raise SerializationError("reply_code must be provided.")
97
+ writer.add_short(int(data._reply_code))
98
+ if data._reply_code == LoginReply.WrongUser:
99
+ if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataWrongUser):
100
+ raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataWrongUser for reply_code " + LoginReply(data._reply_code).name + ".")
101
+ LoginReplyServerPacket.ReplyCodeDataWrongUser.serialize(writer, data._reply_code_data)
102
+ elif data._reply_code == LoginReply.WrongUserPassword:
103
+ if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataWrongUserPassword):
104
+ raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataWrongUserPassword for reply_code " + LoginReply(data._reply_code).name + ".")
105
+ LoginReplyServerPacket.ReplyCodeDataWrongUserPassword.serialize(writer, data._reply_code_data)
106
+ elif data._reply_code == LoginReply.Ok:
107
+ if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataOk):
108
+ raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataOk for reply_code " + LoginReply(data._reply_code).name + ".")
109
+ LoginReplyServerPacket.ReplyCodeDataOk.serialize(writer, data._reply_code_data)
110
+ elif data._reply_code == LoginReply.Banned:
111
+ if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataBanned):
112
+ raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataBanned for reply_code " + LoginReply(data._reply_code).name + ".")
113
+ LoginReplyServerPacket.ReplyCodeDataBanned.serialize(writer, data._reply_code_data)
114
+ elif data._reply_code == LoginReply.LoggedIn:
115
+ if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataLoggedIn):
116
+ raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataLoggedIn for reply_code " + LoginReply(data._reply_code).name + ".")
117
+ LoginReplyServerPacket.ReplyCodeDataLoggedIn.serialize(writer, data._reply_code_data)
118
+ elif data._reply_code == LoginReply.Busy:
119
+ if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataBusy):
120
+ raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataBusy for reply_code " + LoginReply(data._reply_code).name + ".")
121
+ LoginReplyServerPacket.ReplyCodeDataBusy.serialize(writer, data._reply_code_data)
122
+ writer.string_sanitization_mode = False
123
+ finally:
124
+ writer.string_sanitization_mode = old_string_sanitization_mode
116
125
 
117
126
  @staticmethod
118
127
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket":
@@ -153,10 +162,9 @@ class LoginReplyServerPacket(Packet):
153
162
  return f"LoginReplyServerPacket(byte_size={repr(self._byte_size)}, reply_code={repr(self._reply_code)}, reply_code_data={repr(self._reply_code_data)})"
154
163
 
155
164
  ReplyCodeData = Union['LoginReplyServerPacket.ReplyCodeDataWrongUser', 'LoginReplyServerPacket.ReplyCodeDataWrongUserPassword', 'LoginReplyServerPacket.ReplyCodeDataOk', 'LoginReplyServerPacket.ReplyCodeDataBanned', 'LoginReplyServerPacket.ReplyCodeDataLoggedIn', 'LoginReplyServerPacket.ReplyCodeDataBusy', None]
156
- ReplyCodeData.__doc__ = \
157
- """
158
- Data associated with different values of the `reply_code` field.
159
- """
165
+ """
166
+ Data associated with different values of the `reply_code` field.
167
+ """
160
168
 
161
169
  class ReplyCodeDataWrongUser:
162
170
  """
@@ -184,7 +192,11 @@ class LoginReplyServerPacket(Packet):
184
192
  writer (EoWriter): The writer that the data will be serialized to.
185
193
  data (LoginReplyServerPacket.ReplyCodeDataWrongUser): The data to serialize.
186
194
  """
187
- writer.add_string("NO")
195
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
196
+ try:
197
+ writer.add_string("NO")
198
+ finally:
199
+ writer.string_sanitization_mode = old_string_sanitization_mode
188
200
 
189
201
  @staticmethod
190
202
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket.ReplyCodeDataWrongUser":
@@ -236,7 +248,11 @@ class LoginReplyServerPacket(Packet):
236
248
  writer (EoWriter): The writer that the data will be serialized to.
237
249
  data (LoginReplyServerPacket.ReplyCodeDataWrongUserPassword): The data to serialize.
238
250
  """
239
- writer.add_string("NO")
251
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
252
+ try:
253
+ writer.add_string("NO")
254
+ finally:
255
+ writer.string_sanitization_mode = old_string_sanitization_mode
240
256
 
241
257
  @staticmethod
242
258
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket.ReplyCodeDataWrongUserPassword":
@@ -306,19 +322,22 @@ class LoginReplyServerPacket(Packet):
306
322
  writer (EoWriter): The writer that the data will be serialized to.
307
323
  data (LoginReplyServerPacket.ReplyCodeDataOk): The data to serialize.
308
324
  """
309
- if data._characters_count is None:
310
- raise SerializationError("characters_count must be provided.")
311
- writer.add_char(data._characters_count)
312
- writer.add_char(0)
313
- writer.add_byte(0xFF)
314
- if data._characters is None:
315
- raise SerializationError("characters must be provided.")
316
- if len(data._characters) > 252:
317
- raise SerializationError(f"Expected length of characters to be 252 or less, got {len(data._characters)}.")
318
- for i in range(data._characters_count):
319
- if i > 0:
325
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
326
+ try:
327
+ if data._characters_count is None:
328
+ raise SerializationError("characters_count must be provided.")
329
+ writer.add_char(data._characters_count)
330
+ writer.add_char(0)
331
+ writer.add_byte(0xFF)
332
+ if data._characters is None:
333
+ raise SerializationError("characters must be provided.")
334
+ if len(data._characters) > 252:
335
+ raise SerializationError(f"Expected length of characters to be 252 or less, got {len(data._characters)}.")
336
+ for i in range(data._characters_count):
337
+ CharacterSelectionListEntry.serialize(writer, data._characters[i])
320
338
  writer.add_byte(0xFF)
321
- CharacterSelectionListEntry.serialize(writer, data._characters[i])
339
+ finally:
340
+ writer.string_sanitization_mode = old_string_sanitization_mode
322
341
 
323
342
  @staticmethod
324
343
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket.ReplyCodeDataOk":
@@ -341,8 +360,7 @@ class LoginReplyServerPacket(Packet):
341
360
  data._characters = []
342
361
  for i in range(data._characters_count):
343
362
  data._characters.append(CharacterSelectionListEntry.deserialize(reader))
344
- if i + 1 < data._characters_count:
345
- reader.next_chunk()
363
+ reader.next_chunk()
346
364
  data._byte_size = reader.position - reader_start_position
347
365
  return data
348
366
  finally:
@@ -377,7 +395,11 @@ class LoginReplyServerPacket(Packet):
377
395
  writer (EoWriter): The writer that the data will be serialized to.
378
396
  data (LoginReplyServerPacket.ReplyCodeDataBanned): The data to serialize.
379
397
  """
380
- writer.add_string("NO")
398
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
399
+ try:
400
+ writer.add_string("NO")
401
+ finally:
402
+ writer.string_sanitization_mode = old_string_sanitization_mode
381
403
 
382
404
  @staticmethod
383
405
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket.ReplyCodeDataBanned":
@@ -429,7 +451,11 @@ class LoginReplyServerPacket(Packet):
429
451
  writer (EoWriter): The writer that the data will be serialized to.
430
452
  data (LoginReplyServerPacket.ReplyCodeDataLoggedIn): The data to serialize.
431
453
  """
432
- writer.add_string("NO")
454
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
455
+ try:
456
+ writer.add_string("NO")
457
+ finally:
458
+ writer.string_sanitization_mode = old_string_sanitization_mode
433
459
 
434
460
  @staticmethod
435
461
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket.ReplyCodeDataLoggedIn":
@@ -481,7 +507,11 @@ class LoginReplyServerPacket(Packet):
481
507
  writer (EoWriter): The writer that the data will be serialized to.
482
508
  data (LoginReplyServerPacket.ReplyCodeDataBusy): The data to serialize.
483
509
  """
484
- writer.add_string("NO")
510
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
511
+ try:
512
+ writer.add_string("NO")
513
+ finally:
514
+ writer.string_sanitization_mode = old_string_sanitization_mode
485
515
 
486
516
  @staticmethod
487
517
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket.ReplyCodeDataBusy":
@@ -83,15 +83,19 @@ class MapDrainDamageOther:
83
83
  writer (EoWriter): The writer that the data will be serialized to.
84
84
  data (MapDrainDamageOther): The data to serialize.
85
85
  """
86
- if data._player_id is None:
87
- raise SerializationError("player_id must be provided.")
88
- writer.add_short(data._player_id)
89
- if data._hp_percentage is None:
90
- raise SerializationError("hp_percentage must be provided.")
91
- writer.add_char(data._hp_percentage)
92
- if data._damage is None:
93
- raise SerializationError("damage must be provided.")
94
- writer.add_short(data._damage)
86
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
87
+ try:
88
+ if data._player_id is None:
89
+ raise SerializationError("player_id must be provided.")
90
+ writer.add_short(data._player_id)
91
+ if data._hp_percentage is None:
92
+ raise SerializationError("hp_percentage must be provided.")
93
+ writer.add_char(data._hp_percentage)
94
+ if data._damage is None:
95
+ raise SerializationError("damage must be provided.")
96
+ writer.add_short(data._damage)
97
+ finally:
98
+ writer.string_sanitization_mode = old_string_sanitization_mode
95
99
 
96
100
  @staticmethod
97
101
  def deserialize(reader: EoReader) -> "MapDrainDamageOther":
@@ -41,9 +41,13 @@ class MapFile:
41
41
  writer (EoWriter): The writer that the data will be serialized to.
42
42
  data (MapFile): The data to serialize.
43
43
  """
44
- if data._content is None:
45
- raise SerializationError("content must be provided.")
46
- writer.add_bytes(data._content)
44
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
45
+ try:
46
+ if data._content is None:
47
+ raise SerializationError("content must be provided.")
48
+ writer.add_bytes(data._content)
49
+ finally:
50
+ writer.string_sanitization_mode = old_string_sanitization_mode
47
51
 
48
52
  @staticmethod
49
53
  def deserialize(reader: EoReader) -> "MapFile":
@@ -11,6 +11,9 @@ from .....data.eo_writer import EoWriter
11
11
  from .....data.eo_reader import EoReader
12
12
 
13
13
  class MarriageOpenServerPacket(Packet):
14
+ """
15
+ Response from talking to a law NPC
16
+ """
14
17
  _byte_size: int = 0
15
18
  _session_id: int = None # type: ignore [assignment]
16
19
 
@@ -78,9 +81,13 @@ class MarriageOpenServerPacket(Packet):
78
81
  writer (EoWriter): The writer that the data will be serialized to.
79
82
  data (MarriageOpenServerPacket): The data to serialize.
80
83
  """
81
- if data._session_id is None:
82
- raise SerializationError("session_id must be provided.")
83
- writer.add_three(data._session_id)
84
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
85
+ try:
86
+ if data._session_id is None:
87
+ raise SerializationError("session_id must be provided.")
88
+ writer.add_three(data._session_id)
89
+ finally:
90
+ writer.string_sanitization_mode = old_string_sanitization_mode
84
91
 
85
92
  @staticmethod
86
93
  def deserialize(reader: EoReader) -> "MarriageOpenServerPacket":