fix key pair checking bug

This commit is contained in:
Tnze
2022-12-07 00:36:00 +08:00
parent 941fa0297c
commit cf9accd5e4
3 changed files with 8 additions and 5 deletions

View File

@ -11,7 +11,7 @@ import (
type Client struct {
Conn *net.Conn
Auth Auth
KeyPair user.KeyPairResp
KeyPair *user.KeyPairResp
Name string
UUID uuid.UUID

View File

@ -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)
}

View File

@ -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]{