GeyserMC / Geyser

A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock Edition.
https://geysermc.org
MIT License
4.75k stars 686 forks source link

Switch config system to Configurate #5010

Open Camotoy opened 2 months ago

Camotoy commented 2 months ago

The primary goal of this PR is to facilitate config changes required for the Floodgate merge, while also allowing for automatic config file generation and updates, as well as customizing configs depending on the features available to a platform.

We have also decided to remove usage of the Jackson library within Geyser. While it has its benefits over Gson, ultimately all platforms have Gson access (and our libraries utilize Gson alongside that) and Jackson is a hefty dependency to shade within Geyser.

User-facing changes

The config file is split into two files - config.yml and config-advanced.yml (name subject to change to something that will always place it below config.yml alphabetically). The primary config will consist of values that a typical user needs to change for a typical setup or other basic config values. The advanced config will consist of values that we don't want most users to change, while still being accessible to tech-savvy users. The ultimate goal is to keep setup super-simple while still allowing Geyser to be customizable.

Metrics config options are now moved to platform global configs, if they currently exist.