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
@@ -15,6 +15,9 @@ from .....data.eo_writer import EoWriter
15
15
  from .....data.eo_reader import EoReader
16
16
 
17
17
  class CharacterReplyServerPacket(Packet):
18
+ """
19
+ Reply to client Character-family packets
20
+ """
18
21
  _byte_size: int = 0
19
22
  _reply_code: CharacterReply = None # type: ignore [assignment]
20
23
  _reply_code_data: 'CharacterReplyServerPacket.ReplyCodeData' = None
@@ -92,49 +95,55 @@ class CharacterReplyServerPacket(Packet):
92
95
  writer (EoWriter): The writer that the data will be serialized to.
93
96
  data (CharacterReplyServerPacket): The data to serialize.
94
97
  """
95
- if data._reply_code is None:
96
- raise SerializationError("reply_code must be provided.")
97
- writer.add_short(int(data._reply_code))
98
- if data._reply_code == 0:
99
- if data._reply_code_data is not None:
100
- raise SerializationError("Expected reply_code_data to be None for reply_code " + CharacterReply(data._reply_code).name + ".")
101
- elif data._reply_code == CharacterReply.Exists:
102
- if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataExists):
103
- raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataExists for reply_code " + CharacterReply(data._reply_code).name + ".")
104
- CharacterReplyServerPacket.ReplyCodeDataExists.serialize(writer, data._reply_code_data)
105
- elif data._reply_code == CharacterReply.Full:
106
- if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataFull):
107
- raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataFull for reply_code " + CharacterReply(data._reply_code).name + ".")
108
- CharacterReplyServerPacket.ReplyCodeDataFull.serialize(writer, data._reply_code_data)
109
- elif data._reply_code == CharacterReply.Full3:
110
- if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataFull3):
111
- raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataFull3 for reply_code " + CharacterReply(data._reply_code).name + ".")
112
- CharacterReplyServerPacket.ReplyCodeDataFull3.serialize(writer, data._reply_code_data)
113
- elif data._reply_code == CharacterReply.NotApproved:
114
- if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataNotApproved):
115
- raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataNotApproved for reply_code " + CharacterReply(data._reply_code).name + ".")
116
- CharacterReplyServerPacket.ReplyCodeDataNotApproved.serialize(writer, data._reply_code_data)
117
- elif data._reply_code == CharacterReply.Ok:
118
- if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataOk):
119
- raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataOk for reply_code " + CharacterReply(data._reply_code).name + ".")
120
- CharacterReplyServerPacket.ReplyCodeDataOk.serialize(writer, data._reply_code_data)
121
- elif data._reply_code == CharacterReply.Deleted:
122
- if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataDeleted):
123
- raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataDeleted for reply_code " + CharacterReply(data._reply_code).name + ".")
124
- CharacterReplyServerPacket.ReplyCodeDataDeleted.serialize(writer, data._reply_code_data)
125
- elif data._reply_code == 7:
126
- if data._reply_code_data is not None:
127
- raise SerializationError("Expected reply_code_data to be None for reply_code " + CharacterReply(data._reply_code).name + ".")
128
- elif data._reply_code == 8:
129
- if data._reply_code_data is not None:
130
- raise SerializationError("Expected reply_code_data to be None for reply_code " + CharacterReply(data._reply_code).name + ".")
131
- elif data._reply_code == 9:
132
- if data._reply_code_data is not None:
133
- raise SerializationError("Expected reply_code_data to be None for reply_code " + CharacterReply(data._reply_code).name + ".")
134
- else:
135
- if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataDefault):
136
- raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataDefault for reply_code " + CharacterReply(data._reply_code).name + ".")
137
- CharacterReplyServerPacket.ReplyCodeDataDefault.serialize(writer, data._reply_code_data)
98
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
99
+ try:
100
+ writer.string_sanitization_mode = True
101
+ if data._reply_code is None:
102
+ raise SerializationError("reply_code must be provided.")
103
+ writer.add_short(int(data._reply_code))
104
+ if data._reply_code == 0:
105
+ if data._reply_code_data is not None:
106
+ raise SerializationError("Expected reply_code_data to be None for reply_code " + CharacterReply(data._reply_code).name + ".")
107
+ elif data._reply_code == CharacterReply.Exists:
108
+ if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataExists):
109
+ raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataExists for reply_code " + CharacterReply(data._reply_code).name + ".")
110
+ CharacterReplyServerPacket.ReplyCodeDataExists.serialize(writer, data._reply_code_data)
111
+ elif data._reply_code == CharacterReply.Full:
112
+ if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataFull):
113
+ raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataFull for reply_code " + CharacterReply(data._reply_code).name + ".")
114
+ CharacterReplyServerPacket.ReplyCodeDataFull.serialize(writer, data._reply_code_data)
115
+ elif data._reply_code == CharacterReply.Full3:
116
+ if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataFull3):
117
+ raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataFull3 for reply_code " + CharacterReply(data._reply_code).name + ".")
118
+ CharacterReplyServerPacket.ReplyCodeDataFull3.serialize(writer, data._reply_code_data)
119
+ elif data._reply_code == CharacterReply.NotApproved:
120
+ if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataNotApproved):
121
+ raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataNotApproved for reply_code " + CharacterReply(data._reply_code).name + ".")
122
+ CharacterReplyServerPacket.ReplyCodeDataNotApproved.serialize(writer, data._reply_code_data)
123
+ elif data._reply_code == CharacterReply.Ok:
124
+ if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataOk):
125
+ raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataOk for reply_code " + CharacterReply(data._reply_code).name + ".")
126
+ CharacterReplyServerPacket.ReplyCodeDataOk.serialize(writer, data._reply_code_data)
127
+ elif data._reply_code == CharacterReply.Deleted:
128
+ if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataDeleted):
129
+ raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataDeleted for reply_code " + CharacterReply(data._reply_code).name + ".")
130
+ CharacterReplyServerPacket.ReplyCodeDataDeleted.serialize(writer, data._reply_code_data)
131
+ elif data._reply_code == 7:
132
+ if data._reply_code_data is not None:
133
+ raise SerializationError("Expected reply_code_data to be None for reply_code " + CharacterReply(data._reply_code).name + ".")
134
+ elif data._reply_code == 8:
135
+ if data._reply_code_data is not None:
136
+ raise SerializationError("Expected reply_code_data to be None for reply_code " + CharacterReply(data._reply_code).name + ".")
137
+ elif data._reply_code == 9:
138
+ if data._reply_code_data is not None:
139
+ raise SerializationError("Expected reply_code_data to be None for reply_code " + CharacterReply(data._reply_code).name + ".")
140
+ else:
141
+ if not isinstance(data._reply_code_data, CharacterReplyServerPacket.ReplyCodeDataDefault):
142
+ raise SerializationError("Expected reply_code_data to be type CharacterReplyServerPacket.ReplyCodeDataDefault for reply_code " + CharacterReply(data._reply_code).name + ".")
143
+ CharacterReplyServerPacket.ReplyCodeDataDefault.serialize(writer, data._reply_code_data)
144
+ writer.string_sanitization_mode = False
145
+ finally:
146
+ writer.string_sanitization_mode = old_string_sanitization_mode
138
147
 
139
148
  @staticmethod
140
149
  def deserialize(reader: EoReader) -> "CharacterReplyServerPacket":
@@ -185,10 +194,9 @@ class CharacterReplyServerPacket(Packet):
185
194
  return f"CharacterReplyServerPacket(byte_size={repr(self._byte_size)}, reply_code={repr(self._reply_code)}, reply_code_data={repr(self._reply_code_data)})"
186
195
 
187
196
  ReplyCodeData = Union['CharacterReplyServerPacket.ReplyCodeDataExists', 'CharacterReplyServerPacket.ReplyCodeDataFull', 'CharacterReplyServerPacket.ReplyCodeDataFull3', 'CharacterReplyServerPacket.ReplyCodeDataNotApproved', 'CharacterReplyServerPacket.ReplyCodeDataOk', 'CharacterReplyServerPacket.ReplyCodeDataDeleted', 'CharacterReplyServerPacket.ReplyCodeDataDefault', None]
188
- ReplyCodeData.__doc__ = \
189
- """
190
- Data associated with different values of the `reply_code` field.
191
- """
197
+ """
198
+ Data associated with different values of the `reply_code` field.
199
+ """
192
200
 
193
201
  class ReplyCodeDataExists:
194
202
  """
@@ -216,7 +224,11 @@ class CharacterReplyServerPacket(Packet):
216
224
  writer (EoWriter): The writer that the data will be serialized to.
217
225
  data (CharacterReplyServerPacket.ReplyCodeDataExists): The data to serialize.
218
226
  """
219
- writer.add_string("NO")
227
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
228
+ try:
229
+ writer.add_string("NO")
230
+ finally:
231
+ writer.string_sanitization_mode = old_string_sanitization_mode
220
232
 
221
233
  @staticmethod
222
234
  def deserialize(reader: EoReader) -> "CharacterReplyServerPacket.ReplyCodeDataExists":
@@ -268,7 +280,11 @@ class CharacterReplyServerPacket(Packet):
268
280
  writer (EoWriter): The writer that the data will be serialized to.
269
281
  data (CharacterReplyServerPacket.ReplyCodeDataFull): The data to serialize.
270
282
  """
271
- writer.add_string("NO")
283
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
284
+ try:
285
+ writer.add_string("NO")
286
+ finally:
287
+ writer.string_sanitization_mode = old_string_sanitization_mode
272
288
 
273
289
  @staticmethod
274
290
  def deserialize(reader: EoReader) -> "CharacterReplyServerPacket.ReplyCodeDataFull":
@@ -320,7 +336,11 @@ class CharacterReplyServerPacket(Packet):
320
336
  writer (EoWriter): The writer that the data will be serialized to.
321
337
  data (CharacterReplyServerPacket.ReplyCodeDataFull3): The data to serialize.
322
338
  """
323
- writer.add_string("NO")
339
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
340
+ try:
341
+ writer.add_string("NO")
342
+ finally:
343
+ writer.string_sanitization_mode = old_string_sanitization_mode
324
344
 
325
345
  @staticmethod
326
346
  def deserialize(reader: EoReader) -> "CharacterReplyServerPacket.ReplyCodeDataFull3":
@@ -372,7 +392,11 @@ class CharacterReplyServerPacket(Packet):
372
392
  writer (EoWriter): The writer that the data will be serialized to.
373
393
  data (CharacterReplyServerPacket.ReplyCodeDataNotApproved): The data to serialize.
374
394
  """
375
- writer.add_string("NO")
395
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
396
+ try:
397
+ writer.add_string("NO")
398
+ finally:
399
+ writer.string_sanitization_mode = old_string_sanitization_mode
376
400
 
377
401
  @staticmethod
378
402
  def deserialize(reader: EoReader) -> "CharacterReplyServerPacket.ReplyCodeDataNotApproved":
@@ -442,19 +466,22 @@ class CharacterReplyServerPacket(Packet):
442
466
  writer (EoWriter): The writer that the data will be serialized to.
443
467
  data (CharacterReplyServerPacket.ReplyCodeDataOk): The data to serialize.
444
468
  """
445
- if data._characters_count is None:
446
- raise SerializationError("characters_count must be provided.")
447
- writer.add_char(data._characters_count)
448
- writer.add_char(0)
449
- writer.add_byte(0xFF)
450
- if data._characters is None:
451
- raise SerializationError("characters must be provided.")
452
- if len(data._characters) > 252:
453
- raise SerializationError(f"Expected length of characters to be 252 or less, got {len(data._characters)}.")
454
- for i in range(data._characters_count):
455
- if i > 0:
469
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
470
+ try:
471
+ if data._characters_count is None:
472
+ raise SerializationError("characters_count must be provided.")
473
+ writer.add_char(data._characters_count)
474
+ writer.add_char(0)
475
+ writer.add_byte(0xFF)
476
+ if data._characters is None:
477
+ raise SerializationError("characters must be provided.")
478
+ if len(data._characters) > 252:
479
+ raise SerializationError(f"Expected length of characters to be 252 or less, got {len(data._characters)}.")
480
+ for i in range(data._characters_count):
481
+ CharacterSelectionListEntry.serialize(writer, data._characters[i])
456
482
  writer.add_byte(0xFF)
457
- CharacterSelectionListEntry.serialize(writer, data._characters[i])
483
+ finally:
484
+ writer.string_sanitization_mode = old_string_sanitization_mode
458
485
 
459
486
  @staticmethod
460
487
  def deserialize(reader: EoReader) -> "CharacterReplyServerPacket.ReplyCodeDataOk":
@@ -477,8 +504,7 @@ class CharacterReplyServerPacket(Packet):
477
504
  data._characters = []
478
505
  for i in range(data._characters_count):
479
506
  data._characters.append(CharacterSelectionListEntry.deserialize(reader))
480
- if i + 1 < data._characters_count:
481
- reader.next_chunk()
507
+ reader.next_chunk()
482
508
  data._byte_size = reader.position - reader_start_position
483
509
  return data
484
510
  finally:
@@ -531,18 +557,21 @@ class CharacterReplyServerPacket(Packet):
531
557
  writer (EoWriter): The writer that the data will be serialized to.
532
558
  data (CharacterReplyServerPacket.ReplyCodeDataDeleted): The data to serialize.
533
559
  """
534
- if data._characters_count is None:
535
- raise SerializationError("characters_count must be provided.")
536
- writer.add_char(data._characters_count)
537
- writer.add_byte(0xFF)
538
- if data._characters is None:
539
- raise SerializationError("characters must be provided.")
540
- if len(data._characters) > 252:
541
- raise SerializationError(f"Expected length of characters to be 252 or less, got {len(data._characters)}.")
542
- for i in range(data._characters_count):
543
- if i > 0:
560
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
561
+ try:
562
+ if data._characters_count is None:
563
+ raise SerializationError("characters_count must be provided.")
564
+ writer.add_char(data._characters_count)
565
+ writer.add_byte(0xFF)
566
+ if data._characters is None:
567
+ raise SerializationError("characters must be provided.")
568
+ if len(data._characters) > 252:
569
+ raise SerializationError(f"Expected length of characters to be 252 or less, got {len(data._characters)}.")
570
+ for i in range(data._characters_count):
571
+ CharacterSelectionListEntry.serialize(writer, data._characters[i])
544
572
  writer.add_byte(0xFF)
545
- CharacterSelectionListEntry.serialize(writer, data._characters[i])
573
+ finally:
574
+ writer.string_sanitization_mode = old_string_sanitization_mode
546
575
 
547
576
  @staticmethod
548
577
  def deserialize(reader: EoReader) -> "CharacterReplyServerPacket.ReplyCodeDataDeleted":
@@ -564,8 +593,7 @@ class CharacterReplyServerPacket(Packet):
564
593
  data._characters = []
565
594
  for i in range(data._characters_count):
566
595
  data._characters.append(CharacterSelectionListEntry.deserialize(reader))
567
- if i + 1 < data._characters_count:
568
- reader.next_chunk()
596
+ reader.next_chunk()
569
597
  data._byte_size = reader.position - reader_start_position
570
598
  return data
571
599
  finally:
@@ -602,7 +630,11 @@ class CharacterReplyServerPacket(Packet):
602
630
  writer (EoWriter): The writer that the data will be serialized to.
603
631
  data (CharacterReplyServerPacket.ReplyCodeDataDefault): The data to serialize.
604
632
  """
605
- writer.add_string("OK")
633
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
634
+ try:
635
+ writer.add_string("OK")
636
+ finally:
637
+ writer.string_sanitization_mode = old_string_sanitization_mode
606
638
 
607
639
  @staticmethod
608
640
  def deserialize(reader: EoReader) -> "CharacterReplyServerPacket.ReplyCodeDataDefault":
@@ -117,21 +117,25 @@ class CharacterSecondaryStats:
117
117
  writer (EoWriter): The writer that the data will be serialized to.
118
118
  data (CharacterSecondaryStats): The data to serialize.
119
119
  """
120
- if data._min_damage is None:
121
- raise SerializationError("min_damage must be provided.")
122
- writer.add_short(data._min_damage)
123
- if data._max_damage is None:
124
- raise SerializationError("max_damage must be provided.")
125
- writer.add_short(data._max_damage)
126
- if data._accuracy is None:
127
- raise SerializationError("accuracy must be provided.")
128
- writer.add_short(data._accuracy)
129
- if data._evade is None:
130
- raise SerializationError("evade must be provided.")
131
- writer.add_short(data._evade)
132
- if data._armor is None:
133
- raise SerializationError("armor must be provided.")
134
- writer.add_short(data._armor)
120
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
121
+ try:
122
+ if data._min_damage is None:
123
+ raise SerializationError("min_damage must be provided.")
124
+ writer.add_short(data._min_damage)
125
+ if data._max_damage is None:
126
+ raise SerializationError("max_damage must be provided.")
127
+ writer.add_short(data._max_damage)
128
+ if data._accuracy is None:
129
+ raise SerializationError("accuracy must be provided.")
130
+ writer.add_short(data._accuracy)
131
+ if data._evade is None:
132
+ raise SerializationError("evade must be provided.")
133
+ writer.add_short(data._evade)
134
+ if data._armor is None:
135
+ raise SerializationError("armor must be provided.")
136
+ writer.add_short(data._armor)
137
+ finally:
138
+ writer.string_sanitization_mode = old_string_sanitization_mode
135
139
 
136
140
  @staticmethod
137
141
  def deserialize(reader: EoReader) -> "CharacterSecondaryStats":
@@ -118,21 +118,25 @@ class CharacterSecondaryStatsInfoLookup:
118
118
  writer (EoWriter): The writer that the data will be serialized to.
119
119
  data (CharacterSecondaryStatsInfoLookup): The data to serialize.
120
120
  """
121
- if data._max_damage is None:
122
- raise SerializationError("max_damage must be provided.")
123
- writer.add_short(data._max_damage)
124
- if data._min_damage is None:
125
- raise SerializationError("min_damage must be provided.")
126
- writer.add_short(data._min_damage)
127
- if data._accuracy is None:
128
- raise SerializationError("accuracy must be provided.")
129
- writer.add_short(data._accuracy)
130
- if data._evade is None:
131
- raise SerializationError("evade must be provided.")
132
- writer.add_short(data._evade)
133
- if data._armor is None:
134
- raise SerializationError("armor must be provided.")
135
- writer.add_short(data._armor)
121
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
122
+ try:
123
+ if data._max_damage is None:
124
+ raise SerializationError("max_damage must be provided.")
125
+ writer.add_short(data._max_damage)
126
+ if data._min_damage is None:
127
+ raise SerializationError("min_damage must be provided.")
128
+ writer.add_short(data._min_damage)
129
+ if data._accuracy is None:
130
+ raise SerializationError("accuracy must be provided.")
131
+ writer.add_short(data._accuracy)
132
+ if data._evade is None:
133
+ raise SerializationError("evade must be provided.")
134
+ writer.add_short(data._evade)
135
+ if data._armor is None:
136
+ raise SerializationError("armor must be provided.")
137
+ writer.add_short(data._armor)
138
+ finally:
139
+ writer.string_sanitization_mode = old_string_sanitization_mode
136
140
 
137
141
  @staticmethod
138
142
  def deserialize(reader: EoReader) -> "CharacterSecondaryStatsInfoLookup":
@@ -156,34 +156,40 @@ class CharacterSelectionListEntry:
156
156
  writer (EoWriter): The writer that the data will be serialized to.
157
157
  data (CharacterSelectionListEntry): The data to serialize.
158
158
  """
159
- if data._name is None:
160
- raise SerializationError("name must be provided.")
161
- writer.add_string(data._name)
162
- writer.add_byte(0xFF)
163
- if data._id is None:
164
- raise SerializationError("id must be provided.")
165
- writer.add_int(data._id)
166
- if data._level is None:
167
- raise SerializationError("level must be provided.")
168
- writer.add_char(data._level)
169
- if data._gender is None:
170
- raise SerializationError("gender must be provided.")
171
- writer.add_char(int(data._gender))
172
- if data._hair_style is None:
173
- raise SerializationError("hair_style must be provided.")
174
- writer.add_char(data._hair_style)
175
- if data._hair_color is None:
176
- raise SerializationError("hair_color must be provided.")
177
- writer.add_char(data._hair_color)
178
- if data._skin is None:
179
- raise SerializationError("skin must be provided.")
180
- writer.add_char(data._skin)
181
- if data._admin is None:
182
- raise SerializationError("admin must be provided.")
183
- writer.add_char(int(data._admin))
184
- if data._equipment is None:
185
- raise SerializationError("equipment must be provided.")
186
- EquipmentCharacterSelect.serialize(writer, data._equipment)
159
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
160
+ try:
161
+ writer.string_sanitization_mode = True
162
+ if data._name is None:
163
+ raise SerializationError("name must be provided.")
164
+ writer.add_string(data._name)
165
+ writer.add_byte(0xFF)
166
+ if data._id is None:
167
+ raise SerializationError("id must be provided.")
168
+ writer.add_int(data._id)
169
+ if data._level is None:
170
+ raise SerializationError("level must be provided.")
171
+ writer.add_char(data._level)
172
+ if data._gender is None:
173
+ raise SerializationError("gender must be provided.")
174
+ writer.add_char(int(data._gender))
175
+ if data._hair_style is None:
176
+ raise SerializationError("hair_style must be provided.")
177
+ writer.add_char(data._hair_style)
178
+ if data._hair_color is None:
179
+ raise SerializationError("hair_color must be provided.")
180
+ writer.add_char(data._hair_color)
181
+ if data._skin is None:
182
+ raise SerializationError("skin must be provided.")
183
+ writer.add_char(data._skin)
184
+ if data._admin is None:
185
+ raise SerializationError("admin must be provided.")
186
+ writer.add_char(int(data._admin))
187
+ if data._equipment is None:
188
+ raise SerializationError("equipment must be provided.")
189
+ EquipmentCharacterSelect.serialize(writer, data._equipment)
190
+ writer.string_sanitization_mode = False
191
+ finally:
192
+ writer.string_sanitization_mode = old_string_sanitization_mode
187
193
 
188
194
  @staticmethod
189
195
  def deserialize(reader: EoReader) -> "CharacterSelectionListEntry":
@@ -87,18 +87,22 @@ class CharacterStatsEquipmentChange:
87
87
  writer (EoWriter): The writer that the data will be serialized to.
88
88
  data (CharacterStatsEquipmentChange): The data to serialize.
89
89
  """
90
- if data._max_hp is None:
91
- raise SerializationError("max_hp must be provided.")
92
- writer.add_short(data._max_hp)
93
- if data._max_tp is None:
94
- raise SerializationError("max_tp must be provided.")
95
- writer.add_short(data._max_tp)
96
- if data._base_stats is None:
97
- raise SerializationError("base_stats must be provided.")
98
- CharacterBaseStats.serialize(writer, data._base_stats)
99
- if data._secondary_stats is None:
100
- raise SerializationError("secondary_stats must be provided.")
101
- CharacterSecondaryStats.serialize(writer, data._secondary_stats)
90
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
91
+ try:
92
+ if data._max_hp is None:
93
+ raise SerializationError("max_hp must be provided.")
94
+ writer.add_short(data._max_hp)
95
+ if data._max_tp is None:
96
+ raise SerializationError("max_tp must be provided.")
97
+ writer.add_short(data._max_tp)
98
+ if data._base_stats is None:
99
+ raise SerializationError("base_stats must be provided.")
100
+ CharacterBaseStats.serialize(writer, data._base_stats)
101
+ if data._secondary_stats is None:
102
+ raise SerializationError("secondary_stats must be provided.")
103
+ CharacterSecondaryStats.serialize(writer, data._secondary_stats)
104
+ finally:
105
+ writer.string_sanitization_mode = old_string_sanitization_mode
102
106
 
103
107
  @staticmethod
104
108
  def deserialize(reader: EoReader) -> "CharacterStatsEquipmentChange":
@@ -131,27 +131,31 @@ class CharacterStatsInfoLookup:
131
131
  writer (EoWriter): The writer that the data will be serialized to.
132
132
  data (CharacterStatsInfoLookup): The data to serialize.
133
133
  """
134
- if data._hp is None:
135
- raise SerializationError("hp must be provided.")
136
- writer.add_short(data._hp)
137
- if data._max_hp is None:
138
- raise SerializationError("max_hp must be provided.")
139
- writer.add_short(data._max_hp)
140
- if data._tp is None:
141
- raise SerializationError("tp must be provided.")
142
- writer.add_short(data._tp)
143
- if data._max_tp is None:
144
- raise SerializationError("max_tp must be provided.")
145
- writer.add_short(data._max_tp)
146
- if data._base_stats is None:
147
- raise SerializationError("base_stats must be provided.")
148
- CharacterBaseStats.serialize(writer, data._base_stats)
149
- if data._secondary_stats is None:
150
- raise SerializationError("secondary_stats must be provided.")
151
- CharacterSecondaryStats.serialize(writer, data._secondary_stats)
152
- if data._elemental_stats is None:
153
- raise SerializationError("elemental_stats must be provided.")
154
- CharacterElementalStats.serialize(writer, data._elemental_stats)
134
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
135
+ try:
136
+ if data._hp is None:
137
+ raise SerializationError("hp must be provided.")
138
+ writer.add_short(data._hp)
139
+ if data._max_hp is None:
140
+ raise SerializationError("max_hp must be provided.")
141
+ writer.add_short(data._max_hp)
142
+ if data._tp is None:
143
+ raise SerializationError("tp must be provided.")
144
+ writer.add_short(data._tp)
145
+ if data._max_tp is None:
146
+ raise SerializationError("max_tp must be provided.")
147
+ writer.add_short(data._max_tp)
148
+ if data._base_stats is None:
149
+ raise SerializationError("base_stats must be provided.")
150
+ CharacterBaseStats.serialize(writer, data._base_stats)
151
+ if data._secondary_stats is None:
152
+ raise SerializationError("secondary_stats must be provided.")
153
+ CharacterSecondaryStats.serialize(writer, data._secondary_stats)
154
+ if data._elemental_stats is None:
155
+ raise SerializationError("elemental_stats must be provided.")
156
+ CharacterElementalStats.serialize(writer, data._elemental_stats)
157
+ finally:
158
+ writer.string_sanitization_mode = old_string_sanitization_mode
155
159
 
156
160
  @staticmethod
157
161
  def deserialize(reader: EoReader) -> "CharacterStatsInfoLookup":
@@ -172,33 +172,37 @@ class CharacterStatsReset:
172
172
  writer (EoWriter): The writer that the data will be serialized to.
173
173
  data (CharacterStatsReset): The data to serialize.
174
174
  """
175
- if data._stat_points is None:
176
- raise SerializationError("stat_points must be provided.")
177
- writer.add_short(data._stat_points)
178
- if data._skill_points is None:
179
- raise SerializationError("skill_points must be provided.")
180
- writer.add_short(data._skill_points)
181
- if data._hp is None:
182
- raise SerializationError("hp must be provided.")
183
- writer.add_short(data._hp)
184
- if data._max_hp is None:
185
- raise SerializationError("max_hp must be provided.")
186
- writer.add_short(data._max_hp)
187
- if data._tp is None:
188
- raise SerializationError("tp must be provided.")
189
- writer.add_short(data._tp)
190
- if data._max_tp is None:
191
- raise SerializationError("max_tp must be provided.")
192
- writer.add_short(data._max_tp)
193
- if data._max_sp is None:
194
- raise SerializationError("max_sp must be provided.")
195
- writer.add_short(data._max_sp)
196
- if data._base is None:
197
- raise SerializationError("base must be provided.")
198
- CharacterBaseStats.serialize(writer, data._base)
199
- if data._secondary is None:
200
- raise SerializationError("secondary must be provided.")
201
- CharacterSecondaryStats.serialize(writer, data._secondary)
175
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
176
+ try:
177
+ if data._stat_points is None:
178
+ raise SerializationError("stat_points must be provided.")
179
+ writer.add_short(data._stat_points)
180
+ if data._skill_points is None:
181
+ raise SerializationError("skill_points must be provided.")
182
+ writer.add_short(data._skill_points)
183
+ if data._hp is None:
184
+ raise SerializationError("hp must be provided.")
185
+ writer.add_short(data._hp)
186
+ if data._max_hp is None:
187
+ raise SerializationError("max_hp must be provided.")
188
+ writer.add_short(data._max_hp)
189
+ if data._tp is None:
190
+ raise SerializationError("tp must be provided.")
191
+ writer.add_short(data._tp)
192
+ if data._max_tp is None:
193
+ raise SerializationError("max_tp must be provided.")
194
+ writer.add_short(data._max_tp)
195
+ if data._max_sp is None:
196
+ raise SerializationError("max_sp must be provided.")
197
+ writer.add_short(data._max_sp)
198
+ if data._base is None:
199
+ raise SerializationError("base must be provided.")
200
+ CharacterBaseStats.serialize(writer, data._base)
201
+ if data._secondary is None:
202
+ raise SerializationError("secondary must be provided.")
203
+ CharacterSecondaryStats.serialize(writer, data._secondary)
204
+ finally:
205
+ writer.string_sanitization_mode = old_string_sanitization_mode
202
206
 
203
207
  @staticmethod
204
208
  def deserialize(reader: EoReader) -> "CharacterStatsReset":