PaperMC / PaperMC/Velocity

Add allowed client version range as a configuration option

Open
#602 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

type: feature
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.