MaxWasUnavailable / LobbyCompatibility

Towards a future with fewer lobby incompatibility errors.
GNU Lesser General Public License v3.0
5 stars 3 forks source link

Change "Unknown" lobby behaviour to be more compatible #32

Closed legoandmars closed 7 months ago

legoandmars commented 8 months ago

Currently, lobbies are marked as Unknown when:

This is the theoretically most correct way to do it - if you have an Everyone mod installed, it technically shouldn't be compatible with an unknown lobby.

However, it is very likely some people will be running exactly the same mod setups (some with LobbyCompatibility, some without) in the following situations:

At least for now, we should allow people to join Unknown lobbies to avoid any compatibility issues. Later on, this can likely be changed once we have a large amount of mods using LC.

The following need to be done: 1) Update LobbyDiff to ALWAYS label lobbies without LC as unknown, regardless of the client's mods. This is how it was done in one of my previous PRs, but any way to check "the server returned null for LC mods" would suffice.

        if (PluginDiffs.Count == 0)
        {
            _cachedResult = LobbyDiffResult.Unknown;
            return LobbyDiffResult.Unknown;
        }

        if (PluginDiffs.All(pluginDiff => pluginDiff.RequiredVersion == null))
        {
            _cachedResult = LobbyDiffResult.Unknown;
            return LobbyDiffResult.Unknown;
        }

2) The join block patches need to be edited to allow you to join Unknown lobbies.

Not strictly required, but would be nice UI to have:

legoandmars commented 8 months ago

related: unknown mods should always show version - right now if a server has an unknown mod, it's impossible to see version