summaryrefslogtreecommitdiff
path: root/server/server.go
diff options
context:
space:
mode:
authorraven <citrons@mondecitronne.com>2026-03-22 22:10:59 -0500
committerraven <citrons@mondecitronne.com>2026-03-22 22:10:59 -0500
commit28b3a63da8c038ead4b9b38869322d5f1acdabed (patch)
tree730f82921a5da750d2d06433dc06a6a9dc08ad52 /server/server.go
parent664e6d2d52cd15d91979a8ea10c35fc43d910119 (diff)
reject non-CPE clients
Diffstat (limited to 'server/server.go')
-rw-r--r--server/server.go16
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,