eolib 1.1.1__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 (431) hide show
  1. eolib/__about__.py +1 -1
  2. eolib/protocol/_generated/coords.py +10 -6
  3. eolib/protocol/_generated/emote.py +1 -1
  4. eolib/protocol/_generated/map/emf.py +113 -109
  5. eolib/protocol/_generated/map/map_graphic_layer.py +13 -9
  6. eolib/protocol/_generated/map/map_graphic_row.py +16 -12
  7. eolib/protocol/_generated/map/map_graphic_row_tile.py +10 -6
  8. eolib/protocol/_generated/map/map_item.py +22 -18
  9. eolib/protocol/_generated/map/map_legacy_door_key.py +10 -6
  10. eolib/protocol/_generated/map/map_npc.py +19 -15
  11. eolib/protocol/_generated/map/map_sign.py +18 -14
  12. eolib/protocol/_generated/map/map_tile_spec_row.py +16 -12
  13. eolib/protocol/_generated/map/map_tile_spec_row_tile.py +10 -6
  14. eolib/protocol/_generated/map/map_warp.py +16 -12
  15. eolib/protocol/_generated/map/map_warp_row.py +16 -12
  16. eolib/protocol/_generated/map/map_warp_row_tile.py +10 -6
  17. eolib/protocol/_generated/net/char_item.py +10 -6
  18. eolib/protocol/_generated/net/client/account_agree_client_packet.py +18 -12
  19. eolib/protocol/_generated/net/client/account_create_client_packet.py +38 -32
  20. eolib/protocol/_generated/net/client/account_request_client_packet.py +7 -3
  21. eolib/protocol/_generated/net/client/admin_interact_report_client_packet.py +13 -7
  22. eolib/protocol/_generated/net/client/admin_interact_tell_client_packet.py +7 -3
  23. eolib/protocol/_generated/net/client/attack_use_client_packet.py +10 -6
  24. eolib/protocol/_generated/net/client/bank_add_client_packet.py +10 -6
  25. eolib/protocol/_generated/net/client/bank_open_client_packet.py +7 -3
  26. eolib/protocol/_generated/net/client/bank_take_client_packet.py +10 -6
  27. eolib/protocol/_generated/net/client/barber_buy_client_packet.py +13 -9
  28. eolib/protocol/_generated/net/client/barber_open_client_packet.py +7 -3
  29. eolib/protocol/_generated/net/client/board_create_client_packet.py +18 -12
  30. eolib/protocol/_generated/net/client/board_open_client_packet.py +7 -3
  31. eolib/protocol/_generated/net/client/board_remove_client_packet.py +10 -6
  32. eolib/protocol/_generated/net/client/board_take_client_packet.py +10 -6
  33. eolib/protocol/_generated/net/client/book_request_client_packet.py +8 -4
  34. eolib/protocol/_generated/net/client/byte_coords.py +10 -6
  35. eolib/protocol/_generated/net/client/chair_request_client_packet.py +21 -14
  36. eolib/protocol/_generated/net/client/character_create_client_packet.py +26 -20
  37. eolib/protocol/_generated/net/client/character_remove_client_packet.py +10 -6
  38. eolib/protocol/_generated/net/client/character_request_client_packet.py +8 -2
  39. eolib/protocol/_generated/net/client/character_take_client_packet.py +7 -3
  40. eolib/protocol/_generated/net/client/chest_add_client_packet.py +10 -6
  41. eolib/protocol/_generated/net/client/chest_open_client_packet.py +7 -3
  42. eolib/protocol/_generated/net/client/chest_take_client_packet.py +10 -6
  43. eolib/protocol/_generated/net/client/citizen_accept_client_packet.py +10 -6
  44. eolib/protocol/_generated/net/client/citizen_open_client_packet.py +7 -3
  45. eolib/protocol/_generated/net/client/citizen_remove_client_packet.py +7 -3
  46. eolib/protocol/_generated/net/client/citizen_reply_client_packet.py +22 -16
  47. eolib/protocol/_generated/net/client/citizen_request_client_packet.py +10 -6
  48. eolib/protocol/_generated/net/client/connection_accept_client_packet.py +13 -9
  49. eolib/protocol/_generated/net/client/connection_ping_client_packet.py +5 -4
  50. eolib/protocol/_generated/net/client/door_open_client_packet.py +7 -3
  51. eolib/protocol/_generated/net/client/emote_report_client_packet.py +7 -3
  52. eolib/protocol/_generated/net/client/face_player_client_packet.py +7 -3
  53. eolib/protocol/_generated/net/client/global_close_client_packet.py +5 -4
  54. eolib/protocol/_generated/net/client/global_open_client_packet.py +5 -4
  55. eolib/protocol/_generated/net/client/global_player_client_packet.py +5 -4
  56. eolib/protocol/_generated/net/client/global_remove_client_packet.py +5 -4
  57. eolib/protocol/_generated/net/client/guild_accept_client_packet.py +8 -4
  58. eolib/protocol/_generated/net/client/guild_agree_client_packet.py +41 -30
  59. eolib/protocol/_generated/net/client/guild_buy_client_packet.py +10 -6
  60. eolib/protocol/_generated/net/client/guild_create_client_packet.py +22 -16
  61. eolib/protocol/_generated/net/client/guild_junk_client_packet.py +7 -3
  62. eolib/protocol/_generated/net/client/guild_kick_client_packet.py +10 -6
  63. eolib/protocol/_generated/net/client/guild_open_client_packet.py +7 -3
  64. eolib/protocol/_generated/net/client/guild_player_client_packet.py +18 -12
  65. eolib/protocol/_generated/net/client/guild_rank_client_packet.py +14 -10
  66. eolib/protocol/_generated/net/client/guild_remove_client_packet.py +7 -3
  67. eolib/protocol/_generated/net/client/guild_report_client_packet.py +10 -6
  68. eolib/protocol/_generated/net/client/guild_request_client_packet.py +18 -12
  69. eolib/protocol/_generated/net/client/guild_take_client_packet.py +34 -7
  70. eolib/protocol/_generated/net/client/guild_tell_client_packet.py +10 -6
  71. eolib/protocol/_generated/net/client/guild_use_client_packet.py +7 -3
  72. eolib/protocol/_generated/net/client/init_init_client_packet.py +19 -15
  73. eolib/protocol/_generated/net/client/item_drop_client_packet.py +12 -8
  74. eolib/protocol/_generated/net/client/item_get_client_packet.py +7 -3
  75. eolib/protocol/_generated/net/client/item_junk_client_packet.py +7 -3
  76. eolib/protocol/_generated/net/client/item_use_client_packet.py +7 -3
  77. eolib/protocol/_generated/net/client/jukebox_msg_client_packet.py +13 -7
  78. eolib/protocol/_generated/net/client/jukebox_open_client_packet.py +7 -3
  79. eolib/protocol/_generated/net/client/jukebox_use_client_packet.py +10 -6
  80. eolib/protocol/_generated/net/client/locker_add_client_packet.py +10 -6
  81. eolib/protocol/_generated/net/client/locker_buy_client_packet.py +5 -4
  82. eolib/protocol/_generated/net/client/locker_open_client_packet.py +7 -3
  83. eolib/protocol/_generated/net/client/locker_take_client_packet.py +10 -6
  84. eolib/protocol/_generated/net/client/login_request_client_packet.py +14 -8
  85. eolib/protocol/_generated/net/client/marriage_open_client_packet.py +7 -3
  86. eolib/protocol/_generated/net/client/marriage_request_client_packet.py +16 -10
  87. eolib/protocol/_generated/net/client/message_ping_client_packet.py +5 -4
  88. eolib/protocol/_generated/net/client/npc_range_request_client_packet.py +14 -10
  89. eolib/protocol/_generated/net/client/paperdoll_add_client_packet.py +10 -6
  90. eolib/protocol/_generated/net/client/paperdoll_remove_client_packet.py +10 -6
  91. eolib/protocol/_generated/net/client/paperdoll_request_client_packet.py +8 -4
  92. eolib/protocol/_generated/net/client/party_accept_client_packet.py +10 -6
  93. eolib/protocol/_generated/net/client/party_remove_client_packet.py +7 -3
  94. eolib/protocol/_generated/net/client/party_request_client_packet.py +10 -6
  95. eolib/protocol/_generated/net/client/party_take_client_packet.py +7 -3
  96. eolib/protocol/_generated/net/client/player_range_request_client_packet.py +8 -4
  97. eolib/protocol/_generated/net/client/players_accept_client_packet.py +7 -3
  98. eolib/protocol/_generated/net/client/players_list_client_packet.py +5 -4
  99. eolib/protocol/_generated/net/client/players_request_client_packet.py +5 -4
  100. eolib/protocol/_generated/net/client/priest_accept_client_packet.py +7 -3
  101. eolib/protocol/_generated/net/client/priest_open_client_packet.py +7 -3
  102. eolib/protocol/_generated/net/client/priest_request_client_packet.py +13 -7
  103. eolib/protocol/_generated/net/client/priest_use_client_packet.py +8 -4
  104. eolib/protocol/_generated/net/client/quest_accept_client_packet.py +33 -26
  105. eolib/protocol/_generated/net/client/quest_list_client_packet.py +7 -3
  106. eolib/protocol/_generated/net/client/quest_use_client_packet.py +10 -6
  107. eolib/protocol/_generated/net/client/range_request_client_packet.py +15 -9
  108. eolib/protocol/_generated/net/client/refresh_request_client_packet.py +5 -4
  109. eolib/protocol/_generated/net/client/shop_buy_client_packet.py +10 -6
  110. eolib/protocol/_generated/net/client/shop_create_client_packet.py +10 -6
  111. eolib/protocol/_generated/net/client/shop_open_client_packet.py +7 -3
  112. eolib/protocol/_generated/net/client/shop_sell_client_packet.py +10 -6
  113. eolib/protocol/_generated/net/client/sit_request_client_packet.py +21 -14
  114. eolib/protocol/_generated/net/client/spell_request_client_packet.py +10 -6
  115. eolib/protocol/_generated/net/client/spell_target_group_client_packet.py +10 -6
  116. eolib/protocol/_generated/net/client/spell_target_other_client_packet.py +19 -15
  117. eolib/protocol/_generated/net/client/spell_target_self_client_packet.py +13 -9
  118. eolib/protocol/_generated/net/client/spell_use_client_packet.py +7 -3
  119. eolib/protocol/_generated/net/client/stat_skill_add_client_packet.py +32 -21
  120. eolib/protocol/_generated/net/client/stat_skill_junk_client_packet.py +7 -3
  121. eolib/protocol/_generated/net/client/stat_skill_open_client_packet.py +7 -3
  122. eolib/protocol/_generated/net/client/stat_skill_remove_client_packet.py +10 -6
  123. eolib/protocol/_generated/net/client/stat_skill_take_client_packet.py +10 -6
  124. eolib/protocol/_generated/net/client/talk_admin_client_packet.py +7 -3
  125. eolib/protocol/_generated/net/client/talk_announce_client_packet.py +7 -3
  126. eolib/protocol/_generated/net/client/talk_msg_client_packet.py +7 -3
  127. eolib/protocol/_generated/net/client/talk_open_client_packet.py +7 -3
  128. eolib/protocol/_generated/net/client/talk_player_client_packet.py +7 -3
  129. eolib/protocol/_generated/net/client/talk_report_client_packet.py +7 -3
  130. eolib/protocol/_generated/net/client/talk_request_client_packet.py +7 -3
  131. eolib/protocol/_generated/net/client/talk_tell_client_packet.py +13 -7
  132. eolib/protocol/_generated/net/client/talk_use_client_packet.py +7 -3
  133. eolib/protocol/_generated/net/client/trade_accept_client_packet.py +8 -4
  134. eolib/protocol/_generated/net/client/trade_add_client_packet.py +7 -3
  135. eolib/protocol/_generated/net/client/trade_agree_client_packet.py +7 -3
  136. eolib/protocol/_generated/net/client/trade_close_client_packet.py +5 -4
  137. eolib/protocol/_generated/net/client/trade_remove_client_packet.py +7 -3
  138. eolib/protocol/_generated/net/client/trade_request_client_packet.py +8 -4
  139. eolib/protocol/_generated/net/client/walk_action.py +13 -9
  140. eolib/protocol/_generated/net/client/walk_admin_client_packet.py +7 -3
  141. eolib/protocol/_generated/net/client/walk_player_client_packet.py +7 -3
  142. eolib/protocol/_generated/net/client/walk_spec_client_packet.py +7 -3
  143. eolib/protocol/_generated/net/client/warp_accept_client_packet.py +10 -6
  144. eolib/protocol/_generated/net/client/warp_take_client_packet.py +10 -6
  145. eolib/protocol/_generated/net/client/welcome_agree_client_packet.py +68 -45
  146. eolib/protocol/_generated/net/client/welcome_msg_client_packet.py +10 -6
  147. eolib/protocol/_generated/net/client/welcome_request_client_packet.py +7 -3
  148. eolib/protocol/_generated/net/item.py +10 -6
  149. eolib/protocol/_generated/net/server/account_reply_server_packet.py +88 -57
  150. eolib/protocol/_generated/net/server/admin_interact_agree_server_packet.py +7 -3
  151. eolib/protocol/_generated/net/server/admin_interact_list_server_packet.py +27 -21
  152. eolib/protocol/_generated/net/server/admin_interact_remove_server_packet.py +7 -3
  153. eolib/protocol/_generated/net/server/admin_interact_reply_server_packet.py +49 -36
  154. eolib/protocol/_generated/net/server/admin_interact_tell_server_packet.py +33 -27
  155. eolib/protocol/_generated/net/server/arena_accept_server_packet.py +21 -15
  156. eolib/protocol/_generated/net/server/arena_drop_server_packet.py +6 -5
  157. eolib/protocol/_generated/net/server/arena_spec_server_packet.py +25 -19
  158. eolib/protocol/_generated/net/server/arena_use_server_packet.py +7 -3
  159. eolib/protocol/_generated/net/server/attack_error_server_packet.py +5 -4
  160. eolib/protocol/_generated/net/server/attack_player_server_packet.py +10 -6
  161. eolib/protocol/_generated/net/server/avatar_admin_server_packet.py +36 -32
  162. eolib/protocol/_generated/net/server/avatar_agree_server_packet.py +7 -3
  163. eolib/protocol/_generated/net/server/avatar_change.py +53 -38
  164. eolib/protocol/_generated/net/server/avatar_change_type.py +1 -1
  165. eolib/protocol/_generated/net/server/avatar_remove_server_packet.py +10 -6
  166. eolib/protocol/_generated/net/server/avatar_reply_server_packet.py +22 -18
  167. eolib/protocol/_generated/net/server/bank_open_server_packet.py +13 -9
  168. eolib/protocol/_generated/net/server/bank_reply_server_packet.py +10 -6
  169. eolib/protocol/_generated/net/server/barber_agree_server_packet.py +10 -6
  170. eolib/protocol/_generated/net/server/barber_open_server_packet.py +7 -3
  171. eolib/protocol/_generated/net/server/big_coords.py +10 -6
  172. eolib/protocol/_generated/net/server/board_open_server_packet.py +19 -15
  173. eolib/protocol/_generated/net/server/board_player_server_packet.py +12 -6
  174. eolib/protocol/_generated/net/server/board_post_listing.py +17 -11
  175. eolib/protocol/_generated/net/server/book_reply_server_packet.py +17 -12
  176. eolib/protocol/_generated/net/server/cast_accept_server_packet.py +19 -15
  177. eolib/protocol/_generated/net/server/cast_reply_server_packet.py +28 -24
  178. eolib/protocol/_generated/net/server/cast_spec_server_packet.py +16 -12
  179. eolib/protocol/_generated/net/server/chair_close_server_packet.py +10 -6
  180. eolib/protocol/_generated/net/server/chair_player_server_packet.py +13 -9
  181. eolib/protocol/_generated/net/server/chair_remove_server_packet.py +10 -6
  182. eolib/protocol/_generated/net/server/chair_reply_server_packet.py +13 -9
  183. eolib/protocol/_generated/net/server/character_base_stats.py +22 -18
  184. eolib/protocol/_generated/net/server/character_base_stats_welcome.py +22 -18
  185. eolib/protocol/_generated/net/server/character_details.py +42 -36
  186. eolib/protocol/_generated/net/server/character_elemental_stats.py +22 -18
  187. eolib/protocol/_generated/net/server/character_map_info.py +70 -64
  188. eolib/protocol/_generated/net/server/character_player_server_packet.py +10 -6
  189. eolib/protocol/_generated/net/server/character_reply_server_packet.py +108 -79
  190. eolib/protocol/_generated/net/server/character_secondary_stats.py +19 -15
  191. eolib/protocol/_generated/net/server/character_secondary_stats_info_lookup.py +19 -15
  192. eolib/protocol/_generated/net/server/character_selection_list_entry.py +34 -28
  193. eolib/protocol/_generated/net/server/character_stats_equipment_change.py +16 -12
  194. eolib/protocol/_generated/net/server/character_stats_info_lookup.py +25 -21
  195. eolib/protocol/_generated/net/server/character_stats_reset.py +31 -27
  196. eolib/protocol/_generated/net/server/character_stats_update.py +22 -18
  197. eolib/protocol/_generated/net/server/character_stats_welcome.py +34 -30
  198. eolib/protocol/_generated/net/server/chest_agree_server_packet.py +8 -4
  199. eolib/protocol/_generated/net/server/chest_close_server_packet.py +13 -6
  200. eolib/protocol/_generated/net/server/chest_get_server_packet.py +14 -10
  201. eolib/protocol/_generated/net/server/chest_open_server_packet.py +11 -7
  202. eolib/protocol/_generated/net/server/chest_reply_server_packet.py +17 -13
  203. eolib/protocol/_generated/net/server/chest_spec_server_packet.py +5 -4
  204. eolib/protocol/_generated/net/server/citizen_accept_server_packet.py +7 -3
  205. eolib/protocol/_generated/net/server/citizen_open_server_packet.py +24 -18
  206. eolib/protocol/_generated/net/server/citizen_remove_server_packet.py +7 -3
  207. eolib/protocol/_generated/net/server/citizen_reply_server_packet.py +7 -3
  208. eolib/protocol/_generated/net/server/citizen_request_server_packet.py +7 -3
  209. eolib/protocol/_generated/net/server/connection_player_server_packet.py +10 -6
  210. eolib/protocol/_generated/net/server/dialog_entry.py +24 -17
  211. eolib/protocol/_generated/net/server/dialog_quest_entry.py +10 -6
  212. eolib/protocol/_generated/net/server/door_close_server_packet.py +7 -3
  213. eolib/protocol/_generated/net/server/door_open_server_packet.py +8 -4
  214. eolib/protocol/_generated/net/server/effect_admin_server_packet.py +16 -12
  215. eolib/protocol/_generated/net/server/effect_agree_server_packet.py +10 -6
  216. eolib/protocol/_generated/net/server/effect_player_server_packet.py +10 -6
  217. eolib/protocol/_generated/net/server/effect_report_server_packet.py +5 -4
  218. eolib/protocol/_generated/net/server/effect_spec_server_packet.py +44 -33
  219. eolib/protocol/_generated/net/server/effect_target_other_server_packet.py +17 -13
  220. eolib/protocol/_generated/net/server/effect_use_server_packet.py +21 -14
  221. eolib/protocol/_generated/net/server/emote_player_server_packet.py +10 -6
  222. eolib/protocol/_generated/net/server/equipment_change.py +20 -16
  223. eolib/protocol/_generated/net/server/equipment_character_select.py +19 -15
  224. eolib/protocol/_generated/net/server/equipment_map_info.py +23 -19
  225. eolib/protocol/_generated/net/server/equipment_paperdoll.py +50 -46
  226. eolib/protocol/_generated/net/server/equipment_welcome.py +49 -45
  227. eolib/protocol/_generated/net/server/face_player_server_packet.py +10 -6
  228. eolib/protocol/_generated/net/server/global_backfill_message.py +13 -7
  229. eolib/protocol/_generated/net/server/group_heal_target_player.py +13 -9
  230. eolib/protocol/_generated/net/server/guild_accept_server_packet.py +7 -3
  231. eolib/protocol/_generated/net/server/guild_agree_server_packet.py +22 -16
  232. eolib/protocol/_generated/net/server/guild_buy_server_packet.py +8 -4
  233. eolib/protocol/_generated/net/server/guild_create_server_packet.py +25 -19
  234. eolib/protocol/_generated/net/server/guild_kick_server_packet.py +5 -4
  235. eolib/protocol/_generated/net/server/guild_member.py +17 -11
  236. eolib/protocol/_generated/net/server/guild_open_server_packet.py +7 -3
  237. eolib/protocol/_generated/net/server/guild_rank_server_packet.py +13 -9
  238. eolib/protocol/_generated/net/server/guild_reply_server_packet.py +46 -31
  239. eolib/protocol/_generated/net/server/guild_report_server_packet.py +44 -42
  240. eolib/protocol/_generated/net/server/guild_request_server_packet.py +10 -6
  241. eolib/protocol/_generated/net/server/guild_sell_server_packet.py +7 -3
  242. eolib/protocol/_generated/net/server/guild_staff.py +13 -7
  243. eolib/protocol/_generated/net/server/guild_take_server_packet.py +7 -3
  244. eolib/protocol/_generated/net/server/guild_tell_server_packet.py +17 -13
  245. eolib/protocol/_generated/net/server/init_ban_type.py +1 -1
  246. eolib/protocol/_generated/net/server/init_init_server_packet.py +186 -124
  247. eolib/protocol/_generated/net/server/init_reply.py +3 -0
  248. eolib/protocol/_generated/net/server/item_accept_server_packet.py +7 -3
  249. eolib/protocol/_generated/net/server/item_add_server_packet.py +16 -12
  250. eolib/protocol/_generated/net/server/item_agree_server_packet.py +8 -4
  251. eolib/protocol/_generated/net/server/item_drop_server_packet.py +19 -15
  252. eolib/protocol/_generated/net/server/item_get_server_packet.py +13 -9
  253. eolib/protocol/_generated/net/server/item_junk_server_packet.py +13 -9
  254. eolib/protocol/_generated/net/server/item_kick_server_packet.py +10 -6
  255. eolib/protocol/_generated/net/server/item_map_info.py +16 -12
  256. eolib/protocol/_generated/net/server/item_obtain_server_packet.py +10 -6
  257. eolib/protocol/_generated/net/server/item_remove_server_packet.py +7 -3
  258. eolib/protocol/_generated/net/server/item_reply_server_packet.py +97 -74
  259. eolib/protocol/_generated/net/server/item_spec_server_packet.py +5 -4
  260. eolib/protocol/_generated/net/server/jukebox_agree_server_packet.py +7 -3
  261. eolib/protocol/_generated/net/server/jukebox_msg_server_packet.py +16 -12
  262. eolib/protocol/_generated/net/server/jukebox_open_server_packet.py +10 -6
  263. eolib/protocol/_generated/net/server/jukebox_player_server_packet.py +7 -3
  264. eolib/protocol/_generated/net/server/jukebox_reply_server_packet.py +5 -4
  265. eolib/protocol/_generated/net/server/jukebox_use_server_packet.py +11 -3
  266. eolib/protocol/_generated/net/server/level_up_stats.py +22 -18
  267. eolib/protocol/_generated/net/server/locker_buy_server_packet.py +10 -6
  268. eolib/protocol/_generated/net/server/locker_get_server_packet.py +14 -10
  269. eolib/protocol/_generated/net/server/locker_open_server_packet.py +11 -7
  270. eolib/protocol/_generated/net/server/locker_reply_server_packet.py +14 -10
  271. eolib/protocol/_generated/net/server/locker_spec_server_packet.py +7 -3
  272. eolib/protocol/_generated/net/server/login_reply.py +6 -0
  273. eolib/protocol/_generated/net/server/login_reply_server_packet.py +77 -50
  274. eolib/protocol/_generated/net/server/map_drain_damage_other.py +13 -9
  275. eolib/protocol/_generated/net/server/map_file.py +7 -3
  276. eolib/protocol/_generated/net/server/marriage_open_server_packet.py +7 -3
  277. eolib/protocol/_generated/net/server/marriage_reply_server_packet.py +21 -14
  278. eolib/protocol/_generated/net/server/message_accept_server_packet.py +13 -9
  279. eolib/protocol/_generated/net/server/message_close_server_packet.py +5 -4
  280. eolib/protocol/_generated/net/server/message_open_server_packet.py +7 -3
  281. eolib/protocol/_generated/net/server/message_pong_server_packet.py +5 -4
  282. eolib/protocol/_generated/net/server/music_player_server_packet.py +7 -3
  283. eolib/protocol/_generated/net/server/nearby_info.py +26 -22
  284. eolib/protocol/_generated/net/server/npc_accept_server_packet.py +13 -9
  285. eolib/protocol/_generated/net/server/npc_agree_server_packet.py +16 -12
  286. eolib/protocol/_generated/net/server/npc_dialog_server_packet.py +10 -6
  287. eolib/protocol/_generated/net/server/npc_junk_server_packet.py +7 -3
  288. eolib/protocol/_generated/net/server/npc_killed_data.py +28 -24
  289. eolib/protocol/_generated/net/server/npc_map_info.py +16 -12
  290. eolib/protocol/_generated/net/server/npc_player_server_packet.py +27 -21
  291. eolib/protocol/_generated/net/server/npc_reply_server_packet.py +22 -18
  292. eolib/protocol/_generated/net/server/npc_spec_server_packet.py +10 -6
  293. eolib/protocol/_generated/net/server/npc_update_attack.py +22 -18
  294. eolib/protocol/_generated/net/server/npc_update_chat.py +15 -11
  295. eolib/protocol/_generated/net/server/npc_update_position.py +13 -9
  296. eolib/protocol/_generated/net/server/online_player.py +26 -20
  297. eolib/protocol/_generated/net/server/paperdoll_agree_server_packet.py +19 -15
  298. eolib/protocol/_generated/net/server/paperdoll_ping_server_packet.py +9 -5
  299. eolib/protocol/_generated/net/server/paperdoll_remove_server_packet.py +16 -12
  300. eolib/protocol/_generated/net/server/paperdoll_reply_server_packet.py +15 -9
  301. eolib/protocol/_generated/net/server/party_add_server_packet.py +7 -3
  302. eolib/protocol/_generated/net/server/party_agree_server_packet.py +10 -6
  303. eolib/protocol/_generated/net/server/party_close_server_packet.py +5 -4
  304. eolib/protocol/_generated/net/server/party_create_server_packet.py +10 -5
  305. eolib/protocol/_generated/net/server/party_exp_share.py +16 -12
  306. eolib/protocol/_generated/net/server/party_list_server_packet.py +10 -5
  307. eolib/protocol/_generated/net/server/party_member.py +20 -16
  308. eolib/protocol/_generated/net/server/party_remove_server_packet.py +7 -3
  309. eolib/protocol/_generated/net/server/party_reply_server_packet.py +32 -21
  310. eolib/protocol/_generated/net/server/party_request_server_packet.py +13 -9
  311. eolib/protocol/_generated/net/server/party_target_group_server_packet.py +8 -4
  312. eolib/protocol/_generated/net/server/players_agree_server_packet.py +7 -3
  313. eolib/protocol/_generated/net/server/players_list.py +17 -13
  314. eolib/protocol/_generated/net/server/players_list_friends.py +17 -13
  315. eolib/protocol/_generated/net/server/players_list_server_packet.py +9 -3
  316. eolib/protocol/_generated/net/server/players_net242_server_packet.py +7 -3
  317. eolib/protocol/_generated/net/server/players_ping_server_packet.py +7 -3
  318. eolib/protocol/_generated/net/server/players_pong_server_packet.py +7 -3
  319. eolib/protocol/_generated/net/server/players_remove_server_packet.py +7 -3
  320. eolib/protocol/_generated/net/server/players_reply_server_packet.py +9 -3
  321. eolib/protocol/_generated/net/server/priest_open_server_packet.py +7 -3
  322. eolib/protocol/_generated/net/server/priest_reply_server_packet.py +7 -3
  323. eolib/protocol/_generated/net/server/priest_request_server_packet.py +10 -6
  324. eolib/protocol/_generated/net/server/pub_file.py +10 -6
  325. eolib/protocol/_generated/net/server/quest_dialog_server_packet.py +33 -30
  326. eolib/protocol/_generated/net/server/quest_list_server_packet.py +39 -28
  327. eolib/protocol/_generated/net/server/quest_progress_entry.py +23 -17
  328. eolib/protocol/_generated/net/server/quest_report_server_packet.py +14 -9
  329. eolib/protocol/_generated/net/server/range_reply_server_packet.py +7 -3
  330. eolib/protocol/_generated/net/server/recover_agree_server_packet.py +13 -9
  331. eolib/protocol/_generated/net/server/recover_list_server_packet.py +10 -6
  332. eolib/protocol/_generated/net/server/recover_player_server_packet.py +10 -6
  333. eolib/protocol/_generated/net/server/recover_reply_server_packet.py +21 -17
  334. eolib/protocol/_generated/net/server/recover_target_group_server_packet.py +19 -15
  335. eolib/protocol/_generated/net/server/refresh_reply_server_packet.py +7 -3
  336. eolib/protocol/_generated/net/server/server_settings.py +25 -21
  337. eolib/protocol/_generated/net/server/shop_buy_server_packet.py +13 -9
  338. eolib/protocol/_generated/net/server/shop_craft_item.py +13 -9
  339. eolib/protocol/_generated/net/server/shop_create_server_packet.py +16 -12
  340. eolib/protocol/_generated/net/server/shop_open_server_packet.py +23 -17
  341. eolib/protocol/_generated/net/server/shop_sell_server_packet.py +13 -9
  342. eolib/protocol/_generated/net/server/shop_sold_item.py +10 -6
  343. eolib/protocol/_generated/net/server/shop_trade_item.py +16 -12
  344. eolib/protocol/_generated/net/server/sit_close_server_packet.py +10 -6
  345. eolib/protocol/_generated/net/server/sit_player_server_packet.py +14 -10
  346. eolib/protocol/_generated/net/server/sit_remove_server_packet.py +10 -6
  347. eolib/protocol/_generated/net/server/sit_reply_server_packet.py +14 -10
  348. eolib/protocol/_generated/net/server/skill_learn.py +25 -21
  349. eolib/protocol/_generated/net/server/spell_error_server_packet.py +5 -4
  350. eolib/protocol/_generated/net/server/spell_player_server_packet.py +10 -6
  351. eolib/protocol/_generated/net/server/spell_request_server_packet.py +10 -6
  352. eolib/protocol/_generated/net/server/spell_target_group_server_packet.py +20 -16
  353. eolib/protocol/_generated/net/server/spell_target_other_server_packet.py +25 -21
  354. eolib/protocol/_generated/net/server/spell_target_self_server_packet.py +22 -18
  355. eolib/protocol/_generated/net/server/stat_skill_accept_server_packet.py +10 -6
  356. eolib/protocol/_generated/net/server/stat_skill_junk_server_packet.py +7 -3
  357. eolib/protocol/_generated/net/server/stat_skill_open_server_packet.py +17 -11
  358. eolib/protocol/_generated/net/server/stat_skill_player_server_packet.py +10 -6
  359. eolib/protocol/_generated/net/server/stat_skill_remove_server_packet.py +7 -3
  360. eolib/protocol/_generated/net/server/stat_skill_reply_server_packet.py +21 -14
  361. eolib/protocol/_generated/net/server/stat_skill_take_server_packet.py +10 -6
  362. eolib/protocol/_generated/net/server/talk_admin_server_packet.py +13 -7
  363. eolib/protocol/_generated/net/server/talk_announce_server_packet.py +13 -7
  364. eolib/protocol/_generated/net/server/talk_list_server_packet.py +10 -5
  365. eolib/protocol/_generated/net/server/talk_msg_server_packet.py +13 -7
  366. eolib/protocol/_generated/net/server/talk_open_server_packet.py +10 -6
  367. eolib/protocol/_generated/net/server/talk_player_server_packet.py +10 -6
  368. eolib/protocol/_generated/net/server/talk_reply_server_packet.py +10 -6
  369. eolib/protocol/_generated/net/server/talk_request_server_packet.py +13 -7
  370. eolib/protocol/_generated/net/server/talk_server_server_packet.py +7 -3
  371. eolib/protocol/_generated/net/server/talk_spec_server_packet.py +7 -3
  372. eolib/protocol/_generated/net/server/talk_tell_server_packet.py +13 -7
  373. eolib/protocol/_generated/net/server/trade_admin_server_packet.py +7 -3
  374. eolib/protocol/_generated/net/server/trade_agree_server_packet.py +10 -6
  375. eolib/protocol/_generated/net/server/trade_close_server_packet.py +7 -3
  376. eolib/protocol/_generated/net/server/trade_item_data.py +22 -16
  377. eolib/protocol/_generated/net/server/trade_open_server_packet.py +20 -14
  378. eolib/protocol/_generated/net/server/trade_reply_server_packet.py +7 -3
  379. eolib/protocol/_generated/net/server/trade_request_server_packet.py +11 -7
  380. eolib/protocol/_generated/net/server/trade_spec_server_packet.py +7 -3
  381. eolib/protocol/_generated/net/server/trade_use_server_packet.py +7 -3
  382. eolib/protocol/_generated/net/server/walk_close_server_packet.py +5 -4
  383. eolib/protocol/_generated/net/server/walk_open_server_packet.py +5 -4
  384. eolib/protocol/_generated/net/server/walk_player_server_packet.py +13 -9
  385. eolib/protocol/_generated/net/server/walk_reply_server_packet.py +20 -14
  386. eolib/protocol/_generated/net/server/warp_agree_server_packet.py +29 -20
  387. eolib/protocol/_generated/net/server/warp_create_server_packet.py +7 -3
  388. eolib/protocol/_generated/net/server/warp_player_server_packet.py +7 -3
  389. eolib/protocol/_generated/net/server/warp_request_server_packet.py +33 -26
  390. eolib/protocol/_generated/net/server/welcome_net242_server_packet.py +7 -3
  391. eolib/protocol/_generated/net/server/welcome_net243_server_packet.py +7 -3
  392. eolib/protocol/_generated/net/server/welcome_net244_server_packet.py +7 -3
  393. eolib/protocol/_generated/net/server/welcome_ping_server_packet.py +7 -3
  394. eolib/protocol/_generated/net/server/welcome_pong_server_packet.py +7 -3
  395. eolib/protocol/_generated/net/server/welcome_reply_server_packet.py +158 -147
  396. eolib/protocol/_generated/net/spell.py +10 -6
  397. eolib/protocol/_generated/net/three_item.py +10 -6
  398. eolib/protocol/_generated/net/version.py +13 -9
  399. eolib/protocol/_generated/net/weight.py +10 -6
  400. eolib/protocol/_generated/pub/ecf.py +21 -17
  401. eolib/protocol/_generated/pub/ecf_record.py +36 -32
  402. eolib/protocol/_generated/pub/eif.py +21 -17
  403. eolib/protocol/_generated/pub/eif_record.py +130 -126
  404. eolib/protocol/_generated/pub/enf.py +21 -17
  405. eolib/protocol/_generated/pub/enf_record.py +72 -68
  406. eolib/protocol/_generated/pub/esf.py +21 -17
  407. eolib/protocol/_generated/pub/esf_record.py +106 -102
  408. eolib/protocol/_generated/pub/server/__init__.py +30 -0
  409. eolib/protocol/_generated/pub/server/drop_file.py +81 -0
  410. eolib/protocol/_generated/pub/server/drop_npc_record.py +116 -0
  411. eolib/protocol/_generated/pub/server/drop_record.py +149 -0
  412. eolib/protocol/_generated/pub/server/inn_file.py +81 -0
  413. eolib/protocol/_generated/pub/server/inn_question_record.py +119 -0
  414. eolib/protocol/_generated/pub/server/inn_record.py +383 -0
  415. eolib/protocol/_generated/pub/server/shop_craft_ingredient_record.py +107 -0
  416. eolib/protocol/_generated/pub/server/shop_craft_record.py +110 -0
  417. eolib/protocol/_generated/pub/server/shop_file.py +81 -0
  418. eolib/protocol/_generated/pub/server/shop_record.py +253 -0
  419. eolib/protocol/_generated/pub/server/shop_trade_record.py +157 -0
  420. eolib/protocol/_generated/pub/server/skill_master_file.py +81 -0
  421. eolib/protocol/_generated/pub/server/skill_master_record.py +224 -0
  422. eolib/protocol/_generated/pub/server/skill_master_skill_record.py +336 -0
  423. eolib/protocol/_generated/pub/server/talk_file.py +81 -0
  424. eolib/protocol/_generated/pub/server/talk_message_record.py +90 -0
  425. eolib/protocol/_generated/pub/server/talk_record.py +145 -0
  426. eolib/protocol/protocol_enum_meta.py +1 -3
  427. eolib/protocol/pub/server/__init__.py +8 -0
  428. {eolib-1.1.1.dist-info → eolib-1.2.0.dist-info}/METADATA +5 -3
  429. {eolib-1.1.1.dist-info → eolib-1.2.0.dist-info}/RECORD +431 -412
  430. {eolib-1.1.1.dist-info → eolib-1.2.0.dist-info}/WHEEL +1 -1
  431. {eolib-1.1.1.dist-info → eolib-1.2.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -101,15 +101,19 @@ class NpcAcceptServerPacket(Packet):
101
101
  writer (EoWriter): The writer that the data will be serialized to.
102
102
  data (NpcAcceptServerPacket): The data to serialize.
103
103
  """
104
- if data._npc_killed_data is None:
105
- raise SerializationError("npc_killed_data must be provided.")
106
- NpcKilledData.serialize(writer, data._npc_killed_data)
107
- if data._experience is None:
108
- raise SerializationError("experience must be provided.")
109
- writer.add_int(data._experience)
110
- if data._level_up is None:
111
- raise SerializationError("level_up must be provided.")
112
- LevelUpStats.serialize(writer, data._level_up)
104
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
105
+ try:
106
+ if data._npc_killed_data is None:
107
+ raise SerializationError("npc_killed_data must be provided.")
108
+ NpcKilledData.serialize(writer, data._npc_killed_data)
109
+ if data._experience is None:
110
+ raise SerializationError("experience must be provided.")
111
+ writer.add_int(data._experience)
112
+ if data._level_up is None:
113
+ raise SerializationError("level_up must be provided.")
114
+ LevelUpStats.serialize(writer, data._level_up)
115
+ finally:
116
+ writer.string_sanitization_mode = old_string_sanitization_mode
113
117
 
114
118
  @staticmethod
115
119
  def deserialize(reader: EoReader) -> "NpcAcceptServerPacket":
@@ -34,7 +34,7 @@ class NpcAgreeServerPacket(Packet):
34
34
  def npcs(self) -> list[NpcMapInfo]:
35
35
  """
36
36
  Note:
37
- - Length must be 64008 or less.
37
+ - Length must be 252 or less.
38
38
  """
39
39
  return self._npcs
40
40
 
@@ -42,7 +42,7 @@ class NpcAgreeServerPacket(Packet):
42
42
  def npcs(self, npcs: list[NpcMapInfo]) -> None:
43
43
  """
44
44
  Note:
45
- - Length must be 64008 or less.
45
+ - Length must be 252 or less.
46
46
  """
47
47
  self._npcs = npcs
48
48
  self._npcs_count = len(self._npcs)
@@ -85,15 +85,19 @@ class NpcAgreeServerPacket(Packet):
85
85
  writer (EoWriter): The writer that the data will be serialized to.
86
86
  data (NpcAgreeServerPacket): The data to serialize.
87
87
  """
88
- if data._npcs_count is None:
89
- raise SerializationError("npcs_count must be provided.")
90
- writer.add_short(data._npcs_count)
91
- if data._npcs is None:
92
- raise SerializationError("npcs must be provided.")
93
- if len(data._npcs) > 64008:
94
- raise SerializationError(f"Expected length of npcs to be 64008 or less, got {len(data._npcs)}.")
95
- for i in range(data._npcs_count):
96
- NpcMapInfo.serialize(writer, data._npcs[i])
88
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
89
+ try:
90
+ if data._npcs_count is None:
91
+ raise SerializationError("npcs_count must be provided.")
92
+ writer.add_char(data._npcs_count)
93
+ if data._npcs is None:
94
+ raise SerializationError("npcs must be provided.")
95
+ if len(data._npcs) > 252:
96
+ raise SerializationError(f"Expected length of npcs to be 252 or less, got {len(data._npcs)}.")
97
+ for i in range(data._npcs_count):
98
+ NpcMapInfo.serialize(writer, data._npcs[i])
99
+ finally:
100
+ writer.string_sanitization_mode = old_string_sanitization_mode
97
101
 
98
102
  @staticmethod
99
103
  def deserialize(reader: EoReader) -> "NpcAgreeServerPacket":
@@ -110,7 +114,7 @@ class NpcAgreeServerPacket(Packet):
110
114
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
111
115
  try:
112
116
  reader_start_position: int = reader.position
113
- data._npcs_count = reader.get_short()
117
+ data._npcs_count = reader.get_char()
114
118
  data._npcs = []
115
119
  for i in range(data._npcs_count):
116
120
  data._npcs.append(NpcMapInfo.deserialize(reader))
@@ -90,12 +90,16 @@ class NpcDialogServerPacket(Packet):
90
90
  writer (EoWriter): The writer that the data will be serialized to.
91
91
  data (NpcDialogServerPacket): The data to serialize.
92
92
  """
93
- if data._npc_index is None:
94
- raise SerializationError("npc_index must be provided.")
95
- writer.add_short(data._npc_index)
96
- if data._message is None:
97
- raise SerializationError("message must be provided.")
98
- writer.add_string(data._message)
93
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
94
+ try:
95
+ if data._npc_index is None:
96
+ raise SerializationError("npc_index must be provided.")
97
+ writer.add_short(data._npc_index)
98
+ if data._message is None:
99
+ raise SerializationError("message must be provided.")
100
+ writer.add_string(data._message)
101
+ finally:
102
+ writer.string_sanitization_mode = old_string_sanitization_mode
99
103
 
100
104
  @staticmethod
101
105
  def deserialize(reader: EoReader) -> "NpcDialogServerPacket":
@@ -81,9 +81,13 @@ class NpcJunkServerPacket(Packet):
81
81
  writer (EoWriter): The writer that the data will be serialized to.
82
82
  data (NpcJunkServerPacket): The data to serialize.
83
83
  """
84
- if data._npc_id is None:
85
- raise SerializationError("npc_id must be provided.")
86
- writer.add_short(data._npc_id)
84
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
85
+ try:
86
+ if data._npc_id is None:
87
+ raise SerializationError("npc_id must be provided.")
88
+ writer.add_short(data._npc_id)
89
+ finally:
90
+ writer.string_sanitization_mode = old_string_sanitization_mode
87
91
 
88
92
  @staticmethod
89
93
  def deserialize(reader: EoReader) -> "NpcJunkServerPacket":
@@ -154,30 +154,34 @@ class NpcKilledData:
154
154
  writer (EoWriter): The writer that the data will be serialized to.
155
155
  data (NpcKilledData): The data to serialize.
156
156
  """
157
- if data._killer_id is None:
158
- raise SerializationError("killer_id must be provided.")
159
- writer.add_short(data._killer_id)
160
- if data._killer_direction is None:
161
- raise SerializationError("killer_direction must be provided.")
162
- writer.add_char(int(data._killer_direction))
163
- if data._npc_index is None:
164
- raise SerializationError("npc_index must be provided.")
165
- writer.add_short(data._npc_index)
166
- if data._drop_index is None:
167
- raise SerializationError("drop_index must be provided.")
168
- writer.add_short(data._drop_index)
169
- if data._drop_id is None:
170
- raise SerializationError("drop_id must be provided.")
171
- writer.add_short(data._drop_id)
172
- if data._drop_coords is None:
173
- raise SerializationError("drop_coords must be provided.")
174
- Coords.serialize(writer, data._drop_coords)
175
- if data._drop_amount is None:
176
- raise SerializationError("drop_amount must be provided.")
177
- writer.add_int(data._drop_amount)
178
- if data._damage is None:
179
- raise SerializationError("damage must be provided.")
180
- writer.add_three(data._damage)
157
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
158
+ try:
159
+ if data._killer_id is None:
160
+ raise SerializationError("killer_id must be provided.")
161
+ writer.add_short(data._killer_id)
162
+ if data._killer_direction is None:
163
+ raise SerializationError("killer_direction must be provided.")
164
+ writer.add_char(int(data._killer_direction))
165
+ if data._npc_index is None:
166
+ raise SerializationError("npc_index must be provided.")
167
+ writer.add_short(data._npc_index)
168
+ if data._drop_index is None:
169
+ raise SerializationError("drop_index must be provided.")
170
+ writer.add_short(data._drop_index)
171
+ if data._drop_id is None:
172
+ raise SerializationError("drop_id must be provided.")
173
+ writer.add_short(data._drop_id)
174
+ if data._drop_coords is None:
175
+ raise SerializationError("drop_coords must be provided.")
176
+ Coords.serialize(writer, data._drop_coords)
177
+ if data._drop_amount is None:
178
+ raise SerializationError("drop_amount must be provided.")
179
+ writer.add_int(data._drop_amount)
180
+ if data._damage is None:
181
+ raise SerializationError("damage must be provided.")
182
+ writer.add_three(data._damage)
183
+ finally:
184
+ writer.string_sanitization_mode = old_string_sanitization_mode
181
185
 
182
186
  @staticmethod
183
187
  def deserialize(reader: EoReader) -> "NpcKilledData":
@@ -86,18 +86,22 @@ class NpcMapInfo:
86
86
  writer (EoWriter): The writer that the data will be serialized to.
87
87
  data (NpcMapInfo): The data to serialize.
88
88
  """
89
- if data._index is None:
90
- raise SerializationError("index must be provided.")
91
- writer.add_char(data._index)
92
- if data._id is None:
93
- raise SerializationError("id must be provided.")
94
- writer.add_short(data._id)
95
- if data._coords is None:
96
- raise SerializationError("coords must be provided.")
97
- Coords.serialize(writer, data._coords)
98
- if data._direction is None:
99
- raise SerializationError("direction must be provided.")
100
- writer.add_char(int(data._direction))
89
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
90
+ try:
91
+ if data._index is None:
92
+ raise SerializationError("index must be provided.")
93
+ writer.add_char(data._index)
94
+ if data._id is None:
95
+ raise SerializationError("id must be provided.")
96
+ writer.add_short(data._id)
97
+ if data._coords is None:
98
+ raise SerializationError("coords must be provided.")
99
+ Coords.serialize(writer, data._coords)
100
+ if data._direction is None:
101
+ raise SerializationError("direction must be provided.")
102
+ writer.add_char(int(data._direction))
103
+ finally:
104
+ writer.string_sanitization_mode = old_string_sanitization_mode
101
105
 
102
106
  @staticmethod
103
107
  def deserialize(reader: EoReader) -> "NpcMapInfo":
@@ -131,27 +131,33 @@ class NpcPlayerServerPacket(Packet):
131
131
  writer (EoWriter): The writer that the data will be serialized to.
132
132
  data (NpcPlayerServerPacket): The data to serialize.
133
133
  """
134
- if data._positions is None:
135
- raise SerializationError("positions must be provided.")
136
- for i in range(len(data._positions)):
137
- NpcUpdatePosition.serialize(writer, data._positions[i])
138
- writer.add_byte(0xFF)
139
- if data._attacks is None:
140
- raise SerializationError("attacks must be provided.")
141
- for i in range(len(data._attacks)):
142
- NpcUpdateAttack.serialize(writer, data._attacks[i])
143
- writer.add_byte(0xFF)
144
- if data._chats is None:
145
- raise SerializationError("chats must be provided.")
146
- for i in range(len(data._chats)):
147
- NpcUpdateChat.serialize(writer, data._chats[i])
148
- writer.add_byte(0xFF)
149
- reached_missing_optional = data._hp is None
150
- if not reached_missing_optional:
151
- writer.add_short(cast(int, data._hp))
152
- reached_missing_optional = reached_missing_optional or data._tp is None
153
- if not reached_missing_optional:
154
- writer.add_short(cast(int, data._tp))
134
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
135
+ try:
136
+ writer.string_sanitization_mode = True
137
+ if data._positions is None:
138
+ raise SerializationError("positions must be provided.")
139
+ for i in range(len(data._positions)):
140
+ NpcUpdatePosition.serialize(writer, data._positions[i])
141
+ writer.add_byte(0xFF)
142
+ if data._attacks is None:
143
+ raise SerializationError("attacks must be provided.")
144
+ for i in range(len(data._attacks)):
145
+ NpcUpdateAttack.serialize(writer, data._attacks[i])
146
+ writer.add_byte(0xFF)
147
+ if data._chats is None:
148
+ raise SerializationError("chats must be provided.")
149
+ for i in range(len(data._chats)):
150
+ NpcUpdateChat.serialize(writer, data._chats[i])
151
+ writer.add_byte(0xFF)
152
+ reached_missing_optional = data._hp is None
153
+ if not reached_missing_optional:
154
+ writer.add_short(cast(int, data._hp))
155
+ reached_missing_optional = reached_missing_optional or data._tp is None
156
+ if not reached_missing_optional:
157
+ writer.add_short(cast(int, data._tp))
158
+ writer.string_sanitization_mode = False
159
+ finally:
160
+ writer.string_sanitization_mode = old_string_sanitization_mode
155
161
 
156
162
  @staticmethod
157
163
  def deserialize(reader: EoReader) -> "NpcPlayerServerPacket":
@@ -154,24 +154,28 @@ class NpcReplyServerPacket(Packet):
154
154
  writer (EoWriter): The writer that the data will be serialized to.
155
155
  data (NpcReplyServerPacket): The data to serialize.
156
156
  """
157
- if data._player_id is None:
158
- raise SerializationError("player_id must be provided.")
159
- writer.add_short(data._player_id)
160
- if data._player_direction is None:
161
- raise SerializationError("player_direction must be provided.")
162
- writer.add_char(int(data._player_direction))
163
- if data._npc_index is None:
164
- raise SerializationError("npc_index must be provided.")
165
- writer.add_short(data._npc_index)
166
- if data._damage is None:
167
- raise SerializationError("damage must be provided.")
168
- writer.add_three(data._damage)
169
- if data._hp_percentage is None:
170
- raise SerializationError("hp_percentage must be provided.")
171
- writer.add_short(data._hp_percentage)
172
- reached_missing_optional = data._kill_steal_protection is None
173
- if not reached_missing_optional:
174
- writer.add_char(int(cast(NpcKillStealProtectionState, data._kill_steal_protection)))
157
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
158
+ try:
159
+ if data._player_id is None:
160
+ raise SerializationError("player_id must be provided.")
161
+ writer.add_short(data._player_id)
162
+ if data._player_direction is None:
163
+ raise SerializationError("player_direction must be provided.")
164
+ writer.add_char(int(data._player_direction))
165
+ if data._npc_index is None:
166
+ raise SerializationError("npc_index must be provided.")
167
+ writer.add_short(data._npc_index)
168
+ if data._damage is None:
169
+ raise SerializationError("damage must be provided.")
170
+ writer.add_three(data._damage)
171
+ if data._hp_percentage is None:
172
+ raise SerializationError("hp_percentage must be provided.")
173
+ writer.add_short(data._hp_percentage)
174
+ reached_missing_optional = data._kill_steal_protection is None
175
+ if not reached_missing_optional:
176
+ writer.add_char(int(cast(NpcKillStealProtectionState, data._kill_steal_protection)))
177
+ finally:
178
+ writer.string_sanitization_mode = old_string_sanitization_mode
175
179
 
176
180
  @staticmethod
177
181
  def deserialize(reader: EoReader) -> "NpcReplyServerPacket":
@@ -93,12 +93,16 @@ class NpcSpecServerPacket(Packet):
93
93
  writer (EoWriter): The writer that the data will be serialized to.
94
94
  data (NpcSpecServerPacket): The data to serialize.
95
95
  """
96
- if data._npc_killed_data is None:
97
- raise SerializationError("npc_killed_data must be provided.")
98
- NpcKilledData.serialize(writer, data._npc_killed_data)
99
- reached_missing_optional = data._experience is None
100
- if not reached_missing_optional:
101
- writer.add_int(cast(int, data._experience))
96
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
97
+ try:
98
+ if data._npc_killed_data is None:
99
+ raise SerializationError("npc_killed_data must be provided.")
100
+ NpcKilledData.serialize(writer, data._npc_killed_data)
101
+ reached_missing_optional = data._experience is None
102
+ if not reached_missing_optional:
103
+ writer.add_int(cast(int, data._experience))
104
+ finally:
105
+ writer.string_sanitization_mode = old_string_sanitization_mode
102
106
 
103
107
  @staticmethod
104
108
  def deserialize(reader: EoReader) -> "NpcSpecServerPacket":
@@ -120,24 +120,28 @@ class NpcUpdateAttack:
120
120
  writer (EoWriter): The writer that the data will be serialized to.
121
121
  data (NpcUpdateAttack): The data to serialize.
122
122
  """
123
- if data._npc_index is None:
124
- raise SerializationError("npc_index must be provided.")
125
- writer.add_char(data._npc_index)
126
- if data._killed is None:
127
- raise SerializationError("killed must be provided.")
128
- writer.add_char(int(data._killed))
129
- if data._direction is None:
130
- raise SerializationError("direction must be provided.")
131
- writer.add_char(int(data._direction))
132
- if data._player_id is None:
133
- raise SerializationError("player_id must be provided.")
134
- writer.add_short(data._player_id)
135
- if data._damage is None:
136
- raise SerializationError("damage must be provided.")
137
- writer.add_three(data._damage)
138
- if data._hp_percentage is None:
139
- raise SerializationError("hp_percentage must be provided.")
140
- writer.add_char(data._hp_percentage)
123
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
124
+ try:
125
+ if data._npc_index is None:
126
+ raise SerializationError("npc_index must be provided.")
127
+ writer.add_char(data._npc_index)
128
+ if data._killed is None:
129
+ raise SerializationError("killed must be provided.")
130
+ writer.add_char(int(data._killed))
131
+ if data._direction is None:
132
+ raise SerializationError("direction must be provided.")
133
+ writer.add_char(int(data._direction))
134
+ if data._player_id is None:
135
+ raise SerializationError("player_id must be provided.")
136
+ writer.add_short(data._player_id)
137
+ if data._damage is None:
138
+ raise SerializationError("damage must be provided.")
139
+ writer.add_three(data._damage)
140
+ if data._hp_percentage is None:
141
+ raise SerializationError("hp_percentage must be provided.")
142
+ writer.add_char(data._hp_percentage)
143
+ finally:
144
+ writer.string_sanitization_mode = old_string_sanitization_mode
141
145
 
142
146
  @staticmethod
143
147
  def deserialize(reader: EoReader) -> "NpcUpdateAttack":
@@ -68,17 +68,21 @@ class NpcUpdateChat:
68
68
  writer (EoWriter): The writer that the data will be serialized to.
69
69
  data (NpcUpdateChat): The data to serialize.
70
70
  """
71
- if data._npc_index is None:
72
- raise SerializationError("npc_index must be provided.")
73
- writer.add_char(data._npc_index)
74
- if data._message_length is None:
75
- raise SerializationError("message_length must be provided.")
76
- writer.add_char(data._message_length)
77
- if data._message is None:
78
- raise SerializationError("message must be provided.")
79
- if len(data._message) > 252:
80
- raise SerializationError(f"Expected length of message to be 252 or less, got {len(data._message)}.")
81
- writer.add_fixed_string(data._message, data._message_length, False)
71
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
72
+ try:
73
+ if data._npc_index is None:
74
+ raise SerializationError("npc_index must be provided.")
75
+ writer.add_char(data._npc_index)
76
+ if data._message_length is None:
77
+ raise SerializationError("message_length must be provided.")
78
+ writer.add_char(data._message_length)
79
+ if data._message is None:
80
+ raise SerializationError("message must be provided.")
81
+ if len(data._message) > 252:
82
+ raise SerializationError(f"Expected length of message to be 252 or less, got {len(data._message)}.")
83
+ writer.add_fixed_string(data._message, data._message_length, False)
84
+ finally:
85
+ writer.string_sanitization_mode = old_string_sanitization_mode
82
86
 
83
87
  @staticmethod
84
88
  def deserialize(reader: EoReader) -> "NpcUpdateChat":
@@ -69,15 +69,19 @@ class NpcUpdatePosition:
69
69
  writer (EoWriter): The writer that the data will be serialized to.
70
70
  data (NpcUpdatePosition): The data to serialize.
71
71
  """
72
- if data._npc_index is None:
73
- raise SerializationError("npc_index must be provided.")
74
- writer.add_char(data._npc_index)
75
- if data._coords is None:
76
- raise SerializationError("coords must be provided.")
77
- Coords.serialize(writer, data._coords)
78
- if data._direction is None:
79
- raise SerializationError("direction must be provided.")
80
- writer.add_char(int(data._direction))
72
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
73
+ try:
74
+ if data._npc_index is None:
75
+ raise SerializationError("npc_index must be provided.")
76
+ writer.add_char(data._npc_index)
77
+ if data._coords is None:
78
+ raise SerializationError("coords must be provided.")
79
+ Coords.serialize(writer, data._coords)
80
+ if data._direction is None:
81
+ raise SerializationError("direction must be provided.")
82
+ writer.add_char(int(data._direction))
83
+ finally:
84
+ writer.string_sanitization_mode = old_string_sanitization_mode
81
85
 
82
86
  @staticmethod
83
87
  def deserialize(reader: EoReader) -> "NpcUpdatePosition":
@@ -103,26 +103,32 @@ class OnlinePlayer:
103
103
  writer (EoWriter): The writer that the data will be serialized to.
104
104
  data (OnlinePlayer): The data to serialize.
105
105
  """
106
- if data._name is None:
107
- raise SerializationError("name must be provided.")
108
- writer.add_string(data._name)
109
- writer.add_byte(0xFF)
110
- if data._title is None:
111
- raise SerializationError("title must be provided.")
112
- writer.add_string(data._title)
113
- writer.add_byte(0xFF)
114
- if data._level is None:
115
- raise SerializationError("level must be provided.")
116
- writer.add_char(data._level)
117
- if data._icon is None:
118
- raise SerializationError("icon must be provided.")
119
- writer.add_char(int(data._icon))
120
- if data._class_id is None:
121
- raise SerializationError("class_id must be provided.")
122
- writer.add_char(data._class_id)
123
- if data._guild_tag is None:
124
- raise SerializationError("guild_tag must be provided.")
125
- writer.add_string(data._guild_tag)
106
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
107
+ try:
108
+ writer.string_sanitization_mode = True
109
+ if data._name is None:
110
+ raise SerializationError("name must be provided.")
111
+ writer.add_string(data._name)
112
+ writer.add_byte(0xFF)
113
+ if data._title is None:
114
+ raise SerializationError("title must be provided.")
115
+ writer.add_string(data._title)
116
+ writer.add_byte(0xFF)
117
+ if data._level is None:
118
+ raise SerializationError("level must be provided.")
119
+ writer.add_char(data._level)
120
+ if data._icon is None:
121
+ raise SerializationError("icon must be provided.")
122
+ writer.add_char(int(data._icon))
123
+ if data._class_id is None:
124
+ raise SerializationError("class_id must be provided.")
125
+ writer.add_char(data._class_id)
126
+ if data._guild_tag is None:
127
+ raise SerializationError("guild_tag must be provided.")
128
+ writer.add_string(data._guild_tag)
129
+ writer.string_sanitization_mode = False
130
+ finally:
131
+ writer.string_sanitization_mode = old_string_sanitization_mode
126
132
 
127
133
  @staticmethod
128
134
  def deserialize(reader: EoReader) -> "OnlinePlayer":
@@ -135,21 +135,25 @@ class PaperdollAgreeServerPacket(Packet):
135
135
  writer (EoWriter): The writer that the data will be serialized to.
136
136
  data (PaperdollAgreeServerPacket): The data to serialize.
137
137
  """
138
- if data._change is None:
139
- raise SerializationError("change must be provided.")
140
- AvatarChange.serialize(writer, data._change)
141
- if data._item_id is None:
142
- raise SerializationError("item_id must be provided.")
143
- writer.add_short(data._item_id)
144
- if data._remaining_amount is None:
145
- raise SerializationError("remaining_amount must be provided.")
146
- writer.add_three(data._remaining_amount)
147
- if data._sub_loc is None:
148
- raise SerializationError("sub_loc must be provided.")
149
- writer.add_char(data._sub_loc)
150
- if data._stats is None:
151
- raise SerializationError("stats must be provided.")
152
- CharacterStatsEquipmentChange.serialize(writer, data._stats)
138
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
139
+ try:
140
+ if data._change is None:
141
+ raise SerializationError("change must be provided.")
142
+ AvatarChange.serialize(writer, data._change)
143
+ if data._item_id is None:
144
+ raise SerializationError("item_id must be provided.")
145
+ writer.add_short(data._item_id)
146
+ if data._remaining_amount is None:
147
+ raise SerializationError("remaining_amount must be provided.")
148
+ writer.add_three(data._remaining_amount)
149
+ if data._sub_loc is None:
150
+ raise SerializationError("sub_loc must be provided.")
151
+ writer.add_char(data._sub_loc)
152
+ if data._stats is None:
153
+ raise SerializationError("stats must be provided.")
154
+ CharacterStatsEquipmentChange.serialize(writer, data._stats)
155
+ finally:
156
+ writer.string_sanitization_mode = old_string_sanitization_mode
153
157
 
154
158
  @staticmethod
155
159
  def deserialize(reader: EoReader) -> "PaperdollAgreeServerPacket":
@@ -30,7 +30,7 @@ class PaperdollPingServerPacket(Packet):
30
30
  @property
31
31
  def class_id(self) -> int:
32
32
  """
33
- The player's current class ID (not the item's required class ID)
33
+ The player's current class ID (not the item's required class ID)
34
34
 
35
35
  Note:
36
36
  - Value range is 0-252.
@@ -40,7 +40,7 @@ class PaperdollPingServerPacket(Packet):
40
40
  @class_id.setter
41
41
  def class_id(self, class_id: int) -> None:
42
42
  """
43
- The player's current class ID (not the item's required class ID)
43
+ The player's current class ID (not the item's required class ID)
44
44
 
45
45
  Note:
46
46
  - Value range is 0-252.
@@ -85,9 +85,13 @@ class PaperdollPingServerPacket(Packet):
85
85
  writer (EoWriter): The writer that the data will be serialized to.
86
86
  data (PaperdollPingServerPacket): The data to serialize.
87
87
  """
88
- if data._class_id is None:
89
- raise SerializationError("class_id must be provided.")
90
- writer.add_char(data._class_id)
88
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
89
+ try:
90
+ if data._class_id is None:
91
+ raise SerializationError("class_id must be provided.")
92
+ writer.add_char(data._class_id)
93
+ finally:
94
+ writer.string_sanitization_mode = old_string_sanitization_mode
91
95
 
92
96
  @staticmethod
93
97
  def deserialize(reader: EoReader) -> "PaperdollPingServerPacket":