strom: consolidate identical handlers to single v1_8-based versions

For types identical across all versions (Compress, Disconnect, Status,
Pong), use a single handler at v1_8 registered to 26.2 instead of
per-version duplicates. For types that differ (Encrypt has extra
ShouldAuthenticate field in newer versions, Success has different
Uuid type), keep dual-range registrations.
This commit is contained in:
Admin Else
2026-08-04 22:31:06 +02:00
parent 1001c809e5
commit f645f3d78d
2 changed files with 20 additions and 46 deletions
+2 -20
View File
@@ -20,7 +20,7 @@ type StatusClient struct {
DoPingRoundTripTime bool
}
func (s *StatusClient) OnStatus(p *v1_21_8.StatusToClientPacketServerInfo) (err error) {
func (s *StatusClient) OnStatus(p *v1_8.StatusToClientPacketServerInfo) (err error) {
s.Status = p.Response
s.PingSendTime = time.Now()
if s.DoPingRoundTripTime {
@@ -31,24 +31,7 @@ func (s *StatusClient) OnStatus(p *v1_21_8.StatusToClientPacketServerInfo) (err
return
}
func (s *StatusClient) OnPong(p *v1_21_8.StatusToClientPacketPing) (err error) {
s.PingReceiveTime = time.Now()
err = event.HandlerDoneErr{}
return
}
func (s *StatusClient) OnStatusV1_8(p *v1_8.StatusToClientPacketServerInfo) (err error) {
s.Status = p.Response
s.PingSendTime = time.Now()
if s.DoPingRoundTripTime {
err = s.Send(&v1_21_8.StatusToServerPacketPing{Time: s.PingSendTime.UnixMilli()})
} else {
err = event.HandlerDoneErr{}
}
return
}
func (s *StatusClient) OnPongV1_8(p *v1_8.StatusToClientPacketPing) (err error) {
func (s *StatusClient) OnPong(p *v1_8.StatusToClientPacketPing) (err error) {
s.PingReceiveTime = time.Now()
err = event.HandlerDoneErr{}
return
@@ -76,7 +59,6 @@ func StatusRawWithVersion(ctx context.Context, addr, version string) (s *StatusC
Conn: c,
}
s.RegisterUntil("26.2", s.OnStatus, s.OnPong)
s.RegisterUntil("1.12.2", s.OnStatusV1_8, s.OnPongV1_8)
p, err := MakeHandshakePacketAddr(s.Conn, proto_base.Status, addr)
if err != nil {