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
@@ -23,6 +23,9 @@ from .....data.eo_writer import EoWriter
23
23
  from .....data.eo_reader import EoReader
24
24
 
25
25
  class WelcomeReplyServerPacket(Packet):
26
+ """
27
+ Reply to selecting a character / entering game
28
+ """
26
29
  _byte_size: int = 0
27
30
  _welcome_code: WelcomeCode = None # type: ignore [assignment]
28
31
  _welcome_code_data: 'WelcomeReplyServerPacket.WelcomeCodeData' = None
@@ -94,17 +97,23 @@ class WelcomeReplyServerPacket(Packet):
94
97
  writer (EoWriter): The writer that the data will be serialized to.
95
98
  data (WelcomeReplyServerPacket): The data to serialize.
96
99
  """
97
- if data._welcome_code is None:
98
- raise SerializationError("welcome_code must be provided.")
99
- writer.add_short(int(data._welcome_code))
100
- if data._welcome_code == WelcomeCode.SelectCharacter:
101
- if not isinstance(data._welcome_code_data, WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter):
102
- raise SerializationError("Expected welcome_code_data to be type WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter for welcome_code " + WelcomeCode(data._welcome_code).name + ".")
103
- WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter.serialize(writer, data._welcome_code_data)
104
- elif data._welcome_code == WelcomeCode.EnterGame:
105
- if not isinstance(data._welcome_code_data, WelcomeReplyServerPacket.WelcomeCodeDataEnterGame):
106
- raise SerializationError("Expected welcome_code_data to be type WelcomeReplyServerPacket.WelcomeCodeDataEnterGame for welcome_code " + WelcomeCode(data._welcome_code).name + ".")
107
- WelcomeReplyServerPacket.WelcomeCodeDataEnterGame.serialize(writer, data._welcome_code_data)
100
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
101
+ try:
102
+ if data._welcome_code is None:
103
+ raise SerializationError("welcome_code must be provided.")
104
+ writer.add_short(int(data._welcome_code))
105
+ writer.string_sanitization_mode = True
106
+ if data._welcome_code == WelcomeCode.SelectCharacter:
107
+ if not isinstance(data._welcome_code_data, WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter):
108
+ raise SerializationError("Expected welcome_code_data to be type WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter for welcome_code " + WelcomeCode(data._welcome_code).name + ".")
109
+ WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter.serialize(writer, data._welcome_code_data)
110
+ elif data._welcome_code == WelcomeCode.EnterGame:
111
+ if not isinstance(data._welcome_code_data, WelcomeReplyServerPacket.WelcomeCodeDataEnterGame):
112
+ raise SerializationError("Expected welcome_code_data to be type WelcomeReplyServerPacket.WelcomeCodeDataEnterGame for welcome_code " + WelcomeCode(data._welcome_code).name + ".")
113
+ WelcomeReplyServerPacket.WelcomeCodeDataEnterGame.serialize(writer, data._welcome_code_data)
114
+ writer.string_sanitization_mode = False
115
+ finally:
116
+ writer.string_sanitization_mode = old_string_sanitization_mode
108
117
 
109
118
  @staticmethod
110
119
  def deserialize(reader: EoReader) -> "WelcomeReplyServerPacket":
@@ -137,10 +146,9 @@ class WelcomeReplyServerPacket(Packet):
137
146
  return f"WelcomeReplyServerPacket(byte_size={repr(self._byte_size)}, welcome_code={repr(self._welcome_code)}, welcome_code_data={repr(self._welcome_code_data)})"
138
147
 
139
148
  WelcomeCodeData = Union['WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter', 'WelcomeReplyServerPacket.WelcomeCodeDataEnterGame', None]
140
- WelcomeCodeData.__doc__ = \
141
- """
142
- Data associated with different values of the `welcome_code` field.
143
- """
149
+ """
150
+ Data associated with different values of the `welcome_code` field.
151
+ """
144
152
 
145
153
  class WelcomeCodeDataSelectCharacter:
146
154
  """
@@ -581,112 +589,116 @@ class WelcomeReplyServerPacket(Packet):
581
589
  writer (EoWriter): The writer that the data will be serialized to.
582
590
  data (WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter): The data to serialize.
583
591
  """
584
- if data._session_id is None:
585
- raise SerializationError("session_id must be provided.")
586
- writer.add_short(data._session_id)
587
- if data._character_id is None:
588
- raise SerializationError("character_id must be provided.")
589
- writer.add_int(data._character_id)
590
- if data._map_id is None:
591
- raise SerializationError("map_id must be provided.")
592
- writer.add_short(data._map_id)
593
- if data._map_rid is None:
594
- raise SerializationError("map_rid must be provided.")
595
- if len(data._map_rid) != 2:
596
- raise SerializationError(f"Expected length of map_rid to be exactly 2, got {len(data._map_rid)}.")
597
- for i in range(2):
598
- writer.add_short(data._map_rid[i])
599
- if data._map_file_size is None:
600
- raise SerializationError("map_file_size must be provided.")
601
- writer.add_three(data._map_file_size)
602
- if data._eif_rid is None:
603
- raise SerializationError("eif_rid must be provided.")
604
- if len(data._eif_rid) != 2:
605
- raise SerializationError(f"Expected length of eif_rid to be exactly 2, got {len(data._eif_rid)}.")
606
- for i in range(2):
607
- writer.add_short(data._eif_rid[i])
608
- if data._eif_length is None:
609
- raise SerializationError("eif_length must be provided.")
610
- writer.add_short(data._eif_length)
611
- if data._enf_rid is None:
612
- raise SerializationError("enf_rid must be provided.")
613
- if len(data._enf_rid) != 2:
614
- raise SerializationError(f"Expected length of enf_rid to be exactly 2, got {len(data._enf_rid)}.")
615
- for i in range(2):
616
- writer.add_short(data._enf_rid[i])
617
- if data._enf_length is None:
618
- raise SerializationError("enf_length must be provided.")
619
- writer.add_short(data._enf_length)
620
- if data._esf_rid is None:
621
- raise SerializationError("esf_rid must be provided.")
622
- if len(data._esf_rid) != 2:
623
- raise SerializationError(f"Expected length of esf_rid to be exactly 2, got {len(data._esf_rid)}.")
624
- for i in range(2):
625
- writer.add_short(data._esf_rid[i])
626
- if data._esf_length is None:
627
- raise SerializationError("esf_length must be provided.")
628
- writer.add_short(data._esf_length)
629
- if data._ecf_rid is None:
630
- raise SerializationError("ecf_rid must be provided.")
631
- if len(data._ecf_rid) != 2:
632
- raise SerializationError(f"Expected length of ecf_rid to be exactly 2, got {len(data._ecf_rid)}.")
633
- for i in range(2):
634
- writer.add_short(data._ecf_rid[i])
635
- if data._ecf_length is None:
636
- raise SerializationError("ecf_length must be provided.")
637
- writer.add_short(data._ecf_length)
638
- if data._name is None:
639
- raise SerializationError("name must be provided.")
640
- writer.add_string(data._name)
641
- writer.add_byte(0xFF)
642
- if data._title is None:
643
- raise SerializationError("title must be provided.")
644
- writer.add_string(data._title)
645
- writer.add_byte(0xFF)
646
- if data._guild_name is None:
647
- raise SerializationError("guild_name must be provided.")
648
- writer.add_string(data._guild_name)
649
- writer.add_byte(0xFF)
650
- if data._guild_rank_name is None:
651
- raise SerializationError("guild_rank_name must be provided.")
652
- writer.add_string(data._guild_rank_name)
653
- writer.add_byte(0xFF)
654
- if data._class_id is None:
655
- raise SerializationError("class_id must be provided.")
656
- writer.add_char(data._class_id)
657
- if data._guild_tag is None:
658
- raise SerializationError("guild_tag must be provided.")
659
- if len(data._guild_tag) != 3:
660
- raise SerializationError(f"Expected length of guild_tag to be exactly 3, got {len(data._guild_tag)}.")
661
- writer.add_fixed_string(data._guild_tag, 3, False)
662
- if data._admin is None:
663
- raise SerializationError("admin must be provided.")
664
- writer.add_char(int(data._admin))
665
- if data._level is None:
666
- raise SerializationError("level must be provided.")
667
- writer.add_char(data._level)
668
- if data._experience is None:
669
- raise SerializationError("experience must be provided.")
670
- writer.add_int(data._experience)
671
- if data._usage is None:
672
- raise SerializationError("usage must be provided.")
673
- writer.add_int(data._usage)
674
- if data._stats is None:
675
- raise SerializationError("stats must be provided.")
676
- CharacterStatsWelcome.serialize(writer, data._stats)
677
- if data._equipment is None:
678
- raise SerializationError("equipment must be provided.")
679
- EquipmentWelcome.serialize(writer, data._equipment)
680
- if data._guild_rank is None:
681
- raise SerializationError("guild_rank must be provided.")
682
- writer.add_char(data._guild_rank)
683
- if data._settings is None:
684
- raise SerializationError("settings must be provided.")
685
- ServerSettings.serialize(writer, data._settings)
686
- if data._login_message_code is None:
687
- raise SerializationError("login_message_code must be provided.")
688
- writer.add_char(int(data._login_message_code))
689
- writer.add_byte(0xFF)
592
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
593
+ try:
594
+ if data._session_id is None:
595
+ raise SerializationError("session_id must be provided.")
596
+ writer.add_short(data._session_id)
597
+ if data._character_id is None:
598
+ raise SerializationError("character_id must be provided.")
599
+ writer.add_int(data._character_id)
600
+ if data._map_id is None:
601
+ raise SerializationError("map_id must be provided.")
602
+ writer.add_short(data._map_id)
603
+ if data._map_rid is None:
604
+ raise SerializationError("map_rid must be provided.")
605
+ if len(data._map_rid) != 2:
606
+ raise SerializationError(f"Expected length of map_rid to be exactly 2, got {len(data._map_rid)}.")
607
+ for i in range(2):
608
+ writer.add_short(data._map_rid[i])
609
+ if data._map_file_size is None:
610
+ raise SerializationError("map_file_size must be provided.")
611
+ writer.add_three(data._map_file_size)
612
+ if data._eif_rid is None:
613
+ raise SerializationError("eif_rid must be provided.")
614
+ if len(data._eif_rid) != 2:
615
+ raise SerializationError(f"Expected length of eif_rid to be exactly 2, got {len(data._eif_rid)}.")
616
+ for i in range(2):
617
+ writer.add_short(data._eif_rid[i])
618
+ if data._eif_length is None:
619
+ raise SerializationError("eif_length must be provided.")
620
+ writer.add_short(data._eif_length)
621
+ if data._enf_rid is None:
622
+ raise SerializationError("enf_rid must be provided.")
623
+ if len(data._enf_rid) != 2:
624
+ raise SerializationError(f"Expected length of enf_rid to be exactly 2, got {len(data._enf_rid)}.")
625
+ for i in range(2):
626
+ writer.add_short(data._enf_rid[i])
627
+ if data._enf_length is None:
628
+ raise SerializationError("enf_length must be provided.")
629
+ writer.add_short(data._enf_length)
630
+ if data._esf_rid is None:
631
+ raise SerializationError("esf_rid must be provided.")
632
+ if len(data._esf_rid) != 2:
633
+ raise SerializationError(f"Expected length of esf_rid to be exactly 2, got {len(data._esf_rid)}.")
634
+ for i in range(2):
635
+ writer.add_short(data._esf_rid[i])
636
+ if data._esf_length is None:
637
+ raise SerializationError("esf_length must be provided.")
638
+ writer.add_short(data._esf_length)
639
+ if data._ecf_rid is None:
640
+ raise SerializationError("ecf_rid must be provided.")
641
+ if len(data._ecf_rid) != 2:
642
+ raise SerializationError(f"Expected length of ecf_rid to be exactly 2, got {len(data._ecf_rid)}.")
643
+ for i in range(2):
644
+ writer.add_short(data._ecf_rid[i])
645
+ if data._ecf_length is None:
646
+ raise SerializationError("ecf_length must be provided.")
647
+ writer.add_short(data._ecf_length)
648
+ if data._name is None:
649
+ raise SerializationError("name must be provided.")
650
+ writer.add_string(data._name)
651
+ writer.add_byte(0xFF)
652
+ if data._title is None:
653
+ raise SerializationError("title must be provided.")
654
+ writer.add_string(data._title)
655
+ writer.add_byte(0xFF)
656
+ if data._guild_name is None:
657
+ raise SerializationError("guild_name must be provided.")
658
+ writer.add_string(data._guild_name)
659
+ writer.add_byte(0xFF)
660
+ if data._guild_rank_name is None:
661
+ raise SerializationError("guild_rank_name must be provided.")
662
+ writer.add_string(data._guild_rank_name)
663
+ writer.add_byte(0xFF)
664
+ if data._class_id is None:
665
+ raise SerializationError("class_id must be provided.")
666
+ writer.add_char(data._class_id)
667
+ if data._guild_tag is None:
668
+ raise SerializationError("guild_tag must be provided.")
669
+ if len(data._guild_tag) != 3:
670
+ raise SerializationError(f"Expected length of guild_tag to be exactly 3, got {len(data._guild_tag)}.")
671
+ writer.add_fixed_string(data._guild_tag, 3, False)
672
+ if data._admin is None:
673
+ raise SerializationError("admin must be provided.")
674
+ writer.add_char(int(data._admin))
675
+ if data._level is None:
676
+ raise SerializationError("level must be provided.")
677
+ writer.add_char(data._level)
678
+ if data._experience is None:
679
+ raise SerializationError("experience must be provided.")
680
+ writer.add_int(data._experience)
681
+ if data._usage is None:
682
+ raise SerializationError("usage must be provided.")
683
+ writer.add_int(data._usage)
684
+ if data._stats is None:
685
+ raise SerializationError("stats must be provided.")
686
+ CharacterStatsWelcome.serialize(writer, data._stats)
687
+ if data._equipment is None:
688
+ raise SerializationError("equipment must be provided.")
689
+ EquipmentWelcome.serialize(writer, data._equipment)
690
+ if data._guild_rank is None:
691
+ raise SerializationError("guild_rank must be provided.")
692
+ writer.add_char(data._guild_rank)
693
+ if data._settings is None:
694
+ raise SerializationError("settings must be provided.")
695
+ ServerSettings.serialize(writer, data._settings)
696
+ if data._login_message_code is None:
697
+ raise SerializationError("login_message_code must be provided.")
698
+ writer.add_char(int(data._login_message_code))
699
+ writer.add_byte(0xFF)
700
+ finally:
701
+ writer.string_sanitization_mode = old_string_sanitization_mode
690
702
 
691
703
  @staticmethod
692
704
  def deserialize(reader: EoReader) -> "WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter":
@@ -832,31 +844,34 @@ class WelcomeReplyServerPacket(Packet):
832
844
  writer (EoWriter): The writer that the data will be serialized to.
833
845
  data (WelcomeReplyServerPacket.WelcomeCodeDataEnterGame): The data to serialize.
834
846
  """
835
- writer.add_byte(0xFF)
836
- if data._news is None:
837
- raise SerializationError("news must be provided.")
838
- if len(data._news) != 9:
839
- raise SerializationError(f"Expected length of news to be exactly 9, got {len(data._news)}.")
840
- for i in range(9):
841
- if i > 0:
847
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
848
+ try:
849
+ writer.add_byte(0xFF)
850
+ if data._news is None:
851
+ raise SerializationError("news must be provided.")
852
+ if len(data._news) != 9:
853
+ raise SerializationError(f"Expected length of news to be exactly 9, got {len(data._news)}.")
854
+ for i in range(9):
855
+ writer.add_string(data._news[i])
842
856
  writer.add_byte(0xFF)
843
- writer.add_string(data._news[i])
844
- if data._weight is None:
845
- raise SerializationError("weight must be provided.")
846
- Weight.serialize(writer, data._weight)
847
- if data._items is None:
848
- raise SerializationError("items must be provided.")
849
- for i in range(len(data._items)):
850
- Item.serialize(writer, data._items[i])
851
- writer.add_byte(0xFF)
852
- if data._spells is None:
853
- raise SerializationError("spells must be provided.")
854
- for i in range(len(data._spells)):
855
- Spell.serialize(writer, data._spells[i])
856
- writer.add_byte(0xFF)
857
- if data._nearby is None:
858
- raise SerializationError("nearby must be provided.")
859
- NearbyInfo.serialize(writer, data._nearby)
857
+ if data._weight is None:
858
+ raise SerializationError("weight must be provided.")
859
+ Weight.serialize(writer, data._weight)
860
+ if data._items is None:
861
+ raise SerializationError("items must be provided.")
862
+ for i in range(len(data._items)):
863
+ Item.serialize(writer, data._items[i])
864
+ writer.add_byte(0xFF)
865
+ if data._spells is None:
866
+ raise SerializationError("spells must be provided.")
867
+ for i in range(len(data._spells)):
868
+ Spell.serialize(writer, data._spells[i])
869
+ writer.add_byte(0xFF)
870
+ if data._nearby is None:
871
+ raise SerializationError("nearby must be provided.")
872
+ NearbyInfo.serialize(writer, data._nearby)
873
+ finally:
874
+ writer.string_sanitization_mode = old_string_sanitization_mode
860
875
 
861
876
  @staticmethod
862
877
  def deserialize(reader: EoReader) -> "WelcomeReplyServerPacket.WelcomeCodeDataEnterGame":
@@ -877,8 +892,7 @@ class WelcomeReplyServerPacket(Packet):
877
892
  data._news = []
878
893
  for i in range(9):
879
894
  data._news.append(reader.get_string())
880
- if i + 1 < 9:
881
- reader.next_chunk()
895
+ reader.next_chunk()
882
896
  data._weight = Weight.deserialize(reader)
883
897
  items_length = int(reader.remaining / 6)
884
898
  data._items = []
@@ -66,12 +66,16 @@ class Spell:
66
66
  writer (EoWriter): The writer that the data will be serialized to.
67
67
  data (Spell): The data to serialize.
68
68
  """
69
- if data._id is None:
70
- raise SerializationError("id must be provided.")
71
- writer.add_short(data._id)
72
- if data._level is None:
73
- raise SerializationError("level must be provided.")
74
- writer.add_short(data._level)
69
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
70
+ try:
71
+ if data._id is None:
72
+ raise SerializationError("id must be provided.")
73
+ writer.add_short(data._id)
74
+ if data._level is None:
75
+ raise SerializationError("level must be provided.")
76
+ writer.add_short(data._level)
77
+ finally:
78
+ writer.string_sanitization_mode = old_string_sanitization_mode
75
79
 
76
80
  @staticmethod
77
81
  def deserialize(reader: EoReader) -> "Spell":
@@ -67,12 +67,16 @@ class ThreeItem:
67
67
  writer (EoWriter): The writer that the data will be serialized to.
68
68
  data (ThreeItem): The data to serialize.
69
69
  """
70
- if data._id is None:
71
- raise SerializationError("id must be provided.")
72
- writer.add_short(data._id)
73
- if data._amount is None:
74
- raise SerializationError("amount must be provided.")
75
- writer.add_three(data._amount)
70
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
71
+ try:
72
+ if data._id is None:
73
+ raise SerializationError("id must be provided.")
74
+ writer.add_short(data._id)
75
+ if data._amount is None:
76
+ raise SerializationError("amount must be provided.")
77
+ writer.add_three(data._amount)
78
+ finally:
79
+ writer.string_sanitization_mode = old_string_sanitization_mode
76
80
 
77
81
  @staticmethod
78
82
  def deserialize(reader: EoReader) -> "ThreeItem":
@@ -83,15 +83,19 @@ class Version:
83
83
  writer (EoWriter): The writer that the data will be serialized to.
84
84
  data (Version): The data to serialize.
85
85
  """
86
- if data._major is None:
87
- raise SerializationError("major must be provided.")
88
- writer.add_char(data._major)
89
- if data._minor is None:
90
- raise SerializationError("minor must be provided.")
91
- writer.add_char(data._minor)
92
- if data._patch is None:
93
- raise SerializationError("patch must be provided.")
94
- writer.add_char(data._patch)
86
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
87
+ try:
88
+ if data._major is None:
89
+ raise SerializationError("major must be provided.")
90
+ writer.add_char(data._major)
91
+ if data._minor is None:
92
+ raise SerializationError("minor must be provided.")
93
+ writer.add_char(data._minor)
94
+ if data._patch is None:
95
+ raise SerializationError("patch must be provided.")
96
+ writer.add_char(data._patch)
97
+ finally:
98
+ writer.string_sanitization_mode = old_string_sanitization_mode
95
99
 
96
100
  @staticmethod
97
101
  def deserialize(reader: EoReader) -> "Version":
@@ -66,12 +66,16 @@ class Weight:
66
66
  writer (EoWriter): The writer that the data will be serialized to.
67
67
  data (Weight): The data to serialize.
68
68
  """
69
- if data._current is None:
70
- raise SerializationError("current must be provided.")
71
- writer.add_char(data._current)
72
- if data._max is None:
73
- raise SerializationError("max must be provided.")
74
- writer.add_char(data._max)
69
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
70
+ try:
71
+ if data._current is None:
72
+ raise SerializationError("current must be provided.")
73
+ writer.add_char(data._current)
74
+ if data._max is None:
75
+ raise SerializationError("max must be provided.")
76
+ writer.add_char(data._max)
77
+ finally:
78
+ writer.string_sanitization_mode = old_string_sanitization_mode
75
79
 
76
80
  @staticmethod
77
81
  def deserialize(reader: EoReader) -> "Weight":
@@ -96,23 +96,27 @@ class Ecf:
96
96
  writer (EoWriter): The writer that the data will be serialized to.
97
97
  data (Ecf): The data to serialize.
98
98
  """
99
- writer.add_fixed_string("ECF", 3, False)
100
- if data._rid is None:
101
- raise SerializationError("rid must be provided.")
102
- if len(data._rid) != 2:
103
- raise SerializationError(f"Expected length of rid to be exactly 2, got {len(data._rid)}.")
104
- for i in range(2):
105
- writer.add_short(data._rid[i])
106
- if data._total_classes_count is None:
107
- raise SerializationError("total_classes_count must be provided.")
108
- writer.add_short(data._total_classes_count)
109
- if data._version is None:
110
- raise SerializationError("version must be provided.")
111
- writer.add_char(data._version)
112
- if data._classes is None:
113
- raise SerializationError("classes must be provided.")
114
- for i in range(len(data._classes)):
115
- EcfRecord.serialize(writer, data._classes[i])
99
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
100
+ try:
101
+ writer.add_fixed_string("ECF", 3, False)
102
+ if data._rid is None:
103
+ raise SerializationError("rid must be provided.")
104
+ if len(data._rid) != 2:
105
+ raise SerializationError(f"Expected length of rid to be exactly 2, got {len(data._rid)}.")
106
+ for i in range(2):
107
+ writer.add_short(data._rid[i])
108
+ if data._total_classes_count is None:
109
+ raise SerializationError("total_classes_count must be provided.")
110
+ writer.add_short(data._total_classes_count)
111
+ if data._version is None:
112
+ raise SerializationError("version must be provided.")
113
+ writer.add_char(data._version)
114
+ if data._classes is None:
115
+ raise SerializationError("classes must be provided.")
116
+ for i in range(len(data._classes)):
117
+ EcfRecord.serialize(writer, data._classes[i])
118
+ finally:
119
+ writer.string_sanitization_mode = old_string_sanitization_mode
116
120
 
117
121
  @staticmethod
118
122
  def deserialize(reader: EoReader) -> "Ecf":
@@ -187,38 +187,42 @@ class EcfRecord:
187
187
  writer (EoWriter): The writer that the data will be serialized to.
188
188
  data (EcfRecord): The data to serialize.
189
189
  """
190
- if data._name_length is None:
191
- raise SerializationError("name_length must be provided.")
192
- writer.add_char(data._name_length)
193
- if data._name is None:
194
- raise SerializationError("name must be provided.")
195
- if len(data._name) > 252:
196
- raise SerializationError(f"Expected length of name to be 252 or less, got {len(data._name)}.")
197
- writer.add_fixed_string(data._name, data._name_length, False)
198
- if data._parent_type is None:
199
- raise SerializationError("parent_type must be provided.")
200
- writer.add_char(data._parent_type)
201
- if data._stat_group is None:
202
- raise SerializationError("stat_group must be provided.")
203
- writer.add_char(data._stat_group)
204
- if data._str is None:
205
- raise SerializationError("str must be provided.")
206
- writer.add_short(data._str)
207
- if data._intl is None:
208
- raise SerializationError("intl must be provided.")
209
- writer.add_short(data._intl)
210
- if data._wis is None:
211
- raise SerializationError("wis must be provided.")
212
- writer.add_short(data._wis)
213
- if data._agi is None:
214
- raise SerializationError("agi must be provided.")
215
- writer.add_short(data._agi)
216
- if data._con is None:
217
- raise SerializationError("con must be provided.")
218
- writer.add_short(data._con)
219
- if data._cha is None:
220
- raise SerializationError("cha must be provided.")
221
- writer.add_short(data._cha)
190
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
191
+ try:
192
+ if data._name_length is None:
193
+ raise SerializationError("name_length must be provided.")
194
+ writer.add_char(data._name_length)
195
+ if data._name is None:
196
+ raise SerializationError("name must be provided.")
197
+ if len(data._name) > 252:
198
+ raise SerializationError(f"Expected length of name to be 252 or less, got {len(data._name)}.")
199
+ writer.add_fixed_string(data._name, data._name_length, False)
200
+ if data._parent_type is None:
201
+ raise SerializationError("parent_type must be provided.")
202
+ writer.add_char(data._parent_type)
203
+ if data._stat_group is None:
204
+ raise SerializationError("stat_group must be provided.")
205
+ writer.add_char(data._stat_group)
206
+ if data._str is None:
207
+ raise SerializationError("str must be provided.")
208
+ writer.add_short(data._str)
209
+ if data._intl is None:
210
+ raise SerializationError("intl must be provided.")
211
+ writer.add_short(data._intl)
212
+ if data._wis is None:
213
+ raise SerializationError("wis must be provided.")
214
+ writer.add_short(data._wis)
215
+ if data._agi is None:
216
+ raise SerializationError("agi must be provided.")
217
+ writer.add_short(data._agi)
218
+ if data._con is None:
219
+ raise SerializationError("con must be provided.")
220
+ writer.add_short(data._con)
221
+ if data._cha is None:
222
+ raise SerializationError("cha must be provided.")
223
+ writer.add_short(data._cha)
224
+ finally:
225
+ writer.string_sanitization_mode = old_string_sanitization_mode
222
226
 
223
227
  @staticmethod
224
228
  def deserialize(reader: EoReader) -> "EcfRecord":