Go to file
Andrew Steinborn 1661cece2d
An Easter basket bearing gifts! (#191)
* Delay switch to new server until after JoinGame is sent.

Unfortunately, in some cases (especially vanilla Minecraft) some login
disconnects are sent after ServerLoginSuccess but before JoinGame.
We've been using ServerLoginSuccess but it has caused too many problems.
Now Velocity will switch to a stripped-down version of the play session
handler until JoinGame is received. This handler does very little by
itself: it simply forwards plugin messages (for Forge) and waits for the
JoinGame packet from the server.

This is an initial version: only vanilla Minecraft 1.12.2 was tested.
However this is the way Waterfall without entity rewriting does server
switches (which, in turn, is inherited from BungeeCord).

* Move to Gradle 5 and Error Prone.
2019-04-24 14:36:49 -04:00
api An Easter basket bearing gifts! (#191) 2019-04-24 14:36:49 -04:00
config/checkstyle Reformat with Google code style and enforce Checkstyle. 2018-10-27 23:45:36 -04:00
gradle An Easter basket bearing gifts! (#191) 2019-04-24 14:36:49 -04:00
native An Easter basket bearing gifts! (#191) 2019-04-24 14:36:49 -04:00
proxy An Easter basket bearing gifts! (#191) 2019-04-24 14:36:49 -04:00
.gitignore Ignore all out/ directories from IntelliJ. 2018-10-26 16:11:03 -04:00
.travis.yml Gradle doesn't like JDK 11 2019-01-12 11:02:24 -05:00
build.gradle Update Netty to 4.1.35.Final 2019-04-21 03:37:29 -04:00
CONTRIBUTING.md Update CONTRIBUTING.md since we now enforce Checkstyle. 2018-12-30 03:31:32 -05:00
gradlew Initial commit. Very broken and only does Server List Ping! 2018-07-24 14:08:55 -04:00
gradlew.bat Initial commit. Very broken and only does Server List Ping! 2018-07-24 14:08:55 -04:00
Jenkinsfile Disallow all concurrent builds. 2018-12-07 17:25:04 -05:00
LICENSE MIT license 2018-07-24 14:14:52 -04:00
README.md Update README.md 2019-04-13 22:34:06 -04:00
settings.gradle An Easter basket bearing gifts! (#191) 2019-04-24 14:36:49 -04:00

Velocity

Build Status Join our Discord

A Minecraft server proxy with unparalleled server support, scalability, and flexibility.

Velocity is licensed under the MIT license for ultimate permissiveness and expanding the pool of potential contributors and users.

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, 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.

Status

Velocity is currently in beta. Production networks are successfully running Velocity with many hundreds of concurrent players online, but your mileage may vary.

Velocity supports Minecraft 1.8-1.13.2. Velocity is best supported with Paper and SpongeVanilla. Minecraft Forge is fully supported but mod compatibility may vary. Generally, Velocity will support many mods better than BungeeCord or Waterfall do but compatibility can not always be ensured.