From a1870dd2ff90af9cf7908c31493713f5a6707f92 Mon Sep 17 00:00:00 2001 From: Tnze Date: Sat, 3 Dec 2022 18:45:57 +0800 Subject: [PATCH] don't accept the player in offline mode --- chat/sign/sign.go | 4 ++-- examples/daze/daze.go | 2 +- server/login.go | 22 +++++++++++----------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/chat/sign/sign.go b/chat/sign/sign.go index 60d6ddf..d7b15b4 100644 --- a/chat/sign/sign.go +++ b/chat/sign/sign.go @@ -75,7 +75,7 @@ func (m *MessageBody) WriteTo(w io.Writer) (n int64, err error) { pk.Boolean(m.DecoratedMsg != nil), pk.Opt{ Has: m.DecoratedMsg != nil, - Field: m.DecoratedMsg, + Field: pk.ByteArray(m.DecoratedMsg), }, pk.Long(m.Timestamp.UnixMilli()), pk.Long(m.Salt), @@ -209,7 +209,7 @@ func (p *HistoryMessage) ReadFrom(r io.Reader) (n int64, err error) { return n + n2, err } -func (p *HistoryMessage) WriteTo(w io.Writer) (n int64, err error) { +func (p HistoryMessage) WriteTo(w io.Writer) (n int64, err error) { n, err = pk.UUID(p.Sender).WriteTo(w) if err != nil { return diff --git a/examples/daze/daze.go b/examples/daze/daze.go index f5a2324..1efea60 100644 --- a/examples/daze/daze.go +++ b/examples/daze/daze.go @@ -22,7 +22,7 @@ import ( ) var ( - address = flag.String("address", "127.0.0.1", "The server address") + address = flag.String("address", "127.0.0.1:25566", "The server address") name = flag.String("name", "Daze", "The player's name") playerID = flag.String("uuid", "", "The player's UUID") accessToken = flag.String("token", "", "AccessToken") diff --git a/server/login.go b/server/login.go index db4a9bb..a256a62 100644 --- a/server/login.go +++ b/server/login.go @@ -84,19 +84,19 @@ func (d *MojangLoginHandler) AcceptLogin(conn *net.Conn, protocol int32) (name s return } - if hasPubKey { - if !pubKey.Verify() { - err = LoginFailErr{reason: chat.TranslateMsg("multiplayer.disconnect.invalid_public_key_signature")} - return - } - profilePubKey = &pubKey - } else if d.EnforceSecureProfile { - err = LoginFailErr{reason: chat.TranslateMsg("multiplayer.disconnect.missing_public_key")} - return - } - // auth if d.OnlineMode { + if hasPubKey { + if !pubKey.Verify() { + err = LoginFailErr{reason: chat.TranslateMsg("multiplayer.disconnect.invalid_public_key_signature")} + return + } + profilePubKey = &pubKey + } else if d.EnforceSecureProfile { + err = LoginFailErr{reason: chat.TranslateMsg("multiplayer.disconnect.missing_public_key")} + return + } + var resp *auth.Resp // Auth, Encrypt resp, err = auth.Encrypt(conn, name, pubKey.PubKey)