mirror of
https://github.com/PaperMC/Velocity.git
synced 2026-06-21 09:47:44 +02:00
64e603c7e0f95216a58a1ffae10e2db6c1e96350
Implement the runtime entry point for the YAML config: - ConfigurationLoader.loadConfiguration() resolves velocity.yml, migrating a legacy velocity.toml or writing the documented default on first start. Absent keys fall back to the model's field defaults (matching the old getOrElse behaviour), so existing files are never rewritten and their comments survive. - Migration runs the legacy night-config migrations to normalise the TOML, then writes it as YAML stamped config-version=1, preserving a custom forwarding-secret-file location, and archives the old file as velocity.toml.migrated. - Forwarding secret resolution mirrors the legacy path (env var, then the forwarding-secret-file, creating it if absent) and is injected via a new package-private setter; the secret stays out of velocity.yml. Not yet wired into VelocityServer; that follows in the next change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.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.
Localisation
Translations are handled using Crowdin. If you want to translate a language not available on Crowdin, you might want to ask in the Discord about it.
Languages
Java
99.3%
C
0.4%
Shell
0.2%