PluginBugs / Issues-ItemsAdder

Repository used to keep track of issues of my plugin ItemsAdder
https://itemsadder.devs.beer
51 stars 21 forks source link

Warn if ViaVersion is installed and user joins with different game version than the server #3683

Open LoneDev6 opened 3 months ago

LoneDev6 commented 3 months ago

Warn if ViaVersion is installed and user joins with different game version than the server.

Why?

ViaVersion is a cancer if used incorrectly. The purpose of ViaVersion was to be able to allow clients to connect to a multi-version lobby where players can decide which server they want to join.

Each server has its own version, for example, survival is 1.20.5 and PVP is 1.8. This allows people to connect to the same lobby server which is the main hub of the server community.

Server admins abuse this power to allow players to play on survival servers by joining via 1.8, 1.9, 1.13, 1.18, 1.20 on 1.20.x servers. This causes multiple incompatibilities, instabilities, bugs, glitches to happen. The reason for this to happen is because clients (and servers) had A TON of changes between their versions, most of them are crucial.

Expecting a flawless gameplay is impossible because of how many changes were introduced between versions.

A clear example of a successful server which allows only one version to join is OriginRealms which is one of the most customized Minecraft multiplayer survival experience, no one can tell the opposite.

I don't see any reason to continue this nonsense of expecting gameplay to be stable while allowing ancient versions of the game to join your server, or worse, keep an old version of the server and allow new client versions to join.

ItemsAdder has tons of hacks coded to check client version and server version and then enable some special fixes to avoid crashes/glitches (let's say) on 1.18 clients joining 1.20 servers. I want to stop having to maintain this kind of tricks which are unstable and introduce nothing but stress to both me and the customer.

So please, consider to stop allowing multiple versions to join your survival/gamemode server.

Andre601 commented 3 months ago

A few corrections for the sake of clarity:

LoneDev6 commented 3 months ago

I don't want new clients to join old server too since Mojang does some changes which messes up with stuff. For example 1.20.2 clients joining 1.20.1 servers will have issues seeing some entities due to the ride offset being different, in my case CosmeticsCore had issues I had to deal with with some per-version implementations (checking both server and client).

dinobossytnew commented 2 months ago

I think it's perfect and reasonable. As you correctly say, ViaVersion is not for creating multi-version modalities but for the lobbies that everyone joins after passing through the proxy to the lobby and choosing their modality according to the different versions of each modality. It is true, and very much so, that I used to do what you say: I used ViaVersion incorrectly until after learning and learning more, I understood that everything has a limit.