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
@@ -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 .welcome_code import WelcomeCode
9
10
  from .server_settings import ServerSettings
10
11
  from .nearby_info import NearbyInfo
@@ -27,8 +28,19 @@ class WelcomeReplyServerPacket(Packet):
27
28
  Reply to selecting a character / entering game
28
29
  """
29
30
  _byte_size: int = 0
30
- _welcome_code: WelcomeCode = None # type: ignore [assignment]
31
- _welcome_code_data: 'WelcomeReplyServerPacket.WelcomeCodeData' = None
31
+ _welcome_code: WelcomeCode
32
+ _welcome_code_data: 'WelcomeReplyServerPacket.WelcomeCodeData'
33
+
34
+ def __init__(self, *, welcome_code: WelcomeCode, welcome_code_data: 'WelcomeReplyServerPacket.WelcomeCodeData' = None):
35
+ """
36
+ Create a new instance of WelcomeReplyServerPacket.
37
+
38
+ Args:
39
+ welcome_code (WelcomeCode):
40
+ welcome_code_data (WelcomeReplyServerPacket.WelcomeCodeData): Data associated with the `welcome_code` field.
41
+ """
42
+ self._welcome_code = welcome_code
43
+ self._welcome_code_data = welcome_code_data
32
44
 
33
45
  @property
34
46
  def byte_size(self) -> int:
@@ -44,21 +56,13 @@ class WelcomeReplyServerPacket(Packet):
44
56
  def welcome_code(self) -> WelcomeCode:
45
57
  return self._welcome_code
46
58
 
47
- @welcome_code.setter
48
- def welcome_code(self, welcome_code: WelcomeCode) -> None:
49
- self._welcome_code = welcome_code
50
-
51
59
  @property
52
60
  def welcome_code_data(self) -> 'WelcomeReplyServerPacket.WelcomeCodeData':
53
61
  """
54
- WelcomeReplyServerPacket.WelcomeCodeData: Gets or sets the data associated with the `welcome_code` field.
62
+ WelcomeReplyServerPacket.WelcomeCodeData: Data associated with the `welcome_code` field.
55
63
  """
56
64
  return self._welcome_code_data
57
65
 
58
- @welcome_code_data.setter
59
- def welcome_code_data(self, welcome_code_data: 'WelcomeReplyServerPacket.WelcomeCodeData') -> None:
60
- self._welcome_code_data = welcome_code_data
61
-
62
66
  @staticmethod
63
67
  def family() -> PacketFamily:
64
68
  """
@@ -97,17 +101,23 @@ class WelcomeReplyServerPacket(Packet):
97
101
  writer (EoWriter): The writer that the data will be serialized to.
98
102
  data (WelcomeReplyServerPacket): The data to serialize.
99
103
  """
100
- if data._welcome_code is None:
101
- raise SerializationError("welcome_code must be provided.")
102
- writer.add_short(int(data._welcome_code))
103
- if data._welcome_code == WelcomeCode.SelectCharacter:
104
- if not isinstance(data._welcome_code_data, WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter):
105
- raise SerializationError("Expected welcome_code_data to be type WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter for welcome_code " + WelcomeCode(data._welcome_code).name + ".")
106
- WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter.serialize(writer, data._welcome_code_data)
107
- elif data._welcome_code == WelcomeCode.EnterGame:
108
- if not isinstance(data._welcome_code_data, WelcomeReplyServerPacket.WelcomeCodeDataEnterGame):
109
- raise SerializationError("Expected welcome_code_data to be type WelcomeReplyServerPacket.WelcomeCodeDataEnterGame for welcome_code " + WelcomeCode(data._welcome_code).name + ".")
110
- WelcomeReplyServerPacket.WelcomeCodeDataEnterGame.serialize(writer, data._welcome_code_data)
104
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
105
+ try:
106
+ if data._welcome_code is None:
107
+ raise SerializationError("welcome_code must be provided.")
108
+ writer.add_short(int(data._welcome_code))
109
+ writer.string_sanitization_mode = True
110
+ if data._welcome_code == WelcomeCode.SelectCharacter:
111
+ if not isinstance(data._welcome_code_data, WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter):
112
+ raise SerializationError("Expected welcome_code_data to be type WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter for welcome_code " + WelcomeCode(data._welcome_code).name + ".")
113
+ WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter.serialize(writer, data._welcome_code_data)
114
+ elif data._welcome_code == WelcomeCode.EnterGame:
115
+ if not isinstance(data._welcome_code_data, WelcomeReplyServerPacket.WelcomeCodeDataEnterGame):
116
+ raise SerializationError("Expected welcome_code_data to be type WelcomeReplyServerPacket.WelcomeCodeDataEnterGame for welcome_code " + WelcomeCode(data._welcome_code).name + ".")
117
+ WelcomeReplyServerPacket.WelcomeCodeDataEnterGame.serialize(writer, data._welcome_code_data)
118
+ writer.string_sanitization_mode = False
119
+ finally:
120
+ writer.string_sanitization_mode = old_string_sanitization_mode
111
121
 
112
122
  @staticmethod
113
123
  def deserialize(reader: EoReader) -> "WelcomeReplyServerPacket":
@@ -120,19 +130,20 @@ class WelcomeReplyServerPacket(Packet):
120
130
  Returns:
121
131
  WelcomeReplyServerPacket: The data to serialize.
122
132
  """
123
- data: WelcomeReplyServerPacket = WelcomeReplyServerPacket()
124
133
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
125
134
  try:
126
135
  reader_start_position: int = reader.position
127
- data._welcome_code = WelcomeCode(reader.get_short())
136
+ welcome_code = WelcomeCode(reader.get_short())
128
137
  reader.chunked_reading_mode = True
129
- if data._welcome_code == WelcomeCode.SelectCharacter:
130
- data._welcome_code_data = WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter.deserialize(reader)
131
- elif data._welcome_code == WelcomeCode.EnterGame:
132
- data._welcome_code_data = WelcomeReplyServerPacket.WelcomeCodeDataEnterGame.deserialize(reader)
138
+ welcome_code_data: WelcomeReplyServerPacket.WelcomeCodeData = None
139
+ if welcome_code == WelcomeCode.SelectCharacter:
140
+ welcome_code_data = WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter.deserialize(reader)
141
+ elif welcome_code == WelcomeCode.EnterGame:
142
+ welcome_code_data = WelcomeReplyServerPacket.WelcomeCodeDataEnterGame.deserialize(reader)
133
143
  reader.chunked_reading_mode = False
134
- data._byte_size = reader.position - reader_start_position
135
- return data
144
+ result = WelcomeReplyServerPacket(welcome_code=welcome_code, welcome_code_data=welcome_code_data)
145
+ result._byte_size = reader.position - reader_start_position
146
+ return result
136
147
  finally:
137
148
  reader.chunked_reading_mode = old_chunked_reading_mode
138
149
 
@@ -140,44 +151,106 @@ class WelcomeReplyServerPacket(Packet):
140
151
  return f"WelcomeReplyServerPacket(byte_size={repr(self._byte_size)}, welcome_code={repr(self._welcome_code)}, welcome_code_data={repr(self._welcome_code_data)})"
141
152
 
142
153
  WelcomeCodeData = Union['WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter', 'WelcomeReplyServerPacket.WelcomeCodeDataEnterGame', None]
143
- WelcomeCodeData.__doc__ = \
144
- """
145
- Data associated with different values of the `welcome_code` field.
146
- """
154
+ """
155
+ Data associated with different values of the `welcome_code` field.
156
+ """
147
157
 
148
158
  class WelcomeCodeDataSelectCharacter:
149
159
  """
150
160
  Data associated with welcome_code value WelcomeCode.SelectCharacter
151
161
  """
152
162
  _byte_size: int = 0
153
- _session_id: int = None # type: ignore [assignment]
154
- _character_id: int = None # type: ignore [assignment]
155
- _map_id: int = None # type: ignore [assignment]
156
- _map_rid: list[int] = None # type: ignore [assignment]
157
- _map_file_size: int = None # type: ignore [assignment]
158
- _eif_rid: list[int] = None # type: ignore [assignment]
159
- _eif_length: int = None # type: ignore [assignment]
160
- _enf_rid: list[int] = None # type: ignore [assignment]
161
- _enf_length: int = None # type: ignore [assignment]
162
- _esf_rid: list[int] = None # type: ignore [assignment]
163
- _esf_length: int = None # type: ignore [assignment]
164
- _ecf_rid: list[int] = None # type: ignore [assignment]
165
- _ecf_length: int = None # type: ignore [assignment]
166
- _name: str = None # type: ignore [assignment]
167
- _title: str = None # type: ignore [assignment]
168
- _guild_name: str = None # type: ignore [assignment]
169
- _guild_rank_name: str = None # type: ignore [assignment]
170
- _class_id: int = None # type: ignore [assignment]
171
- _guild_tag: str = None # type: ignore [assignment]
172
- _admin: AdminLevel = None # type: ignore [assignment]
173
- _level: int = None # type: ignore [assignment]
174
- _experience: int = None # type: ignore [assignment]
175
- _usage: int = None # type: ignore [assignment]
176
- _stats: CharacterStatsWelcome = None # type: ignore [assignment]
177
- _equipment: EquipmentWelcome = None # type: ignore [assignment]
178
- _guild_rank: int = None # type: ignore [assignment]
179
- _settings: ServerSettings = None # type: ignore [assignment]
180
- _login_message_code: LoginMessageCode = None # type: ignore [assignment]
163
+ _session_id: int
164
+ _character_id: int
165
+ _map_id: int
166
+ _map_rid: tuple[int, ...]
167
+ _map_file_size: int
168
+ _eif_rid: tuple[int, ...]
169
+ _eif_length: int
170
+ _enf_rid: tuple[int, ...]
171
+ _enf_length: int
172
+ _esf_rid: tuple[int, ...]
173
+ _esf_length: int
174
+ _ecf_rid: tuple[int, ...]
175
+ _ecf_length: int
176
+ _name: str
177
+ _title: str
178
+ _guild_name: str
179
+ _guild_rank_name: str
180
+ _class_id: int
181
+ _guild_tag: str
182
+ _admin: AdminLevel
183
+ _level: int
184
+ _experience: int
185
+ _usage: int
186
+ _stats: CharacterStatsWelcome
187
+ _equipment: EquipmentWelcome
188
+ _guild_rank: int
189
+ _settings: ServerSettings
190
+ _login_message_code: LoginMessageCode
191
+
192
+ def __init__(self, *, session_id: int, character_id: int, map_id: int, map_rid: Iterable[int], map_file_size: int, eif_rid: Iterable[int], eif_length: int, enf_rid: Iterable[int], enf_length: int, esf_rid: Iterable[int], esf_length: int, ecf_rid: Iterable[int], ecf_length: int, name: str, title: str, guild_name: str, guild_rank_name: str, class_id: int, guild_tag: str, admin: AdminLevel, level: int, experience: int, usage: int, stats: CharacterStatsWelcome, equipment: EquipmentWelcome, guild_rank: int, settings: ServerSettings, login_message_code: LoginMessageCode):
193
+ """
194
+ Create a new instance of WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter.
195
+
196
+ Args:
197
+ session_id (int): (Value range is 0-64008.)
198
+ character_id (int): (Value range is 0-4097152080.)
199
+ map_id (int): (Value range is 0-64008.)
200
+ map_rid (Iterable[int]): (Length must be `2`.) (Element value range is 0-64008.)
201
+ map_file_size (int): (Value range is 0-16194276.)
202
+ eif_rid (Iterable[int]): (Length must be `2`.) (Element value range is 0-64008.)
203
+ eif_length (int): (Value range is 0-64008.)
204
+ enf_rid (Iterable[int]): (Length must be `2`.) (Element value range is 0-64008.)
205
+ enf_length (int): (Value range is 0-64008.)
206
+ esf_rid (Iterable[int]): (Length must be `2`.) (Element value range is 0-64008.)
207
+ esf_length (int): (Value range is 0-64008.)
208
+ ecf_rid (Iterable[int]): (Length must be `2`.) (Element value range is 0-64008.)
209
+ ecf_length (int): (Value range is 0-64008.)
210
+ name (str):
211
+ title (str):
212
+ guild_name (str):
213
+ guild_rank_name (str):
214
+ class_id (int): (Value range is 0-252.)
215
+ guild_tag (str): (Length must be `3`.)
216
+ admin (AdminLevel):
217
+ level (int): (Value range is 0-252.)
218
+ experience (int): (Value range is 0-4097152080.)
219
+ usage (int): (Value range is 0-4097152080.)
220
+ stats (CharacterStatsWelcome):
221
+ equipment (EquipmentWelcome):
222
+ guild_rank (int): (Value range is 0-252.)
223
+ settings (ServerSettings):
224
+ login_message_code (LoginMessageCode):
225
+ """
226
+ self._session_id = session_id
227
+ self._character_id = character_id
228
+ self._map_id = map_id
229
+ self._map_rid = tuple(map_rid)
230
+ self._map_file_size = map_file_size
231
+ self._eif_rid = tuple(eif_rid)
232
+ self._eif_length = eif_length
233
+ self._enf_rid = tuple(enf_rid)
234
+ self._enf_length = enf_length
235
+ self._esf_rid = tuple(esf_rid)
236
+ self._esf_length = esf_length
237
+ self._ecf_rid = tuple(ecf_rid)
238
+ self._ecf_length = ecf_length
239
+ self._name = name
240
+ self._title = title
241
+ self._guild_name = guild_name
242
+ self._guild_rank_name = guild_rank_name
243
+ self._class_id = class_id
244
+ self._guild_tag = guild_tag
245
+ self._admin = admin
246
+ self._level = level
247
+ self._experience = experience
248
+ self._usage = usage
249
+ self._stats = stats
250
+ self._equipment = equipment
251
+ self._guild_rank = guild_rank
252
+ self._settings = settings
253
+ self._login_message_code = login_message_code
181
254
 
182
255
  @property
183
256
  def byte_size(self) -> int:
@@ -191,390 +264,116 @@ class WelcomeReplyServerPacket(Packet):
191
264
 
192
265
  @property
193
266
  def session_id(self) -> int:
194
- """
195
- Note:
196
- - Value range is 0-64008.
197
- """
198
267
  return self._session_id
199
268
 
200
- @session_id.setter
201
- def session_id(self, session_id: int) -> None:
202
- """
203
- Note:
204
- - Value range is 0-64008.
205
- """
206
- self._session_id = session_id
207
-
208
269
  @property
209
270
  def character_id(self) -> int:
210
- """
211
- Note:
212
- - Value range is 0-4097152080.
213
- """
214
271
  return self._character_id
215
272
 
216
- @character_id.setter
217
- def character_id(self, character_id: int) -> None:
218
- """
219
- Note:
220
- - Value range is 0-4097152080.
221
- """
222
- self._character_id = character_id
223
-
224
273
  @property
225
274
  def map_id(self) -> int:
226
- """
227
- Note:
228
- - Value range is 0-64008.
229
- """
230
275
  return self._map_id
231
276
 
232
- @map_id.setter
233
- def map_id(self, map_id: int) -> None:
234
- """
235
- Note:
236
- - Value range is 0-64008.
237
- """
238
- self._map_id = map_id
239
-
240
277
  @property
241
- def map_rid(self) -> list[int]:
242
- """
243
- Note:
244
- - Length must be `2`.
245
- - Element value range is 0-64008.
246
- """
278
+ def map_rid(self) -> tuple[int, ...]:
247
279
  return self._map_rid
248
280
 
249
- @map_rid.setter
250
- def map_rid(self, map_rid: list[int]) -> None:
251
- """
252
- Note:
253
- - Length must be `2`.
254
- - Element value range is 0-64008.
255
- """
256
- self._map_rid = map_rid
257
-
258
281
  @property
259
282
  def map_file_size(self) -> int:
260
- """
261
- Note:
262
- - Value range is 0-16194276.
263
- """
264
283
  return self._map_file_size
265
284
 
266
- @map_file_size.setter
267
- def map_file_size(self, map_file_size: int) -> None:
268
- """
269
- Note:
270
- - Value range is 0-16194276.
271
- """
272
- self._map_file_size = map_file_size
273
-
274
285
  @property
275
- def eif_rid(self) -> list[int]:
276
- """
277
- Note:
278
- - Length must be `2`.
279
- - Element value range is 0-64008.
280
- """
286
+ def eif_rid(self) -> tuple[int, ...]:
281
287
  return self._eif_rid
282
288
 
283
- @eif_rid.setter
284
- def eif_rid(self, eif_rid: list[int]) -> None:
285
- """
286
- Note:
287
- - Length must be `2`.
288
- - Element value range is 0-64008.
289
- """
290
- self._eif_rid = eif_rid
291
-
292
289
  @property
293
290
  def eif_length(self) -> int:
294
- """
295
- Note:
296
- - Value range is 0-64008.
297
- """
298
291
  return self._eif_length
299
292
 
300
- @eif_length.setter
301
- def eif_length(self, eif_length: int) -> None:
302
- """
303
- Note:
304
- - Value range is 0-64008.
305
- """
306
- self._eif_length = eif_length
307
-
308
293
  @property
309
- def enf_rid(self) -> list[int]:
310
- """
311
- Note:
312
- - Length must be `2`.
313
- - Element value range is 0-64008.
314
- """
294
+ def enf_rid(self) -> tuple[int, ...]:
315
295
  return self._enf_rid
316
296
 
317
- @enf_rid.setter
318
- def enf_rid(self, enf_rid: list[int]) -> None:
319
- """
320
- Note:
321
- - Length must be `2`.
322
- - Element value range is 0-64008.
323
- """
324
- self._enf_rid = enf_rid
325
-
326
297
  @property
327
298
  def enf_length(self) -> int:
328
- """
329
- Note:
330
- - Value range is 0-64008.
331
- """
332
299
  return self._enf_length
333
300
 
334
- @enf_length.setter
335
- def enf_length(self, enf_length: int) -> None:
336
- """
337
- Note:
338
- - Value range is 0-64008.
339
- """
340
- self._enf_length = enf_length
341
-
342
301
  @property
343
- def esf_rid(self) -> list[int]:
344
- """
345
- Note:
346
- - Length must be `2`.
347
- - Element value range is 0-64008.
348
- """
302
+ def esf_rid(self) -> tuple[int, ...]:
349
303
  return self._esf_rid
350
304
 
351
- @esf_rid.setter
352
- def esf_rid(self, esf_rid: list[int]) -> None:
353
- """
354
- Note:
355
- - Length must be `2`.
356
- - Element value range is 0-64008.
357
- """
358
- self._esf_rid = esf_rid
359
-
360
305
  @property
361
306
  def esf_length(self) -> int:
362
- """
363
- Note:
364
- - Value range is 0-64008.
365
- """
366
307
  return self._esf_length
367
308
 
368
- @esf_length.setter
369
- def esf_length(self, esf_length: int) -> None:
370
- """
371
- Note:
372
- - Value range is 0-64008.
373
- """
374
- self._esf_length = esf_length
375
-
376
309
  @property
377
- def ecf_rid(self) -> list[int]:
378
- """
379
- Note:
380
- - Length must be `2`.
381
- - Element value range is 0-64008.
382
- """
310
+ def ecf_rid(self) -> tuple[int, ...]:
383
311
  return self._ecf_rid
384
312
 
385
- @ecf_rid.setter
386
- def ecf_rid(self, ecf_rid: list[int]) -> None:
387
- """
388
- Note:
389
- - Length must be `2`.
390
- - Element value range is 0-64008.
391
- """
392
- self._ecf_rid = ecf_rid
393
-
394
313
  @property
395
314
  def ecf_length(self) -> int:
396
- """
397
- Note:
398
- - Value range is 0-64008.
399
- """
400
315
  return self._ecf_length
401
316
 
402
- @ecf_length.setter
403
- def ecf_length(self, ecf_length: int) -> None:
404
- """
405
- Note:
406
- - Value range is 0-64008.
407
- """
408
- self._ecf_length = ecf_length
409
-
410
317
  @property
411
318
  def name(self) -> str:
412
319
  return self._name
413
320
 
414
- @name.setter
415
- def name(self, name: str) -> None:
416
- self._name = name
417
-
418
321
  @property
419
322
  def title(self) -> str:
420
323
  return self._title
421
324
 
422
- @title.setter
423
- def title(self, title: str) -> None:
424
- self._title = title
425
-
426
325
  @property
427
326
  def guild_name(self) -> str:
428
327
  return self._guild_name
429
328
 
430
- @guild_name.setter
431
- def guild_name(self, guild_name: str) -> None:
432
- self._guild_name = guild_name
433
-
434
329
  @property
435
330
  def guild_rank_name(self) -> str:
436
331
  return self._guild_rank_name
437
332
 
438
- @guild_rank_name.setter
439
- def guild_rank_name(self, guild_rank_name: str) -> None:
440
- self._guild_rank_name = guild_rank_name
441
-
442
333
  @property
443
334
  def class_id(self) -> int:
444
- """
445
- Note:
446
- - Value range is 0-252.
447
- """
448
335
  return self._class_id
449
336
 
450
- @class_id.setter
451
- def class_id(self, class_id: int) -> None:
452
- """
453
- Note:
454
- - Value range is 0-252.
455
- """
456
- self._class_id = class_id
457
-
458
337
  @property
459
338
  def guild_tag(self) -> str:
460
- """
461
- Note:
462
- - Length must be `3`.
463
- """
464
339
  return self._guild_tag
465
340
 
466
- @guild_tag.setter
467
- def guild_tag(self, guild_tag: str) -> None:
468
- """
469
- Note:
470
- - Length must be `3`.
471
- """
472
- self._guild_tag = guild_tag
473
-
474
341
  @property
475
342
  def admin(self) -> AdminLevel:
476
343
  return self._admin
477
344
 
478
- @admin.setter
479
- def admin(self, admin: AdminLevel) -> None:
480
- self._admin = admin
481
-
482
345
  @property
483
346
  def level(self) -> int:
484
- """
485
- Note:
486
- - Value range is 0-252.
487
- """
488
347
  return self._level
489
348
 
490
- @level.setter
491
- def level(self, level: int) -> None:
492
- """
493
- Note:
494
- - Value range is 0-252.
495
- """
496
- self._level = level
497
-
498
349
  @property
499
350
  def experience(self) -> int:
500
- """
501
- Note:
502
- - Value range is 0-4097152080.
503
- """
504
351
  return self._experience
505
352
 
506
- @experience.setter
507
- def experience(self, experience: int) -> None:
508
- """
509
- Note:
510
- - Value range is 0-4097152080.
511
- """
512
- self._experience = experience
513
-
514
353
  @property
515
354
  def usage(self) -> int:
516
- """
517
- Note:
518
- - Value range is 0-4097152080.
519
- """
520
355
  return self._usage
521
356
 
522
- @usage.setter
523
- def usage(self, usage: int) -> None:
524
- """
525
- Note:
526
- - Value range is 0-4097152080.
527
- """
528
- self._usage = usage
529
-
530
357
  @property
531
358
  def stats(self) -> CharacterStatsWelcome:
532
359
  return self._stats
533
360
 
534
- @stats.setter
535
- def stats(self, stats: CharacterStatsWelcome) -> None:
536
- self._stats = stats
537
-
538
361
  @property
539
362
  def equipment(self) -> EquipmentWelcome:
540
363
  return self._equipment
541
364
 
542
- @equipment.setter
543
- def equipment(self, equipment: EquipmentWelcome) -> None:
544
- self._equipment = equipment
545
-
546
365
  @property
547
366
  def guild_rank(self) -> int:
548
- """
549
- Note:
550
- - Value range is 0-252.
551
- """
552
367
  return self._guild_rank
553
368
 
554
- @guild_rank.setter
555
- def guild_rank(self, guild_rank: int) -> None:
556
- """
557
- Note:
558
- - Value range is 0-252.
559
- """
560
- self._guild_rank = guild_rank
561
-
562
369
  @property
563
370
  def settings(self) -> ServerSettings:
564
371
  return self._settings
565
372
 
566
- @settings.setter
567
- def settings(self, settings: ServerSettings) -> None:
568
- self._settings = settings
569
-
570
373
  @property
571
374
  def login_message_code(self) -> LoginMessageCode:
572
375
  return self._login_message_code
573
376
 
574
- @login_message_code.setter
575
- def login_message_code(self, login_message_code: LoginMessageCode) -> None:
576
- self._login_message_code = login_message_code
577
-
578
377
  @staticmethod
579
378
  def serialize(writer: EoWriter, data: "WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter") -> None:
580
379
  """
@@ -584,112 +383,116 @@ class WelcomeReplyServerPacket(Packet):
584
383
  writer (EoWriter): The writer that the data will be serialized to.
585
384
  data (WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter): The data to serialize.
586
385
  """
587
- if data._session_id is None:
588
- raise SerializationError("session_id must be provided.")
589
- writer.add_short(data._session_id)
590
- if data._character_id is None:
591
- raise SerializationError("character_id must be provided.")
592
- writer.add_int(data._character_id)
593
- if data._map_id is None:
594
- raise SerializationError("map_id must be provided.")
595
- writer.add_short(data._map_id)
596
- if data._map_rid is None:
597
- raise SerializationError("map_rid must be provided.")
598
- if len(data._map_rid) != 2:
599
- raise SerializationError(f"Expected length of map_rid to be exactly 2, got {len(data._map_rid)}.")
600
- for i in range(2):
601
- writer.add_short(data._map_rid[i])
602
- if data._map_file_size is None:
603
- raise SerializationError("map_file_size must be provided.")
604
- writer.add_three(data._map_file_size)
605
- if data._eif_rid is None:
606
- raise SerializationError("eif_rid must be provided.")
607
- if len(data._eif_rid) != 2:
608
- raise SerializationError(f"Expected length of eif_rid to be exactly 2, got {len(data._eif_rid)}.")
609
- for i in range(2):
610
- writer.add_short(data._eif_rid[i])
611
- if data._eif_length is None:
612
- raise SerializationError("eif_length must be provided.")
613
- writer.add_short(data._eif_length)
614
- if data._enf_rid is None:
615
- raise SerializationError("enf_rid must be provided.")
616
- if len(data._enf_rid) != 2:
617
- raise SerializationError(f"Expected length of enf_rid to be exactly 2, got {len(data._enf_rid)}.")
618
- for i in range(2):
619
- writer.add_short(data._enf_rid[i])
620
- if data._enf_length is None:
621
- raise SerializationError("enf_length must be provided.")
622
- writer.add_short(data._enf_length)
623
- if data._esf_rid is None:
624
- raise SerializationError("esf_rid must be provided.")
625
- if len(data._esf_rid) != 2:
626
- raise SerializationError(f"Expected length of esf_rid to be exactly 2, got {len(data._esf_rid)}.")
627
- for i in range(2):
628
- writer.add_short(data._esf_rid[i])
629
- if data._esf_length is None:
630
- raise SerializationError("esf_length must be provided.")
631
- writer.add_short(data._esf_length)
632
- if data._ecf_rid is None:
633
- raise SerializationError("ecf_rid must be provided.")
634
- if len(data._ecf_rid) != 2:
635
- raise SerializationError(f"Expected length of ecf_rid to be exactly 2, got {len(data._ecf_rid)}.")
636
- for i in range(2):
637
- writer.add_short(data._ecf_rid[i])
638
- if data._ecf_length is None:
639
- raise SerializationError("ecf_length must be provided.")
640
- writer.add_short(data._ecf_length)
641
- if data._name is None:
642
- raise SerializationError("name must be provided.")
643
- writer.add_string(data._name)
644
- writer.add_byte(0xFF)
645
- if data._title is None:
646
- raise SerializationError("title must be provided.")
647
- writer.add_string(data._title)
648
- writer.add_byte(0xFF)
649
- if data._guild_name is None:
650
- raise SerializationError("guild_name must be provided.")
651
- writer.add_string(data._guild_name)
652
- writer.add_byte(0xFF)
653
- if data._guild_rank_name is None:
654
- raise SerializationError("guild_rank_name must be provided.")
655
- writer.add_string(data._guild_rank_name)
656
- writer.add_byte(0xFF)
657
- if data._class_id is None:
658
- raise SerializationError("class_id must be provided.")
659
- writer.add_char(data._class_id)
660
- if data._guild_tag is None:
661
- raise SerializationError("guild_tag must be provided.")
662
- if len(data._guild_tag) != 3:
663
- raise SerializationError(f"Expected length of guild_tag to be exactly 3, got {len(data._guild_tag)}.")
664
- writer.add_fixed_string(data._guild_tag, 3, False)
665
- if data._admin is None:
666
- raise SerializationError("admin must be provided.")
667
- writer.add_char(int(data._admin))
668
- if data._level is None:
669
- raise SerializationError("level must be provided.")
670
- writer.add_char(data._level)
671
- if data._experience is None:
672
- raise SerializationError("experience must be provided.")
673
- writer.add_int(data._experience)
674
- if data._usage is None:
675
- raise SerializationError("usage must be provided.")
676
- writer.add_int(data._usage)
677
- if data._stats is None:
678
- raise SerializationError("stats must be provided.")
679
- CharacterStatsWelcome.serialize(writer, data._stats)
680
- if data._equipment is None:
681
- raise SerializationError("equipment must be provided.")
682
- EquipmentWelcome.serialize(writer, data._equipment)
683
- if data._guild_rank is None:
684
- raise SerializationError("guild_rank must be provided.")
685
- writer.add_char(data._guild_rank)
686
- if data._settings is None:
687
- raise SerializationError("settings must be provided.")
688
- ServerSettings.serialize(writer, data._settings)
689
- if data._login_message_code is None:
690
- raise SerializationError("login_message_code must be provided.")
691
- writer.add_char(int(data._login_message_code))
692
- writer.add_byte(0xFF)
386
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
387
+ try:
388
+ if data._session_id is None:
389
+ raise SerializationError("session_id must be provided.")
390
+ writer.add_short(data._session_id)
391
+ if data._character_id is None:
392
+ raise SerializationError("character_id must be provided.")
393
+ writer.add_int(data._character_id)
394
+ if data._map_id is None:
395
+ raise SerializationError("map_id must be provided.")
396
+ writer.add_short(data._map_id)
397
+ if data._map_rid is None:
398
+ raise SerializationError("map_rid must be provided.")
399
+ if len(data._map_rid) != 2:
400
+ raise SerializationError(f"Expected length of map_rid to be exactly 2, got {len(data._map_rid)}.")
401
+ for i in range(2):
402
+ writer.add_short(data._map_rid[i])
403
+ if data._map_file_size is None:
404
+ raise SerializationError("map_file_size must be provided.")
405
+ writer.add_three(data._map_file_size)
406
+ if data._eif_rid is None:
407
+ raise SerializationError("eif_rid must be provided.")
408
+ if len(data._eif_rid) != 2:
409
+ raise SerializationError(f"Expected length of eif_rid to be exactly 2, got {len(data._eif_rid)}.")
410
+ for i in range(2):
411
+ writer.add_short(data._eif_rid[i])
412
+ if data._eif_length is None:
413
+ raise SerializationError("eif_length must be provided.")
414
+ writer.add_short(data._eif_length)
415
+ if data._enf_rid is None:
416
+ raise SerializationError("enf_rid must be provided.")
417
+ if len(data._enf_rid) != 2:
418
+ raise SerializationError(f"Expected length of enf_rid to be exactly 2, got {len(data._enf_rid)}.")
419
+ for i in range(2):
420
+ writer.add_short(data._enf_rid[i])
421
+ if data._enf_length is None:
422
+ raise SerializationError("enf_length must be provided.")
423
+ writer.add_short(data._enf_length)
424
+ if data._esf_rid is None:
425
+ raise SerializationError("esf_rid must be provided.")
426
+ if len(data._esf_rid) != 2:
427
+ raise SerializationError(f"Expected length of esf_rid to be exactly 2, got {len(data._esf_rid)}.")
428
+ for i in range(2):
429
+ writer.add_short(data._esf_rid[i])
430
+ if data._esf_length is None:
431
+ raise SerializationError("esf_length must be provided.")
432
+ writer.add_short(data._esf_length)
433
+ if data._ecf_rid is None:
434
+ raise SerializationError("ecf_rid must be provided.")
435
+ if len(data._ecf_rid) != 2:
436
+ raise SerializationError(f"Expected length of ecf_rid to be exactly 2, got {len(data._ecf_rid)}.")
437
+ for i in range(2):
438
+ writer.add_short(data._ecf_rid[i])
439
+ if data._ecf_length is None:
440
+ raise SerializationError("ecf_length must be provided.")
441
+ writer.add_short(data._ecf_length)
442
+ if data._name is None:
443
+ raise SerializationError("name must be provided.")
444
+ writer.add_string(data._name)
445
+ writer.add_byte(0xFF)
446
+ if data._title is None:
447
+ raise SerializationError("title must be provided.")
448
+ writer.add_string(data._title)
449
+ writer.add_byte(0xFF)
450
+ if data._guild_name is None:
451
+ raise SerializationError("guild_name must be provided.")
452
+ writer.add_string(data._guild_name)
453
+ writer.add_byte(0xFF)
454
+ if data._guild_rank_name is None:
455
+ raise SerializationError("guild_rank_name must be provided.")
456
+ writer.add_string(data._guild_rank_name)
457
+ writer.add_byte(0xFF)
458
+ if data._class_id is None:
459
+ raise SerializationError("class_id must be provided.")
460
+ writer.add_char(data._class_id)
461
+ if data._guild_tag is None:
462
+ raise SerializationError("guild_tag must be provided.")
463
+ if len(data._guild_tag) != 3:
464
+ raise SerializationError(f"Expected length of guild_tag to be exactly 3, got {len(data._guild_tag)}.")
465
+ writer.add_fixed_string(data._guild_tag, 3, False)
466
+ if data._admin is None:
467
+ raise SerializationError("admin must be provided.")
468
+ writer.add_char(int(data._admin))
469
+ if data._level is None:
470
+ raise SerializationError("level must be provided.")
471
+ writer.add_char(data._level)
472
+ if data._experience is None:
473
+ raise SerializationError("experience must be provided.")
474
+ writer.add_int(data._experience)
475
+ if data._usage is None:
476
+ raise SerializationError("usage must be provided.")
477
+ writer.add_int(data._usage)
478
+ if data._stats is None:
479
+ raise SerializationError("stats must be provided.")
480
+ CharacterStatsWelcome.serialize(writer, data._stats)
481
+ if data._equipment is None:
482
+ raise SerializationError("equipment must be provided.")
483
+ EquipmentWelcome.serialize(writer, data._equipment)
484
+ if data._guild_rank is None:
485
+ raise SerializationError("guild_rank must be provided.")
486
+ writer.add_char(data._guild_rank)
487
+ if data._settings is None:
488
+ raise SerializationError("settings must be provided.")
489
+ ServerSettings.serialize(writer, data._settings)
490
+ if data._login_message_code is None:
491
+ raise SerializationError("login_message_code must be provided.")
492
+ writer.add_char(int(data._login_message_code))
493
+ writer.add_byte(0xFF)
494
+ finally:
495
+ writer.string_sanitization_mode = old_string_sanitization_mode
693
496
 
694
497
  @staticmethod
695
498
  def deserialize(reader: EoReader) -> "WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter":
@@ -702,55 +505,55 @@ class WelcomeReplyServerPacket(Packet):
702
505
  Returns:
703
506
  WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter: The data to serialize.
704
507
  """
705
- data: WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter = WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter()
706
508
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
707
509
  try:
708
510
  reader_start_position: int = reader.position
709
- data._session_id = reader.get_short()
710
- data._character_id = reader.get_int()
711
- data._map_id = reader.get_short()
712
- data._map_rid = []
511
+ session_id = reader.get_short()
512
+ character_id = reader.get_int()
513
+ map_id = reader.get_short()
514
+ map_rid = []
713
515
  for i in range(2):
714
- data._map_rid.append(reader.get_short())
715
- data._map_file_size = reader.get_three()
716
- data._eif_rid = []
516
+ map_rid.append(reader.get_short())
517
+ map_file_size = reader.get_three()
518
+ eif_rid = []
717
519
  for i in range(2):
718
- data._eif_rid.append(reader.get_short())
719
- data._eif_length = reader.get_short()
720
- data._enf_rid = []
520
+ eif_rid.append(reader.get_short())
521
+ eif_length = reader.get_short()
522
+ enf_rid = []
721
523
  for i in range(2):
722
- data._enf_rid.append(reader.get_short())
723
- data._enf_length = reader.get_short()
724
- data._esf_rid = []
524
+ enf_rid.append(reader.get_short())
525
+ enf_length = reader.get_short()
526
+ esf_rid = []
725
527
  for i in range(2):
726
- data._esf_rid.append(reader.get_short())
727
- data._esf_length = reader.get_short()
728
- data._ecf_rid = []
528
+ esf_rid.append(reader.get_short())
529
+ esf_length = reader.get_short()
530
+ ecf_rid = []
729
531
  for i in range(2):
730
- data._ecf_rid.append(reader.get_short())
731
- data._ecf_length = reader.get_short()
732
- data._name = reader.get_string()
532
+ ecf_rid.append(reader.get_short())
533
+ ecf_length = reader.get_short()
534
+ name = reader.get_string()
733
535
  reader.next_chunk()
734
- data._title = reader.get_string()
536
+ title = reader.get_string()
735
537
  reader.next_chunk()
736
- data._guild_name = reader.get_string()
538
+ guild_name = reader.get_string()
737
539
  reader.next_chunk()
738
- data._guild_rank_name = reader.get_string()
540
+ guild_rank_name = reader.get_string()
739
541
  reader.next_chunk()
740
- data._class_id = reader.get_char()
741
- data._guild_tag = reader.get_fixed_string(3, False)
742
- data._admin = AdminLevel(reader.get_char())
743
- data._level = reader.get_char()
744
- data._experience = reader.get_int()
745
- data._usage = reader.get_int()
746
- data._stats = CharacterStatsWelcome.deserialize(reader)
747
- data._equipment = EquipmentWelcome.deserialize(reader)
748
- data._guild_rank = reader.get_char()
749
- data._settings = ServerSettings.deserialize(reader)
750
- data._login_message_code = LoginMessageCode(reader.get_char())
542
+ class_id = reader.get_char()
543
+ guild_tag = reader.get_fixed_string(3, False)
544
+ admin = AdminLevel(reader.get_char())
545
+ level = reader.get_char()
546
+ experience = reader.get_int()
547
+ usage = reader.get_int()
548
+ stats = CharacterStatsWelcome.deserialize(reader)
549
+ equipment = EquipmentWelcome.deserialize(reader)
550
+ guild_rank = reader.get_char()
551
+ settings = ServerSettings.deserialize(reader)
552
+ login_message_code = LoginMessageCode(reader.get_char())
751
553
  reader.next_chunk()
752
- data._byte_size = reader.position - reader_start_position
753
- return data
554
+ result = WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter(session_id=session_id, character_id=character_id, map_id=map_id, map_rid=map_rid, map_file_size=map_file_size, eif_rid=eif_rid, eif_length=eif_length, enf_rid=enf_rid, enf_length=enf_length, esf_rid=esf_rid, esf_length=esf_length, ecf_rid=ecf_rid, ecf_length=ecf_length, name=name, title=title, guild_name=guild_name, guild_rank_name=guild_rank_name, class_id=class_id, guild_tag=guild_tag, admin=admin, level=level, experience=experience, usage=usage, stats=stats, equipment=equipment, guild_rank=guild_rank, settings=settings, login_message_code=login_message_code)
555
+ result._byte_size = reader.position - reader_start_position
556
+ return result
754
557
  finally:
755
558
  reader.chunked_reading_mode = old_chunked_reading_mode
756
559
 
@@ -762,11 +565,28 @@ class WelcomeReplyServerPacket(Packet):
762
565
  Data associated with welcome_code value WelcomeCode.EnterGame
763
566
  """
764
567
  _byte_size: int = 0
765
- _news: list[str] = None # type: ignore [assignment]
766
- _weight: Weight = None # type: ignore [assignment]
767
- _items: list[Item] = None # type: ignore [assignment]
768
- _spells: list[Spell] = None # type: ignore [assignment]
769
- _nearby: NearbyInfo = None # type: ignore [assignment]
568
+ _news: tuple[str, ...]
569
+ _weight: Weight
570
+ _items: tuple[Item, ...]
571
+ _spells: tuple[Spell, ...]
572
+ _nearby: NearbyInfo
573
+
574
+ def __init__(self, *, news: Iterable[str], weight: Weight, items: Iterable[Item], spells: Iterable[Spell], nearby: NearbyInfo):
575
+ """
576
+ Create a new instance of WelcomeReplyServerPacket.WelcomeCodeDataEnterGame.
577
+
578
+ Args:
579
+ news (Iterable[str]): (Length must be `9`.)
580
+ weight (Weight):
581
+ items (Iterable[Item]):
582
+ spells (Iterable[Spell]):
583
+ nearby (NearbyInfo):
584
+ """
585
+ self._news = tuple(news)
586
+ self._weight = weight
587
+ self._items = tuple(items)
588
+ self._spells = tuple(spells)
589
+ self._nearby = nearby
770
590
 
771
591
  @property
772
592
  def byte_size(self) -> int:
@@ -779,53 +599,25 @@ class WelcomeReplyServerPacket(Packet):
779
599
  return self._byte_size
780
600
 
781
601
  @property
782
- def news(self) -> list[str]:
783
- """
784
- Note:
785
- - Length must be `9`.
786
- """
602
+ def news(self) -> tuple[str, ...]:
787
603
  return self._news
788
604
 
789
- @news.setter
790
- def news(self, news: list[str]) -> None:
791
- """
792
- Note:
793
- - Length must be `9`.
794
- """
795
- self._news = news
796
-
797
605
  @property
798
606
  def weight(self) -> Weight:
799
607
  return self._weight
800
608
 
801
- @weight.setter
802
- def weight(self, weight: Weight) -> None:
803
- self._weight = weight
804
-
805
609
  @property
806
- def items(self) -> list[Item]:
610
+ def items(self) -> tuple[Item, ...]:
807
611
  return self._items
808
612
 
809
- @items.setter
810
- def items(self, items: list[Item]) -> None:
811
- self._items = items
812
-
813
613
  @property
814
- def spells(self) -> list[Spell]:
614
+ def spells(self) -> tuple[Spell, ...]:
815
615
  return self._spells
816
616
 
817
- @spells.setter
818
- def spells(self, spells: list[Spell]) -> None:
819
- self._spells = spells
820
-
821
617
  @property
822
618
  def nearby(self) -> NearbyInfo:
823
619
  return self._nearby
824
620
 
825
- @nearby.setter
826
- def nearby(self, nearby: NearbyInfo) -> None:
827
- self._nearby = nearby
828
-
829
621
  @staticmethod
830
622
  def serialize(writer: EoWriter, data: "WelcomeReplyServerPacket.WelcomeCodeDataEnterGame") -> None:
831
623
  """
@@ -835,31 +627,34 @@ class WelcomeReplyServerPacket(Packet):
835
627
  writer (EoWriter): The writer that the data will be serialized to.
836
628
  data (WelcomeReplyServerPacket.WelcomeCodeDataEnterGame): The data to serialize.
837
629
  """
838
- writer.add_byte(0xFF)
839
- if data._news is None:
840
- raise SerializationError("news must be provided.")
841
- if len(data._news) != 9:
842
- raise SerializationError(f"Expected length of news to be exactly 9, got {len(data._news)}.")
843
- for i in range(9):
844
- if i > 0:
630
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
631
+ try:
632
+ writer.add_byte(0xFF)
633
+ if data._news is None:
634
+ raise SerializationError("news must be provided.")
635
+ if len(data._news) != 9:
636
+ raise SerializationError(f"Expected length of news to be exactly 9, got {len(data._news)}.")
637
+ for i in range(9):
638
+ writer.add_string(data._news[i])
845
639
  writer.add_byte(0xFF)
846
- writer.add_string(data._news[i])
847
- if data._weight is None:
848
- raise SerializationError("weight must be provided.")
849
- Weight.serialize(writer, data._weight)
850
- if data._items is None:
851
- raise SerializationError("items must be provided.")
852
- for i in range(len(data._items)):
853
- Item.serialize(writer, data._items[i])
854
- writer.add_byte(0xFF)
855
- if data._spells is None:
856
- raise SerializationError("spells must be provided.")
857
- for i in range(len(data._spells)):
858
- Spell.serialize(writer, data._spells[i])
859
- writer.add_byte(0xFF)
860
- if data._nearby is None:
861
- raise SerializationError("nearby must be provided.")
862
- NearbyInfo.serialize(writer, data._nearby)
640
+ if data._weight is None:
641
+ raise SerializationError("weight must be provided.")
642
+ Weight.serialize(writer, data._weight)
643
+ if data._items is None:
644
+ raise SerializationError("items must be provided.")
645
+ for i in range(len(data._items)):
646
+ Item.serialize(writer, data._items[i])
647
+ writer.add_byte(0xFF)
648
+ if data._spells is None:
649
+ raise SerializationError("spells must be provided.")
650
+ for i in range(len(data._spells)):
651
+ Spell.serialize(writer, data._spells[i])
652
+ writer.add_byte(0xFF)
653
+ if data._nearby is None:
654
+ raise SerializationError("nearby must be provided.")
655
+ NearbyInfo.serialize(writer, data._nearby)
656
+ finally:
657
+ writer.string_sanitization_mode = old_string_sanitization_mode
863
658
 
864
659
  @staticmethod
865
660
  def deserialize(reader: EoReader) -> "WelcomeReplyServerPacket.WelcomeCodeDataEnterGame":
@@ -872,30 +667,29 @@ class WelcomeReplyServerPacket(Packet):
872
667
  Returns:
873
668
  WelcomeReplyServerPacket.WelcomeCodeDataEnterGame: The data to serialize.
874
669
  """
875
- data: WelcomeReplyServerPacket.WelcomeCodeDataEnterGame = WelcomeReplyServerPacket.WelcomeCodeDataEnterGame()
876
670
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
877
671
  try:
878
672
  reader_start_position: int = reader.position
879
673
  reader.next_chunk()
880
- data._news = []
674
+ news = []
881
675
  for i in range(9):
882
- data._news.append(reader.get_string())
883
- if i + 1 < 9:
884
- reader.next_chunk()
885
- data._weight = Weight.deserialize(reader)
676
+ news.append(reader.get_string())
677
+ reader.next_chunk()
678
+ weight = Weight.deserialize(reader)
886
679
  items_length = int(reader.remaining / 6)
887
- data._items = []
680
+ items = []
888
681
  for i in range(items_length):
889
- data._items.append(Item.deserialize(reader))
682
+ items.append(Item.deserialize(reader))
890
683
  reader.next_chunk()
891
684
  spells_length = int(reader.remaining / 4)
892
- data._spells = []
685
+ spells = []
893
686
  for i in range(spells_length):
894
- data._spells.append(Spell.deserialize(reader))
687
+ spells.append(Spell.deserialize(reader))
895
688
  reader.next_chunk()
896
- data._nearby = NearbyInfo.deserialize(reader)
897
- data._byte_size = reader.position - reader_start_position
898
- return data
689
+ nearby = NearbyInfo.deserialize(reader)
690
+ result = WelcomeReplyServerPacket.WelcomeCodeDataEnterGame(news=news, weight=weight, items=items, spells=spells, nearby=nearby)
691
+ result._byte_size = reader.position - reader_start_position
692
+ return result
899
693
  finally:
900
694
  reader.chunked_reading_mode = old_chunked_reading_mode
901
695