GithubHelp home page GithubHelp logo

mircokroon / minecraft-world-downloader Goto Github PK

View Code? Open in Web Editor NEW
1.1K 32.0 78.0 1.58 MB

Download Minecraft worlds, extend server's render distance. 1.12.2 - 1.20.4

License: GNU General Public License v3.0

Java 99.51% CSS 0.49%
minecraft gui cross-platform

minecraft-world-downloader's Introduction

minecraft-world-downloader

A Minecraft world downloader that works as a proxy server between the client and the server to read & save chunk data. Download multiplayer worlds by connecting to them and walking around. Chunks can be sent back to the client to extend the render distance.

Downloads

Windows launcher: world-downloader-launcher.exe

Latest cross-platform jar (command-line support): world-downloader.jar

Basic usage

Download the latest release and run it. Enter the server address in the address field and press start.

Instead of connecting to the server itself, connect to localhost in Minecraft to start downloading the world.

If you run into any problems, check the FAQ page for some common issues.

  • Requires no client modifications and as such works with every game client, vanilla or not
  • Automatically merge into previous downloads or existing worlds
  • Save chests and other inventories by opening them
  • Extend the client's render distance by sending chunks downloaded previously back to the client
  • Overview map of chunks that have been saved:

Requirements

  • Java 17 or higher
  • Minecraft version 1.12.2+ // 1.13.2+ // 1.14.1+ // 1.15.2+ // 1.16.2+ // 1.17+ // 1.18+ // 1.19.3+ // 1.20+

Command-line

Download the cross-platform world-downloader.jar and run it using the command-line:

java -jar world-downloader.jar

Arguments can be specified to change the behaviour of the downloader. Running with --help shows all the available commands.

java -jar world-downloader.jar --help

The GUI can be disabled by including the --no-gui option, and specifying the server address:

java -jar world-downloader.jar --no-gui -s address.to.server.com

Running on Linux

To easily download the latest release using the terminal, the following commands can be used:

wget https://github.com/mircokroon/minecraft-world-downloader/releases/latest/download/world-downloader.jar
java -jar world-downloader.jar -s address.to.server.com

When running headless Java, the GUI should be disabled by including the GUI option:

java -jar world-downloader.jar -s address.to.server.com --no-gui

Some linux distributions may require -Djdk.gtk.version=2 for the GUI to work:

java -Djdk.gtk.version=2 -jar world-downloader.jar

Building from source

Dependencies on linux

debian/ubuntu

sudo apt-get install default-jdk maven

arch/manjaro

sudo pacman -S --needed jdk-openjdk maven
Build project to executable jar file

Building the project manually can be done using Maven:

git clone https://github.com/mircokroon/minecraft-world-downloader
cd minecraft-world-downloader
mvn package
java -jar ./target/world-downloader.jar -s address.to.server.com

Contact

Contact information

For problems, bugs, feature requests and questions about how to use the application, please open an issue or discussion on GitHub.

For other inquiries, email: [email protected]

If you want to support this project, you can donate through GitHub

minecraft-world-downloader's People

Contributors

agileghost avatar akemin-dayo avatar chillerdragon avatar chriscn avatar dependabot[bot] avatar esper89 avatar jorelali avatar julienraptor01 avatar maxsupermanhd avatar mircokroon avatar mygizli04 avatar netlightdev avatar nnnlog avatar ravendwyr avatar steve6472 avatar zomabies avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

minecraft-world-downloader's Issues

1.16.2 - Chunk could not be parsed, VarInt lacks bytes! We may be out of sync now

I've been trying to connect to a 1.16.2 server, nothing special about it, works fine with vanilla client, works fine through the bridge but the downloading fails and I am getting the following error:

Login success: XXXXXXXXXXXXXXX logged in with uuid abcd1234abcd1234abcd1234abcd1234abcd1234 Using protocol of game version 1.16.0 (751) java.lang.ArrayIndexOutOfBoundsException: arraycopy: last source index 9 out of bounds for byte[6] at java.base/java.lang.System.arraycopy(Native Method) at packets.DataTypeProvider.readByteArray(DataTypeProvider.java:79) at packets.DataTypeProvider.readInt(DataTypeProvider.java:69) at packets.builder.ClientBoundGamePacketBuilder.lambda$new$6(ClientBoundGamePacketBuilder.java:77) at packets.builder.PacketBuilder.build(PacketBuilder.java:46) at packets.DataReader.readPackets(DataReader.java:161) at packets.DataReader.pushData(DataReader.java:116) at proxy.ProxyServer.lambda$run$7(ProxyServer.java:113) at proxy.ProxyServer.attempt(ProxyServer.java:138) at proxy.ProxyServer.lambda$run$9(ProxyServer.java:110) at proxy.ProxyServer.attempt(ProxyServer.java:138) at proxy.ProxyServer.run(ProxyServer.java:68) java.lang.ArrayIndexOutOfBoundsException: arraycopy: last source index 9 out of bounds for byte[6] at java.base/java.lang.System.arraycopy(Native Method) at packets.DataTypeProvider.readByteArray(DataTypeProvider.java:79) at packets.DataTypeProvider.readInt(DataTypeProvider.java:69) at packets.builder.ClientBoundGamePacketBuilder.lambda$new$6(ClientBoundGamePacketBuilder.java:77) at packets.builder.PacketBuilder.build(PacketBuilder.java:46) at packets.DataReader.readPackets(DataReader.java:161) at packets.DataReader.pushData(DataReader.java:116) at proxy.ProxyServer.lambda$run$7(ProxyServer.java:113) at proxy.ProxyServer.attempt(ProxyServer.java:138) at proxy.ProxyServer.lambda$run$9(ProxyServer.java:110) at proxy.ProxyServer.attempt(ProxyServer.java:138) at proxy.ProxyServer.run(ProxyServer.java:68) java.lang.ArrayIndexOutOfBoundsException: Index 18 out of bounds for length 18 at packets.DataTypeProvider.readNext(DataTypeProvider.java:65) at game.data.chunk.Chunk.readChunkColumn(Chunk.java:129) at game.data.chunk.Chunk.parse(Chunk.java:269) at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:204) at game.data.chunk.ChunkFactory.run(ChunkFactory.java:154) Chunk could not be parsed! java.lang.ArrayIndexOutOfBoundsException: Index 18 out of bounds for length 18 at packets.DataTypeProvider.readNext(DataTypeProvider.java:65) at game.data.chunk.Chunk.readChunkColumn(Chunk.java:129) at game.data.chunk.Chunk.parse(Chunk.java:269) at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:204) at game.data.chunk.ChunkFactory.run(ChunkFactory.java:154) Chunk could not be parsed! java.lang.RuntimeException: VarInt lacks bytes! We may be out of sync now. at packets.DataReader.readVarInt(DataReader.java:68) at packets.DataTypeProvider.readVarInt(DataTypeProvider.java:100) at game.data.chunk.palette.Palette.readPalette(Palette.java:69) at game.data.chunk.Chunk.readChunkColumn(Chunk.java:131) at game.data.chunk.Chunk.parse(Chunk.java:269) at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:204) at game.data.chunk.ChunkFactory.run(ChunkFactory.java:154) Chunk could not be parsed!

is 1.16.2 supported?

whenever I use it it gives this error multiple times, I am assuming this might be because I either did something wrong or 1.16.2 isn't supported yet.
java.lang.ArrayIndexOutOfBoundsException
at java.base/java.lang.System.arraycopy(Native Method)
at packets.DataTypeProvider.readByteArray(DataTypeProvider.java:79)
at packets.DataTypeProvider.readInt(DataTypeProvider.java:69)
at packets.builder.ClientBoundGamePacketBuilder.lambda$new$6(ClientBoundGamePacketBuilder.java:77)
at packets.builder.PacketBuilder.build(PacketBuilder.java:46)
at packets.DataReader.readPackets(DataReader.java:161)
at packets.DataReader.pushData(DataReader.java:116)
at proxy.ProxyServer.lambda$run$7(ProxyServer.java:113)
at proxy.ProxyServer.attempt(ProxyServer.java:138)
at proxy.ProxyServer.lambda$run$9(ProxyServer.java:110)
at proxy.ProxyServer.attempt(ProxyServer.java:138)
at proxy.ProxyServer.run(ProxyServer.java:68)

questions

does this save whats in chests and playerdata? and how often does it save

Failed to connect to server 1.15.2 linux

OS: debian10
Minecraft client: https://github.com/kz6fittycent/mc-installer
Minecraft version: 1.15.2 (server and client are vanilla)

$ java -jar world-downloader.jar --server=zillyhuhn.com --minecraft=/home/$USER/snap/mc-installer/current/.minecraft
Starting proxy for zillyhuhn.com. Make sure to connect to localhost:25565 instead of the regular server address.
Performed handshake with zillyhuhn.com:25565, protocol version 578 :: next state: login
Login by: ZillyHuhn
Client probably disconnected. Waiting for new connection...
WARNING: packet parsing may have been incorrect! Expected length: 261. Used bytes: 0
Server probably disconnected. Waiting for new connection...

[Feature Request] Download item frames and armor stands.

They are heavily used by builders to add details to builds; item frames and custom maps are used for custom paintings, while armor stands can be made to hold items and become invisible to have items as part of the build without being in a block (there's an Armor Stand Book datapack that is used for this).

Horrible Lag after long use, massive level.dat file

After using this project for a few days, it has become practically unusable.
Connecting to the server feels as if under heavy connection lag when connecting via the proxy (It works fine without the proxy).
After checking the saved world, i immediately noticed that the level.dat is over 11mb big - way bigger than normal.
Trying to open it in NBTExplorer does not show more or bigger entries than expected.
Note that i left the Proxy Application running when leaving the server and putting my PC to sleep mode over night, as i wanted to keep the preview of the already loaded world, not sure if this is a part of the problem.
The World File would probably help you fix this - if you need it, please give me a way to contact you privately as i would prefer to not make the world file public.

Add an option to delete all previously downloaded chunks

It would be nice to add an option to delete all previously downloaded chunks, when right clicking in the GUI for example. It could be useful when connecting to a server and then in a second map. That way we can delete everything and download the world we're in now.

Nether & end dimensions

Entering a different dimension will currently lead to parsing errors. They should be handled correctly and saved in different region files than the regular world.

Having Java problems in version 1.16

I'm launching the tool with this command java -jar world-downloader.jar --server ********* --port ****** and when I attach the session with the Minecraft executable nothing appears in the Wold Downloader window. The game runs without problems, but the world folder is empty. Also tried as sudo to avoid permission issues. Minecraft version: 1.16

Thank you in advance

Captura de pantalla 2020-06-27 a las 16 50 36

Can't connect to server but can connect via minecraft

Running it in ubuntu 18 on windows (WSL) gives me the following error. The server is not down or on a different address since I can join it via this IP from minecraft. The world in the server is vanilla 1.16.2

โžœ Downloads java -jar world-downloader.jar -s 192.99.16.106 Exception in thread "AWT-EventQueue-0" java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it. at java.desktop/java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:208) at java.desktop/java.awt.Window.<init>(Window.java:548) at java.desktop/java.awt.Frame.<init>(Frame.java:423) at java.desktop/javax.swing.JFrame.<init>(JFrame.java:224) at gui.GuiManager.createAndShowGUI(GuiManager.java:34) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) Starting proxy for 192.99.16.106. Make sure to connect to localhost:25565 instead of the regular server address. Cannot connect to 192.99.16.106. The server may be down or on a different address.

Forge servers.

When I try to download a forge server, It just connects to fallback.
My MC Version: 1.12.2
localhost Server version: 1.12.2
Global Server: version 1.12.2

Exception in thread "main" java.lang.UnsupportedClassVersionError: Launcher has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0

Here is the error:
Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: Launcher has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

And my current java version:
java version "1.8.0_261" Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

I'm running the latest minecraft launcher on 1.16.1.

I don't know whats wrong.

SSLHandshake Error when using AdoptOpenJDK9

Here's my environment

$ ./java -version
openjdk version "9.0.4"
OpenJDK Runtime Environment (build 9.0.4+11)
OpenJDK 64-Bit Server VM (build 9.0.4+11, mixed mode)

$ uname -a
Linux  5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

I ran the command below:

./java -jar '/$HOME/world-downloader.jar' -s server.ip

It worked properly first,but errors occurred when downloading 'server.jar' from mojang.

Using protocol of game version 1.13.2 (404)
Looks like we have not run in version 1.13.2 before.
Downloading this version's server.jar (https://launcher.mojang.com/v1/objects/3737db93722a9e39eeada7c27e7aca28b144ffa7/server.jar)
Exception in thread "Thread-9" kong.unirest.UnirestException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at kong.unirest.DefaultInterceptor.onFail(DefaultInterceptor.java:43)
	at kong.unirest.apache.ApacheClient.request(ApacheClient.java:133)
	at kong.unirest.BaseRequest.asBytes(BaseRequest.java:217)
	at game.data.RegistryLoader.downloadServerJar(RegistryLoader.java:95)
	at game.data.RegistryLoader.getReportsFromServerJar(RegistryLoader.java:82)
	at game.data.RegistryLoader.<init>(RegistryLoader.java:51)
	at game.Game.loadVersionRegistries(Game.java:164)
	at game.Game.lambda$getGameProtocol$0(Game.java:156)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
 ......
full output here https://paste.ubuntu.com/p/tpvkd442xh/

I have tried to run this on Windows10 with openjdk9, but had the same error.
What's more...The error was only appeard in openjdk9 .When I ran the .jar file in openjdk 11 ,it worked properly without any ssl errors. Could fix it or tell me what happened when using openjdk9?

World downloader crashes when i connect to it

as soon i join the localhost server it crashes with this:

Downloading this version's server.jar (https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar) java.nio.file.NoSuchFileException: cache\server.jar at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108) at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:235) at java.base/java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:478) at java.base/java.nio.file.Files.newOutputStream(Files.java:224) at java.base/java.nio.file.Files.write(Files.java:3491) at game.data.RegistryLoader.downloadServerJar(RegistryLoader.java:98) at game.data.RegistryLoader.getReportsFromServerJar(RegistryLoader.java:82) at game.data.RegistryLoader.<init>(RegistryLoader.java:51) at game.Game.loadVersionRegistries(Game.java:164) at game.Game.lambda$getGameProtocol$0(Game.java:156) at java.base/java.lang.Thread.run(Thread.java:832)

i'm on win10 latest jre and jdk, MC 1.16.1

I have the latest java runtime but it still gives the mismatched version error on run

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Launcher has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

Just gives that error even though I went to the java website and downloaded the latest java version. Am I doing something wrong?

MultiMC support

This is a really cool program! I tried it with MultiMC and since that doesn't have a launcher_profiles.json like the Mojang launcher does, it won't authenticate. A quick workaround would be to just provide a command line override for the auth tokens required.

I have the latest java

java -jar world-downloader.jar -s hypixel.net
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Launcher has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

Please help

Doesnt work

Every time I try to run it it says "A JNI error has occurred, please check your installation and try again" even though I have the latest version of java and tried reinstalling it.

Give previously-downloaded chunks to the client allowing larger render distance

A really cool feature enhancement would be if the client's render distance is larger than the server's view distance, to provide cached chunks to the client so you can see further on multiplayer servers than you might otherwise be able to. Yes these chunks will be out of date, but they're far away and will update when you get closer.

I've got a fast computer and like to play with render-distance = 32 on single player worlds, but often times servers have it set much lower to reduce their cpu/bandwidth costs (I believe 10 is the default).

This would allow me to get the farther view distance without any cost to server operators!

Here's an example that hopefully explains the idea better:
image

Default Gamerules to values that won't modify the world

I think it would be a good idea to let all gamerules of downloaded worlds default to values that minimize change of the world to preserve the state that the world was downloaded in.
This would include

  • random tick speed 0
  • domobspawning false
  • daylightcycle false
  • weathercycle false
  • mobgriefing false

World download

After I've run the program I do not understand where it is supposed to be found.

I've clicked the button to save overview to file, but cant seem to find it.

Everything has gone flawless except the fact that i cant find level.dat.

Any way to download a realm world?

My friend (who is the owner) lost access to his MC account, so we're trying to download the realm world. I found the realm IP and port, but world downloader keeps saying "Cannot connect to . The server may be down or on a different address." and I can't connect to locahost.

Minecraft crashes trying to load the downloaded world

// Uh... Did I do that?

Time: 7/22/20 11:37 PM
Description: Exception ticking world

org.spongepowered.asm.mixin.injection.throwables.InjectionError: LVT in net/minecraft/class_1937::method_18471()V has incompatible changes at opcode 243 in callback net/minecraft/class_1937::onBlockEntityTick.
Expected: [Lnet/minecraft/class_3695;, Ljava/util/Iterator;, Lnet/minecraft/class_2586;]
   Found: [Lnet/minecraft/class_3695;, I, Lnet/minecraft/class_2586;]
	at net.minecraft.class_1937.handler$zcb000$onBlockEntityTick$missing(class_1937.java)
	at net.minecraft.class_1937.method_18471(class_1937.java:583)
	at net.minecraft.class_3218.method_18765(class_3218.java:423)
	at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:873)
	at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:813)
	at net.minecraft.class_1132.method_3748(class_1132.java:93)
	at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:672)
	at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:256)
	at net.minecraft.server.MinecraftServer$$Lambda$4744/928970794.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:745)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Server thread
Stacktrace:
	at net.minecraft.class_1937.handler$zcb000$onBlockEntityTick$missing(class_1937.java)
	at net.minecraft.class_1937.method_18471(class_1937.java:583)
	at net.minecraft.class_3218.method_18765(class_3218.java:423)

-- Affected level --
Details:
	All players: 1 total; [class_3222['DiamondPlayer007'/1005, l='ServerLevel[world]', x=704.00, y=11.00, z=496.43]]
	Chunk stats: ServerChunkCache: 2836
	Level dimension: minecraft:overworld
	Level spawn location: World: (1571,82,-327), Chunk: (at 3,5,9 in 98,-21; contains blocks 1568,0,-336 to 1583,255,-321), Region: (3,-1; contains chunks 96,-32 to 127,-1, blocks 1536,0,-512 to 2047,255,-1)
	Level time: 6997 game time, 6997 day time
	Level name: world
	Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: true
	Level weather: Rain time: 696969 (now: false), thunder time: 696969 (now: false)
	Known server brands: fabric
	Level was modded: true
	Level storage version: 0x04ABD - Anvil
Stacktrace:
	at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:873)
	at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:813)
	at net.minecraft.class_1132.method_3748(class_1132.java:93)
	at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:672)
	at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:256)
	at net.minecraft.server.MinecraftServer$$Lambda$4744/928970794.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:745)

-- System Details --
Details:
	Minecraft Version: 1.16.1
	Minecraft Version ID: 1.16.1
	Operating System: Windows 10 (amd64) version 10.0
	Java Version: 1.8.0_51, Oracle Corporation
	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 3667112936 bytes (3497 MB) / 4115660800 bytes (3925 MB) up to 4115660800 bytes (3925 MB)
	CPUs: 4
	JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xms4G -Xmx4G
	Fabric Mods: 
		cloth-basic-math: Cloth Basic Math 0.5.1
		cloth-config2: Cloth Config v4 4.5.6
		fabric: Fabric API 0.14.1+build.372-1.16
		fabric-api-base: Fabric API Base 0.1.3+12a8474c02
		fabric-biomes-v1: Fabric Biomes (v1) 0.2.7+059ea86602
		fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.4+c6a8ea8902
		fabric-command-api-v1: Fabric Command API (v1) 1.0.8+5ce5339802
		fabric-commands-v0: Fabric Commands (v0) 0.2.0+52d3083602
		fabric-containers-v0: Fabric Containers (v0) 0.1.8+045df74f02
		fabric-content-registries-v0: Fabric Content Registries (v0) 0.1.9+059ea86602
		fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.1.2+b7f9825d02
		fabric-dimensions-v1: fabric-dimensions-v1 1.0.0+a71b305302
		fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.3.3+7066030f02
		fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.0+16acbe5b02
		fabric-item-api-v1: Fabric Item API (v1) 1.0.0+16acbe5b02
		fabric-item-groups-v0: Fabric Item Groups (v0) 0.2.0+438f963602
		fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.0+e16a977402
		fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.0+3fa9f7c502
		fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 1.0.0+b0993bc102
		fabric-loot-tables-v1: Fabric Loot Tables (v1) 0.1.10+059ea86602
		fabric-mining-levels-v0: Fabric Mining Levels (v0) 0.1.2+b764ce9902
		fabric-models-v0: Fabric Models (v0) 0.1.0+dfdb52d602
		fabric-networking-blockentity-v0: Fabric Networking Block Entity (v0) 0.2.5+b50ffc7b02
		fabric-networking-v0: Fabric Networking (v0) 0.1.10+e00ecb5f02
		fabric-object-builder-api-v1: Fabric Object Builder API (v1) 1.5.5+e00ecb5f02
		fabric-object-builders-v0: Fabric Object Builders (v0) 0.6.0+da175ad602
		fabric-particles-v1: fabric-particles-v1 0.2.1+0a6f2a7002
		fabric-registry-sync-v0: Fabric Registry Sync (v0) 0.3.8+7dba2d6c02
		fabric-renderer-api-v1: Fabric Renderer API (v1) 0.2.13+eae12eb802
		fabric-renderer-indigo: Fabric Renderer - Indigo 0.3.2+4d66bed502
		fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 2.0.1+5a0f9a6002
		fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.1.3+b7f9825d02
		fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 0.1.8+b7084faa02
		fabric-rendering-v0: Fabric Rendering (v0) 1.1.0+5341049002
		fabric-rendering-v1: Fabric Rendering (v1) 1.1.2+346247d702
		fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.2.6+f41e209802
		fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.0.1+f362c86e02
		fabric-tag-extensions-v0: Fabric Tag Extensions (v0) 0.2.7+a4c57d8e02
		fabric-textures-v0: Fabric Textures (v0) 1.0.4+eae12eb802
		fabric-tool-attribute-api-v1: Fabric Tool Attribute API (v1) 1.1.4+5794386e02
		fabricloader: Fabric Loader 0.8.9+build.203
		fiber: fiber 0.23.0-1
		lambdynlights: LambDynamicLights 1.2.1+1.16.1
		lithium: Lithium 0.5.1
		minecraft: Minecraft 1.16.1
		modmenu: Mod Menu 1.14.0+build.24
		okzoomer: Ok Zoomer 4.0.0-alpha.4.1.16.1
		phosphor: Phosphor 0.6.0+build.7
		sodium: Sodium 0.1.0
		spruceui: SpruceUI 1.5.8
	Player Count: 1 / 8; [class_3222['DiamondPlayer007'/1005, l='ServerLevel[world]', x=704.00, y=11.00, z=496.43]]
	Data Packs: vanilla, fabric/lambdynlights, fabric/fabric-tool-attribute-api-v1
	Type: Integrated Server (map_client.txt)
	Is Modded: Definitely; Client brand changed to 'fabric'

I'm going to try launching without any mods(these are pretty minimal mods) and see if the error persists.

Handle SRV records

Minecraft servers can use (DNS) SRV records for redirects. E.g. when a user connects to example.com, Minecraft usually checks for SRV records at _minecraft._tcp.example.com. If such a record exists, the URL given there should be connected to instead of the given domain.

Currently these records are ignored by the world downloader.

Minecraft 1.16 support

Unsurprinsingly, the latest release doesn't work with Minecraft 1.16 prerelease servers. Here is an error log.

Successfully authenticated user with Mojang session server.
User identity confirmed with Mojang.
Enabled encryption
Enabled compression
java.lang.ArrayIndexOutOfBoundsException: Index 28 out of bounds for length 28
        at packets.DataTypeProvider.readNext(DataTypeProvider.java:65)
        at packets.DataTypeProvider.readString(DataTypeProvider.java:94)
        at packets.builder.ClientBoundLoginPacketBuilder.lambda$new$2(ClientBoundLoginPacketBuilder.java:33)
        at packets.builder.PacketBuilder.build(PacketBuilder.java:46)
        at packets.DataReader.readPackets(DataReader.java:161)
        at packets.DataReader.pushData(DataReader.java:116)
        at proxy.ProxyServer.lambda$run$7(ProxyServer.java:113)
        at proxy.ProxyServer.attempt(ProxyServer.java:138)
        at proxy.ProxyServer.lambda$run$9(ProxyServer.java:110)
        at proxy.ProxyServer.attempt(ProxyServer.java:138)
        at proxy.ProxyServer.run(ProxyServer.java:68)
java.lang.ArrayIndexOutOfBoundsException: Index 52 out of bounds for length 52
        at packets.DataTypeProvider.readNext(DataTypeProvider.java:65)
        at packets.DataTypeProvider.readString(DataTypeProvider.java:94)
        at packets.builder.ClientBoundLoginPacketBuilder.lambda$new$2(ClientBoundLoginPacketBuilder.java:34)
        at packets.builder.PacketBuilder.build(PacketBuilder.java:46)
        at packets.DataReader.readPackets(DataReader.java:161)
        at packets.DataReader.pushData(DataReader.java:116)
        at proxy.ProxyServer.lambda$run$7(ProxyServer.java:113)
        at proxy.ProxyServer.attempt(ProxyServer.java:138)
        at proxy.ProxyServer.lambda$run$9(ProxyServer.java:110)
        at proxy.ProxyServer.attempt(ProxyServer.java:138)
        at proxy.ProxyServer.run(ProxyServer.java:68)
Login success: [redacted] logged in with uuid [redacted]
Using protocol of game version 1.15.0 (725)
java.lang.ArrayIndexOutOfBoundsException: Index 18 out of bounds for length 18
        at packets.DataTypeProvider.readNext(DataTypeProvider.java:65)
        at packets.DataTypeProvider$1.read(DataTypeProvider.java:166)
        at java.base/java.io.InputStream.read(Unknown Source)
        at java.base/java.io.DataInputStream.readFully(Unknown Source)
        at java.base/java.io.DataInputStream.readUTF(Unknown Source)
        at java.base/java.io.DataInputStream.readUTF(Unknown Source)
        at se.llbit.nbt.StringTag.read(StringTag.java:46)
        at se.llbit.nbt.NamedTag.read(NamedTag.java:58)
        at packets.DataTypeProvider.readNbtTag(DataTypeProvider.java:163)
        at game.data.chunk.version.Chunk_1_14.parseHeightMaps(Chunk_1_14.java:39)
        at game.data.chunk.Chunk.parse(Chunk.java:257)
        at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:178)
        at game.data.chunk.ChunkFactory.run(ChunkFactory.java:128)
java.lang.RuntimeException: VarInt lacks bytes! We may be out of sync now.
        at packets.DataReader.readVarInt(DataReader.java:68)
        at packets.DataTypeProvider.readVarInt(DataTypeProvider.java:100)
        at game.data.chunk.Chunk.parse(Chunk.java:263)
        at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:178)
        at game.data.chunk.ChunkFactory.run(ChunkFactory.java:128)
Chunk could not be parsed!
java.lang.ArrayIndexOutOfBoundsException: Index 18 out of bounds for length 18
        at packets.DataTypeProvider.readNext(DataTypeProvider.java:65)
        at packets.DataTypeProvider$1.read(DataTypeProvider.java:166)
        at java.base/java.io.InputStream.read(Unknown Source)
        at java.base/java.io.DataInputStream.readFully(Unknown Source)
        at java.base/java.io.DataInputStream.readUTF(Unknown Source)
        at java.base/java.io.DataInputStream.readUTF(Unknown Source)
        at se.llbit.nbt.StringTag.read(StringTag.java:46)
        at se.llbit.nbt.NamedTag.read(NamedTag.java:58)
        at packets.DataTypeProvider.readNbtTag(DataTypeProvider.java:163)
        at game.data.chunk.version.Chunk_1_14.parseHeightMaps(Chunk_1_14.java:39)
        at game.data.chunk.Chunk.parse(Chunk.java:257)
        at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:178)
        at game.data.chunk.ChunkFactory.run(ChunkFactory.java:128)
java.lang.RuntimeException: VarInt lacks bytes! We may be out of sync now.
        at packets.DataReader.readVarInt(DataReader.java:68)
        at packets.DataTypeProvider.readVarInt(DataTypeProvider.java:100)
        at game.data.chunk.Chunk.parse(Chunk.java:263)
        at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:178)
        at game.data.chunk.ChunkFactory.run(ChunkFactory.java:128)
Chunk could not be parsed!
java.lang.ArrayIndexOutOfBoundsException: arraycopy: last source index 9 out of bounds for byte[2]
        at java.base/java.lang.System.arraycopy(Native Method)
        at packets.DataTypeProvider.readByteArray(DataTypeProvider.java:79)
        at packets.DataTypeProvider.readDouble(DataTypeProvider.java:184)
        at packets.builder.ServerBoundGamePacketBuilder.lambda$new$0(ServerBoundGamePacketBuilder.java:13)
        at packets.builder.PacketBuilder.build(PacketBuilder.java:46)
        at packets.DataReader.readPackets(DataReader.java:161)
        at packets.DataReader.pushData(DataReader.java:116)
        at proxy.ProxyServer.lambda$run$4(ProxyServer.java:93)
        at proxy.ProxyServer.attempt(ProxyServer.java:138)
        at proxy.ProxyServer.lambda$run$6(ProxyServer.java:90)
        at java.base/java.lang.Thread.run(Unknown Source)
java.lang.ArrayIndexOutOfBoundsException: Index 18 out of bounds for length 18
        at packets.DataTypeProvider.readNext(DataTypeProvider.java:65)
        at packets.DataTypeProvider$1.read(DataTypeProvider.java:166)
        at java.base/java.io.InputStream.read(Unknown Source)
        at java.base/java.io.DataInputStream.readFully(Unknown Source)
        at java.base/java.io.DataInputStream.readUTF(Unknown Source)
        at java.base/java.io.DataInputStream.readUTF(Unknown Source)
        at se.llbit.nbt.StringTag.read(StringTag.java:46)
        at se.llbit.nbt.NamedTag.read(NamedTag.java:58)
        at packets.DataTypeProvider.readNbtTag(DataTypeProvider.java:163)
        at game.data.chunk.version.Chunk_1_14.parseHeightMaps(Chunk_1_14.java:39)
        at game.data.chunk.Chunk.parse(Chunk.java:257)
        at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:178)
        at game.data.chunk.ChunkFactory.run(ChunkFactory.java:128)
java.lang.RuntimeException: VarInt lacks bytes! We may be out of sync now.
        at packets.DataReader.readVarInt(DataReader.java:68)
        at packets.DataTypeProvider.readVarInt(DataTypeProvider.java:100)
        at game.data.chunk.Chunk.parse(Chunk.java:263)
        at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:178)
        at game.data.chunk.ChunkFactory.run(ChunkFactory.java:128)
Chunk could not be parsed!
java.lang.ArrayIndexOutOfBoundsException: Index 18 out of bounds for length 18
        at packets.DataTypeProvider.readNext(DataTypeProvider.java:65)
        at packets.DataTypeProvider$1.read(DataTypeProvider.java:166)
        at java.base/java.io.InputStream.read(Unknown Source)
        at java.base/java.io.DataInputStream.readFully(Unknown Source)
        at java.base/java.io.DataInputStream.readUTF(Unknown Source)
        at java.base/java.io.DataInputStream.readUTF(Unknown Source)
        at se.llbit.nbt.StringTag.read(StringTag.java:46)
        at se.llbit.nbt.NamedTag.read(NamedTag.java:58)
        at packets.DataTypeProvider.readNbtTag(DataTypeProvider.java:163)
        at game.data.chunk.version.Chunk_1_14.parseHeightMaps(Chunk_1_14.java:39)
        at game.data.chunk.Chunk.parse(Chunk.java:257)
        at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:178)
        at game.data.chunk.ChunkFactory.run(ChunkFactory.java:128)
java.lang.RuntimeException: VarInt lacks bytes! We may be out of sync now.
        at packets.DataReader.readVarInt(DataReader.java:68)
        at packets.DataTypeProvider.readVarInt(DataTypeProvider.java:100)
        at game.data.chunk.Chunk.parse(Chunk.java:263)
        at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:178)
        at game.data.chunk.ChunkFactory.run(ChunkFactory.java:128)
Chunk could not be parsed!
java.lang.ArrayIndexOutOfBoundsException: Index 18 out of bounds for length 18
        at packets.DataTypeProvider.readNext(DataTypeProvider.java:65)
        at packets.DataTypeProvider$1.read(DataTypeProvider.java:166)
        at java.base/java.io.InputStream.read(Unknown Source)
        at java.base/java.io.DataInputStream.readFully(Unknown Source)
        at java.base/java.io.DataInputStream.readUTF(Unknown Source)
        at java.base/java.io.DataInputStream.readUTF(Unknown Source)
        at se.llbit.nbt.StringTag.read(StringTag.java:46)
        at se.llbit.nbt.NamedTag.read(NamedTag.java:58)
        at packets.DataTypeProvider.readNbtTag(DataTypeProvider.java:163)
        at game.data.chunk.version.Chunk_1_14.parseHeightMaps(Chunk_1_14.java:39)
        at game.data.chunk.Chunk.parse(Chunk.java:257)
        at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:178)
        at game.data.chunk.ChunkFactory.run(ChunkFactory.java:128)
java.lang.RuntimeException: VarInt lacks bytes! We may be out of sync now.
        at packets.DataReader.readVarInt(DataReader.java:68)
        at packets.DataTypeProvider.readVarInt(DataTypeProvider.java:100)
        at game.data.chunk.Chunk.parse(Chunk.java:263)
        at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:178)
        at game.data.chunk.ChunkFactory.run(ChunkFactory.java:128)
Chunk could not be parsed!
java.lang.ArrayIndexOutOfBoundsException: Index 18 out of bounds for length 18
        at packets.DataTypeProvider.readNext(DataTypeProvider.java:65)
        at packets.DataTypeProvider$1.read(DataTypeProvider.java:166)
        at java.base/java.io.InputStream.read(Unknown Source)
        at java.base/java.io.DataInputStream.readFully(Unknown Source)
        at java.base/java.io.DataInputStream.readUTF(Unknown Source)
        at java.base/java.io.DataInputStream.readUTF(Unknown Source)
        at se.llbit.nbt.StringTag.read(StringTag.java:46)
        at se.llbit.nbt.NamedTag.read(NamedTag.java:58)
        at packets.DataTypeProvider.readNbtTag(DataTypeProvider.java:163)
        at game.data.chunk.version.Chunk_1_14.parseHeightMaps(Chunk_1_14.java:39)
        at game.data.chunk.Chunk.parse(Chunk.java:257)
        at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:178)
        at game.data.chunk.ChunkFactory.run(ChunkFactory.java:128)
java.lang.RuntimeException: VarInt lacks bytes! We may be out of sync now.
        at packets.DataReader.readVarInt(DataReader.java:68)
        at packets.DataTypeProvider.readVarInt(DataTypeProvider.java:100)
        at game.data.chunk.Chunk.parse(Chunk.java:263)
        at game.data.chunk.ChunkFactory.readChunkDataPacket(ChunkFactory.java:178)
        at game.data.chunk.ChunkFactory.run(ChunkFactory.java:128)
Chunk could not be parsed!

package org.apache.commons.lang3 does not exist

Build failing since 5149994

$ mvn assembly:assembly
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Scanning for projects...
[INFO]
[INFO] --< mircokroon.minecraft-world-downloader:minecraft-world-downloader >--
[INFO] Building minecraft-world-downloader 1.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] >>> maven-assembly-plugin:2.2-beta-5:assembly (default-cli) > package @ minecraft-world-downloader >>>
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ minecraft-world-downloader ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 12 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ minecraft-world-downloader ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 71 source files to /home/chiller/Desktop/git/minecraft-world-downloader/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/chiller/Desktop/git/minecraft-world-downloader/src/main/java/Launcher.java:[6,32] package org.apache.commons.lang3 does not exist
[ERROR] /home/chiller/Desktop/git/minecraft-world-downloader/src/main/java/Launcher.java:[89,13] cannot find symbol
  symbol:   variable SystemUtils
  location: class Launcher
[ERROR] /home/chiller/Desktop/git/minecraft-world-downloader/src/main/java/Launcher.java:[89,12] illegal parenthesized expression
[ERROR] /home/chiller/Desktop/git/minecraft-world-downloader/src/main/java/Launcher.java:[91,20] cannot find symbol
  symbol:   variable SystemUtils
  location: class Launcher
[ERROR] /home/chiller/Desktop/git/minecraft-world-downloader/src/main/java/Launcher.java:[91,19] illegal parenthesized expression
[INFO] 5 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.638 s
[INFO] Finished at: 2020-05-15T23:28:53+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project minecraft-world-downloader: Compilation failure: Compilation failure:
[ERROR] /home/chiller/Desktop/git/minecraft-world-downloader/src/main/java/Launcher.java:[6,32] package org.apache.commons.lang3 does not exist
[ERROR] /home/chiller/Desktop/git/minecraft-world-downloader/src/main/java/Launcher.java:[89,13] cannot find symbol
[ERROR]   symbol:   variable SystemUtils
[ERROR]   location: class Launcher
[ERROR] /home/chiller/Desktop/git/minecraft-world-downloader/src/main/java/Launcher.java:[89,12] illegal parenthesized expression
[ERROR] /home/chiller/Desktop/git/minecraft-world-downloader/src/main/java/Launcher.java:[91,20] cannot find symbol
[ERROR]   symbol:   variable SystemUtils
[ERROR]   location: class Launcher
[ERROR] /home/chiller/Desktop/git/minecraft-world-downloader/src/main/java/Launcher.java:[91,19] illegal parenthesized expression
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Support SRV records

Minecraft server hosts have the option of providing an SRV DNS record for their server IP, instead of a standard A record. An SRV record for Minecraft looks like this:
_minecraft._tcp.example.com. 3600 IN SRV 1 1 25565 minecraft-server.example.com
The Minecraft client checks for the existance of this record, but currently, minecraft-world-downloader does not.

Error: A JNI error has occurred, please check your installation and try again

Hi im not english soo i don't understand the error can someone help me plz ?

Here is the logs :

D:\Aquila\Desktop\enzomtp\World dl>java -jar world-downloader.jar -s eu.wynncraft.com
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Launcher has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)

D:\Aquila\Desktop\enzomtp\World dl>pause
Appuyez sur une touche pour continuer...

doesn't work

I'm using an 1.5.4 release and 1.16.1 minecraft. running on windows 10 x64.
different servers show different error messages.
I can connect to the one of these servers, but world is blank
and this Using protocol of game version 1.16.0 (736) appears in console
on another servers there isn't any error messages. Just can't connect.
please help.

BlockIds wrong on modded 1.12.2 server

2020-04-19_20 53 35
Hi,
As you can see every non-vanilla block is replaced with some random (but always the same) vanilla block, block positions are correct tho.
Not sure if it is a bug, it seems like it's somewhat intended since copying the chunk Sections should be pretty straightforward, even with mods and modded BlockIDs, but maybe I'm missing something.
Still it's impressive that the files are still readable x)

Implement protocol version translation

I think this project would benefit from allowing users to join to servers with versions that aren't supported out of the box by making use of some project like ProtocolSupport or ViaVersion.

Error while logging into local server

Login by: mjnoble
java.lang.NullPointerException
at proxy.auth.LauncherProfiles.getAuthDetails(LauncherProfiles.java:17)
at proxy.auth.ClientAuthenticator.getAuthDetails(ClientAuthenticator.java:139)
at proxy.auth.ClientAuthenticator.makeRequest(ClientAuthenticator.java:152)
at proxy.EncryptionManager.lambda$sendReplacementEncryptionConfirmation$7(EncryptionManager.java:255)
at proxy.EncryptionManager.disconnectOnError(EncryptionManager.java:98)
at proxy.EncryptionManager.sendReplacementEncryptionConfirmation(EncryptionManager.java:255)
at proxy.EncryptionManager.lambda$setClientEncryptionConfirmation$6(EncryptionManager.java:243)
at proxy.EncryptionManager.attempt(EncryptionManager.java:85)
at proxy.EncryptionManager.setClientEncryptionConfirmation(EncryptionManager.java:232)
at packets.builder.ServerBoundLoginPacketBuilder.lambda$new$1(ServerBoundLoginPacketBuilder.java:28)
at packets.builder.PacketBuilder.build(PacketBuilder.java:46)
at packets.DataReader.readPackets(DataReader.java:161)
at packets.DataReader.pushData(DataReader.java:116)
at proxy.ProxyServer.lambda$run$4(ProxyServer.java:93)
at proxy.ProxyServer.attempt(ProxyServer.java:138)
at proxy.ProxyServer.lambda$run$6(ProxyServer.java:90)
at java.base/java.lang.Thread.run(Thread.java:832)
Client probably disconnected. Waiting for new connection...
WARNING: packet parsing may have been incorrect! Expected length: 261. Used bytes: 0
Server probably disconnected. Waiting for new connection...

not working

Untitled
here is the error latest version EDIT i fixed it by installing newer version of java

Can only use this to download the world of a server with online mode off

Is there any fix? When i join i get a "Disconnected" in minecraft after "Logging in..." for a long time, while in the console i get this:
C:\Users\Administrator\Downloads>java -jar world-downloader.jar -s hypixel.net
Starting proxy for hypixel.net. Make sure to connect to localhost:25565 instead of the regular server address.
Cannot connect to hypixel.net. The server may be down or on a different address.

It works fine on cracked servers(ones with online mode off) , so it must be an authentication bug(yes, I am using an original copy of the game). I am on 1.12.2

Unable to connect to server

So I run the command and the program clearly executes fine. When I'm instructed to connect to localhost, I try but I get an error in the console that goes
Cannot connect to [SERVER IP]. The server may be down or on a different address.
I know neither of the latter are the case, as I was able to personally connect to the server without issue.

Am I doing this wrong? I'm trying to connect to a minecraft server with IP 127.0.0.1:25565 when I'm prompted to connect to localhost

"Cannot connect to server"

Hello, every time I try to download a map, it says "Cannot connect to %IP%. The server may be down or on a different address."

I know I put the correct address, and I even tried other servers and they didn't work! This issue occurs when I try to connect to "localhost" and "localhost:25565"

Terminal Code:
java -jar world-downloader.jar -s hypixel.net
(hypixel.net is used as an example!)

System: Mac OS (Big Sur)
JDK: Java 9

(Everything works completely fine, except after I put in my Access Token in and logon, it gives me this error)

installation issues

Confused noob here,
This is the first time I've worked with Java executables, is there a certain folder I need to install them to? Does it function like a normal mod?

Allow direct authentication if no launcher_profiles.json exists

I'm running a twitch modpack, I know I can connect to the server because I just did so, after starting minecraft-world-downloader.jar with the same server address and adding localhost to the server list, it even shows the same server icon and motd, but when I try to connect to that one, I get "This server has mods that require FML/Forge to be installed on the client. Contact your server admin for more details.", Console running the jar says the same: Performed handshake with (SERVER ADDRESS), protocol version 340 :: next state: login Login by: BinaryEnigma Disconnect: {"text":"This server has mods that require FML/Forge to be installed on the client. Contact your server admin for more details."} Server probably disconnected. Waiting for new connection...
(Omitted the server address for security reasons)

All dimensions' chunks are being written to the overworld (1.16.2)

Thanks for getting updating it for 1.16.2! However, there seems to be a bug with how other dimensions' chunks are being saved; everything's ending up in the overworld. Server is mostly vanilla, tested with a vanilla client as well.
Let me know if you CNR and I can get more info if needed. Thanks!
bug

Option to force connect even if server is down

I'm trying to download a few chunks off a world hosted on Minecraft Realms, but Realms have a weird thing where if you get the IP the server is running on and add it to your Multiplayer menu, it'll come up with a "Can't connect to server" error, but if you double click it and connect anyway it'll work just fine, thing is I assume the program makes it so that if it detects it's down it just won't even try to connect. Is there any way to make it connect even if it gets that error?

SSLHandshakeException on WSL

I'm trying to get this to run on WSL due to problems with my Java installation. I'm runninng the command, which I'm pretty sure is right:

java -jar world-downloader.jar -s server.ip -p 10200 -m /mnt/c/Users/Theo/AppData/Roaming/.minecraft --gui=false

It starts off fine:

Starting proxy for server.ip:10200. Make sure to connect to localhost:25565 instead of the regular server address.             
Performed handshake with server.ip:10200, protocol version 736 :: next state: login
Login by: Fukastu    

But as soon as I try to connect to localhost:25565, it errors with:

kong.unirest.UnirestException: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Am I doing something wrong here? Any help would be greatly appreciated :)

Cannot connect to [server]. The server may be down or on a different address.

No matter what server i try to connect to, i get the error Cannot connect to localhost:25566. The server may be down or on a different address.. This is not a DNS issue or anything, since even when i try localhost, it doesn't work. ( Also doesn't work on external servers, obviously. ). Minecraft just gets stuck on "Connecting to server" and there's no change at all in the server logs. This is on minecraft 1.16.1 by the way.

How To Install?

Help me with how to install. I got error to. and How to install Java 9 ?

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Launcher has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

Saving entities

Currently entities are not saved at all as they are a lot more difficult to handle than blocks & tile entities.

Exception in thread "main"

I get this when I try to run it:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Launcher has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.