From cf9accd5e40b37b54358c0fa083d6ef0e4310275 Mon Sep 17 00:00:00 2001 From: Tnze Date: Wed, 7 Dec 2022 00:36:00 +0800 Subject: [PATCH] fix key pair checking bug --- bot/client.go | 2 +- bot/login.go | 2 +- bot/mcbot.go | 9 ++++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/bot/client.go b/bot/client.go index ae6c3c7..e754702 100644 --- a/bot/client.go +++ b/bot/client.go @@ -11,7 +11,7 @@ import ( type Client struct { Conn *net.Conn Auth Auth - KeyPair user.KeyPairResp + KeyPair *user.KeyPairResp Name string UUID uuid.UUID diff --git a/bot/login.go b/bot/login.go index 5dd67fa..6772544 100644 --- a/bot/login.go +++ b/bot/login.go @@ -47,7 +47,7 @@ func handleEncryptionRequest(c *Client, p pk.Packet) error { // 响应加密请求 // Write Encryption Key Response - p, err = genEncryptionKeyResponse(key, er.PublicKey, er.VerifyToken, &c.KeyPair) + p, err = genEncryptionKeyResponse(key, er.PublicKey, er.VerifyToken, c.KeyPair) if err != nil { return fmt.Errorf("gen encryption key response fail: %v", err) } diff --git a/bot/mcbot.go b/bot/mcbot.go index 2411d40..86d3843 100644 --- a/bot/mcbot.go +++ b/bot/mcbot.go @@ -75,10 +75,13 @@ func (c *Client) join(ctx context.Context, d *mcnet.Dialer, addr string) error { return LoginErr{"handshake", err} } // Login Start - c.KeyPair, err = user.GetOrFetchKeyPair(c.Auth.AsTk) - KeyPair := pk.OptionEncoder[user.KeyPairResp]{ + KeyPairResp, err := user.GetOrFetchKeyPair(c.Auth.AsTk) + if err == nil { + c.KeyPair = &KeyPairResp + } + KeyPair := pk.OptionEncoder[*user.KeyPairResp]{ Has: err == nil, - Val: c.KeyPair, + Val: &KeyPairResp, } c.UUID, err = uuid.Parse(c.Auth.UUID) PlayerUUID := pk.Option[pk.UUID, *pk.UUID]{