Add allowed client version range as a configuration option
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 2.3k
- Forks
- 959
- Avg merge
- 5d 10h
- Merged PRs (30d)
- 2
Description
When running a network that only accepts the latest versions (or at the very least, not the full range of 1.8-1.18), it would be great if there was a configuration option that defined the client versions that are allowed to connect. If you connect with a version not allowed, it would disconnect you with a message showing "This server is only compatible with Minecraft versions 1.17.1-1.18" (or whatever version range you defined). This is already partially possible with a plugin, but it becomes a bit messy if you use modern forwarding because Velocity drops connections from clients older than 1.13 before plugins get a chance to change the message.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading proxy/src/main/java/com/velocitypowered/proxy/connection/client/HandshakeSessionHandler.java, especially the handshake path linked in the issue, and trace how client versions are currently accepted or rejected. Determine where configuration is loaded and where the disconnect message is chosen. Done means configured client version ranges are enforced and rejected clients receive the configured range in the message.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100