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
@@ -13,6 +13,9 @@ from .....data.eo_writer import EoWriter
13
13
  from .....data.eo_reader import EoReader
14
14
 
15
15
  class MarriageReplyServerPacket(Packet):
16
+ """
17
+ Reply to client Marriage-family packets
18
+ """
16
19
  _byte_size: int = 0
17
20
  _reply_code: MarriageReply = None # type: ignore [assignment]
18
21
  _reply_code_data: 'MarriageReplyServerPacket.ReplyCodeData' = None
@@ -84,13 +87,17 @@ class MarriageReplyServerPacket(Packet):
84
87
  writer (EoWriter): The writer that the data will be serialized to.
85
88
  data (MarriageReplyServerPacket): The data to serialize.
86
89
  """
87
- if data._reply_code is None:
88
- raise SerializationError("reply_code must be provided.")
89
- writer.add_short(int(data._reply_code))
90
- if data._reply_code == MarriageReply.Success:
91
- if not isinstance(data._reply_code_data, MarriageReplyServerPacket.ReplyCodeDataSuccess):
92
- raise SerializationError("Expected reply_code_data to be type MarriageReplyServerPacket.ReplyCodeDataSuccess for reply_code " + MarriageReply(data._reply_code).name + ".")
93
- MarriageReplyServerPacket.ReplyCodeDataSuccess.serialize(writer, data._reply_code_data)
90
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
91
+ try:
92
+ if data._reply_code is None:
93
+ raise SerializationError("reply_code must be provided.")
94
+ writer.add_short(int(data._reply_code))
95
+ if data._reply_code == MarriageReply.Success:
96
+ if not isinstance(data._reply_code_data, MarriageReplyServerPacket.ReplyCodeDataSuccess):
97
+ raise SerializationError("Expected reply_code_data to be type MarriageReplyServerPacket.ReplyCodeDataSuccess for reply_code " + MarriageReply(data._reply_code).name + ".")
98
+ MarriageReplyServerPacket.ReplyCodeDataSuccess.serialize(writer, data._reply_code_data)
99
+ finally:
100
+ writer.string_sanitization_mode = old_string_sanitization_mode
94
101
 
95
102
  @staticmethod
96
103
  def deserialize(reader: EoReader) -> "MarriageReplyServerPacket":
@@ -119,10 +126,9 @@ class MarriageReplyServerPacket(Packet):
119
126
  return f"MarriageReplyServerPacket(byte_size={repr(self._byte_size)}, reply_code={repr(self._reply_code)}, reply_code_data={repr(self._reply_code_data)})"
120
127
 
121
128
  ReplyCodeData = Union['MarriageReplyServerPacket.ReplyCodeDataSuccess', None]
122
- ReplyCodeData.__doc__ = \
123
- """
124
- Data associated with different values of the `reply_code` field.
125
- """
129
+ """
130
+ Data associated with different values of the `reply_code` field.
131
+ """
126
132
 
127
133
  class ReplyCodeDataSuccess:
128
134
  """
@@ -166,9 +172,13 @@ class MarriageReplyServerPacket(Packet):
166
172
  writer (EoWriter): The writer that the data will be serialized to.
167
173
  data (MarriageReplyServerPacket.ReplyCodeDataSuccess): The data to serialize.
168
174
  """
169
- if data._gold_amount is None:
170
- raise SerializationError("gold_amount must be provided.")
171
- writer.add_int(data._gold_amount)
175
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
176
+ try:
177
+ if data._gold_amount is None:
178
+ raise SerializationError("gold_amount must be provided.")
179
+ writer.add_int(data._gold_amount)
180
+ finally:
181
+ writer.string_sanitization_mode = old_string_sanitization_mode
172
182
 
173
183
  @staticmethod
174
184
  def deserialize(reader: EoReader) -> "MarriageReplyServerPacket.ReplyCodeDataSuccess":
@@ -12,6 +12,9 @@ from .....data.eo_writer import EoWriter
12
12
  from .....data.eo_reader import EoReader
13
13
 
14
14
  class MessageAcceptServerPacket(Packet):
15
+ """
16
+ Large message box
17
+ """
15
18
  _byte_size: int = 0
16
19
  _messages: list[str] = None # type: ignore [assignment]
17
20
 
@@ -79,14 +82,19 @@ class MessageAcceptServerPacket(Packet):
79
82
  writer (EoWriter): The writer that the data will be serialized to.
80
83
  data (MessageAcceptServerPacket): The data to serialize.
81
84
  """
82
- if data._messages is None:
83
- raise SerializationError("messages must be provided.")
84
- if len(data._messages) != 4:
85
- raise SerializationError(f"Expected length of messages to be exactly 4, got {len(data._messages)}.")
86
- for i in range(4):
87
- if i > 0:
85
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
86
+ try:
87
+ writer.string_sanitization_mode = True
88
+ if data._messages is None:
89
+ raise SerializationError("messages must be provided.")
90
+ if len(data._messages) != 4:
91
+ raise SerializationError(f"Expected length of messages to be exactly 4, got {len(data._messages)}.")
92
+ for i in range(4):
93
+ writer.add_string(data._messages[i])
88
94
  writer.add_byte(0xFF)
89
- writer.add_string(data._messages[i])
95
+ writer.string_sanitization_mode = False
96
+ finally:
97
+ writer.string_sanitization_mode = old_string_sanitization_mode
90
98
 
91
99
  @staticmethod
92
100
  def deserialize(reader: EoReader) -> "MessageAcceptServerPacket":
@@ -107,8 +115,7 @@ class MessageAcceptServerPacket(Packet):
107
115
  data._messages = []
108
116
  for i in range(4):
109
117
  data._messages.append(reader.get_string())
110
- if i + 1 < 4:
111
- reader.next_chunk()
118
+ reader.next_chunk()
112
119
  reader.chunked_reading_mode = False
113
120
  data._byte_size = reader.position - reader_start_position
114
121
  return data
@@ -10,6 +10,9 @@ from .....data.eo_writer import EoWriter
10
10
  from .....data.eo_reader import EoReader
11
11
 
12
12
  class MessageCloseServerPacket(Packet):
13
+ """
14
+ Server is rebooting
15
+ """
13
16
  _byte_size: int = 0
14
17
 
15
18
  @property
@@ -60,9 +63,11 @@ class MessageCloseServerPacket(Packet):
60
63
  writer (EoWriter): The writer that the data will be serialized to.
61
64
  data (MessageCloseServerPacket): 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_string("r")
69
+ finally:
70
+ writer.string_sanitization_mode = old_string_sanitization_mode
66
71
 
67
72
  @staticmethod
68
73
  def deserialize(reader: EoReader) -> "MessageCloseServerPacket":
@@ -79,8 +84,7 @@ class MessageCloseServerPacket(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_string()
87
+ reader.get_string()
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 MessageOpenServerPacket(Packet):
14
+ """
15
+ Status bar message
16
+ """
14
17
  _byte_size: int = 0
15
18
  _message: str = None # type: ignore [assignment]
16
19
 
@@ -70,9 +73,13 @@ class MessageOpenServerPacket(Packet):
70
73
  writer (EoWriter): The writer that the data will be serialized to.
71
74
  data (MessageOpenServerPacket): The data to serialize.
72
75
  """
73
- if data._message is None:
74
- raise SerializationError("message must be provided.")
75
- writer.add_string(data._message)
76
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
77
+ try:
78
+ if data._message is None:
79
+ raise SerializationError("message must be provided.")
80
+ writer.add_string(data._message)
81
+ finally:
82
+ writer.string_sanitization_mode = old_string_sanitization_mode
76
83
 
77
84
  @staticmethod
78
85
  def deserialize(reader: EoReader) -> "MessageOpenServerPacket":
@@ -10,6 +10,9 @@ from .....data.eo_writer import EoWriter
10
10
  from .....data.eo_reader import EoReader
11
11
 
12
12
  class MessagePongServerPacket(Packet):
13
+ """
14
+ #ping command reply
15
+ """
13
16
  _byte_size: int = 0
14
17
 
15
18
  @property
@@ -60,9 +63,11 @@ class MessagePongServerPacket(Packet):
60
63
  writer (EoWriter): The writer that the data will be serialized to.
61
64
  data (MessagePongServerPacket): 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(2)
69
+ finally:
70
+ writer.string_sanitization_mode = old_string_sanitization_mode
66
71
 
67
72
  @staticmethod
68
73
  def deserialize(reader: EoReader) -> "MessagePongServerPacket":
@@ -79,8 +84,7 @@ class MessagePongServerPacket(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 MusicPlayerServerPacket(Packet):
14
+ """
15
+ Sound effect
16
+ """
14
17
  _byte_size: int = 0
15
18
  _sound_id: int = None # type: ignore [assignment]
16
19
 
@@ -78,9 +81,13 @@ class MusicPlayerServerPacket(Packet):
78
81
  writer (EoWriter): The writer that the data will be serialized to.
79
82
  data (MusicPlayerServerPacket): The data to serialize.
80
83
  """
81
- if data._sound_id is None:
82
- raise SerializationError("sound_id must be provided.")
83
- writer.add_char(data._sound_id)
84
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
85
+ try:
86
+ if data._sound_id is None:
87
+ raise SerializationError("sound_id must be provided.")
88
+ writer.add_char(data._sound_id)
89
+ finally:
90
+ writer.string_sanitization_mode = old_string_sanitization_mode
84
91
 
85
92
  @staticmethod
86
93
  def deserialize(reader: EoReader) -> "MusicPlayerServerPacket":
@@ -73,27 +73,32 @@ class NearbyInfo:
73
73
  writer (EoWriter): The writer that the data will be serialized to.
74
74
  data (NearbyInfo): The data to serialize.
75
75
  """
76
- if data._characters_count is None:
77
- raise SerializationError("characters_count must be provided.")
78
- writer.add_char(data._characters_count)
79
- writer.add_byte(0xFF)
80
- if data._characters is None:
81
- raise SerializationError("characters must be provided.")
82
- if len(data._characters) > 252:
83
- raise SerializationError(f"Expected length of characters to be 252 or less, got {len(data._characters)}.")
84
- for i in range(data._characters_count):
85
- if i > 0:
76
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
77
+ try:
78
+ if data._characters_count is None:
79
+ raise SerializationError("characters_count must be provided.")
80
+ writer.add_char(data._characters_count)
81
+ writer.string_sanitization_mode = True
82
+ writer.add_byte(0xFF)
83
+ if data._characters is None:
84
+ raise SerializationError("characters must be provided.")
85
+ if len(data._characters) > 252:
86
+ raise SerializationError(f"Expected length of characters to be 252 or less, got {len(data._characters)}.")
87
+ for i in range(data._characters_count):
88
+ CharacterMapInfo.serialize(writer, data._characters[i])
86
89
  writer.add_byte(0xFF)
87
- CharacterMapInfo.serialize(writer, data._characters[i])
88
- if data._npcs is None:
89
- raise SerializationError("npcs must be provided.")
90
- for i in range(len(data._npcs)):
91
- NpcMapInfo.serialize(writer, data._npcs[i])
92
- writer.add_byte(0xFF)
93
- if data._items is None:
94
- raise SerializationError("items must be provided.")
95
- for i in range(len(data._items)):
96
- ItemMapInfo.serialize(writer, data._items[i])
90
+ if data._npcs is None:
91
+ raise SerializationError("npcs must be provided.")
92
+ for i in range(len(data._npcs)):
93
+ NpcMapInfo.serialize(writer, data._npcs[i])
94
+ writer.add_byte(0xFF)
95
+ if data._items is None:
96
+ raise SerializationError("items must be provided.")
97
+ for i in range(len(data._items)):
98
+ ItemMapInfo.serialize(writer, data._items[i])
99
+ writer.string_sanitization_mode = False
100
+ finally:
101
+ writer.string_sanitization_mode = old_string_sanitization_mode
97
102
 
98
103
  @staticmethod
99
104
  def deserialize(reader: EoReader) -> "NearbyInfo":
@@ -116,8 +121,7 @@ class NearbyInfo:
116
121
  data._characters = []
117
122
  for i in range(data._characters_count):
118
123
  data._characters.append(CharacterMapInfo.deserialize(reader))
119
- if i + 1 < data._characters_count:
120
- reader.next_chunk()
124
+ reader.next_chunk()
121
125
  npcs_length = int(reader.remaining / 6)
122
126
  data._npcs = []
123
127
  for i in range(npcs_length):
@@ -13,6 +13,9 @@ from .....data.eo_writer import EoWriter
13
13
  from .....data.eo_reader import EoReader
14
14
 
15
15
  class NpcAcceptServerPacket(Packet):
16
+ """
17
+ Nearby NPC killed by player and you leveled up
18
+ """
16
19
  _byte_size: int = 0
17
20
  _npc_killed_data: NpcKilledData = None # type: ignore [assignment]
18
21
  _experience: int = None # type: ignore [assignment]
@@ -98,15 +101,19 @@ class NpcAcceptServerPacket(Packet):
98
101
  writer (EoWriter): The writer that the data will be serialized to.
99
102
  data (NpcAcceptServerPacket): The data to serialize.
100
103
  """
101
- if data._npc_killed_data is None:
102
- raise SerializationError("npc_killed_data must be provided.")
103
- NpcKilledData.serialize(writer, data._npc_killed_data)
104
- if data._experience is None:
105
- raise SerializationError("experience must be provided.")
106
- writer.add_int(data._experience)
107
- if data._level_up is None:
108
- raise SerializationError("level_up must be provided.")
109
- LevelUpStats.serialize(writer, data._level_up)
104
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
105
+ try:
106
+ if data._npc_killed_data is None:
107
+ raise SerializationError("npc_killed_data must be provided.")
108
+ NpcKilledData.serialize(writer, data._npc_killed_data)
109
+ if data._experience is None:
110
+ raise SerializationError("experience must be provided.")
111
+ writer.add_int(data._experience)
112
+ if data._level_up is None:
113
+ raise SerializationError("level_up must be provided.")
114
+ LevelUpStats.serialize(writer, data._level_up)
115
+ finally:
116
+ writer.string_sanitization_mode = old_string_sanitization_mode
110
117
 
111
118
  @staticmethod
112
119
  def deserialize(reader: EoReader) -> "NpcAcceptServerPacket":
@@ -13,6 +13,9 @@ from .....data.eo_writer import EoWriter
13
13
  from .....data.eo_reader import EoReader
14
14
 
15
15
  class NpcAgreeServerPacket(Packet):
16
+ """
17
+ Reply to request for information about nearby NPCs
18
+ """
16
19
  _byte_size: int = 0
17
20
  _npcs_count: int = None # type: ignore [assignment]
18
21
  _npcs: list[NpcMapInfo] = None # type: ignore [assignment]
@@ -31,7 +34,7 @@ class NpcAgreeServerPacket(Packet):
31
34
  def npcs(self) -> list[NpcMapInfo]:
32
35
  """
33
36
  Note:
34
- - Length must be 64008 or less.
37
+ - Length must be 252 or less.
35
38
  """
36
39
  return self._npcs
37
40
 
@@ -39,7 +42,7 @@ class NpcAgreeServerPacket(Packet):
39
42
  def npcs(self, npcs: list[NpcMapInfo]) -> None:
40
43
  """
41
44
  Note:
42
- - Length must be 64008 or less.
45
+ - Length must be 252 or less.
43
46
  """
44
47
  self._npcs = npcs
45
48
  self._npcs_count = len(self._npcs)
@@ -82,15 +85,19 @@ class NpcAgreeServerPacket(Packet):
82
85
  writer (EoWriter): The writer that the data will be serialized to.
83
86
  data (NpcAgreeServerPacket): The data to serialize.
84
87
  """
85
- if data._npcs_count is None:
86
- raise SerializationError("npcs_count must be provided.")
87
- writer.add_short(data._npcs_count)
88
- if data._npcs is None:
89
- raise SerializationError("npcs must be provided.")
90
- if len(data._npcs) > 64008:
91
- raise SerializationError(f"Expected length of npcs to be 64008 or less, got {len(data._npcs)}.")
92
- for i in range(data._npcs_count):
93
- NpcMapInfo.serialize(writer, data._npcs[i])
88
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
89
+ try:
90
+ if data._npcs_count is None:
91
+ raise SerializationError("npcs_count must be provided.")
92
+ writer.add_char(data._npcs_count)
93
+ if data._npcs is None:
94
+ raise SerializationError("npcs must be provided.")
95
+ if len(data._npcs) > 252:
96
+ raise SerializationError(f"Expected length of npcs to be 252 or less, got {len(data._npcs)}.")
97
+ for i in range(data._npcs_count):
98
+ NpcMapInfo.serialize(writer, data._npcs[i])
99
+ finally:
100
+ writer.string_sanitization_mode = old_string_sanitization_mode
94
101
 
95
102
  @staticmethod
96
103
  def deserialize(reader: EoReader) -> "NpcAgreeServerPacket":
@@ -107,7 +114,7 @@ class NpcAgreeServerPacket(Packet):
107
114
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
108
115
  try:
109
116
  reader_start_position: int = reader.position
110
- data._npcs_count = reader.get_short()
117
+ data._npcs_count = reader.get_char()
111
118
  data._npcs = []
112
119
  for i in range(data._npcs_count):
113
120
  data._npcs.append(NpcMapInfo.deserialize(reader))
@@ -11,6 +11,9 @@ from .....data.eo_writer import EoWriter
11
11
  from .....data.eo_reader import EoReader
12
12
 
13
13
  class NpcDialogServerPacket(Packet):
14
+ """
15
+ NPC chat message
16
+ """
14
17
  _byte_size: int = 0
15
18
  _npc_index: int = None # type: ignore [assignment]
16
19
  _message: str = None # type: ignore [assignment]
@@ -87,12 +90,16 @@ class NpcDialogServerPacket(Packet):
87
90
  writer (EoWriter): The writer that the data will be serialized to.
88
91
  data (NpcDialogServerPacket): The data to serialize.
89
92
  """
90
- if data._npc_index is None:
91
- raise SerializationError("npc_index must be provided.")
92
- writer.add_short(data._npc_index)
93
- if data._message is None:
94
- raise SerializationError("message must be provided.")
95
- writer.add_string(data._message)
93
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
94
+ try:
95
+ if data._npc_index is None:
96
+ raise SerializationError("npc_index must be provided.")
97
+ writer.add_short(data._npc_index)
98
+ if data._message is None:
99
+ raise SerializationError("message must be provided.")
100
+ writer.add_string(data._message)
101
+ finally:
102
+ writer.string_sanitization_mode = old_string_sanitization_mode
96
103
 
97
104
  @staticmethod
98
105
  def deserialize(reader: EoReader) -> "NpcDialogServerPacket":
@@ -11,6 +11,9 @@ from .....data.eo_writer import EoWriter
11
11
  from .....data.eo_reader import EoReader
12
12
 
13
13
  class NpcJunkServerPacket(Packet):
14
+ """
15
+ Clearing all boss children
16
+ """
14
17
  _byte_size: int = 0
15
18
  _npc_id: int = None # type: ignore [assignment]
16
19
 
@@ -78,9 +81,13 @@ class NpcJunkServerPacket(Packet):
78
81
  writer (EoWriter): The writer that the data will be serialized to.
79
82
  data (NpcJunkServerPacket): The data to serialize.
80
83
  """
81
- if data._npc_id is None:
82
- raise SerializationError("npc_id must be provided.")
83
- writer.add_short(data._npc_id)
84
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
85
+ try:
86
+ if data._npc_id is None:
87
+ raise SerializationError("npc_id must be provided.")
88
+ writer.add_short(data._npc_id)
89
+ finally:
90
+ writer.string_sanitization_mode = old_string_sanitization_mode
84
91
 
85
92
  @staticmethod
86
93
  def deserialize(reader: EoReader) -> "NpcJunkServerPacket":
@@ -154,30 +154,34 @@ class NpcKilledData:
154
154
  writer (EoWriter): The writer that the data will be serialized to.
155
155
  data (NpcKilledData): The data to serialize.
156
156
  """
157
- if data._killer_id is None:
158
- raise SerializationError("killer_id must be provided.")
159
- writer.add_short(data._killer_id)
160
- if data._killer_direction is None:
161
- raise SerializationError("killer_direction must be provided.")
162
- writer.add_char(int(data._killer_direction))
163
- if data._npc_index is None:
164
- raise SerializationError("npc_index must be provided.")
165
- writer.add_short(data._npc_index)
166
- if data._drop_index is None:
167
- raise SerializationError("drop_index must be provided.")
168
- writer.add_short(data._drop_index)
169
- if data._drop_id is None:
170
- raise SerializationError("drop_id must be provided.")
171
- writer.add_short(data._drop_id)
172
- if data._drop_coords is None:
173
- raise SerializationError("drop_coords must be provided.")
174
- Coords.serialize(writer, data._drop_coords)
175
- if data._drop_amount is None:
176
- raise SerializationError("drop_amount must be provided.")
177
- writer.add_int(data._drop_amount)
178
- if data._damage is None:
179
- raise SerializationError("damage must be provided.")
180
- writer.add_three(data._damage)
157
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
158
+ try:
159
+ if data._killer_id is None:
160
+ raise SerializationError("killer_id must be provided.")
161
+ writer.add_short(data._killer_id)
162
+ if data._killer_direction is None:
163
+ raise SerializationError("killer_direction must be provided.")
164
+ writer.add_char(int(data._killer_direction))
165
+ if data._npc_index is None:
166
+ raise SerializationError("npc_index must be provided.")
167
+ writer.add_short(data._npc_index)
168
+ if data._drop_index is None:
169
+ raise SerializationError("drop_index must be provided.")
170
+ writer.add_short(data._drop_index)
171
+ if data._drop_id is None:
172
+ raise SerializationError("drop_id must be provided.")
173
+ writer.add_short(data._drop_id)
174
+ if data._drop_coords is None:
175
+ raise SerializationError("drop_coords must be provided.")
176
+ Coords.serialize(writer, data._drop_coords)
177
+ if data._drop_amount is None:
178
+ raise SerializationError("drop_amount must be provided.")
179
+ writer.add_int(data._drop_amount)
180
+ if data._damage is None:
181
+ raise SerializationError("damage must be provided.")
182
+ writer.add_three(data._damage)
183
+ finally:
184
+ writer.string_sanitization_mode = old_string_sanitization_mode
181
185
 
182
186
  @staticmethod
183
187
  def deserialize(reader: EoReader) -> "NpcKilledData":
@@ -86,18 +86,22 @@ class NpcMapInfo:
86
86
  writer (EoWriter): The writer that the data will be serialized to.
87
87
  data (NpcMapInfo): The data to serialize.
88
88
  """
89
- if data._index is None:
90
- raise SerializationError("index must be provided.")
91
- writer.add_char(data._index)
92
- if data._id is None:
93
- raise SerializationError("id must be provided.")
94
- writer.add_short(data._id)
95
- if data._coords is None:
96
- raise SerializationError("coords must be provided.")
97
- Coords.serialize(writer, data._coords)
98
- if data._direction is None:
99
- raise SerializationError("direction must be provided.")
100
- writer.add_char(int(data._direction))
89
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
90
+ try:
91
+ if data._index is None:
92
+ raise SerializationError("index must be provided.")
93
+ writer.add_char(data._index)
94
+ if data._id is None:
95
+ raise SerializationError("id must be provided.")
96
+ writer.add_short(data._id)
97
+ if data._coords is None:
98
+ raise SerializationError("coords must be provided.")
99
+ Coords.serialize(writer, data._coords)
100
+ if data._direction is None:
101
+ raise SerializationError("direction must be provided.")
102
+ writer.add_char(int(data._direction))
103
+ finally:
104
+ writer.string_sanitization_mode = old_string_sanitization_mode
101
105
 
102
106
  @staticmethod
103
107
  def deserialize(reader: EoReader) -> "NpcMapInfo":
@@ -17,6 +17,9 @@ from .....data.eo_writer import EoWriter
17
17
  from .....data.eo_reader import EoReader
18
18
 
19
19
  class NpcPlayerServerPacket(Packet):
20
+ """
21
+ Main NPC update message
22
+ """
20
23
  _byte_size: int = 0
21
24
  _positions: list[NpcUpdatePosition] = None # type: ignore [assignment]
22
25
  _attacks: list[NpcUpdateAttack] = None # type: ignore [assignment]
@@ -128,27 +131,33 @@ class NpcPlayerServerPacket(Packet):
128
131
  writer (EoWriter): The writer that the data will be serialized to.
129
132
  data (NpcPlayerServerPacket): The data to serialize.
130
133
  """
131
- if data._positions is None:
132
- raise SerializationError("positions must be provided.")
133
- for i in range(len(data._positions)):
134
- NpcUpdatePosition.serialize(writer, data._positions[i])
135
- writer.add_byte(0xFF)
136
- if data._attacks is None:
137
- raise SerializationError("attacks must be provided.")
138
- for i in range(len(data._attacks)):
139
- NpcUpdateAttack.serialize(writer, data._attacks[i])
140
- writer.add_byte(0xFF)
141
- if data._chats is None:
142
- raise SerializationError("chats must be provided.")
143
- for i in range(len(data._chats)):
144
- NpcUpdateChat.serialize(writer, data._chats[i])
145
- writer.add_byte(0xFF)
146
- reached_missing_optional = data._hp is None
147
- if not reached_missing_optional:
148
- writer.add_short(cast(int, data._hp))
149
- reached_missing_optional = reached_missing_optional or data._tp is None
150
- if not reached_missing_optional:
151
- writer.add_short(cast(int, data._tp))
134
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
135
+ try:
136
+ writer.string_sanitization_mode = True
137
+ if data._positions is None:
138
+ raise SerializationError("positions must be provided.")
139
+ for i in range(len(data._positions)):
140
+ NpcUpdatePosition.serialize(writer, data._positions[i])
141
+ writer.add_byte(0xFF)
142
+ if data._attacks is None:
143
+ raise SerializationError("attacks must be provided.")
144
+ for i in range(len(data._attacks)):
145
+ NpcUpdateAttack.serialize(writer, data._attacks[i])
146
+ writer.add_byte(0xFF)
147
+ if data._chats is None:
148
+ raise SerializationError("chats must be provided.")
149
+ for i in range(len(data._chats)):
150
+ NpcUpdateChat.serialize(writer, data._chats[i])
151
+ writer.add_byte(0xFF)
152
+ reached_missing_optional = data._hp is None
153
+ if not reached_missing_optional:
154
+ writer.add_short(cast(int, data._hp))
155
+ reached_missing_optional = reached_missing_optional or data._tp is None
156
+ if not reached_missing_optional:
157
+ writer.add_short(cast(int, data._tp))
158
+ writer.string_sanitization_mode = False
159
+ finally:
160
+ writer.string_sanitization_mode = old_string_sanitization_mode
152
161
 
153
162
  @staticmethod
154
163
  def deserialize(reader: EoReader) -> "NpcPlayerServerPacket":