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
@@ -11,6 +11,9 @@ from .....data.eo_writer import EoWriter
11
11
  from .....data.eo_reader import EoReader
12
12
 
13
13
  class BankReplyServerPacket(Packet):
14
+ """
15
+ Update gold counts after deposit/withdraw
16
+ """
14
17
  _byte_size: int = 0
15
18
  _gold_inventory: int = None # type: ignore [assignment]
16
19
  _gold_bank: int = None # type: ignore [assignment]
@@ -95,12 +98,16 @@ class BankReplyServerPacket(Packet):
95
98
  writer (EoWriter): The writer that the data will be serialized to.
96
99
  data (BankReplyServerPacket): The data to serialize.
97
100
  """
98
- if data._gold_inventory is None:
99
- raise SerializationError("gold_inventory must be provided.")
100
- writer.add_int(data._gold_inventory)
101
- if data._gold_bank is None:
102
- raise SerializationError("gold_bank must be provided.")
103
- writer.add_int(data._gold_bank)
101
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
102
+ try:
103
+ if data._gold_inventory is None:
104
+ raise SerializationError("gold_inventory must be provided.")
105
+ writer.add_int(data._gold_inventory)
106
+ if data._gold_bank is None:
107
+ raise SerializationError("gold_bank must be provided.")
108
+ writer.add_int(data._gold_bank)
109
+ finally:
110
+ writer.string_sanitization_mode = old_string_sanitization_mode
104
111
 
105
112
  @staticmethod
106
113
  def deserialize(reader: EoReader) -> "BankReplyServerPacket":
@@ -12,6 +12,9 @@ from .....data.eo_writer import EoWriter
12
12
  from .....data.eo_reader import EoReader
13
13
 
14
14
  class BarberAgreeServerPacket(Packet):
15
+ """
16
+ Purchasing a new hair style
17
+ """
15
18
  _byte_size: int = 0
16
19
  _gold_amount: int = None # type: ignore [assignment]
17
20
  _change: AvatarChange = None # type: ignore [assignment]
@@ -88,12 +91,16 @@ class BarberAgreeServerPacket(Packet):
88
91
  writer (EoWriter): The writer that the data will be serialized to.
89
92
  data (BarberAgreeServerPacket): The data to serialize.
90
93
  """
91
- if data._gold_amount is None:
92
- raise SerializationError("gold_amount must be provided.")
93
- writer.add_int(data._gold_amount)
94
- if data._change is None:
95
- raise SerializationError("change must be provided.")
96
- AvatarChange.serialize(writer, data._change)
94
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
95
+ try:
96
+ if data._gold_amount is None:
97
+ raise SerializationError("gold_amount must be provided.")
98
+ writer.add_int(data._gold_amount)
99
+ if data._change is None:
100
+ raise SerializationError("change must be provided.")
101
+ AvatarChange.serialize(writer, data._change)
102
+ finally:
103
+ writer.string_sanitization_mode = old_string_sanitization_mode
97
104
 
98
105
  @staticmethod
99
106
  def deserialize(reader: EoReader) -> "BarberAgreeServerPacket":
@@ -11,6 +11,9 @@ from .....data.eo_writer import EoWriter
11
11
  from .....data.eo_reader import EoReader
12
12
 
13
13
  class BarberOpenServerPacket(Packet):
14
+ """
15
+ Response from talking to a barber NPC
16
+ """
14
17
  _byte_size: int = 0
15
18
  _session_id: int = None # type: ignore [assignment]
16
19
 
@@ -78,9 +81,13 @@ class BarberOpenServerPacket(Packet):
78
81
  writer (EoWriter): The writer that the data will be serialized to.
79
82
  data (BarberOpenServerPacket): The data to serialize.
80
83
  """
81
- if data._session_id is None:
82
- raise SerializationError("session_id must be provided.")
83
- writer.add_int(data._session_id)
84
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
85
+ try:
86
+ if data._session_id is None:
87
+ raise SerializationError("session_id must be provided.")
88
+ writer.add_int(data._session_id)
89
+ finally:
90
+ writer.string_sanitization_mode = old_string_sanitization_mode
84
91
 
85
92
  @staticmethod
86
93
  def deserialize(reader: EoReader) -> "BarberOpenServerPacket":
@@ -66,12 +66,16 @@ class BigCoords:
66
66
  writer (EoWriter): The writer that the data will be serialized to.
67
67
  data (BigCoords): The data to serialize.
68
68
  """
69
- if data._x is None:
70
- raise SerializationError("x must be provided.")
71
- writer.add_short(data._x)
72
- if data._y is None:
73
- raise SerializationError("y must be provided.")
74
- writer.add_short(data._y)
69
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
70
+ try:
71
+ if data._x is None:
72
+ raise SerializationError("x must be provided.")
73
+ writer.add_short(data._x)
74
+ if data._y is None:
75
+ raise SerializationError("y must be provided.")
76
+ writer.add_short(data._y)
77
+ finally:
78
+ writer.string_sanitization_mode = old_string_sanitization_mode
75
79
 
76
80
  @staticmethod
77
81
  def deserialize(reader: EoReader) -> "BigCoords":
@@ -13,6 +13,9 @@ from .....data.eo_writer import EoWriter
13
13
  from .....data.eo_reader import EoReader
14
14
 
15
15
  class BoardOpenServerPacket(Packet):
16
+ """
17
+ Reply to opening a town board
18
+ """
16
19
  _byte_size: int = 0
17
20
  _board_id: int = None # type: ignore [assignment]
18
21
  _posts_count: int = None # type: ignore [assignment]
@@ -99,20 +102,25 @@ class BoardOpenServerPacket(Packet):
99
102
  writer (EoWriter): The writer that the data will be serialized to.
100
103
  data (BoardOpenServerPacket): The data to serialize.
101
104
  """
102
- if data._board_id is None:
103
- raise SerializationError("board_id must be provided.")
104
- writer.add_char(data._board_id)
105
- if data._posts_count is None:
106
- raise SerializationError("posts_count must be provided.")
107
- writer.add_char(data._posts_count)
108
- if data._posts is None:
109
- raise SerializationError("posts must be provided.")
110
- if len(data._posts) > 252:
111
- raise SerializationError(f"Expected length of posts to be 252 or less, got {len(data._posts)}.")
112
- for i in range(data._posts_count):
113
- if i > 0:
105
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
106
+ try:
107
+ writer.string_sanitization_mode = True
108
+ if data._board_id is None:
109
+ raise SerializationError("board_id must be provided.")
110
+ writer.add_char(data._board_id)
111
+ if data._posts_count is None:
112
+ raise SerializationError("posts_count must be provided.")
113
+ writer.add_char(data._posts_count)
114
+ if data._posts is None:
115
+ raise SerializationError("posts must be provided.")
116
+ if len(data._posts) > 252:
117
+ raise SerializationError(f"Expected length of posts to be 252 or less, got {len(data._posts)}.")
118
+ for i in range(data._posts_count):
119
+ BoardPostListing.serialize(writer, data._posts[i])
114
120
  writer.add_byte(0xFF)
115
- BoardPostListing.serialize(writer, data._posts[i])
121
+ writer.string_sanitization_mode = False
122
+ finally:
123
+ writer.string_sanitization_mode = old_string_sanitization_mode
116
124
 
117
125
  @staticmethod
118
126
  def deserialize(reader: EoReader) -> "BoardOpenServerPacket":
@@ -135,8 +143,7 @@ class BoardOpenServerPacket(Packet):
135
143
  data._posts = []
136
144
  for i in range(data._posts_count):
137
145
  data._posts.append(BoardPostListing.deserialize(reader))
138
- if i + 1 < data._posts_count:
139
- reader.next_chunk()
146
+ reader.next_chunk()
140
147
  reader.chunked_reading_mode = False
141
148
  data._byte_size = reader.position - reader_start_position
142
149
  return data
@@ -11,6 +11,9 @@ from .....data.eo_writer import EoWriter
11
11
  from .....data.eo_reader import EoReader
12
12
 
13
13
  class BoardPlayerServerPacket(Packet):
14
+ """
15
+ Reply to reading a post on a town board
16
+ """
14
17
  _byte_size: int = 0
15
18
  _post_id: int = None # type: ignore [assignment]
16
19
  _post_body: str = None # type: ignore [assignment]
@@ -87,12 +90,18 @@ class BoardPlayerServerPacket(Packet):
87
90
  writer (EoWriter): The writer that the data will be serialized to.
88
91
  data (BoardPlayerServerPacket): The data to serialize.
89
92
  """
90
- if data._post_id is None:
91
- raise SerializationError("post_id must be provided.")
92
- writer.add_short(data._post_id)
93
- if data._post_body is None:
94
- raise SerializationError("post_body must be provided.")
95
- writer.add_string(data._post_body)
93
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
94
+ try:
95
+ writer.string_sanitization_mode = True
96
+ if data._post_id is None:
97
+ raise SerializationError("post_id must be provided.")
98
+ writer.add_short(data._post_id)
99
+ if data._post_body is None:
100
+ raise SerializationError("post_body must be provided.")
101
+ writer.add_string(data._post_body)
102
+ writer.string_sanitization_mode = False
103
+ finally:
104
+ writer.string_sanitization_mode = old_string_sanitization_mode
96
105
 
97
106
  @staticmethod
98
107
  def deserialize(reader: EoReader) -> "BoardPlayerServerPacket":
@@ -67,17 +67,23 @@ class BoardPostListing:
67
67
  writer (EoWriter): The writer that the data will be serialized to.
68
68
  data (BoardPostListing): The data to serialize.
69
69
  """
70
- if data._post_id is None:
71
- raise SerializationError("post_id must be provided.")
72
- writer.add_short(data._post_id)
73
- writer.add_byte(0xFF)
74
- if data._author is None:
75
- raise SerializationError("author must be provided.")
76
- writer.add_string(data._author)
77
- writer.add_byte(0xFF)
78
- if data._subject is None:
79
- raise SerializationError("subject must be provided.")
80
- writer.add_string(data._subject)
70
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
71
+ try:
72
+ writer.string_sanitization_mode = True
73
+ if data._post_id is None:
74
+ raise SerializationError("post_id must be provided.")
75
+ writer.add_short(data._post_id)
76
+ writer.add_byte(0xFF)
77
+ if data._author is None:
78
+ raise SerializationError("author must be provided.")
79
+ writer.add_string(data._author)
80
+ writer.add_byte(0xFF)
81
+ if data._subject is None:
82
+ raise SerializationError("subject must be provided.")
83
+ writer.add_string(data._subject)
84
+ writer.string_sanitization_mode = False
85
+ finally:
86
+ writer.string_sanitization_mode = old_string_sanitization_mode
81
87
 
82
88
  @staticmethod
83
89
  def deserialize(reader: EoReader) -> "BoardPostListing":
@@ -14,6 +14,9 @@ from .....data.eo_writer import EoWriter
14
14
  from .....data.eo_reader import EoReader
15
15
 
16
16
  class BookReplyServerPacket(Packet):
17
+ """
18
+ Reply to requesting a book
19
+ """
17
20
  _byte_size: int = 0
18
21
  _details: CharacterDetails = None # type: ignore [assignment]
19
22
  _icon: CharacterIcon = None # type: ignore [assignment]
@@ -91,19 +94,24 @@ class BookReplyServerPacket(Packet):
91
94
  writer (EoWriter): The writer that the data will be serialized to.
92
95
  data (BookReplyServerPacket): The data to serialize.
93
96
  """
94
- if data._details is None:
95
- raise SerializationError("details must be provided.")
96
- CharacterDetails.serialize(writer, data._details)
97
- if data._icon is None:
98
- raise SerializationError("icon must be provided.")
99
- writer.add_char(int(data._icon))
100
- writer.add_byte(0xFF)
101
- if data._quest_names is None:
102
- raise SerializationError("quest_names must be provided.")
103
- for i in range(len(data._quest_names)):
104
- if i > 0:
97
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
98
+ try:
99
+ writer.string_sanitization_mode = True
100
+ if data._details is None:
101
+ raise SerializationError("details must be provided.")
102
+ CharacterDetails.serialize(writer, data._details)
103
+ if data._icon is None:
104
+ raise SerializationError("icon must be provided.")
105
+ writer.add_char(int(data._icon))
106
+ writer.add_byte(0xFF)
107
+ if data._quest_names is None:
108
+ raise SerializationError("quest_names must be provided.")
109
+ for i in range(len(data._quest_names)):
110
+ writer.add_string(data._quest_names[i])
105
111
  writer.add_byte(0xFF)
106
- writer.add_string(data._quest_names[i])
112
+ writer.string_sanitization_mode = False
113
+ finally:
114
+ writer.string_sanitization_mode = old_string_sanitization_mode
107
115
 
108
116
  @staticmethod
109
117
  def deserialize(reader: EoReader) -> "BookReplyServerPacket":
@@ -13,6 +13,9 @@ from .....data.eo_writer import EoWriter
13
13
  from .....data.eo_reader import EoReader
14
14
 
15
15
  class CastAcceptServerPacket(Packet):
16
+ """
17
+ Nearby NPC killed by player spell and you leveled up
18
+ """
16
19
  _byte_size: int = 0
17
20
  _spell_id: int = None # type: ignore [assignment]
18
21
  _npc_killed_data: NpcKilledData = None # type: ignore [assignment]
@@ -132,21 +135,25 @@ class CastAcceptServerPacket(Packet):
132
135
  writer (EoWriter): The writer that the data will be serialized to.
133
136
  data (CastAcceptServerPacket): The data to serialize.
134
137
  """
135
- if data._spell_id is None:
136
- raise SerializationError("spell_id must be provided.")
137
- writer.add_short(data._spell_id)
138
- if data._npc_killed_data is None:
139
- raise SerializationError("npc_killed_data must be provided.")
140
- NpcKilledData.serialize(writer, data._npc_killed_data)
141
- if data._caster_tp is None:
142
- raise SerializationError("caster_tp must be provided.")
143
- writer.add_short(data._caster_tp)
144
- if data._experience is None:
145
- raise SerializationError("experience must be provided.")
146
- writer.add_int(data._experience)
147
- if data._level_up is None:
148
- raise SerializationError("level_up must be provided.")
149
- LevelUpStats.serialize(writer, data._level_up)
138
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
139
+ try:
140
+ if data._spell_id is None:
141
+ raise SerializationError("spell_id must be provided.")
142
+ writer.add_short(data._spell_id)
143
+ if data._npc_killed_data is None:
144
+ raise SerializationError("npc_killed_data must be provided.")
145
+ NpcKilledData.serialize(writer, data._npc_killed_data)
146
+ if data._caster_tp is None:
147
+ raise SerializationError("caster_tp must be provided.")
148
+ writer.add_short(data._caster_tp)
149
+ if data._experience is None:
150
+ raise SerializationError("experience must be provided.")
151
+ writer.add_int(data._experience)
152
+ if data._level_up is None:
153
+ raise SerializationError("level_up must be provided.")
154
+ LevelUpStats.serialize(writer, data._level_up)
155
+ finally:
156
+ writer.string_sanitization_mode = old_string_sanitization_mode
150
157
 
151
158
  @staticmethod
152
159
  def deserialize(reader: EoReader) -> "CastAcceptServerPacket":
@@ -15,6 +15,9 @@ from .....data.eo_writer import EoWriter
15
15
  from .....data.eo_reader import EoReader
16
16
 
17
17
  class CastReplyServerPacket(Packet):
18
+ """
19
+ Nearby NPC hit by a spell from a player
20
+ """
18
21
  _byte_size: int = 0
19
22
  _spell_id: int = None # type: ignore [assignment]
20
23
  _caster_id: int = None # type: ignore [assignment]
@@ -185,30 +188,34 @@ class CastReplyServerPacket(Packet):
185
188
  writer (EoWriter): The writer that the data will be serialized to.
186
189
  data (CastReplyServerPacket): The data to serialize.
187
190
  """
188
- if data._spell_id is None:
189
- raise SerializationError("spell_id must be provided.")
190
- writer.add_short(data._spell_id)
191
- if data._caster_id is None:
192
- raise SerializationError("caster_id must be provided.")
193
- writer.add_short(data._caster_id)
194
- if data._caster_direction is None:
195
- raise SerializationError("caster_direction must be provided.")
196
- writer.add_char(int(data._caster_direction))
197
- if data._npc_index is None:
198
- raise SerializationError("npc_index must be provided.")
199
- writer.add_short(data._npc_index)
200
- if data._damage is None:
201
- raise SerializationError("damage must be provided.")
202
- writer.add_three(data._damage)
203
- if data._hp_percentage is None:
204
- raise SerializationError("hp_percentage must be provided.")
205
- writer.add_short(data._hp_percentage)
206
- if data._caster_tp is None:
207
- raise SerializationError("caster_tp must be provided.")
208
- writer.add_short(data._caster_tp)
209
- reached_missing_optional = data._kill_steal_protection is None
210
- if not reached_missing_optional:
211
- writer.add_char(int(cast(NpcKillStealProtectionState, data._kill_steal_protection)))
191
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
192
+ try:
193
+ if data._spell_id is None:
194
+ raise SerializationError("spell_id must be provided.")
195
+ writer.add_short(data._spell_id)
196
+ if data._caster_id is None:
197
+ raise SerializationError("caster_id must be provided.")
198
+ writer.add_short(data._caster_id)
199
+ if data._caster_direction is None:
200
+ raise SerializationError("caster_direction must be provided.")
201
+ writer.add_char(int(data._caster_direction))
202
+ if data._npc_index is None:
203
+ raise SerializationError("npc_index must be provided.")
204
+ writer.add_short(data._npc_index)
205
+ if data._damage is None:
206
+ raise SerializationError("damage must be provided.")
207
+ writer.add_three(data._damage)
208
+ if data._hp_percentage is None:
209
+ raise SerializationError("hp_percentage must be provided.")
210
+ writer.add_short(data._hp_percentage)
211
+ if data._caster_tp is None:
212
+ raise SerializationError("caster_tp must be provided.")
213
+ writer.add_short(data._caster_tp)
214
+ reached_missing_optional = data._kill_steal_protection is None
215
+ if not reached_missing_optional:
216
+ writer.add_char(int(cast(NpcKillStealProtectionState, data._kill_steal_protection)))
217
+ finally:
218
+ writer.string_sanitization_mode = old_string_sanitization_mode
212
219
 
213
220
  @staticmethod
214
221
  def deserialize(reader: EoReader) -> "CastReplyServerPacket":
@@ -14,6 +14,9 @@ from .....data.eo_writer import EoWriter
14
14
  from .....data.eo_reader import EoReader
15
15
 
16
16
  class CastSpecServerPacket(Packet):
17
+ """
18
+ Nearby NPC killed by player spell
19
+ """
17
20
  _byte_size: int = 0
18
21
  _spell_id: int = None # type: ignore [assignment]
19
22
  _npc_killed_data: NpcKilledData = None # type: ignore [assignment]
@@ -124,18 +127,22 @@ class CastSpecServerPacket(Packet):
124
127
  writer (EoWriter): The writer that the data will be serialized to.
125
128
  data (CastSpecServerPacket): The data to serialize.
126
129
  """
127
- if data._spell_id is None:
128
- raise SerializationError("spell_id must be provided.")
129
- writer.add_short(data._spell_id)
130
- if data._npc_killed_data is None:
131
- raise SerializationError("npc_killed_data must be provided.")
132
- NpcKilledData.serialize(writer, data._npc_killed_data)
133
- if data._caster_tp is None:
134
- raise SerializationError("caster_tp must be provided.")
135
- writer.add_short(data._caster_tp)
136
- reached_missing_optional = data._experience is None
137
- if not reached_missing_optional:
138
- writer.add_int(cast(int, data._experience))
130
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
131
+ try:
132
+ if data._spell_id is None:
133
+ raise SerializationError("spell_id must be provided.")
134
+ writer.add_short(data._spell_id)
135
+ if data._npc_killed_data is None:
136
+ raise SerializationError("npc_killed_data must be provided.")
137
+ NpcKilledData.serialize(writer, data._npc_killed_data)
138
+ if data._caster_tp is None:
139
+ raise SerializationError("caster_tp must be provided.")
140
+ writer.add_short(data._caster_tp)
141
+ reached_missing_optional = data._experience is None
142
+ if not reached_missing_optional:
143
+ writer.add_int(cast(int, data._experience))
144
+ finally:
145
+ writer.string_sanitization_mode = old_string_sanitization_mode
139
146
 
140
147
  @staticmethod
141
148
  def deserialize(reader: EoReader) -> "CastSpecServerPacket":
@@ -12,6 +12,9 @@ from .....data.eo_writer import EoWriter
12
12
  from .....data.eo_reader import EoReader
13
13
 
14
14
  class ChairCloseServerPacket(Packet):
15
+ """
16
+ Your character standing up from a chair
17
+ """
15
18
  _byte_size: int = 0
16
19
  _player_id: int = None # type: ignore [assignment]
17
20
  _coords: Coords = None # type: ignore [assignment]
@@ -88,12 +91,16 @@ class ChairCloseServerPacket(Packet):
88
91
  writer (EoWriter): The writer that the data will be serialized to.
89
92
  data (ChairCloseServerPacket): The data to serialize.
90
93
  """
91
- if data._player_id is None:
92
- raise SerializationError("player_id must be provided.")
93
- writer.add_short(data._player_id)
94
- if data._coords is None:
95
- raise SerializationError("coords must be provided.")
96
- Coords.serialize(writer, data._coords)
94
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
95
+ try:
96
+ if data._player_id is None:
97
+ raise SerializationError("player_id must be provided.")
98
+ writer.add_short(data._player_id)
99
+ if data._coords is None:
100
+ raise SerializationError("coords must be provided.")
101
+ Coords.serialize(writer, data._coords)
102
+ finally:
103
+ writer.string_sanitization_mode = old_string_sanitization_mode
97
104
 
98
105
  @staticmethod
99
106
  def deserialize(reader: EoReader) -> "ChairCloseServerPacket":
@@ -13,6 +13,9 @@ from .....data.eo_writer import EoWriter
13
13
  from .....data.eo_reader import EoReader
14
14
 
15
15
  class ChairPlayerServerPacket(Packet):
16
+ """
17
+ Nearby player sitting on a chair
18
+ """
16
19
  _byte_size: int = 0
17
20
  _player_id: int = None # type: ignore [assignment]
18
21
  _coords: Coords = None # type: ignore [assignment]
@@ -98,15 +101,19 @@ class ChairPlayerServerPacket(Packet):
98
101
  writer (EoWriter): The writer that the data will be serialized to.
99
102
  data (ChairPlayerServerPacket): The data to serialize.
100
103
  """
101
- if data._player_id is None:
102
- raise SerializationError("player_id must be provided.")
103
- writer.add_short(data._player_id)
104
- if data._coords is None:
105
- raise SerializationError("coords must be provided.")
106
- Coords.serialize(writer, data._coords)
107
- if data._direction is None:
108
- raise SerializationError("direction must be provided.")
109
- writer.add_char(int(data._direction))
104
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
105
+ try:
106
+ if data._player_id is None:
107
+ raise SerializationError("player_id must be provided.")
108
+ writer.add_short(data._player_id)
109
+ if data._coords is None:
110
+ raise SerializationError("coords must be provided.")
111
+ Coords.serialize(writer, data._coords)
112
+ if data._direction is None:
113
+ raise SerializationError("direction must be provided.")
114
+ writer.add_char(int(data._direction))
115
+ finally:
116
+ writer.string_sanitization_mode = old_string_sanitization_mode
110
117
 
111
118
  @staticmethod
112
119
  def deserialize(reader: EoReader) -> "ChairPlayerServerPacket":
@@ -12,6 +12,9 @@ from .....data.eo_writer import EoWriter
12
12
  from .....data.eo_reader import EoReader
13
13
 
14
14
  class ChairRemoveServerPacket(Packet):
15
+ """
16
+ Nearby player standing up from a chair
17
+ """
15
18
  _byte_size: int = 0
16
19
  _player_id: int = None # type: ignore [assignment]
17
20
  _coords: Coords = None # type: ignore [assignment]
@@ -88,12 +91,16 @@ class ChairRemoveServerPacket(Packet):
88
91
  writer (EoWriter): The writer that the data will be serialized to.
89
92
  data (ChairRemoveServerPacket): The data to serialize.
90
93
  """
91
- if data._player_id is None:
92
- raise SerializationError("player_id must be provided.")
93
- writer.add_short(data._player_id)
94
- if data._coords is None:
95
- raise SerializationError("coords must be provided.")
96
- Coords.serialize(writer, data._coords)
94
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
95
+ try:
96
+ if data._player_id is None:
97
+ raise SerializationError("player_id must be provided.")
98
+ writer.add_short(data._player_id)
99
+ if data._coords is None:
100
+ raise SerializationError("coords must be provided.")
101
+ Coords.serialize(writer, data._coords)
102
+ finally:
103
+ writer.string_sanitization_mode = old_string_sanitization_mode
97
104
 
98
105
  @staticmethod
99
106
  def deserialize(reader: EoReader) -> "ChairRemoveServerPacket":
@@ -13,6 +13,9 @@ from .....data.eo_writer import EoWriter
13
13
  from .....data.eo_reader import EoReader
14
14
 
15
15
  class ChairReplyServerPacket(Packet):
16
+ """
17
+ Your character sitting on a chair
18
+ """
16
19
  _byte_size: int = 0
17
20
  _player_id: int = None # type: ignore [assignment]
18
21
  _coords: Coords = None # type: ignore [assignment]
@@ -98,15 +101,19 @@ class ChairReplyServerPacket(Packet):
98
101
  writer (EoWriter): The writer that the data will be serialized to.
99
102
  data (ChairReplyServerPacket): The data to serialize.
100
103
  """
101
- if data._player_id is None:
102
- raise SerializationError("player_id must be provided.")
103
- writer.add_short(data._player_id)
104
- if data._coords is None:
105
- raise SerializationError("coords must be provided.")
106
- Coords.serialize(writer, data._coords)
107
- if data._direction is None:
108
- raise SerializationError("direction must be provided.")
109
- writer.add_char(int(data._direction))
104
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
105
+ try:
106
+ if data._player_id is None:
107
+ raise SerializationError("player_id must be provided.")
108
+ writer.add_short(data._player_id)
109
+ if data._coords is None:
110
+ raise SerializationError("coords must be provided.")
111
+ Coords.serialize(writer, data._coords)
112
+ if data._direction is None:
113
+ raise SerializationError("direction must be provided.")
114
+ writer.add_char(int(data._direction))
115
+ finally:
116
+ writer.string_sanitization_mode = old_string_sanitization_mode
110
117
 
111
118
  @staticmethod
112
119
  def deserialize(reader: EoReader) -> "ChairReplyServerPacket":