diff options
| author | raven <citrons@mondecitronne.com> | 2026-03-22 22:10:59 -0500 |
|---|---|---|
| committer | raven <citrons@mondecitronne.com> | 2026-03-22 22:10:59 -0500 |
| commit | 28b3a63da8c038ead4b9b38869322d5f1acdabed (patch) | |
| tree | 730f82921a5da750d2d06433dc06a6a9dc08ad52 /server/server.go | |
| parent | 664e6d2d52cd15d91979a8ea10c35fc43d910119 (diff) | |
reject non-CPE clients
Diffstat (limited to 'server/server.go')
| -rw-r--r-- | server/server.go | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/server/server.go b/server/server.go index 213bd64..a434aee 100644 --- a/server/server.go +++ b/server/server.go @@ -439,18 +439,11 @@ func (cl *client) performHandshake(conn net.Conn, srvInfo ServerInfo) { } switch pid := packet.(type) { case *classic.PlayerId: - if pid.Version != 7 { - cl.disconnect( - "Please join on protocol version 7 (Minecraft Classic 0.30 / "+ - "ClassiCube)", - ) + if pid.Version != 7 || pid.Ext != classic.UseCpe { + cl.disconnect("Please join in a CPE client (i.e. ClassiCube)") + return } cl.username = classic.UnpadString(pid.Username) - if pid.Ext == classic.UseCpe { - if !cl.cpeHandshake(conn, ext) { - return - } - } default: cl.disconnect("Expected handshake") return @@ -459,6 +452,9 @@ func (cl *client) performHandshake(conn net.Conn, srvInfo ServerInfo) { cl.disconnect("Invalid player name") return } + if !cl.cpeHandshake(conn, ext) { + return + } err = classic.WritePacket(conn, &classic.ServerId { Version: 7, |
