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:
+2
-20
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user