- add: new token login and join server packet

This commit is contained in:
2024-12-14 00:20:55 -05:00
parent 444e69294c
commit e6f78128a7
3 changed files with 415 additions and 413 deletions

View File

@@ -4,8 +4,8 @@ use crate::packet::{send_packet, Packet, PacketPayload};
use crate::packet_type::PacketType; use crate::packet_type::PacketType;
use crate::packets::cli_accept_req::CliAcceptReq; use crate::packets::cli_accept_req::CliAcceptReq;
use crate::packets::cli_channel_list_req::CliChannelListReq; use crate::packets::cli_channel_list_req::CliChannelListReq;
use crate::packets::cli_join_server_req::CliJoinServerReq; use crate::packets::cli_join_server_token_req::CliJoinServerTokenReq;
use crate::packets::cli_login_req::CliLoginReq; use crate::packets::cli_login_token_req::CliLoginTokenReq;
use crate::packets::cli_srv_select_req::CliSrvSelectReq; use crate::packets::cli_srv_select_req::CliSrvSelectReq;
use crate::packets::srv_accept_reply::SrvAcceptReply; use crate::packets::srv_accept_reply::SrvAcceptReply;
use crate::packets::srv_channel_list_reply::{ChannelInfo, SrvChannelListReply}; use crate::packets::srv_channel_list_reply::{ChannelInfo, SrvChannelListReply};
@@ -24,26 +24,24 @@ use utils::service_discovery;
pub(crate) async fn handle_accept_req(stream: &mut TcpStream, packet: Packet) -> Result<(), Box<dyn Error + Send + Sync>> { pub(crate) async fn handle_accept_req(stream: &mut TcpStream, packet: Packet) -> Result<(), Box<dyn Error + Send + Sync>> {
let request = CliAcceptReq::decode(packet.payload.as_slice()); let request = CliAcceptReq::decode(packet.payload.as_slice());
debug!("{:?}", request);
// We need to do reply to this packet // We need to do reply to this packet
let data = SrvAcceptReply { result: srv_accept_reply::Result::Accepted, rand_value: 0 }; let data = SrvAcceptReply { result: srv_accept_reply::Result::Accepted, rand_value: 0 };
let response_packet = Packet::new(PacketType::PakssAcceptReply, &data)?; let response_packet = Packet::new(PacketType::PakssAcceptReply, &data)?;
debug!("{:?}", response_packet);
send_packet(stream, &response_packet).await?; send_packet(stream, &response_packet).await?;
Ok(()) Ok(())
} }
pub(crate) async fn handle_join_server_req(stream: &mut TcpStream, packet: Packet) -> Result<(), Box<dyn Error + Send + Sync>> { pub(crate) async fn handle_join_server_req(stream: &mut TcpStream, packet: Packet) -> Result<(), Box<dyn Error + Send + Sync>> {
let request = CliJoinServerReq::decode(packet.payload.as_slice()); let request = CliJoinServerTokenReq::decode(packet.payload.as_slice());
debug!("{:?}", request); debug!("{:?}", request);
Ok(()) Ok(())
} }
pub(crate) async fn handle_login_req(stream: &mut TcpStream, packet: Packet, auth_client: Arc<Mutex<AuthClient>>) -> Result<(), Box<dyn Error + Send + Sync>> { pub(crate) async fn handle_login_req(stream: &mut TcpStream, packet: Packet, auth_client: Arc<Mutex<AuthClient>>) -> Result<(), Box<dyn Error + Send + Sync>> {
debug!("decoding packet payload of size {}", packet.payload.as_slice().len()); debug!("decoding packet payload of size {}", packet.payload.as_slice().len());
let data = CliLoginReq::decode(packet.payload.as_slice())?; let data = CliLoginTokenReq::decode(packet.payload.as_slice())?;
debug!("{:?}", data); debug!("{:?}", data);
let mut auth_client = auth_client.lock().await; let mut auth_client = auth_client.lock().await;
@@ -157,7 +155,7 @@ pub(crate) async fn handle_channel_list_req(stream: &mut TcpStream, packet: Pack
debug!("Server info: {:?}", channels); debug!("Server info: {:?}", channels);
let mut channel_info: Vec<ChannelInfo> = Vec::new(); let mut channel_info: Vec<ChannelInfo> = Vec::new();
let mut id = 0; let mut id = 1;
for channel in channels { for channel in channels {
let name = format!("{}", channel.ServiceMeta.get("name").unwrap_or(&"".to_string()).clone()); let name = format!("{}", channel.ServiceMeta.get("name").unwrap_or(&"".to_string()).clone());
channel_info.push(ChannelInfo { id: id, low_age: 0, high_age: 0, capacity: 0, name: NullTerminatedString::new(&name) }); channel_info.push(ChannelInfo { id: id, low_age: 0, high_age: 0, capacity: 0, name: NullTerminatedString::new(&name) });

View File

@@ -14,208 +14,210 @@ pub enum PacketType {
PakcsLogoutReq = 0x0507, PakcsLogoutReq = 0x0507,
PakwcLogoutReply = 0x0508, PakwcLogoutReply = 0x0508,
PakcsLoginReq = 0x0509, PakcsLoginReq = 0x0509,
PaklcLoginReply = 0x050A, PakcsLoginTokenReq = 0x050A,
PakgcLoginReply = 0x050B, PaklcLoginReply = 0x050B,
PakcsSrvSelectReq = 0x050C, PakgcLoginReply = 0x050C,
PaklcSrvSelectReply = 0x050D, PakcsSrvSelectReq = 0x050D,
PakcsJoinServerReq = 0x050E, PaklcSrvSelectReply = 0x050E,
PakscJoinServerReply = 0x050F, PakcsJoinServerReq = 0x050F,
PakwcGmCommand = 0x0510, PakscJoinServerReply = 0x0510,
PakwcGlobalVars = 0x0511, PakcsJoinServerTokenReq = 0x0511,
PakwcGlobalFlags = 0x0512, PakwcGmCommand = 0x0512,
PakccSwitchServer = 0x0513, PakwcGlobalVars = 0x0513,
PakcsCharListReq = 0x0514, PakwcGlobalFlags = 0x0514,
PakccCharListReply = 0x0515, PakccSwitchServer = 0x0515,
PakcsCreateCharReq = 0x0516, PakcsCharListReq = 0x0516,
PakccCreateCharReply = 0x0517, PakccCharListReply = 0x0517,
PakcsDeleteCharReq = 0x0518, PakcsCreateCharReq = 0x0518,
PakccDeleteCharReply = 0x0519, PakccCreateCharReply = 0x0519,
PakcsSelectCharReq = 0x051A, PakcsDeleteCharReq = 0x051A,
PakwcSelectCharReply = 0x051B, PakccDeleteCharReply = 0x051B,
PakwcInventoryData = 0x051C, PakcsSelectCharReq = 0x051C,
PakwcSetMoneyAndItem = 0x051D, PakwcSelectCharReply = 0x051D,
PakwcSetItem = 0x051E, PakwcInventoryData = 0x051E,
PakwcServerData = 0x051F, PakwcSetMoneyAndItem = 0x051F,
PakwcQuestData = 0x0520, PakwcSetItem = 0x0520,
PakcsChangeCharReq = 0x0521, PakwcServerData = 0x0521,
PakccChanCharReply = 0x0522, PakwcQuestData = 0x0522,
PakwcSetMoney = 0x0523, PakcsChangeCharReq = 0x0523,
PakwcQuestRewardMoney = 0x0524, PakccChanCharReply = 0x0524,
PakwcQuestRewardItem = 0x0525, PakwcSetMoney = 0x0525,
PakwcQuestRewardAddValue = 0x0526, PakwcQuestRewardMoney = 0x0526,
PakwcQuestRewardSetValue = 0x0527, PakwcQuestRewardItem = 0x0527,
PakcsCancelLogout = 0x0528, PakwcQuestRewardAddValue = 0x0528,
PakwcQuestUpdate = 0x0529, PakwcQuestRewardSetValue = 0x0529,
PakwcWishList = 0x052A, PakcsCancelLogout = 0x052A,
PakcsQuestDataReq = 0x052B, PakwcQuestUpdate = 0x052B,
PakwcQuestDataReply = 0x052C, PakwcWishList = 0x052C,
PakwcNpcEvent = 0x052D, PakcsQuestDataReq = 0x052D,
PakwcGmCommandCode = 0x052E, PakwcQuestDataReply = 0x052E,
PakcsChangeMapReq = 0x052F, PakwcNpcEvent = 0x052F,
PakwcChangeMapReply = 0x0530, PakwcGmCommandCode = 0x0530,
PakwcInitData = 0x0531, PakcsChangeMapReq = 0x0531,
PakcsReviveReq = 0x0532, PakwcChangeMapReply = 0x0532,
PakwcReviveReply = 0x0533, PakwcInitData = 0x0533,
PakcsReviveSetPos = 0x0534, PakcsReviveReq = 0x0534,
PakcsSetServerVarReq = 0x0535, PakwcReviveReply = 0x0535,
PakwcSetServerVarReply = 0x0536, PakcsReviveSetPos = 0x0536,
PakcsCharInfoReq = 0x0537, PakcsSetServerVarReq = 0x0537,
PakwcCharInfoReply = 0x0538, PakwcSetServerVarReply = 0x0538,
PakcsSetWeightReq = 0x0539, PakcsCharInfoReq = 0x0539,
PakwcSetWeight = 0x053A, PakwcCharInfoReply = 0x053A,
PakwcSetPosition = 0x053B, PakcsSetWeightReq = 0x053B,
PakcsStopMoving = 0x053C, PakwcSetWeight = 0x053C,
PakwcStopMoving = 0x053D, PakwcSetPosition = 0x053D,
PakwcUpdateNpc = 0x053E, PakcsStopMoving = 0x053E,
PakcsSummonCmd = 0x053F, PakwcStopMoving = 0x053F,
PakwcSummonCmd = 0x0540, PakwcUpdateNpc = 0x0540,
PakcsSetAnimation = 0x0541, PakcsSummonCmd = 0x0541,
PacwcSetAnimation = 0x0542, PakwcSummonCmd = 0x0542,
PakcsToggleMove = 0x0543, PakcsSetAnimation = 0x0543,
PakwcToggleMove = 0x0544, PacwcSetAnimation = 0x0544,
PakcsNormalChat = 0x0545, PakcsToggleMove = 0x0545,
PakwcNormalChat = 0x0546, PakwcToggleMove = 0x0546,
PakcsWhisperChat = 0x0547, PakcsNormalChat = 0x0547,
PakwcWhisperChat = 0x0548, PakwcNormalChat = 0x0548,
PakcsShoutChat = 0x0549, PakcsWhisperChat = 0x0549,
PakwcShoutChat = 0x054A, PakwcWhisperChat = 0x054A,
PakcsPartyChat = 0x054B, PakcsShoutChat = 0x054B,
PakwcPartyChat = 0x054C, PakwcShoutChat = 0x054C,
PakcsClanChat = 0x054D, PakcsPartyChat = 0x054D,
PakwcClanChat = 0x054E, PakwcPartyChat = 0x054E,
PakcsAlliedChat = 0x054F, PakcsClanChat = 0x054F,
PakwcAlliedChat = 0x0550, PakwcClanChat = 0x0550,
PakcsAlliedShoutChat = 0x0551, PakcsAlliedChat = 0x0551,
PakwcAlliedShoutChat = 0x0552, PakwcAlliedChat = 0x0552,
PakwcEventStatus = 0x0553, PakcsAlliedShoutChat = 0x0553,
PakwcNpcChar = 0x0554, PakwcAlliedShoutChat = 0x0554,
PakwcMobChar = 0x0555, PakwcEventStatus = 0x0555,
PakwcPlayerChar = 0x0556, PakwcNpcChar = 0x0556,
PakwcRemoveObject = 0x0557, PakwcMobChar = 0x0557,
PakcsSetPosition = 0x0558, PakwcPlayerChar = 0x0558,
PakcsStop = 0x0559, PakwcRemoveObject = 0x0559,
PakwcStop = 0x055A, PakcsSetPosition = 0x055A,
PakwcMove = 0x055B, PakcsStop = 0x055B,
PakcsAttack = 0x055C, PakwcStop = 0x055C,
PakwcAttack = 0x055D, PakwcMove = 0x055D,
PakcsDamage = 0x055E, PakcsAttack = 0x055E,
PakwcDamage = 0x055F, PakwcAttack = 0x055F,
PakcsMouseCmd = 0x0560, PakcsDamage = 0x0560,
PakwcMouseCmd = 0x0561, PakwcDamage = 0x0561,
PakwcSetExp = 0x0562, PakcsMouseCmd = 0x0562,
PakwcLevelup = 0x0563, PakwcMouseCmd = 0x0563,
PakcsHpReq = 0x0564, PakwcSetExp = 0x0564,
PakwcHpReply = 0x0565, PakwcLevelup = 0x0565,
PakwcSetHpAndMp = 0x0566, PakcsHpReq = 0x0566,
PakcsStoreTradeReq = 0x0567, PakwcHpReply = 0x0567,
PakwcStoreTradeReply = 0x0568, PakwcSetHpAndMp = 0x0568,
PakcsUseItem = 0x0569, PakcsStoreTradeReq = 0x0569,
PakwcUseItem = 0x056A, PakwcStoreTradeReply = 0x056A,
PakcsDropItem = 0x056B, PakcsUseItem = 0x056B,
PakcsEquipItem = 0x056C, PakwcUseItem = 0x056C,
PakwcEquipItem = 0x056D, PakcsDropItem = 0x056D,
PakwcDropItem = 0x056E, PakcsEquipItem = 0x056E,
PakcsPickupItemReq = 0x056F, PakwcEquipItem = 0x056F,
PakwcPickupItemReply = 0x0570, PakwcDropItem = 0x0570,
PakcsTeleportReq = 0x0571, PakcsPickupItemReq = 0x0571,
PakwcTeleportReply = 0x0572, PakwcPickupItemReply = 0x0572,
PakcsStatAddReq = 0x0573, PakcsTeleportReq = 0x0573,
PakwcStatAddReply = 0x0574, PakwcTeleportReply = 0x0574,
PakcsHotbarSetIconReq = 0x0575, PakcsStatAddReq = 0x0575,
PakwcHotbarSetIconReply = 0x0576, PakwcStatAddReply = 0x0576,
PakcsEquipProjectile = 0x0577, PakcsHotbarSetIconReq = 0x0577,
PakwcEquipProjectile = 0x0578, PakwcHotbarSetIconReply = 0x0578,
PakwcChangeSkin = 0x0579, PakcsEquipProjectile = 0x0579,
PakcsBankListReq = 0x057A, PakwcEquipProjectile = 0x057A,
PakwcBankListReply = 0x057B, PakwcChangeSkin = 0x057B,
PakcsBankMoveItem = 0x057C, PakcsBankListReq = 0x057C,
PakwcBankMoveItem = 0x057D, PakwcBankListReply = 0x057D,
PakcsCraftReq = 0x057E, PakcsBankMoveItem = 0x057E,
PakwcCraftReply = 0x057F, PakwcBankMoveItem = 0x057F,
PakwcSkillLearn = 0x0580, PakcsCraftReq = 0x0580,
PakcsSkillLevelReq = 0x0581, PakwcCraftReply = 0x0581,
PakwcSkillLevelReply = 0x0582, PakwcSkillLearn = 0x0582,
PakcsSkillCastSelf = 0x0583, PakcsSkillLevelReq = 0x0583,
PakwcSkillCastSelf = 0x0584, PakwcSkillLevelReply = 0x0584,
PakcsSkillCastTarget = 0x0585, PakcsSkillCastSelf = 0x0585,
PakwcSkillCastTarget = 0x0586, PakwcSkillCastSelf = 0x0586,
PakcsSkillCastPosition = 0x0587, PakcsSkillCastTarget = 0x0587,
PakwcSkillCastPosition = 0x0588, PakwcSkillCastTarget = 0x0588,
PakwcSkillEffect = 0x0589, PakcsSkillCastPosition = 0x0589,
PakwcSkillDamage = 0x058A, PakwcSkillCastPosition = 0x058A,
PakwcClearStatus = 0x058B, PakwcSkillEffect = 0x058B,
PakwcSpeedChanged = 0x058C, PakwcSkillDamage = 0x058C,
PakwcSkillFinish = 0x058D, PakwcClearStatus = 0x058D,
PakcsAppraisalReq = 0x058E, PakwcSpeedChanged = 0x058E,
PakwcAppraisalReply = 0x058F, PakwcSkillFinish = 0x058F,
PakwcSkillStart = 0x0590, PakcsAppraisalReq = 0x0590,
PakcsCraftEnhanceReq = 0x0591, PakwcAppraisalReply = 0x0591,
PakwcCraftEnhanceReply = 0x0592, PakwcSkillStart = 0x0592,
PakwcSkillCancel = 0x0593, PakcsCraftEnhanceReq = 0x0593,
PakcsWishlistAdd = 0x0594, PakwcCraftEnhanceReply = 0x0594,
PakcsTrade = 0x0595, PakwcSkillCancel = 0x0595,
PakwcTrade = 0x0596, PakcsWishlistAdd = 0x0596,
PakcsTradeItem = 0x0597, PakcsTrade = 0x0597,
PakwcTradeItem = 0x0598, PakwcTrade = 0x0598,
PakcsShopOpen = 0x0599, PakcsTradeItem = 0x0599,
PakwcShopOpen = 0x059A, PakwcTradeItem = 0x059A,
PakcsShopClose = 0x059B, PakcsShopOpen = 0x059B,
PakwcShopClose = 0x059C, PakwcShopOpen = 0x059C,
PakcsShopListReq = 0x059D, PakcsShopClose = 0x059D,
PakwcShopListReply = 0x059E, PakwcShopClose = 0x059E,
PakcsShopBuyReq = 0x059F, PakcsShopListReq = 0x059F,
PakcsShopSellReq = 0x05A0, PakwcShopListReply = 0x05A0,
PakcsShopBuysellReply = 0x05A1, PakcsShopBuyReq = 0x05A1,
PakcsEquipItemRide = 0x05A2, PakcsShopSellReq = 0x05A2,
PakwcEquipItemRide = 0x05A3, PakcsShopBuysellReply = 0x05A3,
PakcsRepairUseItem = 0x05A4, PakcsEquipItemRide = 0x05A4,
PakcsRepairNpc = 0x05A5, PakwcEquipItemRide = 0x05A5,
PakwcSetItemLife = 0x05A6, PakcsRepairUseItem = 0x05A6,
PakcsPartyReq = 0x05A7, PakcsRepairNpc = 0x05A7,
PakwcPartyReq = 0x05A8, PakwcSetItemLife = 0x05A8,
PakcsPartyReply = 0x05A9, PakcsPartyReq = 0x05A9,
PakwcPartyReply = 0x05AA, PakwcPartyReq = 0x05AA,
PakwcPartyMember = 0x05AB, PakcsPartyReply = 0x05AB,
PakwcPartyItem = 0x05AC, PakwcPartyReply = 0x05AC,
PakwcPartyLevelexp = 0x05AD, PakwcPartyMember = 0x05AD,
PakwcPartyMemberUpdate = 0x05AE, PakwcPartyItem = 0x05AE,
PakwcEventAdd = 0x05AF, PakwcPartyLevelexp = 0x05AF,
PakcsPartyRule = 0x05B0, PakwcPartyMemberUpdate = 0x05B0,
PakwcPartyRule = 0x05B1, PakwcEventAdd = 0x05B1,
PakcsCraftStatus = 0x05B2, PakcsPartyRule = 0x05B2,
PakwcCraftStatus = 0x05B3, PakwcPartyRule = 0x05B3,
PakcsBankMoveMoney = 0x05B4, PakcsCraftStatus = 0x05B4,
PakwcBankMoveMoney = 0x05B5, PakwcCraftStatus = 0x05B5,
PakwcNpcShow = 0x05B6, PakcsBankMoveMoney = 0x05B6,
PakwcFairy = 0x05B7, PakwcBankMoveMoney = 0x05B7,
PakcsRideRequest = 0x05B8, PakwcNpcShow = 0x05B8,
PakwcRideRequest = 0x05B9, PakwcFairy = 0x05B9,
PakwcBillingMessage = 0x05BA, PakcsRideRequest = 0x05BA,
PakwcBillingMessageExt = 0x05BB, PakwcRideRequest = 0x05BB,
PakcsClanCommand = 0x05BC, PakwcBillingMessage = 0x05BC,
PakccClanCommand = 0x05BD, PakwcBillingMessageExt = 0x05BD,
PakcsMessenger = 0x05BE, PakcsClanCommand = 0x05BE,
PakccMessenger = 0x05BF, PakccClanCommand = 0x05BF,
PakcsMessengerChat = 0x05C0, PakcsMessenger = 0x05C0,
PakccMessengerChat = 0x05C1, PakccMessenger = 0x05C1,
PakcsChatroom = 0x05C2, PakcsMessengerChat = 0x05C2,
PakccChatroom = 0x05C3, PakccMessengerChat = 0x05C3,
PakcsChatroomMessage = 0x05C4, PakcsChatroom = 0x05C4,
PakccChatroomMessage = 0x05C5, PakccChatroom = 0x05C5,
PakcsMemo = 0x05C6, PakcsChatroomMessage = 0x05C6,
PakccMemo = 0x05C7, PakccChatroomMessage = 0x05C7,
PakcsClanIconSet = 0x05C8, PakcsMemo = 0x05C8,
PakcsClanIconReq = 0x05C9, PakccMemo = 0x05C9,
PakccClanIconReply = 0x05CA, PakcsClanIconSet = 0x05CA,
PakcsClanIconTimestamp = 0x05CB, PakcsClanIconReq = 0x05CB,
PakccClanIconTimestamp = 0x05CC, PakccClanIconReply = 0x05CC,
PakwcRideStateChange = 0x05CD, PakcsClanIconTimestamp = 0x05CD,
PawkcCharStateChange = 0x05CE, PakccClanIconTimestamp = 0x05CE,
PakcsScreenShotTimeReq = 0x05CF, PakwcRideStateChange = 0x05CF,
PakscScreenShotTimeReply = 0x05D0, PawkcCharStateChange = 0x05D0,
PakwcUpdateName = 0x05D1, PakcsScreenShotTimeReq = 0x05D1,
PakssAcceptReply = 0x05D2, PakscScreenShotTimeReply = 0x05D2,
Epacketmax = 0x05D3, PakwcUpdateName = 0x05D3,
PakssAcceptReply = 0x05D4,
Epacketmax = 0x05D5,
Stress = 0x6F6D, Stress = 0x6F6D,
} }
@@ -240,208 +242,210 @@ impl TryFrom<u16> for PacketType {
0x0507 => Ok(PacketType::PakcsLogoutReq), 0x0507 => Ok(PacketType::PakcsLogoutReq),
0x0508 => Ok(PacketType::PakwcLogoutReply), 0x0508 => Ok(PacketType::PakwcLogoutReply),
0x0509 => Ok(PacketType::PakcsLoginReq), 0x0509 => Ok(PacketType::PakcsLoginReq),
0x050A => Ok(PacketType::PaklcLoginReply), 0x050A => Ok(PacketType::PakcsLoginTokenReq),
0x050B => Ok(PacketType::PakgcLoginReply), 0x050B => Ok(PacketType::PaklcLoginReply),
0x050C => Ok(PacketType::PakcsSrvSelectReq), 0x050C => Ok(PacketType::PakgcLoginReply),
0x050D => Ok(PacketType::PaklcSrvSelectReply), 0x050D => Ok(PacketType::PakcsSrvSelectReq),
0x050E => Ok(PacketType::PakcsJoinServerReq), 0x050E => Ok(PacketType::PaklcSrvSelectReply),
0x050F => Ok(PacketType::PakscJoinServerReply), 0x050F => Ok(PacketType::PakcsJoinServerReq),
0x0510 => Ok(PacketType::PakwcGmCommand), 0x0510 => Ok(PacketType::PakscJoinServerReply),
0x0511 => Ok(PacketType::PakwcGlobalVars), 0x0511 => Ok(PacketType::PakcsJoinServerTokenReq),
0x0512 => Ok(PacketType::PakwcGlobalFlags), 0x0512 => Ok(PacketType::PakwcGmCommand),
0x0513 => Ok(PacketType::PakccSwitchServer), 0x0513 => Ok(PacketType::PakwcGlobalVars),
0x0514 => Ok(PacketType::PakcsCharListReq), 0x0514 => Ok(PacketType::PakwcGlobalFlags),
0x0515 => Ok(PacketType::PakccCharListReply), 0x0515 => Ok(PacketType::PakccSwitchServer),
0x0516 => Ok(PacketType::PakcsCreateCharReq), 0x0516 => Ok(PacketType::PakcsCharListReq),
0x0517 => Ok(PacketType::PakccCreateCharReply), 0x0517 => Ok(PacketType::PakccCharListReply),
0x0518 => Ok(PacketType::PakcsDeleteCharReq), 0x0518 => Ok(PacketType::PakcsCreateCharReq),
0x0519 => Ok(PacketType::PakccDeleteCharReply), 0x0519 => Ok(PacketType::PakccCreateCharReply),
0x051A => Ok(PacketType::PakcsSelectCharReq), 0x051A => Ok(PacketType::PakcsDeleteCharReq),
0x051B => Ok(PacketType::PakwcSelectCharReply), 0x051B => Ok(PacketType::PakccDeleteCharReply),
0x051C => Ok(PacketType::PakwcInventoryData), 0x051C => Ok(PacketType::PakcsSelectCharReq),
0x051D => Ok(PacketType::PakwcSetMoneyAndItem), 0x051D => Ok(PacketType::PakwcSelectCharReply),
0x051E => Ok(PacketType::PakwcSetItem), 0x051E => Ok(PacketType::PakwcInventoryData),
0x051F => Ok(PacketType::PakwcServerData), 0x051F => Ok(PacketType::PakwcSetMoneyAndItem),
0x0520 => Ok(PacketType::PakwcQuestData), 0x0520 => Ok(PacketType::PakwcSetItem),
0x0521 => Ok(PacketType::PakcsChangeCharReq), 0x0521 => Ok(PacketType::PakwcServerData),
0x0522 => Ok(PacketType::PakccChanCharReply), 0x0522 => Ok(PacketType::PakwcQuestData),
0x0523 => Ok(PacketType::PakwcSetMoney), 0x0523 => Ok(PacketType::PakcsChangeCharReq),
0x0524 => Ok(PacketType::PakwcQuestRewardMoney), 0x0524 => Ok(PacketType::PakccChanCharReply),
0x0525 => Ok(PacketType::PakwcQuestRewardItem), 0x0525 => Ok(PacketType::PakwcSetMoney),
0x0526 => Ok(PacketType::PakwcQuestRewardAddValue), 0x0526 => Ok(PacketType::PakwcQuestRewardMoney),
0x0527 => Ok(PacketType::PakwcQuestRewardSetValue), 0x0527 => Ok(PacketType::PakwcQuestRewardItem),
0x0528 => Ok(PacketType::PakcsCancelLogout), 0x0528 => Ok(PacketType::PakwcQuestRewardAddValue),
0x0529 => Ok(PacketType::PakwcQuestUpdate), 0x0529 => Ok(PacketType::PakwcQuestRewardSetValue),
0x052A => Ok(PacketType::PakwcWishList), 0x052A => Ok(PacketType::PakcsCancelLogout),
0x052B => Ok(PacketType::PakcsQuestDataReq), 0x052B => Ok(PacketType::PakwcQuestUpdate),
0x052C => Ok(PacketType::PakwcQuestDataReply), 0x052C => Ok(PacketType::PakwcWishList),
0x052D => Ok(PacketType::PakwcNpcEvent), 0x052D => Ok(PacketType::PakcsQuestDataReq),
0x052E => Ok(PacketType::PakwcGmCommandCode), 0x052E => Ok(PacketType::PakwcQuestDataReply),
0x052F => Ok(PacketType::PakcsChangeMapReq), 0x052F => Ok(PacketType::PakwcNpcEvent),
0x0530 => Ok(PacketType::PakwcChangeMapReply), 0x0530 => Ok(PacketType::PakwcGmCommandCode),
0x0531 => Ok(PacketType::PakwcInitData), 0x0531 => Ok(PacketType::PakcsChangeMapReq),
0x0532 => Ok(PacketType::PakcsReviveReq), 0x0532 => Ok(PacketType::PakwcChangeMapReply),
0x0533 => Ok(PacketType::PakwcReviveReply), 0x0533 => Ok(PacketType::PakwcInitData),
0x0534 => Ok(PacketType::PakcsReviveSetPos), 0x0534 => Ok(PacketType::PakcsReviveReq),
0x0535 => Ok(PacketType::PakcsSetServerVarReq), 0x0535 => Ok(PacketType::PakwcReviveReply),
0x0536 => Ok(PacketType::PakwcSetServerVarReply), 0x0536 => Ok(PacketType::PakcsReviveSetPos),
0x0537 => Ok(PacketType::PakcsCharInfoReq), 0x0537 => Ok(PacketType::PakcsSetServerVarReq),
0x0538 => Ok(PacketType::PakwcCharInfoReply), 0x0538 => Ok(PacketType::PakwcSetServerVarReply),
0x0539 => Ok(PacketType::PakcsSetWeightReq), 0x0539 => Ok(PacketType::PakcsCharInfoReq),
0x053A => Ok(PacketType::PakwcSetWeight), 0x053A => Ok(PacketType::PakwcCharInfoReply),
0x053B => Ok(PacketType::PakwcSetPosition), 0x053B => Ok(PacketType::PakcsSetWeightReq),
0x053C => Ok(PacketType::PakcsStopMoving), 0x053C => Ok(PacketType::PakwcSetWeight),
0x053D => Ok(PacketType::PakwcStopMoving), 0x053D => Ok(PacketType::PakwcSetPosition),
0x053E => Ok(PacketType::PakwcUpdateNpc), 0x053E => Ok(PacketType::PakcsStopMoving),
0x053F => Ok(PacketType::PakcsSummonCmd), 0x053F => Ok(PacketType::PakwcStopMoving),
0x0540 => Ok(PacketType::PakwcSummonCmd), 0x0540 => Ok(PacketType::PakwcUpdateNpc),
0x0541 => Ok(PacketType::PakcsSetAnimation), 0x0541 => Ok(PacketType::PakcsSummonCmd),
0x0542 => Ok(PacketType::PacwcSetAnimation), 0x0542 => Ok(PacketType::PakwcSummonCmd),
0x0543 => Ok(PacketType::PakcsToggleMove), 0x0543 => Ok(PacketType::PakcsSetAnimation),
0x0544 => Ok(PacketType::PakwcToggleMove), 0x0544 => Ok(PacketType::PacwcSetAnimation),
0x0545 => Ok(PacketType::PakcsNormalChat), 0x0545 => Ok(PacketType::PakcsToggleMove),
0x0546 => Ok(PacketType::PakwcNormalChat), 0x0546 => Ok(PacketType::PakwcToggleMove),
0x0547 => Ok(PacketType::PakcsWhisperChat), 0x0547 => Ok(PacketType::PakcsNormalChat),
0x0548 => Ok(PacketType::PakwcWhisperChat), 0x0548 => Ok(PacketType::PakwcNormalChat),
0x0549 => Ok(PacketType::PakcsShoutChat), 0x0549 => Ok(PacketType::PakcsWhisperChat),
0x054A => Ok(PacketType::PakwcShoutChat), 0x054A => Ok(PacketType::PakwcWhisperChat),
0x054B => Ok(PacketType::PakcsPartyChat), 0x054B => Ok(PacketType::PakcsShoutChat),
0x054C => Ok(PacketType::PakwcPartyChat), 0x054C => Ok(PacketType::PakwcShoutChat),
0x054D => Ok(PacketType::PakcsClanChat), 0x054D => Ok(PacketType::PakcsPartyChat),
0x054E => Ok(PacketType::PakwcClanChat), 0x054E => Ok(PacketType::PakwcPartyChat),
0x054F => Ok(PacketType::PakcsAlliedChat), 0x054F => Ok(PacketType::PakcsClanChat),
0x0550 => Ok(PacketType::PakwcAlliedChat), 0x0550 => Ok(PacketType::PakwcClanChat),
0x0551 => Ok(PacketType::PakcsAlliedShoutChat), 0x0551 => Ok(PacketType::PakcsAlliedChat),
0x0552 => Ok(PacketType::PakwcAlliedShoutChat), 0x0552 => Ok(PacketType::PakwcAlliedChat),
0x0553 => Ok(PacketType::PakwcEventStatus), 0x0553 => Ok(PacketType::PakcsAlliedShoutChat),
0x0554 => Ok(PacketType::PakwcNpcChar), 0x0554 => Ok(PacketType::PakwcAlliedShoutChat),
0x0555 => Ok(PacketType::PakwcMobChar), 0x0555 => Ok(PacketType::PakwcEventStatus),
0x0556 => Ok(PacketType::PakwcPlayerChar), 0x0556 => Ok(PacketType::PakwcNpcChar),
0x0557 => Ok(PacketType::PakwcRemoveObject), 0x0557 => Ok(PacketType::PakwcMobChar),
0x0558 => Ok(PacketType::PakcsSetPosition), 0x0558 => Ok(PacketType::PakwcPlayerChar),
0x0559 => Ok(PacketType::PakcsStop), 0x0559 => Ok(PacketType::PakwcRemoveObject),
0x055A => Ok(PacketType::PakwcStop), 0x055A => Ok(PacketType::PakcsSetPosition),
0x055B => Ok(PacketType::PakwcMove), 0x055B => Ok(PacketType::PakcsStop),
0x055C => Ok(PacketType::PakcsAttack), 0x055C => Ok(PacketType::PakwcStop),
0x055D => Ok(PacketType::PakwcAttack), 0x055D => Ok(PacketType::PakwcMove),
0x055E => Ok(PacketType::PakcsDamage), 0x055E => Ok(PacketType::PakcsAttack),
0x055F => Ok(PacketType::PakwcDamage), 0x055F => Ok(PacketType::PakwcAttack),
0x0560 => Ok(PacketType::PakcsMouseCmd), 0x0560 => Ok(PacketType::PakcsDamage),
0x0561 => Ok(PacketType::PakwcMouseCmd), 0x0561 => Ok(PacketType::PakwcDamage),
0x0562 => Ok(PacketType::PakwcSetExp), 0x0562 => Ok(PacketType::PakcsMouseCmd),
0x0563 => Ok(PacketType::PakwcLevelup), 0x0563 => Ok(PacketType::PakwcMouseCmd),
0x0564 => Ok(PacketType::PakcsHpReq), 0x0564 => Ok(PacketType::PakwcSetExp),
0x0565 => Ok(PacketType::PakwcHpReply), 0x0565 => Ok(PacketType::PakwcLevelup),
0x0566 => Ok(PacketType::PakwcSetHpAndMp), 0x0566 => Ok(PacketType::PakcsHpReq),
0x0567 => Ok(PacketType::PakcsStoreTradeReq), 0x0567 => Ok(PacketType::PakwcHpReply),
0x0568 => Ok(PacketType::PakwcStoreTradeReply), 0x0568 => Ok(PacketType::PakwcSetHpAndMp),
0x0569 => Ok(PacketType::PakcsUseItem), 0x0569 => Ok(PacketType::PakcsStoreTradeReq),
0x056A => Ok(PacketType::PakwcUseItem), 0x056A => Ok(PacketType::PakwcStoreTradeReply),
0x056B => Ok(PacketType::PakcsDropItem), 0x056B => Ok(PacketType::PakcsUseItem),
0x056C => Ok(PacketType::PakcsEquipItem), 0x056C => Ok(PacketType::PakwcUseItem),
0x056D => Ok(PacketType::PakwcEquipItem), 0x056D => Ok(PacketType::PakcsDropItem),
0x056E => Ok(PacketType::PakwcDropItem), 0x056E => Ok(PacketType::PakcsEquipItem),
0x056F => Ok(PacketType::PakcsPickupItemReq), 0x056F => Ok(PacketType::PakwcEquipItem),
0x0570 => Ok(PacketType::PakwcPickupItemReply), 0x0570 => Ok(PacketType::PakwcDropItem),
0x0571 => Ok(PacketType::PakcsTeleportReq), 0x0571 => Ok(PacketType::PakcsPickupItemReq),
0x0572 => Ok(PacketType::PakwcTeleportReply), 0x0572 => Ok(PacketType::PakwcPickupItemReply),
0x0573 => Ok(PacketType::PakcsStatAddReq), 0x0573 => Ok(PacketType::PakcsTeleportReq),
0x0574 => Ok(PacketType::PakwcStatAddReply), 0x0574 => Ok(PacketType::PakwcTeleportReply),
0x0575 => Ok(PacketType::PakcsHotbarSetIconReq), 0x0575 => Ok(PacketType::PakcsStatAddReq),
0x0576 => Ok(PacketType::PakwcHotbarSetIconReply), 0x0576 => Ok(PacketType::PakwcStatAddReply),
0x0577 => Ok(PacketType::PakcsEquipProjectile), 0x0577 => Ok(PacketType::PakcsHotbarSetIconReq),
0x0578 => Ok(PacketType::PakwcEquipProjectile), 0x0578 => Ok(PacketType::PakwcHotbarSetIconReply),
0x0579 => Ok(PacketType::PakwcChangeSkin), 0x0579 => Ok(PacketType::PakcsEquipProjectile),
0x057A => Ok(PacketType::PakcsBankListReq), 0x057A => Ok(PacketType::PakwcEquipProjectile),
0x057B => Ok(PacketType::PakwcBankListReply), 0x057B => Ok(PacketType::PakwcChangeSkin),
0x057C => Ok(PacketType::PakcsBankMoveItem), 0x057C => Ok(PacketType::PakcsBankListReq),
0x057D => Ok(PacketType::PakwcBankMoveItem), 0x057D => Ok(PacketType::PakwcBankListReply),
0x057E => Ok(PacketType::PakcsCraftReq), 0x057E => Ok(PacketType::PakcsBankMoveItem),
0x057F => Ok(PacketType::PakwcCraftReply), 0x057F => Ok(PacketType::PakwcBankMoveItem),
0x0580 => Ok(PacketType::PakwcSkillLearn), 0x0580 => Ok(PacketType::PakcsCraftReq),
0x0581 => Ok(PacketType::PakcsSkillLevelReq), 0x0581 => Ok(PacketType::PakwcCraftReply),
0x0582 => Ok(PacketType::PakwcSkillLevelReply), 0x0582 => Ok(PacketType::PakwcSkillLearn),
0x0583 => Ok(PacketType::PakcsSkillCastSelf), 0x0583 => Ok(PacketType::PakcsSkillLevelReq),
0x0584 => Ok(PacketType::PakwcSkillCastSelf), 0x0584 => Ok(PacketType::PakwcSkillLevelReply),
0x0585 => Ok(PacketType::PakcsSkillCastTarget), 0x0585 => Ok(PacketType::PakcsSkillCastSelf),
0x0586 => Ok(PacketType::PakwcSkillCastTarget), 0x0586 => Ok(PacketType::PakwcSkillCastSelf),
0x0587 => Ok(PacketType::PakcsSkillCastPosition), 0x0587 => Ok(PacketType::PakcsSkillCastTarget),
0x0588 => Ok(PacketType::PakwcSkillCastPosition), 0x0588 => Ok(PacketType::PakwcSkillCastTarget),
0x0589 => Ok(PacketType::PakwcSkillEffect), 0x0589 => Ok(PacketType::PakcsSkillCastPosition),
0x058A => Ok(PacketType::PakwcSkillDamage), 0x058A => Ok(PacketType::PakwcSkillCastPosition),
0x058B => Ok(PacketType::PakwcClearStatus), 0x058B => Ok(PacketType::PakwcSkillEffect),
0x058C => Ok(PacketType::PakwcSpeedChanged), 0x058C => Ok(PacketType::PakwcSkillDamage),
0x058D => Ok(PacketType::PakwcSkillFinish), 0x058D => Ok(PacketType::PakwcClearStatus),
0x058E => Ok(PacketType::PakcsAppraisalReq), 0x058E => Ok(PacketType::PakwcSpeedChanged),
0x058F => Ok(PacketType::PakwcAppraisalReply), 0x058F => Ok(PacketType::PakwcSkillFinish),
0x0590 => Ok(PacketType::PakwcSkillStart), 0x0590 => Ok(PacketType::PakcsAppraisalReq),
0x0591 => Ok(PacketType::PakcsCraftEnhanceReq), 0x0591 => Ok(PacketType::PakwcAppraisalReply),
0x0592 => Ok(PacketType::PakwcCraftEnhanceReply), 0x0592 => Ok(PacketType::PakwcSkillStart),
0x0593 => Ok(PacketType::PakwcSkillCancel), 0x0593 => Ok(PacketType::PakcsCraftEnhanceReq),
0x0594 => Ok(PacketType::PakcsWishlistAdd), 0x0594 => Ok(PacketType::PakwcCraftEnhanceReply),
0x0595 => Ok(PacketType::PakcsTrade), 0x0595 => Ok(PacketType::PakwcSkillCancel),
0x0596 => Ok(PacketType::PakwcTrade), 0x0596 => Ok(PacketType::PakcsWishlistAdd),
0x0597 => Ok(PacketType::PakcsTradeItem), 0x0597 => Ok(PacketType::PakcsTrade),
0x0598 => Ok(PacketType::PakwcTradeItem), 0x0598 => Ok(PacketType::PakwcTrade),
0x0599 => Ok(PacketType::PakcsShopOpen), 0x0599 => Ok(PacketType::PakcsTradeItem),
0x059A => Ok(PacketType::PakwcShopOpen), 0x059A => Ok(PacketType::PakwcTradeItem),
0x059B => Ok(PacketType::PakcsShopClose), 0x059B => Ok(PacketType::PakcsShopOpen),
0x059C => Ok(PacketType::PakwcShopClose), 0x059C => Ok(PacketType::PakwcShopOpen),
0x059D => Ok(PacketType::PakcsShopListReq), 0x059D => Ok(PacketType::PakcsShopClose),
0x059E => Ok(PacketType::PakwcShopListReply), 0x059E => Ok(PacketType::PakwcShopClose),
0x059F => Ok(PacketType::PakcsShopBuyReq), 0x059F => Ok(PacketType::PakcsShopListReq),
0x05A0 => Ok(PacketType::PakcsShopSellReq), 0x05A0 => Ok(PacketType::PakwcShopListReply),
0x05A1 => Ok(PacketType::PakcsShopBuysellReply), 0x05A1 => Ok(PacketType::PakcsShopBuyReq),
0x05A2 => Ok(PacketType::PakcsEquipItemRide), 0x05A2 => Ok(PacketType::PakcsShopSellReq),
0x05A3 => Ok(PacketType::PakwcEquipItemRide), 0x05A3 => Ok(PacketType::PakcsShopBuysellReply),
0x05A4 => Ok(PacketType::PakcsRepairUseItem), 0x05A4 => Ok(PacketType::PakcsEquipItemRide),
0x05A5 => Ok(PacketType::PakcsRepairNpc), 0x05A5 => Ok(PacketType::PakwcEquipItemRide),
0x05A6 => Ok(PacketType::PakwcSetItemLife), 0x05A6 => Ok(PacketType::PakcsRepairUseItem),
0x05A7 => Ok(PacketType::PakcsPartyReq), 0x05A7 => Ok(PacketType::PakcsRepairNpc),
0x05A8 => Ok(PacketType::PakwcPartyReq), 0x05A8 => Ok(PacketType::PakwcSetItemLife),
0x05A9 => Ok(PacketType::PakcsPartyReply), 0x05A9 => Ok(PacketType::PakcsPartyReq),
0x05AA => Ok(PacketType::PakwcPartyReply), 0x05AA => Ok(PacketType::PakwcPartyReq),
0x05AB => Ok(PacketType::PakwcPartyMember), 0x05AB => Ok(PacketType::PakcsPartyReply),
0x05AC => Ok(PacketType::PakwcPartyItem), 0x05AC => Ok(PacketType::PakwcPartyReply),
0x05AD => Ok(PacketType::PakwcPartyLevelexp), 0x05AD => Ok(PacketType::PakwcPartyMember),
0x05AE => Ok(PacketType::PakwcPartyMemberUpdate), 0x05AE => Ok(PacketType::PakwcPartyItem),
0x05AF => Ok(PacketType::PakwcEventAdd), 0x05AF => Ok(PacketType::PakwcPartyLevelexp),
0x05B0 => Ok(PacketType::PakcsPartyRule), 0x05B0 => Ok(PacketType::PakwcPartyMemberUpdate),
0x05B1 => Ok(PacketType::PakwcPartyRule), 0x05B1 => Ok(PacketType::PakwcEventAdd),
0x05B2 => Ok(PacketType::PakcsCraftStatus), 0x05B2 => Ok(PacketType::PakcsPartyRule),
0x05B3 => Ok(PacketType::PakwcCraftStatus), 0x05B3 => Ok(PacketType::PakwcPartyRule),
0x05B4 => Ok(PacketType::PakcsBankMoveMoney), 0x05B4 => Ok(PacketType::PakcsCraftStatus),
0x05B5 => Ok(PacketType::PakwcBankMoveMoney), 0x05B5 => Ok(PacketType::PakwcCraftStatus),
0x05B6 => Ok(PacketType::PakwcNpcShow), 0x05B6 => Ok(PacketType::PakcsBankMoveMoney),
0x05B7 => Ok(PacketType::PakwcFairy), 0x05B7 => Ok(PacketType::PakwcBankMoveMoney),
0x05B8 => Ok(PacketType::PakcsRideRequest), 0x05B8 => Ok(PacketType::PakwcNpcShow),
0x05B9 => Ok(PacketType::PakwcRideRequest), 0x05B9 => Ok(PacketType::PakwcFairy),
0x05BA => Ok(PacketType::PakwcBillingMessage), 0x05BA => Ok(PacketType::PakcsRideRequest),
0x05BB => Ok(PacketType::PakwcBillingMessageExt), 0x05BB => Ok(PacketType::PakwcRideRequest),
0x05BC => Ok(PacketType::PakcsClanCommand), 0x05BC => Ok(PacketType::PakwcBillingMessage),
0x05BD => Ok(PacketType::PakccClanCommand), 0x05BD => Ok(PacketType::PakwcBillingMessageExt),
0x05BE => Ok(PacketType::PakcsMessenger), 0x05BE => Ok(PacketType::PakcsClanCommand),
0x05BF => Ok(PacketType::PakccMessenger), 0x05BF => Ok(PacketType::PakccClanCommand),
0x05C0 => Ok(PacketType::PakcsMessengerChat), 0x05C0 => Ok(PacketType::PakcsMessenger),
0x05C1 => Ok(PacketType::PakccMessengerChat), 0x05C1 => Ok(PacketType::PakccMessenger),
0x05C2 => Ok(PacketType::PakcsChatroom), 0x05C2 => Ok(PacketType::PakcsMessengerChat),
0x05C3 => Ok(PacketType::PakccChatroom), 0x05C3 => Ok(PacketType::PakccMessengerChat),
0x05C4 => Ok(PacketType::PakcsChatroomMessage), 0x05C4 => Ok(PacketType::PakcsChatroom),
0x05C5 => Ok(PacketType::PakccChatroomMessage), 0x05C5 => Ok(PacketType::PakccChatroom),
0x05C6 => Ok(PacketType::PakcsMemo), 0x05C6 => Ok(PacketType::PakcsChatroomMessage),
0x05C7 => Ok(PacketType::PakccMemo), 0x05C7 => Ok(PacketType::PakccChatroomMessage),
0x05C8 => Ok(PacketType::PakcsClanIconSet), 0x05C8 => Ok(PacketType::PakcsMemo),
0x05C9 => Ok(PacketType::PakcsClanIconReq), 0x05C9 => Ok(PacketType::PakccMemo),
0x05CA => Ok(PacketType::PakccClanIconReply), 0x05CA => Ok(PacketType::PakcsClanIconSet),
0x05CB => Ok(PacketType::PakcsClanIconTimestamp), 0x05CB => Ok(PacketType::PakcsClanIconReq),
0x05CC => Ok(PacketType::PakccClanIconTimestamp), 0x05CC => Ok(PacketType::PakccClanIconReply),
0x05CD => Ok(PacketType::PakwcRideStateChange), 0x05CD => Ok(PacketType::PakcsClanIconTimestamp),
0x05CE => Ok(PacketType::PawkcCharStateChange), 0x05CE => Ok(PacketType::PakccClanIconTimestamp),
0x05CF => Ok(PacketType::PakcsScreenShotTimeReq), 0x05CF => Ok(PacketType::PakwcRideStateChange),
0x05D0 => Ok(PacketType::PakscScreenShotTimeReply), 0x05D0 => Ok(PacketType::PawkcCharStateChange),
0x05D1 => Ok(PacketType::PakwcUpdateName), 0x05D1 => Ok(PacketType::PakcsScreenShotTimeReq),
0x05D2 => Ok(PacketType::PakssAcceptReply), 0x05D2 => Ok(PacketType::PakscScreenShotTimeReply),
0x05D3 => Ok(PacketType::Epacketmax), 0x05D3 => Ok(PacketType::PakwcUpdateName),
0x05D4 => Ok(PacketType::PakssAcceptReply),
0x05D5 => Ok(PacketType::Epacketmax),
0x6F6D => Ok(PacketType::Stress), 0x6F6D => Ok(PacketType::Stress),
_ => Err(PacketError::UnknownPacket(value)), _ => Err(PacketError::UnknownPacket(value)),
} }

View File

@@ -13,9 +13,9 @@ pub async fn route_packet(stream: &mut TcpStream, packet: Packet, auth_client: A
match packet.packet_type { match packet.packet_type {
PacketType::PakcsAlive => Ok(()), PacketType::PakcsAlive => Ok(()),
PacketType::PakcsAcceptReq => auth::handle_accept_req(stream, packet).await, PacketType::PakcsAcceptReq => auth::handle_accept_req(stream, packet).await,
PacketType::PakcsJoinServerReq => auth::handle_join_server_req(stream, packet).await, PacketType::PakcsJoinServerTokenReq => auth::handle_join_server_req(stream, packet).await,
// Login Stuff // Login Stuff
PacketType::PakcsLoginReq => auth::handle_login_req(stream, packet, auth_client).await, PacketType::PakcsLoginTokenReq => auth::handle_login_req(stream, packet, auth_client).await,
PacketType::PakcsSrvSelectReq => auth::handle_server_select_req(stream, packet).await, PacketType::PakcsSrvSelectReq => auth::handle_server_select_req(stream, packet).await,
PacketType::PakcsChannelListReq => auth::handle_channel_list_req(stream, packet).await, PacketType::PakcsChannelListReq => auth::handle_channel_list_req(stream, packet).await,