From 1b74b6496e7f06884f3050e74e6996bfa1731ad9 Mon Sep 17 00:00:00 2001 From: Andrew Gutekanst Date: Thu, 23 Jan 2020 21:06:25 -0500 Subject: [PATCH] Implement MsgSysGetUserBinary name stub --- network/mhfpacket/msg_sys_get_user_binary.go | 13 ++++++++++--- server/channelserver/handlers.go | 9 +++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/network/mhfpacket/msg_sys_get_user_binary.go b/network/mhfpacket/msg_sys_get_user_binary.go index 5db54bba4..27c279d3c 100644 --- a/network/mhfpacket/msg_sys_get_user_binary.go +++ b/network/mhfpacket/msg_sys_get_user_binary.go @@ -6,7 +6,11 @@ import ( ) // MsgSysGetUserBinary represents the MSG_SYS_GET_USER_BINARY -type MsgSysGetUserBinary struct{} +type MsgSysGetUserBinary struct { + AckHandle uint32 + CharID uint32 + BinaryType uint8 +} // Opcode returns the ID associated with this packet type. func (m *MsgSysGetUserBinary) Opcode() network.PacketID { @@ -15,10 +19,13 @@ func (m *MsgSysGetUserBinary) Opcode() network.PacketID { // Parse parses the packet from binary func (m *MsgSysGetUserBinary) Parse(bf *byteframe.ByteFrame) error { - panic("Not implemented") + m.AckHandle = bf.ReadUint32() + m.CharID = bf.ReadUint32() + m.BinaryType = bf.ReadUint8() + return nil } // Build builds a binary packet from the current data. func (m *MsgSysGetUserBinary) Build(bf *byteframe.ByteFrame) error { panic("Not implemented") -} \ No newline at end of file +} diff --git a/server/channelserver/handlers.go b/server/channelserver/handlers.go index 9bd0fe893..a79cff94e 100644 --- a/server/channelserver/handlers.go +++ b/server/channelserver/handlers.go @@ -562,7 +562,16 @@ func handleMsgSysSetUserBinary(s *Session, p mhfpacket.MHFPacket) { } func handleMsgSysGetUserBinary(s *Session, p mhfpacket.MHFPacket) { + pkt := p.(*mhfpacket.MsgSysGetUserBinary) + + resp := bf.NewByteFrame() + if pkt.BinaryType == 1 { + // Stub name response with character ID + resp.WriteBytes([]byte(fmt.Sprintf("CID%d", s.charID))) + resp.WriteUint8(0) // NULL terminator. + } + doSizedAckResp(s, pkt.AckHandle, resp.Data()) } func handleMsgSysNotifyUserBinary(s *Session, p mhfpacket.MHFPacket) {}