Skip to content

Conversation

@fabaindaiz
Copy link

This pull request refactors the handling of "limbo" servers in the authentication system, switching from a simple list to a Multimap structure keyed by forced host. This enables more flexible server selection and configuration, particularly for multi-host setups. The changes affect configuration, server registration, and various logic checks throughout the codebase.

Configuration and Data Structure Changes:

  • The LIMBO configuration key in ConfigurationKeys.java is changed from a List<String> to a Multimap<String, String>, allowing limbo servers to be mapped to forced hosts. Default values are updated accordingly.
  • The AuthenticServerHandler class now manages limbo servers as a Multimap<String, S> instead of a Collection<S>, and registration uses the forced host as a key. [1] [2]

API and Method Signature Updates:

  • The ServerHandler interface updates getLimboServers() to return a Multimap<String, S>, and registerLimboServer now requires a forcedHost parameter. [1] [2]

Logic Adjustments for Limbo Server Checks:

  • All code that previously checked for limbo servers using .contains(...) now uses .containsValue(...), reflecting the new multimap structure. This affects event handlers and configuration validation across BungeeCord, Velocity, and Paper platform code. [1] [2] [3] [4] [5] [6]

Proxy Data and Server List Serialization:

  • When collecting limbo servers for proxy data, code now streams over getLimboServers().values() instead of the previous collection, ensuring all registered limbo servers are included regardless of forced host. [1] [2] [3]

Server Selection Logic Enhancement:

  • Limbo server selection now considers the player's virtual host, enabling per-host limbo server assignment. If no servers are found for the virtual host, it falls back to the "root" key. [1] [2] [3]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant