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 NpcJunkServerPacket(Packet):
15
15
  Clearing all boss children
16
16
  """
17
17
  _byte_size: int = 0
18
- _npc_id: int = None # type: ignore [assignment]
18
+ _npc_id: int
19
+
20
+ def __init__(self, *, npc_id: int):
21
+ """
22
+ Create a new instance of NpcJunkServerPacket.
23
+
24
+ Args:
25
+ npc_id (int): (Value range is 0-64008.)
26
+ """
27
+ self._npc_id = npc_id
19
28
 
20
29
  @property
21
30
  def byte_size(self) -> int:
@@ -29,20 +38,8 @@ class NpcJunkServerPacket(Packet):
29
38
 
30
39
  @property
31
40
  def npc_id(self) -> int:
32
- """
33
- Note:
34
- - Value range is 0-64008.
35
- """
36
41
  return self._npc_id
37
42
 
38
- @npc_id.setter
39
- def npc_id(self, npc_id: int) -> None:
40
- """
41
- Note:
42
- - Value range is 0-64008.
43
- """
44
- self._npc_id = npc_id
45
-
46
43
  @staticmethod
47
44
  def family() -> PacketFamily:
48
45
  """
@@ -81,9 +78,13 @@ class NpcJunkServerPacket(Packet):
81
78
  writer (EoWriter): The writer that the data will be serialized to.
82
79
  data (NpcJunkServerPacket): The data to serialize.
83
80
  """
84
- if data._npc_id is None:
85
- raise SerializationError("npc_id must be provided.")
86
- writer.add_short(data._npc_id)
81
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
82
+ try:
83
+ if data._npc_id is None:
84
+ raise SerializationError("npc_id must be provided.")
85
+ writer.add_short(data._npc_id)
86
+ finally:
87
+ writer.string_sanitization_mode = old_string_sanitization_mode
87
88
 
88
89
  @staticmethod
89
90
  def deserialize(reader: EoReader) -> "NpcJunkServerPacket":
@@ -96,13 +97,13 @@ class NpcJunkServerPacket(Packet):
96
97
  Returns:
97
98
  NpcJunkServerPacket: The data to serialize.
98
99
  """
99
- data: NpcJunkServerPacket = NpcJunkServerPacket()
100
100
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
101
101
  try:
102
102
  reader_start_position: int = reader.position
103
- data._npc_id = reader.get_short()
104
- data._byte_size = reader.position - reader_start_position
105
- return data
103
+ npc_id = reader.get_short()
104
+ result = NpcJunkServerPacket(npc_id=npc_id)
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
 
@@ -14,14 +14,37 @@ class NpcKilledData:
14
14
  Information about an NPC that has been killed
15
15
  """
16
16
  _byte_size: int = 0
17
- _killer_id: int = None # type: ignore [assignment]
18
- _killer_direction: Direction = None # type: ignore [assignment]
19
- _npc_index: int = None # type: ignore [assignment]
20
- _drop_index: int = None # type: ignore [assignment]
21
- _drop_id: int = None # type: ignore [assignment]
22
- _drop_coords: Coords = None # type: ignore [assignment]
23
- _drop_amount: int = None # type: ignore [assignment]
24
- _damage: int = None # type: ignore [assignment]
17
+ _killer_id: int
18
+ _killer_direction: Direction
19
+ _npc_index: int
20
+ _drop_index: int
21
+ _drop_id: int
22
+ _drop_coords: Coords
23
+ _drop_amount: int
24
+ _damage: int
25
+
26
+ def __init__(self, *, killer_id: int, killer_direction: Direction, npc_index: int, drop_index: int, drop_id: int, drop_coords: Coords, drop_amount: int, damage: int):
27
+ """
28
+ Create a new instance of NpcKilledData.
29
+
30
+ Args:
31
+ killer_id (int): (Value range is 0-64008.)
32
+ killer_direction (Direction):
33
+ npc_index (int): (Value range is 0-64008.)
34
+ drop_index (int): (Value range is 0-64008.)
35
+ drop_id (int): (Value range is 0-64008.)
36
+ drop_coords (Coords):
37
+ drop_amount (int): (Value range is 0-4097152080.)
38
+ damage (int): (Value range is 0-16194276.)
39
+ """
40
+ self._killer_id = killer_id
41
+ self._killer_direction = killer_direction
42
+ self._npc_index = npc_index
43
+ self._drop_index = drop_index
44
+ self._drop_id = drop_id
45
+ self._drop_coords = drop_coords
46
+ self._drop_amount = drop_amount
47
+ self._damage = damage
25
48
 
26
49
  @property
27
50
  def byte_size(self) -> int:
@@ -35,116 +58,36 @@ class NpcKilledData:
35
58
 
36
59
  @property
37
60
  def killer_id(self) -> int:
38
- """
39
- Note:
40
- - Value range is 0-64008.
41
- """
42
61
  return self._killer_id
43
62
 
44
- @killer_id.setter
45
- def killer_id(self, killer_id: int) -> None:
46
- """
47
- Note:
48
- - Value range is 0-64008.
49
- """
50
- self._killer_id = killer_id
51
-
52
63
  @property
53
64
  def killer_direction(self) -> Direction:
54
65
  return self._killer_direction
55
66
 
56
- @killer_direction.setter
57
- def killer_direction(self, killer_direction: Direction) -> None:
58
- self._killer_direction = killer_direction
59
-
60
67
  @property
61
68
  def npc_index(self) -> int:
62
- """
63
- Note:
64
- - Value range is 0-64008.
65
- """
66
69
  return self._npc_index
67
70
 
68
- @npc_index.setter
69
- def npc_index(self, npc_index: int) -> None:
70
- """
71
- Note:
72
- - Value range is 0-64008.
73
- """
74
- self._npc_index = npc_index
75
-
76
71
  @property
77
72
  def drop_index(self) -> int:
78
- """
79
- Note:
80
- - Value range is 0-64008.
81
- """
82
73
  return self._drop_index
83
74
 
84
- @drop_index.setter
85
- def drop_index(self, drop_index: int) -> None:
86
- """
87
- Note:
88
- - Value range is 0-64008.
89
- """
90
- self._drop_index = drop_index
91
-
92
75
  @property
93
76
  def drop_id(self) -> int:
94
- """
95
- Note:
96
- - Value range is 0-64008.
97
- """
98
77
  return self._drop_id
99
78
 
100
- @drop_id.setter
101
- def drop_id(self, drop_id: int) -> None:
102
- """
103
- Note:
104
- - Value range is 0-64008.
105
- """
106
- self._drop_id = drop_id
107
-
108
79
  @property
109
80
  def drop_coords(self) -> Coords:
110
81
  return self._drop_coords
111
82
 
112
- @drop_coords.setter
113
- def drop_coords(self, drop_coords: Coords) -> None:
114
- self._drop_coords = drop_coords
115
-
116
83
  @property
117
84
  def drop_amount(self) -> int:
118
- """
119
- Note:
120
- - Value range is 0-4097152080.
121
- """
122
85
  return self._drop_amount
123
86
 
124
- @drop_amount.setter
125
- def drop_amount(self, drop_amount: int) -> None:
126
- """
127
- Note:
128
- - Value range is 0-4097152080.
129
- """
130
- self._drop_amount = drop_amount
131
-
132
87
  @property
133
88
  def damage(self) -> int:
134
- """
135
- Note:
136
- - Value range is 0-16194276.
137
- """
138
89
  return self._damage
139
90
 
140
- @damage.setter
141
- def damage(self, damage: int) -> None:
142
- """
143
- Note:
144
- - Value range is 0-16194276.
145
- """
146
- self._damage = damage
147
-
148
91
  @staticmethod
149
92
  def serialize(writer: EoWriter, data: "NpcKilledData") -> None:
150
93
  """
@@ -154,30 +97,34 @@ class NpcKilledData:
154
97
  writer (EoWriter): The writer that the data will be serialized to.
155
98
  data (NpcKilledData): The data to serialize.
156
99
  """
157
- if data._killer_id is None:
158
- raise SerializationError("killer_id must be provided.")
159
- writer.add_short(data._killer_id)
160
- if data._killer_direction is None:
161
- raise SerializationError("killer_direction must be provided.")
162
- writer.add_char(int(data._killer_direction))
163
- if data._npc_index is None:
164
- raise SerializationError("npc_index must be provided.")
165
- writer.add_short(data._npc_index)
166
- if data._drop_index is None:
167
- raise SerializationError("drop_index must be provided.")
168
- writer.add_short(data._drop_index)
169
- if data._drop_id is None:
170
- raise SerializationError("drop_id must be provided.")
171
- writer.add_short(data._drop_id)
172
- if data._drop_coords is None:
173
- raise SerializationError("drop_coords must be provided.")
174
- Coords.serialize(writer, data._drop_coords)
175
- if data._drop_amount is None:
176
- raise SerializationError("drop_amount must be provided.")
177
- writer.add_int(data._drop_amount)
178
- if data._damage is None:
179
- raise SerializationError("damage must be provided.")
180
- writer.add_three(data._damage)
100
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
101
+ try:
102
+ if data._killer_id is None:
103
+ raise SerializationError("killer_id must be provided.")
104
+ writer.add_short(data._killer_id)
105
+ if data._killer_direction is None:
106
+ raise SerializationError("killer_direction must be provided.")
107
+ writer.add_char(int(data._killer_direction))
108
+ if data._npc_index is None:
109
+ raise SerializationError("npc_index must be provided.")
110
+ writer.add_short(data._npc_index)
111
+ if data._drop_index is None:
112
+ raise SerializationError("drop_index must be provided.")
113
+ writer.add_short(data._drop_index)
114
+ if data._drop_id is None:
115
+ raise SerializationError("drop_id must be provided.")
116
+ writer.add_short(data._drop_id)
117
+ if data._drop_coords is None:
118
+ raise SerializationError("drop_coords must be provided.")
119
+ Coords.serialize(writer, data._drop_coords)
120
+ if data._drop_amount is None:
121
+ raise SerializationError("drop_amount must be provided.")
122
+ writer.add_int(data._drop_amount)
123
+ if data._damage is None:
124
+ raise SerializationError("damage must be provided.")
125
+ writer.add_three(data._damage)
126
+ finally:
127
+ writer.string_sanitization_mode = old_string_sanitization_mode
181
128
 
182
129
  @staticmethod
183
130
  def deserialize(reader: EoReader) -> "NpcKilledData":
@@ -190,20 +137,20 @@ class NpcKilledData:
190
137
  Returns:
191
138
  NpcKilledData: The data to serialize.
192
139
  """
193
- data: NpcKilledData = NpcKilledData()
194
140
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
195
141
  try:
196
142
  reader_start_position: int = reader.position
197
- data._killer_id = reader.get_short()
198
- data._killer_direction = Direction(reader.get_char())
199
- data._npc_index = reader.get_short()
200
- data._drop_index = reader.get_short()
201
- data._drop_id = reader.get_short()
202
- data._drop_coords = Coords.deserialize(reader)
203
- data._drop_amount = reader.get_int()
204
- data._damage = reader.get_three()
205
- data._byte_size = reader.position - reader_start_position
206
- return data
143
+ killer_id = reader.get_short()
144
+ killer_direction = Direction(reader.get_char())
145
+ npc_index = reader.get_short()
146
+ drop_index = reader.get_short()
147
+ drop_id = reader.get_short()
148
+ drop_coords = Coords.deserialize(reader)
149
+ drop_amount = reader.get_int()
150
+ damage = reader.get_three()
151
+ result = NpcKilledData(killer_id=killer_id, killer_direction=killer_direction, npc_index=npc_index, drop_index=drop_index, drop_id=drop_id, drop_coords=drop_coords, drop_amount=drop_amount, damage=damage)
152
+ result._byte_size = reader.position - reader_start_position
153
+ return result
207
154
  finally:
208
155
  reader.chunked_reading_mode = old_chunked_reading_mode
209
156
 
@@ -14,10 +14,25 @@ class NpcMapInfo:
14
14
  Information about a nearby NPC
15
15
  """
16
16
  _byte_size: int = 0
17
- _index: int = None # type: ignore [assignment]
18
- _id: int = None # type: ignore [assignment]
19
- _coords: Coords = None # type: ignore [assignment]
20
- _direction: Direction = None # type: ignore [assignment]
17
+ _index: int
18
+ _id: int
19
+ _coords: Coords
20
+ _direction: Direction
21
+
22
+ def __init__(self, *, index: int, id: int, coords: Coords, direction: Direction):
23
+ """
24
+ Create a new instance of NpcMapInfo.
25
+
26
+ Args:
27
+ index (int): (Value range is 0-252.)
28
+ id (int): (Value range is 0-64008.)
29
+ coords (Coords):
30
+ direction (Direction):
31
+ """
32
+ self._index = index
33
+ self._id = id
34
+ self._coords = coords
35
+ self._direction = direction
21
36
 
22
37
  @property
23
38
  def byte_size(self) -> int:
@@ -31,52 +46,20 @@ class NpcMapInfo:
31
46
 
32
47
  @property
33
48
  def index(self) -> int:
34
- """
35
- Note:
36
- - Value range is 0-252.
37
- """
38
49
  return self._index
39
50
 
40
- @index.setter
41
- def index(self, index: int) -> None:
42
- """
43
- Note:
44
- - Value range is 0-252.
45
- """
46
- self._index = index
47
-
48
51
  @property
49
52
  def id(self) -> int:
50
- """
51
- Note:
52
- - Value range is 0-64008.
53
- """
54
53
  return self._id
55
54
 
56
- @id.setter
57
- def id(self, id: int) -> None:
58
- """
59
- Note:
60
- - Value range is 0-64008.
61
- """
62
- self._id = id
63
-
64
55
  @property
65
56
  def coords(self) -> Coords:
66
57
  return self._coords
67
58
 
68
- @coords.setter
69
- def coords(self, coords: Coords) -> None:
70
- self._coords = coords
71
-
72
59
  @property
73
60
  def direction(self) -> Direction:
74
61
  return self._direction
75
62
 
76
- @direction.setter
77
- def direction(self, direction: Direction) -> None:
78
- self._direction = direction
79
-
80
63
  @staticmethod
81
64
  def serialize(writer: EoWriter, data: "NpcMapInfo") -> None:
82
65
  """
@@ -86,18 +69,22 @@ class NpcMapInfo:
86
69
  writer (EoWriter): The writer that the data will be serialized to.
87
70
  data (NpcMapInfo): The data to serialize.
88
71
  """
89
- if data._index is None:
90
- raise SerializationError("index must be provided.")
91
- writer.add_char(data._index)
92
- if data._id is None:
93
- raise SerializationError("id must be provided.")
94
- writer.add_short(data._id)
95
- if data._coords is None:
96
- raise SerializationError("coords must be provided.")
97
- Coords.serialize(writer, data._coords)
98
- if data._direction is None:
99
- raise SerializationError("direction must be provided.")
100
- writer.add_char(int(data._direction))
72
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
73
+ try:
74
+ if data._index is None:
75
+ raise SerializationError("index must be provided.")
76
+ writer.add_char(data._index)
77
+ if data._id is None:
78
+ raise SerializationError("id must be provided.")
79
+ writer.add_short(data._id)
80
+ if data._coords is None:
81
+ raise SerializationError("coords must be provided.")
82
+ Coords.serialize(writer, data._coords)
83
+ if data._direction is None:
84
+ raise SerializationError("direction must be provided.")
85
+ writer.add_char(int(data._direction))
86
+ finally:
87
+ writer.string_sanitization_mode = old_string_sanitization_mode
101
88
 
102
89
  @staticmethod
103
90
  def deserialize(reader: EoReader) -> "NpcMapInfo":
@@ -110,16 +97,16 @@ class NpcMapInfo:
110
97
  Returns:
111
98
  NpcMapInfo: The data to serialize.
112
99
  """
113
- data: NpcMapInfo = NpcMapInfo()
114
100
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
115
101
  try:
116
102
  reader_start_position: int = reader.position
117
- data._index = reader.get_char()
118
- data._id = reader.get_short()
119
- data._coords = Coords.deserialize(reader)
120
- data._direction = Direction(reader.get_char())
121
- data._byte_size = reader.position - reader_start_position
122
- return data
103
+ index = reader.get_char()
104
+ id = reader.get_short()
105
+ coords = Coords.deserialize(reader)
106
+ direction = Direction(reader.get_char())
107
+ result = NpcMapInfo(index=index, id=id, coords=coords, direction=direction)
108
+ result._byte_size = reader.position - reader_start_position
109
+ return result
123
110
  finally:
124
111
  reader.chunked_reading_mode = old_chunked_reading_mode
125
112
 
@@ -6,6 +6,7 @@
6
6
  from __future__ import annotations
7
7
  from typing import cast
8
8
  from typing import Optional
9
+ from collections.abc import Iterable
9
10
  from .npc_update_position import NpcUpdatePosition
10
11
  from .npc_update_chat import NpcUpdateChat
11
12
  from .npc_update_attack import NpcUpdateAttack
@@ -21,11 +22,28 @@ class NpcPlayerServerPacket(Packet):
21
22
  Main NPC update message
22
23
  """
23
24
  _byte_size: int = 0
24
- _positions: list[NpcUpdatePosition] = None # type: ignore [assignment]
25
- _attacks: list[NpcUpdateAttack] = None # type: ignore [assignment]
26
- _chats: list[NpcUpdateChat] = None # type: ignore [assignment]
27
- _hp: Optional[int] = None # type: ignore [assignment]
28
- _tp: Optional[int] = None # type: ignore [assignment]
25
+ _positions: tuple[NpcUpdatePosition, ...]
26
+ _attacks: tuple[NpcUpdateAttack, ...]
27
+ _chats: tuple[NpcUpdateChat, ...]
28
+ _hp: Optional[int]
29
+ _tp: Optional[int]
30
+
31
+ def __init__(self, *, positions: Iterable[NpcUpdatePosition], attacks: Iterable[NpcUpdateAttack], chats: Iterable[NpcUpdateChat], hp: Optional[int] = None, tp: Optional[int] = None):
32
+ """
33
+ Create a new instance of NpcPlayerServerPacket.
34
+
35
+ Args:
36
+ positions (Iterable[NpcUpdatePosition]):
37
+ attacks (Iterable[NpcUpdateAttack]):
38
+ chats (Iterable[NpcUpdateChat]):
39
+ hp (Optional[int]): (Value range is 0-64008.)
40
+ tp (Optional[int]): (Value range is 0-64008.)
41
+ """
42
+ self._positions = tuple(positions)
43
+ self._attacks = tuple(attacks)
44
+ self._chats = tuple(chats)
45
+ self._hp = hp
46
+ self._tp = tp
29
47
 
30
48
  @property
31
49
  def byte_size(self) -> int:
@@ -38,61 +56,25 @@ class NpcPlayerServerPacket(Packet):
38
56
  return self._byte_size
39
57
 
40
58
  @property
41
- def positions(self) -> list[NpcUpdatePosition]:
59
+ def positions(self) -> tuple[NpcUpdatePosition, ...]:
42
60
  return self._positions
43
61
 
44
- @positions.setter
45
- def positions(self, positions: list[NpcUpdatePosition]) -> None:
46
- self._positions = positions
47
-
48
62
  @property
49
- def attacks(self) -> list[NpcUpdateAttack]:
63
+ def attacks(self) -> tuple[NpcUpdateAttack, ...]:
50
64
  return self._attacks
51
65
 
52
- @attacks.setter
53
- def attacks(self, attacks: list[NpcUpdateAttack]) -> None:
54
- self._attacks = attacks
55
-
56
66
  @property
57
- def chats(self) -> list[NpcUpdateChat]:
67
+ def chats(self) -> tuple[NpcUpdateChat, ...]:
58
68
  return self._chats
59
69
 
60
- @chats.setter
61
- def chats(self, chats: list[NpcUpdateChat]) -> None:
62
- self._chats = chats
63
-
64
70
  @property
65
71
  def hp(self) -> Optional[int]:
66
- """
67
- Note:
68
- - Value range is 0-64008.
69
- """
70
72
  return self._hp
71
73
 
72
- @hp.setter
73
- def hp(self, hp: Optional[int]) -> None:
74
- """
75
- Note:
76
- - Value range is 0-64008.
77
- """
78
- self._hp = hp
79
-
80
74
  @property
81
75
  def tp(self) -> Optional[int]:
82
- """
83
- Note:
84
- - Value range is 0-64008.
85
- """
86
76
  return self._tp
87
77
 
88
- @tp.setter
89
- def tp(self, tp: Optional[int]) -> None:
90
- """
91
- Note:
92
- - Value range is 0-64008.
93
- """
94
- self._tp = tp
95
-
96
78
  @staticmethod
97
79
  def family() -> PacketFamily:
98
80
  """
@@ -131,27 +113,33 @@ class NpcPlayerServerPacket(Packet):
131
113
  writer (EoWriter): The writer that the data will be serialized to.
132
114
  data (NpcPlayerServerPacket): The data to serialize.
133
115
  """
134
- if data._positions is None:
135
- raise SerializationError("positions must be provided.")
136
- for i in range(len(data._positions)):
137
- NpcUpdatePosition.serialize(writer, data._positions[i])
138
- writer.add_byte(0xFF)
139
- if data._attacks is None:
140
- raise SerializationError("attacks must be provided.")
141
- for i in range(len(data._attacks)):
142
- NpcUpdateAttack.serialize(writer, data._attacks[i])
143
- writer.add_byte(0xFF)
144
- if data._chats is None:
145
- raise SerializationError("chats must be provided.")
146
- for i in range(len(data._chats)):
147
- NpcUpdateChat.serialize(writer, data._chats[i])
148
- writer.add_byte(0xFF)
149
- reached_missing_optional = data._hp is None
150
- if not reached_missing_optional:
151
- writer.add_short(cast(int, data._hp))
152
- reached_missing_optional = reached_missing_optional or data._tp is None
153
- if not reached_missing_optional:
154
- writer.add_short(cast(int, data._tp))
116
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
117
+ try:
118
+ writer.string_sanitization_mode = True
119
+ if data._positions is None:
120
+ raise SerializationError("positions must be provided.")
121
+ for i in range(len(data._positions)):
122
+ NpcUpdatePosition.serialize(writer, data._positions[i])
123
+ writer.add_byte(0xFF)
124
+ if data._attacks is None:
125
+ raise SerializationError("attacks must be provided.")
126
+ for i in range(len(data._attacks)):
127
+ NpcUpdateAttack.serialize(writer, data._attacks[i])
128
+ writer.add_byte(0xFF)
129
+ if data._chats is None:
130
+ raise SerializationError("chats must be provided.")
131
+ for i in range(len(data._chats)):
132
+ NpcUpdateChat.serialize(writer, data._chats[i])
133
+ writer.add_byte(0xFF)
134
+ reached_missing_optional = data._hp is None
135
+ if not reached_missing_optional:
136
+ writer.add_short(cast(int, data._hp))
137
+ reached_missing_optional = reached_missing_optional or data._tp is None
138
+ if not reached_missing_optional:
139
+ writer.add_short(cast(int, data._tp))
140
+ writer.string_sanitization_mode = False
141
+ finally:
142
+ writer.string_sanitization_mode = old_string_sanitization_mode
155
143
 
156
144
  @staticmethod
157
145
  def deserialize(reader: EoReader) -> "NpcPlayerServerPacket":
@@ -164,32 +152,34 @@ class NpcPlayerServerPacket(Packet):
164
152
  Returns:
165
153
  NpcPlayerServerPacket: The data to serialize.
166
154
  """
167
- data: NpcPlayerServerPacket = NpcPlayerServerPacket()
168
155
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
169
156
  try:
170
157
  reader_start_position: int = reader.position
171
158
  reader.chunked_reading_mode = True
172
159
  positions_length = int(reader.remaining / 4)
173
- data._positions = []
160
+ positions = []
174
161
  for i in range(positions_length):
175
- data._positions.append(NpcUpdatePosition.deserialize(reader))
162
+ positions.append(NpcUpdatePosition.deserialize(reader))
176
163
  reader.next_chunk()
177
164
  attacks_length = int(reader.remaining / 9)
178
- data._attacks = []
165
+ attacks = []
179
166
  for i in range(attacks_length):
180
- data._attacks.append(NpcUpdateAttack.deserialize(reader))
167
+ attacks.append(NpcUpdateAttack.deserialize(reader))
181
168
  reader.next_chunk()
182
- data._chats = []
169
+ chats = []
183
170
  while reader.remaining > 0:
184
- data._chats.append(NpcUpdateChat.deserialize(reader))
171
+ chats.append(NpcUpdateChat.deserialize(reader))
185
172
  reader.next_chunk()
173
+ hp: Optional[int] = None
186
174
  if reader.remaining > 0:
187
- data._hp = reader.get_short()
175
+ hp = reader.get_short()
176
+ tp: Optional[int] = None
188
177
  if reader.remaining > 0:
189
- data._tp = reader.get_short()
178
+ tp = reader.get_short()
190
179
  reader.chunked_reading_mode = False
191
- data._byte_size = reader.position - reader_start_position
192
- return data
180
+ result = NpcPlayerServerPacket(positions=positions, attacks=attacks, chats=chats, hp=hp, tp=tp)
181
+ result._byte_size = reader.position - reader_start_position
182
+ return result
193
183
  finally:
194
184
  reader.chunked_reading_mode = old_chunked_reading_mode
195
185