4cd3b6869729484887b4fa58b7a6c3b007710a10
* Fix 1.20.2+ clients disconnecting when updating boss bars On 1.20.2, the Minecraft client started clearing boss bars after the login packet, which meant that the ProxyServer#showBossbar API would result in the player getting kicked if the boss bar they were previously shown was updated after switching servers. Therefore, I have added BossBarManager which drops boss bar packets once the client enters the configure phase to ensure that they do not disconnect, and then re-adds the boss bar once the client enters the login phase. This ensures that clients do not receive boss bar updates for boss bars that they don't exist and causing them to disconnect. I have also taken care to ensure that this logic only applies on 1.20.2 and up, as it is not necessary for older clients. --------- Co-authored-by: Adrian Gonzales <adriangonzalesval@gmail.com>
Velocity
A Minecraft server proxy with unparalleled server support, scalability, and flexibility.
Velocity is licensed under the GPLv3 license.
Goals
- A codebase that is easy to dive into and consistently follows best practices for Java projects as much as reasonably possible.
- High performance: handle thousands of players on one proxy.
- A new, refreshing API built from the ground up to be flexible and powerful whilst avoiding design mistakes and suboptimal designs from other proxies.
- First-class support for Paper, Sponge, Fabric and Forge. (Other implementations may work, but we make every endeavor to support these server implementations specifically.)
Building
Velocity is built with Gradle. We recommend using the
wrapper script (./gradlew) as our CI builds using it.
It is sufficient to run ./gradlew build to run the full build cycle.
Running
Once you've built Velocity, you can copy and run the -all JAR from
proxy/build/libs. Velocity will generate a default configuration file
and you can configure it from there.
Alternatively, you can get the proxy JAR from the downloads page.
Languages
Java
99.3%
C
0.4%
Shell
0.2%