diff --git a/subcommands/debug.go b/subcommands/debug.go index 9734819..9fb4a17 100644 --- a/subcommands/debug.go +++ b/subcommands/debug.go @@ -40,6 +40,9 @@ func (c *DebugProxyCMD) Execute(ctx context.Context, f *flag.FlagSet, _ ...inter filters := strings.Split(c.filter, ",") if len(filters) > 0 { for _, v := range filters { + if len(v) == 0 { + continue + } if string(v[0]) == "*" { v = v[1:] } diff --git a/utils/packet_logger.go b/utils/packet_logger.go index dd279b7..0c6f976 100644 --- a/utils/packet_logger.go +++ b/utils/packet_logger.go @@ -39,6 +39,7 @@ var MutedPackets = []string{ "packet.Animate", "packet.NetworkStackLatency", "packet.InventoryTransaction", + "packet.PlaySound", } var ExtraVerbose []string @@ -50,6 +51,13 @@ func PacketLogger(header packet.Header, payload []byte, src, dst net.Addr) { } else { pk = &packet.Unknown{PacketID: header.PacketID} } + + defer func() { + if recoveredErr := recover(); recoveredErr != nil { + logrus.Errorf("%T: %w", pk, recoveredErr.(error)) + } + }() + pk.Unmarshal(protocol.NewReader(bytes.NewBuffer(payload), 0)) pk_name := reflect.TypeOf(pk).String()[1:]