- 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::packets::cli_accept_req::CliAcceptReq;
use crate::packets::cli_channel_list_req::CliChannelListReq;
use crate::packets::cli_join_server_req::CliJoinServerReq;
use crate::packets::cli_login_req::CliLoginReq;
use crate::packets::cli_join_server_token_req::CliJoinServerTokenReq;
use crate::packets::cli_login_token_req::CliLoginTokenReq;
use crate::packets::cli_srv_select_req::CliSrvSelectReq;
use crate::packets::srv_accept_reply::SrvAcceptReply;
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>> {
let request = CliAcceptReq::decode(packet.payload.as_slice());
debug!("{:?}", request);
// We need to do reply to this packet
let data = SrvAcceptReply { result: srv_accept_reply::Result::Accepted, rand_value: 0 };
let response_packet = Packet::new(PacketType::PakssAcceptReply, &data)?;
debug!("{:?}", response_packet);
send_packet(stream, &response_packet).await?;
Ok(())
}
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);
Ok(())
}
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());
let data = CliLoginReq::decode(packet.payload.as_slice())?;
let data = CliLoginTokenReq::decode(packet.payload.as_slice())?;
debug!("{:?}", data);
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);
let mut channel_info: Vec<ChannelInfo> = Vec::new();
let mut id = 0;
let mut id = 1;
for channel in channels {
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) });

View File

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