eolib 1.1.1__py3-none-any.whl → 2.0.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 (437) hide show
  1. eolib/__about__.py +1 -1
  2. eolib/protocol/__init__.py +1 -1
  3. eolib/protocol/_generated/coords.py +28 -37
  4. eolib/protocol/_generated/emote.py +1 -1
  5. eolib/protocol/_generated/map/emf.py +248 -410
  6. eolib/protocol/_generated/map/map_graphic_layer.py +34 -32
  7. eolib/protocol/_generated/map/map_graphic_row.py +41 -49
  8. eolib/protocol/_generated/map/map_graphic_row_tile.py +28 -37
  9. eolib/protocol/_generated/map/map_item.py +56 -97
  10. eolib/protocol/_generated/map/map_legacy_door_key.py +28 -29
  11. eolib/protocol/_generated/map/map_npc.py +49 -80
  12. eolib/protocol/_generated/map/map_sign.py +43 -54
  13. eolib/protocol/_generated/map/map_tile_spec_row.py +41 -49
  14. eolib/protocol/_generated/map/map_tile_spec_row_tile.py +28 -29
  15. eolib/protocol/_generated/map/map_warp.py +42 -63
  16. eolib/protocol/_generated/map/map_warp_row.py +41 -49
  17. eolib/protocol/_generated/map/map_warp_row_tile.py +28 -29
  18. eolib/protocol/_generated/net/char_item.py +28 -37
  19. eolib/protocol/_generated/net/client/account_agree_client_packet.py +40 -33
  20. eolib/protocol/_generated/net/client/account_create_client_packet.py +80 -91
  21. eolib/protocol/_generated/net/client/account_request_client_packet.py +21 -12
  22. eolib/protocol/_generated/net/client/admin_interact_report_client_packet.py +31 -22
  23. eolib/protocol/_generated/net/client/admin_interact_tell_client_packet.py +21 -12
  24. eolib/protocol/_generated/net/client/attack_use_client_packet.py +28 -29
  25. eolib/protocol/_generated/net/client/bank_add_client_packet.py +28 -37
  26. eolib/protocol/_generated/net/client/bank_open_client_packet.py +21 -20
  27. eolib/protocol/_generated/net/client/bank_take_client_packet.py +28 -37
  28. eolib/protocol/_generated/net/client/barber_buy_client_packet.py +35 -54
  29. eolib/protocol/_generated/net/client/barber_open_client_packet.py +21 -20
  30. eolib/protocol/_generated/net/client/board_create_client_packet.py +40 -41
  31. eolib/protocol/_generated/net/client/board_open_client_packet.py +21 -20
  32. eolib/protocol/_generated/net/client/board_remove_client_packet.py +28 -37
  33. eolib/protocol/_generated/net/client/board_take_client_packet.py +28 -37
  34. eolib/protocol/_generated/net/client/book_request_client_packet.py +22 -21
  35. eolib/protocol/_generated/net/client/byte_coords.py +28 -37
  36. eolib/protocol/_generated/net/client/chair_request_client_packet.py +56 -40
  37. eolib/protocol/_generated/net/client/character_create_client_packet.py +60 -91
  38. eolib/protocol/_generated/net/client/character_remove_client_packet.py +31 -35
  39. eolib/protocol/_generated/net/client/character_request_client_packet.py +22 -7
  40. eolib/protocol/_generated/net/client/character_take_client_packet.py +21 -20
  41. eolib/protocol/_generated/net/client/chest_add_client_packet.py +28 -21
  42. eolib/protocol/_generated/net/client/chest_open_client_packet.py +21 -12
  43. eolib/protocol/_generated/net/client/chest_take_client_packet.py +28 -29
  44. eolib/protocol/_generated/net/client/citizen_accept_client_packet.py +28 -37
  45. eolib/protocol/_generated/net/client/citizen_open_client_packet.py +21 -20
  46. eolib/protocol/_generated/net/client/citizen_remove_client_packet.py +21 -20
  47. eolib/protocol/_generated/net/client/citizen_reply_client_packet.py +47 -63
  48. eolib/protocol/_generated/net/client/citizen_request_client_packet.py +28 -37
  49. eolib/protocol/_generated/net/client/connection_accept_client_packet.py +35 -54
  50. eolib/protocol/_generated/net/client/connection_ping_client_packet.py +13 -7
  51. eolib/protocol/_generated/net/client/door_open_client_packet.py +21 -12
  52. eolib/protocol/_generated/net/client/emote_report_client_packet.py +21 -12
  53. eolib/protocol/_generated/net/client/face_player_client_packet.py +21 -12
  54. eolib/protocol/_generated/net/client/global_close_client_packet.py +13 -7
  55. eolib/protocol/_generated/net/client/global_open_client_packet.py +13 -7
  56. eolib/protocol/_generated/net/client/global_player_client_packet.py +13 -7
  57. eolib/protocol/_generated/net/client/global_remove_client_packet.py +13 -7
  58. eolib/protocol/_generated/net/client/guild_accept_client_packet.py +22 -21
  59. eolib/protocol/_generated/net/client/guild_agree_client_packet.py +99 -91
  60. eolib/protocol/_generated/net/client/guild_buy_client_packet.py +28 -37
  61. eolib/protocol/_generated/net/client/guild_create_client_packet.py +48 -51
  62. eolib/protocol/_generated/net/client/guild_junk_client_packet.py +21 -20
  63. eolib/protocol/_generated/net/client/guild_kick_client_packet.py +28 -29
  64. eolib/protocol/_generated/net/client/guild_open_client_packet.py +21 -20
  65. eolib/protocol/_generated/net/client/guild_player_client_packet.py +40 -41
  66. eolib/protocol/_generated/net/client/guild_rank_client_packet.py +36 -47
  67. eolib/protocol/_generated/net/client/guild_remove_client_packet.py +21 -20
  68. eolib/protocol/_generated/net/client/guild_report_client_packet.py +28 -29
  69. eolib/protocol/_generated/net/client/guild_request_client_packet.py +40 -41
  70. eolib/protocol/_generated/net/client/guild_take_client_packet.py +41 -29
  71. eolib/protocol/_generated/net/client/guild_tell_client_packet.py +28 -29
  72. eolib/protocol/_generated/net/client/guild_use_client_packet.py +21 -20
  73. eolib/protocol/_generated/net/client/init_init_client_packet.py +44 -55
  74. eolib/protocol/_generated/net/client/item_drop_client_packet.py +29 -29
  75. eolib/protocol/_generated/net/client/item_get_client_packet.py +21 -20
  76. eolib/protocol/_generated/net/client/item_junk_client_packet.py +21 -12
  77. eolib/protocol/_generated/net/client/item_use_client_packet.py +21 -20
  78. eolib/protocol/_generated/net/client/jukebox_msg_client_packet.py +24 -22
  79. eolib/protocol/_generated/net/client/jukebox_open_client_packet.py +21 -12
  80. eolib/protocol/_generated/net/client/jukebox_use_client_packet.py +28 -37
  81. eolib/protocol/_generated/net/client/locker_add_client_packet.py +28 -21
  82. eolib/protocol/_generated/net/client/locker_buy_client_packet.py +13 -7
  83. eolib/protocol/_generated/net/client/locker_open_client_packet.py +21 -12
  84. eolib/protocol/_generated/net/client/locker_take_client_packet.py +28 -29
  85. eolib/protocol/_generated/net/client/login_request_client_packet.py +32 -23
  86. eolib/protocol/_generated/net/client/marriage_open_client_packet.py +21 -20
  87. eolib/protocol/_generated/net/client/marriage_request_client_packet.py +38 -39
  88. eolib/protocol/_generated/net/client/message_ping_client_packet.py +13 -7
  89. eolib/protocol/_generated/net/client/npc_range_request_client_packet.py +35 -35
  90. eolib/protocol/_generated/net/client/paperdoll_add_client_packet.py +28 -37
  91. eolib/protocol/_generated/net/client/paperdoll_remove_client_packet.py +28 -37
  92. eolib/protocol/_generated/net/client/paperdoll_request_client_packet.py +22 -21
  93. eolib/protocol/_generated/net/client/party_accept_client_packet.py +28 -29
  94. eolib/protocol/_generated/net/client/party_remove_client_packet.py +21 -20
  95. eolib/protocol/_generated/net/client/party_request_client_packet.py +28 -29
  96. eolib/protocol/_generated/net/client/party_take_client_packet.py +21 -20
  97. eolib/protocol/_generated/net/client/player_range_request_client_packet.py +25 -23
  98. eolib/protocol/_generated/net/client/players_accept_client_packet.py +21 -12
  99. eolib/protocol/_generated/net/client/players_list_client_packet.py +13 -7
  100. eolib/protocol/_generated/net/client/players_request_client_packet.py +13 -7
  101. eolib/protocol/_generated/net/client/priest_accept_client_packet.py +21 -20
  102. eolib/protocol/_generated/net/client/priest_open_client_packet.py +21 -20
  103. eolib/protocol/_generated/net/client/priest_request_client_packet.py +31 -30
  104. eolib/protocol/_generated/net/client/priest_use_client_packet.py +22 -21
  105. eolib/protocol/_generated/net/client/quest_accept_client_packet.py +150 -115
  106. eolib/protocol/_generated/net/client/quest_list_client_packet.py +21 -12
  107. eolib/protocol/_generated/net/client/quest_use_client_packet.py +28 -38
  108. eolib/protocol/_generated/net/client/range_request_client_packet.py +38 -44
  109. eolib/protocol/_generated/net/client/refresh_request_client_packet.py +13 -7
  110. eolib/protocol/_generated/net/client/shop_buy_client_packet.py +28 -29
  111. eolib/protocol/_generated/net/client/shop_create_client_packet.py +28 -37
  112. eolib/protocol/_generated/net/client/shop_open_client_packet.py +21 -20
  113. eolib/protocol/_generated/net/client/shop_sell_client_packet.py +28 -29
  114. eolib/protocol/_generated/net/client/sit_request_client_packet.py +56 -43
  115. eolib/protocol/_generated/net/client/spell_request_client_packet.py +28 -37
  116. eolib/protocol/_generated/net/client/spell_target_group_client_packet.py +28 -37
  117. eolib/protocol/_generated/net/client/spell_target_other_client_packet.py +49 -80
  118. eolib/protocol/_generated/net/client/spell_target_self_client_packet.py +35 -46
  119. eolib/protocol/_generated/net/client/spell_use_client_packet.py +21 -12
  120. eolib/protocol/_generated/net/client/stat_skill_add_client_packet.py +83 -66
  121. eolib/protocol/_generated/net/client/stat_skill_junk_client_packet.py +21 -20
  122. eolib/protocol/_generated/net/client/stat_skill_open_client_packet.py +21 -20
  123. eolib/protocol/_generated/net/client/stat_skill_remove_client_packet.py +28 -37
  124. eolib/protocol/_generated/net/client/stat_skill_take_client_packet.py +28 -37
  125. eolib/protocol/_generated/net/client/talk_admin_client_packet.py +21 -12
  126. eolib/protocol/_generated/net/client/talk_announce_client_packet.py +21 -12
  127. eolib/protocol/_generated/net/client/talk_msg_client_packet.py +21 -12
  128. eolib/protocol/_generated/net/client/talk_open_client_packet.py +21 -12
  129. eolib/protocol/_generated/net/client/talk_player_client_packet.py +21 -12
  130. eolib/protocol/_generated/net/client/talk_report_client_packet.py +21 -12
  131. eolib/protocol/_generated/net/client/talk_request_client_packet.py +21 -12
  132. eolib/protocol/_generated/net/client/talk_tell_client_packet.py +31 -22
  133. eolib/protocol/_generated/net/client/talk_use_client_packet.py +21 -12
  134. eolib/protocol/_generated/net/client/trade_accept_client_packet.py +22 -21
  135. eolib/protocol/_generated/net/client/trade_add_client_packet.py +21 -12
  136. eolib/protocol/_generated/net/client/trade_agree_client_packet.py +21 -12
  137. eolib/protocol/_generated/net/client/trade_close_client_packet.py +13 -7
  138. eolib/protocol/_generated/net/client/trade_remove_client_packet.py +21 -20
  139. eolib/protocol/_generated/net/client/trade_request_client_packet.py +22 -21
  140. eolib/protocol/_generated/net/client/walk_action.py +35 -38
  141. eolib/protocol/_generated/net/client/walk_admin_client_packet.py +21 -12
  142. eolib/protocol/_generated/net/client/walk_player_client_packet.py +21 -12
  143. eolib/protocol/_generated/net/client/walk_spec_client_packet.py +21 -12
  144. eolib/protocol/_generated/net/client/warp_accept_client_packet.py +28 -37
  145. eolib/protocol/_generated/net/client/warp_take_client_packet.py +28 -37
  146. eolib/protocol/_generated/net/client/welcome_agree_client_packet.py +171 -169
  147. eolib/protocol/_generated/net/client/welcome_msg_client_packet.py +28 -37
  148. eolib/protocol/_generated/net/client/welcome_request_client_packet.py +21 -20
  149. eolib/protocol/_generated/net/item.py +28 -37
  150. eolib/protocol/_generated/net/server/__init__.py +4 -0
  151. eolib/protocol/_generated/net/server/account_reply_server_packet.py +190 -131
  152. eolib/protocol/_generated/net/server/admin_interact_agree_server_packet.py +21 -20
  153. eolib/protocol/_generated/net/server/admin_interact_list_server_packet.py +62 -74
  154. eolib/protocol/_generated/net/server/admin_interact_remove_server_packet.py +21 -20
  155. eolib/protocol/_generated/net/server/admin_interact_reply_server_packet.py +112 -91
  156. eolib/protocol/_generated/net/server/admin_interact_tell_server_packet.py +86 -110
  157. eolib/protocol/_generated/net/server/arena_accept_server_packet.py +47 -50
  158. eolib/protocol/_generated/net/server/arena_drop_server_packet.py +14 -8
  159. eolib/protocol/_generated/net/server/arena_spec_server_packet.py +55 -68
  160. eolib/protocol/_generated/net/server/arena_use_server_packet.py +21 -20
  161. eolib/protocol/_generated/net/server/attack_error_server_packet.py +13 -7
  162. eolib/protocol/_generated/net/server/attack_player_server_packet.py +28 -29
  163. eolib/protocol/_generated/net/server/avatar_admin_server_packet.py +67 -110
  164. eolib/protocol/_generated/net/server/avatar_agree_server_packet.py +21 -12
  165. eolib/protocol/_generated/net/server/avatar_change.py +132 -136
  166. eolib/protocol/_generated/net/server/avatar_change_type.py +1 -1
  167. eolib/protocol/_generated/net/server/avatar_remove_server_packet.py +29 -29
  168. eolib/protocol/_generated/net/server/avatar_reply_server_packet.py +56 -89
  169. eolib/protocol/_generated/net/server/bank_open_server_packet.py +35 -54
  170. eolib/protocol/_generated/net/server/bank_reply_server_packet.py +28 -37
  171. eolib/protocol/_generated/net/server/barber_agree_server_packet.py +28 -29
  172. eolib/protocol/_generated/net/server/barber_open_server_packet.py +21 -20
  173. eolib/protocol/_generated/net/server/big_coords.py +28 -37
  174. eolib/protocol/_generated/net/server/board_open_server_packet.py +44 -52
  175. eolib/protocol/_generated/net/server/board_player_server_packet.py +30 -29
  176. eolib/protocol/_generated/net/server/board_post_listing.py +39 -40
  177. eolib/protocol/_generated/net/server/book_reply_server_packet.py +42 -35
  178. eolib/protocol/_generated/net/server/cast_accept_server_packet.py +65 -71
  179. eolib/protocol/_generated/net/server/cast_reply_server_packet.py +78 -122
  180. eolib/protocol/_generated/net/server/cast_spec_server_packet.py +48 -60
  181. eolib/protocol/_generated/net/server/chair_close_server_packet.py +28 -29
  182. eolib/protocol/_generated/net/server/chair_player_server_packet.py +35 -38
  183. eolib/protocol/_generated/net/server/chair_remove_server_packet.py +28 -29
  184. eolib/protocol/_generated/net/server/chair_reply_server_packet.py +35 -38
  185. eolib/protocol/_generated/net/server/character_base_stats.py +56 -105
  186. eolib/protocol/_generated/net/server/character_base_stats_welcome.py +56 -105
  187. eolib/protocol/_generated/net/server/character_details.py +92 -115
  188. eolib/protocol/_generated/net/server/character_elemental_stats.py +56 -105
  189. eolib/protocol/_generated/net/server/character_map_info.py +161 -283
  190. eolib/protocol/_generated/net/server/character_player_server_packet.py +28 -37
  191. eolib/protocol/_generated/net/server/character_reply_server_packet.py +229 -179
  192. eolib/protocol/_generated/net/server/character_secondary_stats.py +49 -88
  193. eolib/protocol/_generated/net/server/character_secondary_stats_info_lookup.py +49 -88
  194. eolib/protocol/_generated/net/server/character_selection_list_entry.py +80 -125
  195. eolib/protocol/_generated/net/server/character_stats_equipment_change.py +42 -55
  196. eolib/protocol/_generated/net/server/character_stats_info_lookup.py +65 -100
  197. eolib/protocol/_generated/net/server/character_stats_reset.py +77 -140
  198. eolib/protocol/_generated/net/server/character_stats_update.py +56 -89
  199. eolib/protocol/_generated/net/server/character_stats_welcome.py +84 -157
  200. eolib/protocol/_generated/net/server/chest_agree_server_packet.py +25 -15
  201. eolib/protocol/_generated/net/server/chest_close_server_packet.py +28 -24
  202. eolib/protocol/_generated/net/server/chest_get_server_packet.py +39 -33
  203. eolib/protocol/_generated/net/server/chest_open_server_packet.py +32 -24
  204. eolib/protocol/_generated/net/server/chest_reply_server_packet.py +46 -58
  205. eolib/protocol/_generated/net/server/chest_spec_server_packet.py +13 -7
  206. eolib/protocol/_generated/net/server/citizen_accept_server_packet.py +21 -20
  207. eolib/protocol/_generated/net/server/citizen_open_server_packet.py +53 -79
  208. eolib/protocol/_generated/net/server/citizen_remove_server_packet.py +21 -12
  209. eolib/protocol/_generated/net/server/citizen_reply_server_packet.py +21 -20
  210. eolib/protocol/_generated/net/server/citizen_request_server_packet.py +21 -20
  211. eolib/protocol/_generated/net/server/connection_player_server_packet.py +28 -37
  212. eolib/protocol/_generated/net/server/dialog_entry.py +63 -57
  213. eolib/protocol/_generated/net/server/dialog_quest_entry.py +28 -29
  214. eolib/protocol/_generated/net/server/door_close_server_packet.py +21 -20
  215. eolib/protocol/_generated/net/server/door_open_server_packet.py +25 -14
  216. eolib/protocol/_generated/net/server/effect_admin_server_packet.py +42 -63
  217. eolib/protocol/_generated/net/server/effect_agree_server_packet.py +32 -38
  218. eolib/protocol/_generated/net/server/effect_player_server_packet.py +32 -45
  219. eolib/protocol/_generated/net/server/effect_report_server_packet.py +13 -7
  220. eolib/protocol/_generated/net/server/effect_spec_server_packet.py +111 -142
  221. eolib/protocol/_generated/net/server/effect_target_other_server_packet.py +46 -66
  222. eolib/protocol/_generated/net/server/effect_use_server_packet.py +56 -48
  223. eolib/protocol/_generated/net/server/emote_player_server_packet.py +28 -29
  224. eolib/protocol/_generated/net/server/equipment_change.py +50 -89
  225. eolib/protocol/_generated/net/server/equipment_character_select.py +49 -88
  226. eolib/protocol/_generated/net/server/equipment_map_info.py +53 -92
  227. eolib/protocol/_generated/net/server/equipment_paperdoll.py +115 -229
  228. eolib/protocol/_generated/net/server/equipment_welcome.py +114 -228
  229. eolib/protocol/_generated/net/server/face_player_server_packet.py +28 -29
  230. eolib/protocol/_generated/net/server/global_backfill_message.py +31 -22
  231. eolib/protocol/_generated/net/server/group_heal_target_player.py +35 -54
  232. eolib/protocol/_generated/net/server/guild_accept_server_packet.py +21 -20
  233. eolib/protocol/_generated/net/server/guild_agree_server_packet.py +48 -51
  234. eolib/protocol/_generated/net/server/guild_buy_server_packet.py +22 -21
  235. eolib/protocol/_generated/net/server/guild_create_server_packet.py +55 -68
  236. eolib/protocol/_generated/net/server/guild_kick_server_packet.py +13 -7
  237. eolib/protocol/_generated/net/server/guild_member.py +39 -40
  238. eolib/protocol/_generated/net/server/guild_open_server_packet.py +21 -20
  239. eolib/protocol/_generated/net/server/guild_rank_server_packet.py +30 -28
  240. eolib/protocol/_generated/net/server/guild_reply_server_packet.py +117 -93
  241. eolib/protocol/_generated/net/server/guild_report_server_packet.py +91 -111
  242. eolib/protocol/_generated/net/server/guild_request_server_packet.py +28 -29
  243. eolib/protocol/_generated/net/server/guild_sell_server_packet.py +21 -20
  244. eolib/protocol/_generated/net/server/guild_staff.py +31 -30
  245. eolib/protocol/_generated/net/server/guild_take_server_packet.py +21 -12
  246. eolib/protocol/_generated/net/server/guild_tell_server_packet.py +38 -36
  247. eolib/protocol/_generated/net/server/init_ban_type.py +1 -1
  248. eolib/protocol/_generated/net/server/init_init_server_packet.py +454 -393
  249. eolib/protocol/_generated/net/server/init_reply.py +3 -0
  250. eolib/protocol/_generated/net/server/item_accept_server_packet.py +21 -20
  251. eolib/protocol/_generated/net/server/item_add_server_packet.py +42 -63
  252. eolib/protocol/_generated/net/server/item_agree_server_packet.py +22 -21
  253. eolib/protocol/_generated/net/server/item_drop_server_packet.py +49 -64
  254. eolib/protocol/_generated/net/server/item_get_server_packet.py +35 -38
  255. eolib/protocol/_generated/net/server/item_junk_server_packet.py +35 -38
  256. eolib/protocol/_generated/net/server/item_kick_server_packet.py +28 -29
  257. eolib/protocol/_generated/net/server/item_map_info.py +42 -63
  258. eolib/protocol/_generated/net/server/item_obtain_server_packet.py +28 -29
  259. eolib/protocol/_generated/net/server/item_remove_server_packet.py +21 -20
  260. eolib/protocol/_generated/net/server/item_reply_server_packet.py +235 -300
  261. eolib/protocol/_generated/net/server/item_spec_server_packet.py +13 -7
  262. eolib/protocol/_generated/net/server/jukebox_agree_server_packet.py +21 -20
  263. eolib/protocol/_generated/net/server/jukebox_msg_server_packet.py +42 -63
  264. eolib/protocol/_generated/net/server/jukebox_open_server_packet.py +28 -29
  265. eolib/protocol/_generated/net/server/jukebox_player_server_packet.py +21 -20
  266. eolib/protocol/_generated/net/server/jukebox_reply_server_packet.py +13 -7
  267. eolib/protocol/_generated/net/server/jukebox_use_server_packet.py +22 -18
  268. eolib/protocol/_generated/net/server/level_up_stats.py +56 -105
  269. eolib/protocol/_generated/net/server/locker_buy_server_packet.py +28 -37
  270. eolib/protocol/_generated/net/server/locker_get_server_packet.py +39 -33
  271. eolib/protocol/_generated/net/server/locker_open_server_packet.py +32 -24
  272. eolib/protocol/_generated/net/server/locker_reply_server_packet.py +39 -33
  273. eolib/protocol/_generated/net/server/locker_spec_server_packet.py +21 -20
  274. eolib/protocol/_generated/net/server/login_reply.py +6 -0
  275. eolib/protocol/_generated/net/server/login_reply_server_packet.py +169 -115
  276. eolib/protocol/_generated/net/server/map_drain_damage_other.py +35 -54
  277. eolib/protocol/_generated/net/server/map_file.py +21 -12
  278. eolib/protocol/_generated/net/server/marriage_open_server_packet.py +21 -20
  279. eolib/protocol/_generated/net/server/marriage_reply_server_packet.py +56 -48
  280. eolib/protocol/_generated/net/server/message_accept_server_packet.py +30 -28
  281. eolib/protocol/_generated/net/server/message_close_server_packet.py +13 -7
  282. eolib/protocol/_generated/net/server/message_open_server_packet.py +21 -12
  283. eolib/protocol/_generated/net/server/message_pong_server_packet.py +13 -7
  284. eolib/protocol/_generated/net/server/music_player_server_packet.py +21 -20
  285. eolib/protocol/_generated/net/server/nearby_info.py +59 -61
  286. eolib/protocol/_generated/net/server/npc_accept_server_packet.py +47 -38
  287. eolib/protocol/_generated/net/server/npc_agree_server_packet.py +34 -32
  288. eolib/protocol/_generated/net/server/npc_dialog_server_packet.py +28 -29
  289. eolib/protocol/_generated/net/server/npc_junk_server_packet.py +21 -20
  290. eolib/protocol/_generated/net/server/npc_killed_data.py +70 -123
  291. eolib/protocol/_generated/net/server/npc_map_info.py +42 -55
  292. eolib/protocol/_generated/net/server/npc_player_server_packet.py +66 -76
  293. eolib/protocol/_generated/net/server/npc_reply_server_packet.py +60 -89
  294. eolib/protocol/_generated/net/server/npc_spec_server_packet.py +30 -27
  295. eolib/protocol/_generated/net/server/npc_update_attack.py +56 -89
  296. eolib/protocol/_generated/net/server/npc_update_chat.py +36 -45
  297. eolib/protocol/_generated/net/server/npc_update_position.py +35 -38
  298. eolib/protocol/_generated/net/server/online_player.py +60 -75
  299. eolib/protocol/_generated/net/server/paperdoll_agree_server_packet.py +49 -72
  300. eolib/protocol/_generated/net/server/paperdoll_ping_server_packet.py +22 -22
  301. eolib/protocol/_generated/net/server/paperdoll_remove_server_packet.py +42 -55
  302. eolib/protocol/_generated/net/server/paperdoll_reply_server_packet.py +37 -30
  303. eolib/protocol/_generated/net/server/party_add_server_packet.py +21 -12
  304. eolib/protocol/_generated/net/server/party_agree_server_packet.py +28 -37
  305. eolib/protocol/_generated/net/server/party_close_server_packet.py +13 -7
  306. eolib/protocol/_generated/net/server/party_create_server_packet.py +27 -16
  307. eolib/protocol/_generated/net/server/party_exp_share.py +37 -57
  308. eolib/protocol/_generated/net/server/party_list_server_packet.py +27 -16
  309. eolib/protocol/_generated/net/server/party_member.py +50 -73
  310. eolib/protocol/_generated/net/server/party_remove_server_packet.py +21 -20
  311. eolib/protocol/_generated/net/server/party_reply_server_packet.py +83 -58
  312. eolib/protocol/_generated/net/server/party_request_server_packet.py +35 -38
  313. eolib/protocol/_generated/net/server/party_target_group_server_packet.py +25 -15
  314. eolib/protocol/_generated/net/server/player_effect.py +90 -0
  315. eolib/protocol/_generated/net/server/players_agree_server_packet.py +21 -12
  316. eolib/protocol/_generated/net/server/players_list.py +38 -36
  317. eolib/protocol/_generated/net/server/players_list_friends.py +38 -36
  318. eolib/protocol/_generated/net/server/players_list_server_packet.py +23 -12
  319. eolib/protocol/_generated/net/server/players_net242_server_packet.py +21 -12
  320. eolib/protocol/_generated/net/server/players_ping_server_packet.py +21 -12
  321. eolib/protocol/_generated/net/server/players_pong_server_packet.py +21 -12
  322. eolib/protocol/_generated/net/server/players_remove_server_packet.py +21 -20
  323. eolib/protocol/_generated/net/server/players_reply_server_packet.py +23 -12
  324. eolib/protocol/_generated/net/server/priest_open_server_packet.py +21 -20
  325. eolib/protocol/_generated/net/server/priest_reply_server_packet.py +21 -12
  326. eolib/protocol/_generated/net/server/priest_request_server_packet.py +28 -29
  327. eolib/protocol/_generated/net/server/pub_file.py +28 -29
  328. eolib/protocol/_generated/net/server/quest_dialog_server_packet.py +76 -117
  329. eolib/protocol/_generated/net/server/quest_list_server_packet.py +99 -83
  330. eolib/protocol/_generated/net/server/quest_progress_entry.py +53 -66
  331. eolib/protocol/_generated/net/server/quest_report_server_packet.py +38 -37
  332. eolib/protocol/_generated/net/server/range_reply_server_packet.py +21 -12
  333. eolib/protocol/_generated/net/server/recover_agree_server_packet.py +35 -54
  334. eolib/protocol/_generated/net/server/recover_list_server_packet.py +28 -29
  335. eolib/protocol/_generated/net/server/recover_player_server_packet.py +30 -37
  336. eolib/protocol/_generated/net/server/recover_reply_server_packet.py +53 -93
  337. eolib/protocol/_generated/net/server/recover_target_group_server_packet.py +49 -88
  338. eolib/protocol/_generated/net/server/refresh_reply_server_packet.py +21 -12
  339. eolib/protocol/_generated/net/server/server_settings.py +63 -114
  340. eolib/protocol/_generated/net/server/shop_buy_server_packet.py +35 -38
  341. eolib/protocol/_generated/net/server/shop_craft_item.py +34 -42
  342. eolib/protocol/_generated/net/server/shop_create_server_packet.py +41 -51
  343. eolib/protocol/_generated/net/server/shop_open_server_packet.py +53 -57
  344. eolib/protocol/_generated/net/server/shop_sell_server_packet.py +35 -38
  345. eolib/protocol/_generated/net/server/shop_sold_item.py +28 -37
  346. eolib/protocol/_generated/net/server/shop_trade_item.py +42 -71
  347. eolib/protocol/_generated/net/server/sit_close_server_packet.py +28 -29
  348. eolib/protocol/_generated/net/server/sit_player_server_packet.py +36 -39
  349. eolib/protocol/_generated/net/server/sit_remove_server_packet.py +28 -29
  350. eolib/protocol/_generated/net/server/sit_reply_server_packet.py +36 -39
  351. eolib/protocol/_generated/net/server/skill_learn.py +64 -106
  352. eolib/protocol/_generated/net/server/skill_stat_requirements.py +134 -0
  353. eolib/protocol/_generated/net/server/spell_error_server_packet.py +13 -7
  354. eolib/protocol/_generated/net/server/spell_player_server_packet.py +28 -29
  355. eolib/protocol/_generated/net/server/spell_reply_server_packet.py +133 -0
  356. eolib/protocol/_generated/net/server/spell_request_server_packet.py +28 -37
  357. eolib/protocol/_generated/net/server/spell_target_group_server_packet.py +53 -83
  358. eolib/protocol/_generated/net/server/spell_target_other_server_packet.py +64 -114
  359. eolib/protocol/_generated/net/server/spell_target_self_server_packet.py +58 -107
  360. eolib/protocol/_generated/net/server/stat_skill_accept_server_packet.py +28 -29
  361. eolib/protocol/_generated/net/server/stat_skill_junk_server_packet.py +21 -12
  362. eolib/protocol/_generated/net/server/stat_skill_open_server_packet.py +42 -42
  363. eolib/protocol/_generated/net/server/stat_skill_player_server_packet.py +28 -29
  364. eolib/protocol/_generated/net/server/stat_skill_remove_server_packet.py +21 -20
  365. eolib/protocol/_generated/net/server/stat_skill_reply_server_packet.py +56 -48
  366. eolib/protocol/_generated/net/server/stat_skill_take_server_packet.py +28 -37
  367. eolib/protocol/_generated/net/server/talk_admin_server_packet.py +31 -22
  368. eolib/protocol/_generated/net/server/talk_announce_server_packet.py +31 -22
  369. eolib/protocol/_generated/net/server/talk_list_server_packet.py +27 -16
  370. eolib/protocol/_generated/net/server/talk_msg_server_packet.py +31 -22
  371. eolib/protocol/_generated/net/server/talk_open_server_packet.py +28 -29
  372. eolib/protocol/_generated/net/server/talk_player_server_packet.py +28 -29
  373. eolib/protocol/_generated/net/server/talk_reply_server_packet.py +28 -21
  374. eolib/protocol/_generated/net/server/talk_request_server_packet.py +31 -22
  375. eolib/protocol/_generated/net/server/talk_server_server_packet.py +21 -12
  376. eolib/protocol/_generated/net/server/talk_spec_server_packet.py +21 -12
  377. eolib/protocol/_generated/net/server/talk_tell_server_packet.py +31 -22
  378. eolib/protocol/_generated/net/server/tile_effect.py +91 -0
  379. eolib/protocol/_generated/net/server/trade_admin_server_packet.py +35 -13
  380. eolib/protocol/_generated/net/server/trade_agree_server_packet.py +28 -29
  381. eolib/protocol/_generated/net/server/trade_close_server_packet.py +21 -20
  382. eolib/protocol/_generated/net/server/trade_item_data.py +38 -82
  383. eolib/protocol/_generated/net/server/trade_open_server_packet.py +46 -57
  384. eolib/protocol/_generated/net/server/trade_reply_server_packet.py +35 -13
  385. eolib/protocol/_generated/net/server/trade_request_server_packet.py +29 -30
  386. eolib/protocol/_generated/net/server/trade_spec_server_packet.py +21 -12
  387. eolib/protocol/_generated/net/server/trade_use_server_packet.py +35 -13
  388. eolib/protocol/_generated/net/server/walk_close_server_packet.py +13 -7
  389. eolib/protocol/_generated/net/server/walk_open_server_packet.py +13 -7
  390. eolib/protocol/_generated/net/server/walk_player_server_packet.py +35 -58
  391. eolib/protocol/_generated/net/server/walk_reply_server_packet.py +49 -57
  392. eolib/protocol/_generated/net/server/warp_agree_server_packet.py +72 -66
  393. eolib/protocol/_generated/net/server/warp_create_server_packet.py +21 -12
  394. eolib/protocol/_generated/net/server/warp_player_server_packet.py +21 -12
  395. eolib/protocol/_generated/net/server/warp_request_server_packet.py +83 -106
  396. eolib/protocol/_generated/net/server/welcome_net242_server_packet.py +21 -12
  397. eolib/protocol/_generated/net/server/welcome_net243_server_packet.py +21 -12
  398. eolib/protocol/_generated/net/server/welcome_net244_server_packet.py +21 -12
  399. eolib/protocol/_generated/net/server/welcome_ping_server_packet.py +21 -12
  400. eolib/protocol/_generated/net/server/welcome_pong_server_packet.py +21 -12
  401. eolib/protocol/_generated/net/server/welcome_reply_server_packet.py +350 -556
  402. eolib/protocol/_generated/net/spell.py +28 -37
  403. eolib/protocol/_generated/net/three_item.py +28 -37
  404. eolib/protocol/_generated/net/version.py +35 -54
  405. eolib/protocol/_generated/net/weight.py +28 -37
  406. eolib/protocol/_generated/pub/ecf.py +52 -74
  407. eolib/protocol/_generated/pub/ecf_record.py +85 -164
  408. eolib/protocol/_generated/pub/eif.py +52 -74
  409. eolib/protocol/_generated/pub/eif_record.py +303 -658
  410. eolib/protocol/_generated/pub/enf.py +52 -74
  411. eolib/protocol/_generated/pub/enf_record.py +169 -328
  412. eolib/protocol/_generated/pub/esf.py +52 -74
  413. eolib/protocol/_generated/pub/esf_record.py +242 -491
  414. eolib/protocol/_generated/pub/server/__init__.py +30 -0
  415. eolib/protocol/_generated/pub/server/drop_file.py +87 -0
  416. eolib/protocol/_generated/pub/server/drop_npc_record.py +104 -0
  417. eolib/protocol/_generated/pub/server/drop_record.py +115 -0
  418. eolib/protocol/_generated/pub/server/inn_file.py +87 -0
  419. eolib/protocol/_generated/pub/server/inn_question_record.py +106 -0
  420. eolib/protocol/_generated/pub/server/inn_record.py +255 -0
  421. eolib/protocol/_generated/pub/server/shop_craft_ingredient_record.py +93 -0
  422. eolib/protocol/_generated/pub/server/shop_craft_record.py +98 -0
  423. eolib/protocol/_generated/pub/server/shop_file.py +87 -0
  424. eolib/protocol/_generated/pub/server/shop_record.py +188 -0
  425. eolib/protocol/_generated/pub/server/shop_trade_record.py +121 -0
  426. eolib/protocol/_generated/pub/server/skill_master_file.py +87 -0
  427. eolib/protocol/_generated/pub/server/skill_master_record.py +168 -0
  428. eolib/protocol/_generated/pub/server/skill_master_skill_record.py +223 -0
  429. eolib/protocol/_generated/pub/server/talk_file.py +87 -0
  430. eolib/protocol/_generated/pub/server/talk_message_record.py +87 -0
  431. eolib/protocol/_generated/pub/server/talk_record.py +121 -0
  432. eolib/protocol/protocol_enum_meta.py +1 -3
  433. eolib/protocol/pub/server/__init__.py +8 -0
  434. {eolib-1.1.1.dist-info → eolib-2.0.0.dist-info}/METADATA +5 -3
  435. {eolib-1.1.1.dist-info → eolib-2.0.0.dist-info}/RECORD +437 -414
  436. {eolib-1.1.1.dist-info → eolib-2.0.0.dist-info}/WHEEL +1 -1
  437. {eolib-1.1.1.dist-info → eolib-2.0.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -15,7 +15,16 @@ class LockerSpecServerPacket(Packet):
15
15
  Reply to trying to add an item to a full locker
16
16
  """
17
17
  _byte_size: int = 0
18
- _locker_max_items: int = None # type: ignore [assignment]
18
+ _locker_max_items: int
19
+
20
+ def __init__(self, *, locker_max_items: int):
21
+ """
22
+ Create a new instance of LockerSpecServerPacket.
23
+
24
+ Args:
25
+ locker_max_items (int): (Value range is 0-252.)
26
+ """
27
+ self._locker_max_items = locker_max_items
19
28
 
20
29
  @property
21
30
  def byte_size(self) -> int:
@@ -29,20 +38,8 @@ class LockerSpecServerPacket(Packet):
29
38
 
30
39
  @property
31
40
  def locker_max_items(self) -> int:
32
- """
33
- Note:
34
- - Value range is 0-252.
35
- """
36
41
  return self._locker_max_items
37
42
 
38
- @locker_max_items.setter
39
- def locker_max_items(self, locker_max_items: int) -> None:
40
- """
41
- Note:
42
- - Value range is 0-252.
43
- """
44
- self._locker_max_items = locker_max_items
45
-
46
43
  @staticmethod
47
44
  def family() -> PacketFamily:
48
45
  """
@@ -81,9 +78,13 @@ class LockerSpecServerPacket(Packet):
81
78
  writer (EoWriter): The writer that the data will be serialized to.
82
79
  data (LockerSpecServerPacket): The data to serialize.
83
80
  """
84
- if data._locker_max_items is None:
85
- raise SerializationError("locker_max_items must be provided.")
86
- writer.add_char(data._locker_max_items)
81
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
82
+ try:
83
+ if data._locker_max_items is None:
84
+ raise SerializationError("locker_max_items must be provided.")
85
+ writer.add_char(data._locker_max_items)
86
+ finally:
87
+ writer.string_sanitization_mode = old_string_sanitization_mode
87
88
 
88
89
  @staticmethod
89
90
  def deserialize(reader: EoReader) -> "LockerSpecServerPacket":
@@ -96,13 +97,13 @@ class LockerSpecServerPacket(Packet):
96
97
  Returns:
97
98
  LockerSpecServerPacket: The data to serialize.
98
99
  """
99
- data: LockerSpecServerPacket = LockerSpecServerPacket()
100
100
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
101
101
  try:
102
102
  reader_start_position: int = reader.position
103
- data._locker_max_items = reader.get_char()
104
- data._byte_size = reader.position - reader_start_position
105
- return data
103
+ locker_max_items = reader.get_char()
104
+ result = LockerSpecServerPacket(locker_max_items=locker_max_items)
105
+ result._byte_size = reader.position - reader_start_position
106
+ return result
106
107
  finally:
107
108
  reader.chunked_reading_mode = old_chunked_reading_mode
108
109
 
@@ -15,5 +15,11 @@ class LoginReply(IntEnum, metaclass=ProtocolEnumMeta):
15
15
  WrongUserPassword = 2
16
16
  Ok = 3
17
17
  Banned = 4
18
+ """
19
+ The official client won't display a message until the connection from the server is closed
20
+ """
18
21
  LoggedIn = 5
19
22
  Busy = 6
23
+ """
24
+ The official client won't display a message until the connection from the server is closed
25
+ """
@@ -5,6 +5,7 @@
5
5
 
6
6
  from __future__ import annotations
7
7
  from typing import Union
8
+ from collections.abc import Iterable
8
9
  from .login_reply import LoginReply
9
10
  from .character_selection_list_entry import CharacterSelectionListEntry
10
11
  from ..packet_family import PacketFamily
@@ -19,8 +20,19 @@ class LoginReplyServerPacket(Packet):
19
20
  Login reply
20
21
  """
21
22
  _byte_size: int = 0
22
- _reply_code: LoginReply = None # type: ignore [assignment]
23
- _reply_code_data: 'LoginReplyServerPacket.ReplyCodeData' = None
23
+ _reply_code: LoginReply
24
+ _reply_code_data: 'LoginReplyServerPacket.ReplyCodeData'
25
+
26
+ def __init__(self, *, reply_code: LoginReply, reply_code_data: 'LoginReplyServerPacket.ReplyCodeData' = None):
27
+ """
28
+ Create a new instance of LoginReplyServerPacket.
29
+
30
+ Args:
31
+ reply_code (LoginReply):
32
+ reply_code_data (LoginReplyServerPacket.ReplyCodeData): Data associated with the `reply_code` field.
33
+ """
34
+ self._reply_code = reply_code
35
+ self._reply_code_data = reply_code_data
24
36
 
25
37
  @property
26
38
  def byte_size(self) -> int:
@@ -36,21 +48,13 @@ class LoginReplyServerPacket(Packet):
36
48
  def reply_code(self) -> LoginReply:
37
49
  return self._reply_code
38
50
 
39
- @reply_code.setter
40
- def reply_code(self, reply_code: LoginReply) -> None:
41
- self._reply_code = reply_code
42
-
43
51
  @property
44
52
  def reply_code_data(self) -> 'LoginReplyServerPacket.ReplyCodeData':
45
53
  """
46
- LoginReplyServerPacket.ReplyCodeData: Gets or sets the data associated with the `reply_code` field.
54
+ LoginReplyServerPacket.ReplyCodeData: Data associated with the `reply_code` field.
47
55
  """
48
56
  return self._reply_code_data
49
57
 
50
- @reply_code_data.setter
51
- def reply_code_data(self, reply_code_data: 'LoginReplyServerPacket.ReplyCodeData') -> None:
52
- self._reply_code_data = reply_code_data
53
-
54
58
  @staticmethod
55
59
  def family() -> PacketFamily:
56
60
  """
@@ -89,33 +93,39 @@ class LoginReplyServerPacket(Packet):
89
93
  writer (EoWriter): The writer that the data will be serialized to.
90
94
  data (LoginReplyServerPacket): The data to serialize.
91
95
  """
92
- if data._reply_code is None:
93
- raise SerializationError("reply_code must be provided.")
94
- writer.add_short(int(data._reply_code))
95
- if data._reply_code == LoginReply.WrongUser:
96
- if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataWrongUser):
97
- raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataWrongUser for reply_code " + LoginReply(data._reply_code).name + ".")
98
- LoginReplyServerPacket.ReplyCodeDataWrongUser.serialize(writer, data._reply_code_data)
99
- elif data._reply_code == LoginReply.WrongUserPassword:
100
- if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataWrongUserPassword):
101
- raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataWrongUserPassword for reply_code " + LoginReply(data._reply_code).name + ".")
102
- LoginReplyServerPacket.ReplyCodeDataWrongUserPassword.serialize(writer, data._reply_code_data)
103
- elif data._reply_code == LoginReply.Ok:
104
- if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataOk):
105
- raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataOk for reply_code " + LoginReply(data._reply_code).name + ".")
106
- LoginReplyServerPacket.ReplyCodeDataOk.serialize(writer, data._reply_code_data)
107
- elif data._reply_code == LoginReply.Banned:
108
- if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataBanned):
109
- raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataBanned for reply_code " + LoginReply(data._reply_code).name + ".")
110
- LoginReplyServerPacket.ReplyCodeDataBanned.serialize(writer, data._reply_code_data)
111
- elif data._reply_code == LoginReply.LoggedIn:
112
- if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataLoggedIn):
113
- raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataLoggedIn for reply_code " + LoginReply(data._reply_code).name + ".")
114
- LoginReplyServerPacket.ReplyCodeDataLoggedIn.serialize(writer, data._reply_code_data)
115
- elif data._reply_code == LoginReply.Busy:
116
- if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataBusy):
117
- raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataBusy for reply_code " + LoginReply(data._reply_code).name + ".")
118
- LoginReplyServerPacket.ReplyCodeDataBusy.serialize(writer, data._reply_code_data)
96
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
97
+ try:
98
+ writer.string_sanitization_mode = True
99
+ if data._reply_code is None:
100
+ raise SerializationError("reply_code must be provided.")
101
+ writer.add_short(int(data._reply_code))
102
+ if data._reply_code == LoginReply.WrongUser:
103
+ if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataWrongUser):
104
+ raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataWrongUser for reply_code " + LoginReply(data._reply_code).name + ".")
105
+ LoginReplyServerPacket.ReplyCodeDataWrongUser.serialize(writer, data._reply_code_data)
106
+ elif data._reply_code == LoginReply.WrongUserPassword:
107
+ if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataWrongUserPassword):
108
+ raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataWrongUserPassword for reply_code " + LoginReply(data._reply_code).name + ".")
109
+ LoginReplyServerPacket.ReplyCodeDataWrongUserPassword.serialize(writer, data._reply_code_data)
110
+ elif data._reply_code == LoginReply.Ok:
111
+ if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataOk):
112
+ raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataOk for reply_code " + LoginReply(data._reply_code).name + ".")
113
+ LoginReplyServerPacket.ReplyCodeDataOk.serialize(writer, data._reply_code_data)
114
+ elif data._reply_code == LoginReply.Banned:
115
+ if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataBanned):
116
+ raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataBanned for reply_code " + LoginReply(data._reply_code).name + ".")
117
+ LoginReplyServerPacket.ReplyCodeDataBanned.serialize(writer, data._reply_code_data)
118
+ elif data._reply_code == LoginReply.LoggedIn:
119
+ if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataLoggedIn):
120
+ raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataLoggedIn for reply_code " + LoginReply(data._reply_code).name + ".")
121
+ LoginReplyServerPacket.ReplyCodeDataLoggedIn.serialize(writer, data._reply_code_data)
122
+ elif data._reply_code == LoginReply.Busy:
123
+ if not isinstance(data._reply_code_data, LoginReplyServerPacket.ReplyCodeDataBusy):
124
+ raise SerializationError("Expected reply_code_data to be type LoginReplyServerPacket.ReplyCodeDataBusy for reply_code " + LoginReply(data._reply_code).name + ".")
125
+ LoginReplyServerPacket.ReplyCodeDataBusy.serialize(writer, data._reply_code_data)
126
+ writer.string_sanitization_mode = False
127
+ finally:
128
+ writer.string_sanitization_mode = old_string_sanitization_mode
119
129
 
120
130
  @staticmethod
121
131
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket":
@@ -128,27 +138,28 @@ class LoginReplyServerPacket(Packet):
128
138
  Returns:
129
139
  LoginReplyServerPacket: The data to serialize.
130
140
  """
131
- data: LoginReplyServerPacket = LoginReplyServerPacket()
132
141
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
133
142
  try:
134
143
  reader_start_position: int = reader.position
135
144
  reader.chunked_reading_mode = True
136
- data._reply_code = LoginReply(reader.get_short())
137
- if data._reply_code == LoginReply.WrongUser:
138
- data._reply_code_data = LoginReplyServerPacket.ReplyCodeDataWrongUser.deserialize(reader)
139
- elif data._reply_code == LoginReply.WrongUserPassword:
140
- data._reply_code_data = LoginReplyServerPacket.ReplyCodeDataWrongUserPassword.deserialize(reader)
141
- elif data._reply_code == LoginReply.Ok:
142
- data._reply_code_data = LoginReplyServerPacket.ReplyCodeDataOk.deserialize(reader)
143
- elif data._reply_code == LoginReply.Banned:
144
- data._reply_code_data = LoginReplyServerPacket.ReplyCodeDataBanned.deserialize(reader)
145
- elif data._reply_code == LoginReply.LoggedIn:
146
- data._reply_code_data = LoginReplyServerPacket.ReplyCodeDataLoggedIn.deserialize(reader)
147
- elif data._reply_code == LoginReply.Busy:
148
- data._reply_code_data = LoginReplyServerPacket.ReplyCodeDataBusy.deserialize(reader)
145
+ reply_code = LoginReply(reader.get_short())
146
+ reply_code_data: LoginReplyServerPacket.ReplyCodeData = None
147
+ if reply_code == LoginReply.WrongUser:
148
+ reply_code_data = LoginReplyServerPacket.ReplyCodeDataWrongUser.deserialize(reader)
149
+ elif reply_code == LoginReply.WrongUserPassword:
150
+ reply_code_data = LoginReplyServerPacket.ReplyCodeDataWrongUserPassword.deserialize(reader)
151
+ elif reply_code == LoginReply.Ok:
152
+ reply_code_data = LoginReplyServerPacket.ReplyCodeDataOk.deserialize(reader)
153
+ elif reply_code == LoginReply.Banned:
154
+ reply_code_data = LoginReplyServerPacket.ReplyCodeDataBanned.deserialize(reader)
155
+ elif reply_code == LoginReply.LoggedIn:
156
+ reply_code_data = LoginReplyServerPacket.ReplyCodeDataLoggedIn.deserialize(reader)
157
+ elif reply_code == LoginReply.Busy:
158
+ reply_code_data = LoginReplyServerPacket.ReplyCodeDataBusy.deserialize(reader)
149
159
  reader.chunked_reading_mode = False
150
- data._byte_size = reader.position - reader_start_position
151
- return data
160
+ result = LoginReplyServerPacket(reply_code=reply_code, reply_code_data=reply_code_data)
161
+ result._byte_size = reader.position - reader_start_position
162
+ return result
152
163
  finally:
153
164
  reader.chunked_reading_mode = old_chunked_reading_mode
154
165
 
@@ -156,10 +167,9 @@ class LoginReplyServerPacket(Packet):
156
167
  return f"LoginReplyServerPacket(byte_size={repr(self._byte_size)}, reply_code={repr(self._reply_code)}, reply_code_data={repr(self._reply_code_data)})"
157
168
 
158
169
  ReplyCodeData = Union['LoginReplyServerPacket.ReplyCodeDataWrongUser', 'LoginReplyServerPacket.ReplyCodeDataWrongUserPassword', 'LoginReplyServerPacket.ReplyCodeDataOk', 'LoginReplyServerPacket.ReplyCodeDataBanned', 'LoginReplyServerPacket.ReplyCodeDataLoggedIn', 'LoginReplyServerPacket.ReplyCodeDataBusy', None]
159
- ReplyCodeData.__doc__ = \
160
- """
161
- Data associated with different values of the `reply_code` field.
162
- """
170
+ """
171
+ Data associated with different values of the `reply_code` field.
172
+ """
163
173
 
164
174
  class ReplyCodeDataWrongUser:
165
175
  """
@@ -167,6 +177,11 @@ class LoginReplyServerPacket(Packet):
167
177
  """
168
178
  _byte_size: int = 0
169
179
 
180
+ def __init__(self):
181
+ """
182
+ Create a new instance of LoginReplyServerPacket.ReplyCodeDataWrongUser.
183
+ """
184
+
170
185
  @property
171
186
  def byte_size(self) -> int:
172
187
  """
@@ -187,7 +202,11 @@ class LoginReplyServerPacket(Packet):
187
202
  writer (EoWriter): The writer that the data will be serialized to.
188
203
  data (LoginReplyServerPacket.ReplyCodeDataWrongUser): The data to serialize.
189
204
  """
190
- writer.add_string("NO")
205
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
206
+ try:
207
+ writer.add_string("NO")
208
+ finally:
209
+ writer.string_sanitization_mode = old_string_sanitization_mode
191
210
 
192
211
  @staticmethod
193
212
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket.ReplyCodeDataWrongUser":
@@ -200,13 +219,13 @@ class LoginReplyServerPacket(Packet):
200
219
  Returns:
201
220
  LoginReplyServerPacket.ReplyCodeDataWrongUser: The data to serialize.
202
221
  """
203
- data: LoginReplyServerPacket.ReplyCodeDataWrongUser = LoginReplyServerPacket.ReplyCodeDataWrongUser()
204
222
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
205
223
  try:
206
224
  reader_start_position: int = reader.position
207
225
  reader.get_string()
208
- data._byte_size = reader.position - reader_start_position
209
- return data
226
+ result = LoginReplyServerPacket.ReplyCodeDataWrongUser()
227
+ result._byte_size = reader.position - reader_start_position
228
+ return result
210
229
  finally:
211
230
  reader.chunked_reading_mode = old_chunked_reading_mode
212
231
 
@@ -219,6 +238,11 @@ class LoginReplyServerPacket(Packet):
219
238
  """
220
239
  _byte_size: int = 0
221
240
 
241
+ def __init__(self):
242
+ """
243
+ Create a new instance of LoginReplyServerPacket.ReplyCodeDataWrongUserPassword.
244
+ """
245
+
222
246
  @property
223
247
  def byte_size(self) -> int:
224
248
  """
@@ -239,7 +263,11 @@ class LoginReplyServerPacket(Packet):
239
263
  writer (EoWriter): The writer that the data will be serialized to.
240
264
  data (LoginReplyServerPacket.ReplyCodeDataWrongUserPassword): The data to serialize.
241
265
  """
242
- writer.add_string("NO")
266
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
267
+ try:
268
+ writer.add_string("NO")
269
+ finally:
270
+ writer.string_sanitization_mode = old_string_sanitization_mode
243
271
 
244
272
  @staticmethod
245
273
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket.ReplyCodeDataWrongUserPassword":
@@ -252,13 +280,13 @@ class LoginReplyServerPacket(Packet):
252
280
  Returns:
253
281
  LoginReplyServerPacket.ReplyCodeDataWrongUserPassword: The data to serialize.
254
282
  """
255
- data: LoginReplyServerPacket.ReplyCodeDataWrongUserPassword = LoginReplyServerPacket.ReplyCodeDataWrongUserPassword()
256
283
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
257
284
  try:
258
285
  reader_start_position: int = reader.position
259
286
  reader.get_string()
260
- data._byte_size = reader.position - reader_start_position
261
- return data
287
+ result = LoginReplyServerPacket.ReplyCodeDataWrongUserPassword()
288
+ result._byte_size = reader.position - reader_start_position
289
+ return result
262
290
  finally:
263
291
  reader.chunked_reading_mode = old_chunked_reading_mode
264
292
 
@@ -270,8 +298,18 @@ class LoginReplyServerPacket(Packet):
270
298
  Data associated with reply_code value LoginReply.Ok
271
299
  """
272
300
  _byte_size: int = 0
273
- _characters_count: int = None # type: ignore [assignment]
274
- _characters: list[CharacterSelectionListEntry] = None # type: ignore [assignment]
301
+ _characters_count: int
302
+ _characters: tuple[CharacterSelectionListEntry, ...]
303
+
304
+ def __init__(self, *, characters: Iterable[CharacterSelectionListEntry]):
305
+ """
306
+ Create a new instance of LoginReplyServerPacket.ReplyCodeDataOk.
307
+
308
+ Args:
309
+ characters (Iterable[CharacterSelectionListEntry]): (Length must be 252 or less.)
310
+ """
311
+ self._characters = tuple(characters)
312
+ self._characters_count = len(self._characters)
275
313
 
276
314
  @property
277
315
  def byte_size(self) -> int:
@@ -284,22 +322,9 @@ class LoginReplyServerPacket(Packet):
284
322
  return self._byte_size
285
323
 
286
324
  @property
287
- def characters(self) -> list[CharacterSelectionListEntry]:
288
- """
289
- Note:
290
- - Length must be 252 or less.
291
- """
325
+ def characters(self) -> tuple[CharacterSelectionListEntry, ...]:
292
326
  return self._characters
293
327
 
294
- @characters.setter
295
- def characters(self, characters: list[CharacterSelectionListEntry]) -> None:
296
- """
297
- Note:
298
- - Length must be 252 or less.
299
- """
300
- self._characters = characters
301
- self._characters_count = len(self._characters)
302
-
303
328
  @staticmethod
304
329
  def serialize(writer: EoWriter, data: "LoginReplyServerPacket.ReplyCodeDataOk") -> None:
305
330
  """
@@ -309,19 +334,22 @@ class LoginReplyServerPacket(Packet):
309
334
  writer (EoWriter): The writer that the data will be serialized to.
310
335
  data (LoginReplyServerPacket.ReplyCodeDataOk): The data to serialize.
311
336
  """
312
- if data._characters_count is None:
313
- raise SerializationError("characters_count must be provided.")
314
- writer.add_char(data._characters_count)
315
- writer.add_char(0)
316
- writer.add_byte(0xFF)
317
- if data._characters is None:
318
- raise SerializationError("characters must be provided.")
319
- if len(data._characters) > 252:
320
- raise SerializationError(f"Expected length of characters to be 252 or less, got {len(data._characters)}.")
321
- for i in range(data._characters_count):
322
- if i > 0:
337
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
338
+ try:
339
+ if data._characters_count is None:
340
+ raise SerializationError("characters_count must be provided.")
341
+ writer.add_char(data._characters_count)
342
+ writer.add_char(0)
343
+ writer.add_byte(0xFF)
344
+ if data._characters is None:
345
+ raise SerializationError("characters must be provided.")
346
+ if len(data._characters) > 252:
347
+ raise SerializationError(f"Expected length of characters to be 252 or less, got {len(data._characters)}.")
348
+ for i in range(data._characters_count):
349
+ CharacterSelectionListEntry.serialize(writer, data._characters[i])
323
350
  writer.add_byte(0xFF)
324
- CharacterSelectionListEntry.serialize(writer, data._characters[i])
351
+ finally:
352
+ writer.string_sanitization_mode = old_string_sanitization_mode
325
353
 
326
354
  @staticmethod
327
355
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket.ReplyCodeDataOk":
@@ -334,20 +362,19 @@ class LoginReplyServerPacket(Packet):
334
362
  Returns:
335
363
  LoginReplyServerPacket.ReplyCodeDataOk: The data to serialize.
336
364
  """
337
- data: LoginReplyServerPacket.ReplyCodeDataOk = LoginReplyServerPacket.ReplyCodeDataOk()
338
365
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
339
366
  try:
340
367
  reader_start_position: int = reader.position
341
- data._characters_count = reader.get_char()
368
+ characters_count = reader.get_char()
342
369
  reader.get_char()
343
370
  reader.next_chunk()
344
- data._characters = []
345
- for i in range(data._characters_count):
346
- data._characters.append(CharacterSelectionListEntry.deserialize(reader))
347
- if i + 1 < data._characters_count:
348
- reader.next_chunk()
349
- data._byte_size = reader.position - reader_start_position
350
- return data
371
+ characters = []
372
+ for i in range(characters_count):
373
+ characters.append(CharacterSelectionListEntry.deserialize(reader))
374
+ reader.next_chunk()
375
+ result = LoginReplyServerPacket.ReplyCodeDataOk(characters=characters)
376
+ result._byte_size = reader.position - reader_start_position
377
+ return result
351
378
  finally:
352
379
  reader.chunked_reading_mode = old_chunked_reading_mode
353
380
 
@@ -360,6 +387,11 @@ class LoginReplyServerPacket(Packet):
360
387
  """
361
388
  _byte_size: int = 0
362
389
 
390
+ def __init__(self):
391
+ """
392
+ Create a new instance of LoginReplyServerPacket.ReplyCodeDataBanned.
393
+ """
394
+
363
395
  @property
364
396
  def byte_size(self) -> int:
365
397
  """
@@ -380,7 +412,11 @@ class LoginReplyServerPacket(Packet):
380
412
  writer (EoWriter): The writer that the data will be serialized to.
381
413
  data (LoginReplyServerPacket.ReplyCodeDataBanned): The data to serialize.
382
414
  """
383
- writer.add_string("NO")
415
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
416
+ try:
417
+ writer.add_string("NO")
418
+ finally:
419
+ writer.string_sanitization_mode = old_string_sanitization_mode
384
420
 
385
421
  @staticmethod
386
422
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket.ReplyCodeDataBanned":
@@ -393,13 +429,13 @@ class LoginReplyServerPacket(Packet):
393
429
  Returns:
394
430
  LoginReplyServerPacket.ReplyCodeDataBanned: The data to serialize.
395
431
  """
396
- data: LoginReplyServerPacket.ReplyCodeDataBanned = LoginReplyServerPacket.ReplyCodeDataBanned()
397
432
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
398
433
  try:
399
434
  reader_start_position: int = reader.position
400
435
  reader.get_string()
401
- data._byte_size = reader.position - reader_start_position
402
- return data
436
+ result = LoginReplyServerPacket.ReplyCodeDataBanned()
437
+ result._byte_size = reader.position - reader_start_position
438
+ return result
403
439
  finally:
404
440
  reader.chunked_reading_mode = old_chunked_reading_mode
405
441
 
@@ -412,6 +448,11 @@ class LoginReplyServerPacket(Packet):
412
448
  """
413
449
  _byte_size: int = 0
414
450
 
451
+ def __init__(self):
452
+ """
453
+ Create a new instance of LoginReplyServerPacket.ReplyCodeDataLoggedIn.
454
+ """
455
+
415
456
  @property
416
457
  def byte_size(self) -> int:
417
458
  """
@@ -432,7 +473,11 @@ class LoginReplyServerPacket(Packet):
432
473
  writer (EoWriter): The writer that the data will be serialized to.
433
474
  data (LoginReplyServerPacket.ReplyCodeDataLoggedIn): The data to serialize.
434
475
  """
435
- writer.add_string("NO")
476
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
477
+ try:
478
+ writer.add_string("NO")
479
+ finally:
480
+ writer.string_sanitization_mode = old_string_sanitization_mode
436
481
 
437
482
  @staticmethod
438
483
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket.ReplyCodeDataLoggedIn":
@@ -445,13 +490,13 @@ class LoginReplyServerPacket(Packet):
445
490
  Returns:
446
491
  LoginReplyServerPacket.ReplyCodeDataLoggedIn: The data to serialize.
447
492
  """
448
- data: LoginReplyServerPacket.ReplyCodeDataLoggedIn = LoginReplyServerPacket.ReplyCodeDataLoggedIn()
449
493
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
450
494
  try:
451
495
  reader_start_position: int = reader.position
452
496
  reader.get_string()
453
- data._byte_size = reader.position - reader_start_position
454
- return data
497
+ result = LoginReplyServerPacket.ReplyCodeDataLoggedIn()
498
+ result._byte_size = reader.position - reader_start_position
499
+ return result
455
500
  finally:
456
501
  reader.chunked_reading_mode = old_chunked_reading_mode
457
502
 
@@ -464,6 +509,11 @@ class LoginReplyServerPacket(Packet):
464
509
  """
465
510
  _byte_size: int = 0
466
511
 
512
+ def __init__(self):
513
+ """
514
+ Create a new instance of LoginReplyServerPacket.ReplyCodeDataBusy.
515
+ """
516
+
467
517
  @property
468
518
  def byte_size(self) -> int:
469
519
  """
@@ -484,7 +534,11 @@ class LoginReplyServerPacket(Packet):
484
534
  writer (EoWriter): The writer that the data will be serialized to.
485
535
  data (LoginReplyServerPacket.ReplyCodeDataBusy): The data to serialize.
486
536
  """
487
- writer.add_string("NO")
537
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
538
+ try:
539
+ writer.add_string("NO")
540
+ finally:
541
+ writer.string_sanitization_mode = old_string_sanitization_mode
488
542
 
489
543
  @staticmethod
490
544
  def deserialize(reader: EoReader) -> "LoginReplyServerPacket.ReplyCodeDataBusy":
@@ -497,13 +551,13 @@ class LoginReplyServerPacket(Packet):
497
551
  Returns:
498
552
  LoginReplyServerPacket.ReplyCodeDataBusy: The data to serialize.
499
553
  """
500
- data: LoginReplyServerPacket.ReplyCodeDataBusy = LoginReplyServerPacket.ReplyCodeDataBusy()
501
554
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
502
555
  try:
503
556
  reader_start_position: int = reader.position
504
557
  reader.get_string()
505
- data._byte_size = reader.position - reader_start_position
506
- return data
558
+ result = LoginReplyServerPacket.ReplyCodeDataBusy()
559
+ result._byte_size = reader.position - reader_start_position
560
+ return result
507
561
  finally:
508
562
  reader.chunked_reading_mode = old_chunked_reading_mode
509
563