So I just want to use this thread to shoot around some ideas about how to mitigate players using world download to get the worlds of servers they join. I have not began testing or developing anything at all so this is really just a brainstorm about how to even tackle this problem (if it can be tackled to any meaningful degree).
Some background is that a number of my players have recently been using “mircokroon’s” minecraft world downloader (the source code is actually on GitHub funnily enough: GitHub - mircokroon/minecraft-world-downloader: Download Minecraft worlds, extend server's render distance. 1.12.2 - 1.20.1).
Unfortunately, I was thinking about looking at events like the ChannelRegistrationEvent and maybe doing getChannel()
to see if it equaled any world-downloader related strings (ChannelRegistrationEvent (SpongeAPI 7.4.0 API)). But judging by the way this specific world downloader works, it is actually not really a “client mod” but a proxy that sits in-between the client and the server and intercepts chunk data. So my assumption is that this method won’t work.
Some further ideas I have been thinking about:
-
What if there is a way to prevent chunk data being sent to the client? But then I imagine players will just be playing in an empty void which is obviously just not a solution.
-
What if we limit the chunk data that is sent to players - and in particular perhaps limiting the “block packets(?)” and limiting these packets to only the blocks that the player can actually see. But that does not really solve the problem as all the good builds are above ground and viewable.
-
Somehow detecting the “proxy” architecture that mircokroon’s world downloader depends on. I don’t really know how that would be done and frankly it wouldn’t prevent other world downloaders if they operate without that architecture anyway.
I have a feeling this might all be an impossible task and the best I can hope for is to prevent it to the best of my ability but not outright stop it from happening.