diff --git a/network/mhfpacket/msg_sys_operate_register.go b/network/mhfpacket/msg_sys_operate_register.go index c51a483e3..6978609b1 100644 --- a/network/mhfpacket/msg_sys_operate_register.go +++ b/network/mhfpacket/msg_sys_operate_register.go @@ -25,8 +25,7 @@ func (m *MsgSysOperateRegister) Parse(bf *byteframe.ByteFrame, ctx *clientctx.Cl m.SemaphoreID = bf.ReadUint32() _ = bf.ReadUint16() dataSize := bf.ReadUint16() - m.RawDataPayload = bf.ReadBytes(uint(dataSize) - 1) - _ = bf.ReadBytes(1) // Null terminator + m.RawDataPayload = bf.ReadBytes(uint(dataSize)) return nil } diff --git a/server/channelserver/handlers_register.go b/server/channelserver/handlers_register.go index be423d206..f060b664e 100644 --- a/server/channelserver/handlers_register.go +++ b/server/channelserver/handlers_register.go @@ -3,7 +3,6 @@ package channelserver import ( "erupe-ce/common/byteframe" "erupe-ce/network/mhfpacket" - "go.uber.org/zap" "strings" ) @@ -18,12 +17,12 @@ func handleMsgSysOperateRegister(s *Session, p mhfpacket.MHFPacket) { var raviUpdates []RaviUpdate var raviUpdate RaviUpdate - bf := byteframe.NewByteFrameFromBytes(pkt.RawDataPayload) + // Strip null terminator + bf := byteframe.NewByteFrameFromBytes(pkt.RawDataPayload[:len(pkt.RawDataPayload)-1]) for i := len(pkt.RawDataPayload) / 6; i > 0; i-- { raviUpdate.Op = bf.ReadUint8() raviUpdate.Dest = bf.ReadUint8() raviUpdate.Data = bf.ReadUint32() - s.logger.Debug("RaviOps", zap.Uint8s("Op/Dest", []uint8{raviUpdate.Op, raviUpdate.Dest}), zap.Uint32s("Sema/Data", []uint32{pkt.SemaphoreID, raviUpdate.Data})) raviUpdates = append(raviUpdates, raviUpdate) } bf = byteframe.NewByteFrame()