Wire up the Configurate ObjectMapper path for the new velocity.yml format:
- Make VelocityConfiguration ObjectMapper-friendly: no-arg constructor,
non-final nested fields, transient on non-config fields (forwardingSecret,
motdAsComponent, favicon), and drop the dead gson @Expose annotations.
- Annotate Advanced/Query/Metrics @ConfigSerializable and add @Setting for the
keys the lower-case-dashed naming scheme can't derive (kick-existing-players,
packet-limiter, haproxy-protocol, accepts-transfers, query enabled/port/map).
- Add ConfigurationLoader with a LOWER_CASE_DASHED ObjectMapper factory, a YAML
loader builder, load/save helpers, and custom TypeSerializers for the dynamic
sections that don't fit object mapping: Servers (entries + try), ForcedHosts,
and PacketLimiterConfig (renamed keys).
- Add ConfigurationLoaderTest: loads the bundled default, and round-trips a
config with non-default values for every renamed/custom-mapped key so a wrong
mapping can't silently fall back to an identical default.
Part of the velocity.toml -> velocity.yml Configurate migration.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1:1 YAML port of default-velocity.toml with all documentation comments
preserved verbatim. config-version becomes an integer (baseline 1) for
Configurate's versioned transformation system; the `try` list nests under
`servers` to mirror the legacy [servers] table.
Part of the velocity.toml -> velocity.yml Configurate migration.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The 26.2 login success session ID is purely a metrics identifier. Mint
one shared UUID per proxy, regenerated when the proxy empties, mirroring
the vanilla server, instead of a random UUID per connection.
Older versions of the game, and creative mode, send itemstacks to the server
when dealing with itemstacks, annoying, the compression algo used is good at
backreferencing, which means that compressed data can balloon pretty well.
64 should more than cover most cases of legit data, we could probably be more
harsh here, but this is likely a fine balance between avoiding bombs and not
erring out on legit data.
* Add max length to more config phase packets
* Ensure all packets during non-play state are known
* Limit maximum size of play inbound packet queue
Co-authored-by: Dwarslooper <dwarslooper2910@gmx.de>
* Fix checkstyle
---------
Co-authored-by: Dwarslooper <dwarslooper2910@gmx.de>
* Implement MiniMessage Velocity translations
* Implemented migration from old language format
* Updated year in default translations
* Fixed compilation
* Use MiniMessageTranslationStore
* Simplify MiniMessageTranslationsMigration#shouldMigrate
* Added support to named placeholders
* Updated translation arguments to MiniMessage translation placeholders