Skip to content

v1.6.0 — twelve Minecraft versions, and the firewall finds your server

Choose a tag to compare

@CaYatur CaYatur released this 25 Aug 13:17
· 20 commits to master since this release

Every Minecraft version from 1.20.2 onward now works with CaYaDev-Check, and the firewall works out what your own server is.

Version coverage went from one to twelve

1.5.0 shipped tables for 1.21–1.21.11. This adds 1.20.2, 1.20.3/1.20.4, 1.20.5/1.20.6 and one future release — protocols 764 through 775.

Mojang's data generator only emits packet IDs from 1.21 onwards, so the older ones come from minecraft-data. That is a second-hand source, and this project does not accept packet IDs it did not generate — so it is not simply trusted. The script first reproduces every Mojang-generated table from minecraft-data and refuses to go further unless all of them match exactly. They did, on all six versions where both sources exist.

What about 1.8, 1.16.5, ViaVersion?

They connect and play, and always could. The firewall relays a connection it cannot inspect rather than refusing it — a client on 1.8 coming through ViaVersion joins normally.

What those clients cannot do is be held for a password: reading their chat needs packet tables, and below 1.20.2 Minecraft had no Configuration protocol state and no clientbound system-chat packet, so a held player could not even be told why. That is a structural limit, not a missing lookup table.

For names you actually care about, lock them to a Microsoft account instead — that works on every version, because it happens during login rather than in chat.

The firewall finds your server and tells you what applies

The Security check now reports your server's version and whether ViaVersion or ViaBackwards is installed — the thing that most changes what the login system can do for you, and the thing nobody thinks to mention.

Reading the listening process's command line was the obvious approach and it does not work: the ordinary way to start a server is java -jar paper.jar from inside its own folder, which names no directory, and a Java process's own image path points at the JVM. So it uses the port as the fingerprint instead — every server has a server.properties saying which port it listens on, so the folder whose server.properties matches your backend port is your server, wherever it lives.

Downloads

File Use it if
MinecraftFirewall-1.6.0-setup.exe You want it installed properly. Start here.
MinecraftFirewall-v1.6.0-win-x64.zip You would rather unzip it somewhere and run it yourself.

Everything from v1.5.0 is included, including the anomaly-model actions.

503 automated tests pass. Backend detection verified against a real Paper server: found by port alone, version read correctly.