Detailed print of unknown messages

This commit is contained in:
ChillerDragon 2024-06-22 13:35:13 +08:00
parent 1cf0184d60
commit 1cb97f07b4

View file

@ -92,6 +92,19 @@ func byteSliceToString(s []byte) string {
return string(s)
}
func (connection *Connection) printUnknownMessage(msg messages7.NetMessage, msgType string) {
fmt.Printf("%s message id=%d\n", msgType, msg.MsgId())
if msg.Header() == nil {
fmt.Println(" header: nil")
} else {
fmt.Printf(" header: %x\n", msg.Header().Pack())
}
fmt.Printf(" payload: %x\n", msg.Pack())
if msg.Header() != nil {
fmt.Printf(" full msg: %x%x\n", msg.Header().Pack(), msg.Pack())
}
}
func (connection *Connection) OnSystemMsg(msg messages7.NetMessage, response *Packet) bool {
// TODO: is this shadow nasty?
switch msg := msg.(type) {
@ -108,8 +121,12 @@ func (connection *Connection) OnSystemMsg(msg messages7.NetMessage, response *Pa
// fmt.Printf("got snap empty tick=%d\n", msg.GameTick)
case *messages7.InputTiming:
// fmt.Printf("timing time left=%d\n", msg.TimeLeft)
case *messages7.Unknown:
// TODO: msg id of unknown messages should not be -1
fmt.Println("TODO: why is the msg id -1???")
connection.printUnknownMessage(msg, "unknown system")
default:
fmt.Printf("unknown system message id=%d payload=%x\n", msg.MsgId(), msg.Pack())
connection.printUnknownMessage(msg, "unhandled system")
return false
}
return true
@ -131,14 +148,18 @@ func (connection *Connection) OnGameMsg(msg messages7.NetMessage, response *Pack
fmt.Println("got ready to enter")
response.Messages = append(response.Messages, &messages7.EnterGame{})
case *messages7.SvMotd:
fmt.Printf("[motd] %s\n", msg.Message)
if msg.Message != "" {
fmt.Printf("[motd] %s\n", msg.Message)
}
case *messages7.SvChat:
connection.OnChatMessage(msg)
case *messages7.SvClientInfo:
connection.Players[msg.ClientId].Info = *msg
fmt.Printf("got client info id=%d name=%s\n", msg.ClientId, msg.Name)
case *messages7.Unknown:
connection.printUnknownMessage(msg, "unknown game")
default:
fmt.Printf("unknown game message id=%d payload=%x\n", msg.MsgId(), msg.Pack())
connection.printUnknownMessage(msg, "unhandled game")
return false
}
return true