TheRemote / Legendary-Java-Minecraft-Geyser-Floodgate

Legendary Java Minecraft + Geyser + Floodgate + Paper Dedicated Server for Docker allowing Bedrock players to connect to a Java server
https://jamesachambers.com/minecraft-java-bedrock-server-together-geyser-floodgate/
MIT License
160 stars 35 forks source link

Freshly created container with MC 1.20.6 results in failure to open ViaVersion, zip END header not found #34

Open izosozi opened 2 months ago

izosozi commented 2 months ago

Context

On startup, the server log shows the error 'java.lang.RuntimeException: Failed to open plugin jar plugins/ViaVersion.jar' & Caused by: java.util.zip.ZipException: zip END header not found. Other plugins don't load or even show a failure message in the log. Removing and reinstalling ViaVersion did not solve the issue.

The error started happening this morning 2024-09-04, and the server was running fine using this image before that point. Since there hasn't been a new release of LJMGF, I'm guessing there was an update in one of the dependencies that bricked it.

I reproduced the error by doing docker compose up -d with the below docker-compose.yaml in an empty volume with no plugins or world data added. I tried with and without NoPermCheck and got the same result.

docker-compose.yaml

services:
  manatee-mc:
    image: 05jchambers/legendary-minecraft-geyser-floodgate:latest
    container_name: manatee-mc
    environment:
      Version: 1.20.6
      MaxMemory: 8192
      TZ: America/Los_Angeles
      # NoPermCheck: Y
    volumes:
      - ./lmgf:/minecraft
    ports:
      - "25565:25565"
      - "19132:19132/udp"
      - "19132:19132"
      - "8123:8123"
    restart: always
  manatee-rcon:
    image: itzg/rcon
    container_name: manatee-rcon
    restart: always
    environment:
      TZ: America/Los_Angeles
      RWA_USERNAME: *****
      RWA_PASSWORD: *****
      RWA_ADMIN: "TRUE"
      # is referring to the service name 'mc' declared below
      RWA_RCON_HOST: manatee-mc
      # needs to match the password configured for the container, see RCON_PASSWORD below
      RWA_RCON_PASSWORD: "*****"
    ports:
      - "4326:4326"
      - "4327:4327"

Log

## Log2024-09-04 19:41:52 Paper Minecraft Java Server Docker + Geyser/Floodgate script by James A. Chambers
2024-09-04 19:41:52 Latest version always at https://github.com/TheRemote/Legendary-Java-Minecraft-Geyser-Floodgate
2024-09-04 19:41:52 Don't forget to set up port forwarding on your router!  The default port is 25565 and the Bedrock port is 19132
2024-09-04 19:41:52 Port used: 25565
2024-09-04 19:41:52 Bedrock port used: 19132
2024-09-04 19:41:52 Taking ownership of all server files/folders in /minecraft...
2024-09-04 19:41:52 Complete
2024-09-04 19:41:52 Updating to most recent paperclip version ...
2024-09-04 19:41:54 Latest paperclip build found: 149
2024-09-04 19:41:56 Updating Floodgate...
2024-09-04 19:41:57 Updating Geyser...
2024-09-04 19:41:54   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
2024-09-04 19:41:54                                  Dload  Upload   Total   Spent    Left  Speed
2024-09-04 19:41:56 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
 21 43.6M   21 9550k    0     0  15.3M      0  0:00:02 --:--:--  0:00:02 15.3M
 60 43.6M   60 26.2M    0     0  16.3M      0  0:00:02  0:00:01  0:00:01 16.3M
 97 43.6M   97 42.7M    0     0  16.3M      0  0:00:02  0:00:02 --:--:-- 16.3M
0100-01-01 00:00:00 43.6M  100 43.6M    0     0  16.3M      0  0:00:02  0:00:02 --:--:-- 16.3M
2024-09-04 19:41:56   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
2024-09-04 19:41:56                                  Dload  Upload   Total   Spent    Left  Speed
2024-09-04 19:41:57 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
2024-09-04 19:41:57 
0100-01-01 00:00:00 10.9M  100 10.9M    0     0  12.1M      0 --:--:-- --:--:-- --:--:-- 12.1M
2024-09-04 19:41:57   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
2024-09-04 19:41:57                                  Dload  Upload   Total   Spent    Left  Speed
2024-09-04 19:41:58 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
2024-09-04 19:41:59 
 40 20.7M   40 8638k    0     0  8454k      0  0:00:02  0:00:01  0:00:01 8454k
0100-01-01 00:00:00 20.7M  100 20.7M    0     0  11.5M      0  0:00:01  0:00:01 --:--:-- 15.9M
2024-09-04 19:42:00 md5sum: plugins/ViaVersion.jar: No such file or directory
2024-09-04 19:42:00 Updating ViaVersion...
2024-09-04 19:42:00   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
2024-09-04 19:42:00                                  Dload  Upload   Total   Spent    Left  Speed
2024-09-04 19:42:01 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
0100-01-01 00:00:00  9737    0  9737    0     0  18094      0 --:--:-- --:--:-- --:--:-- 18064
2024-09-04 19:42:01 Starting Minecraft server...
2024-09-04 19:42:01 Downloading mojang_1.20.6.jar
2024-09-04 19:42:13 Applying patches
2024-09-04 19:42:17 Starting org.bukkit.craftbukkit.Main
2024-09-04 19:42:18 System Info: Java 21 (OpenJDK 64-Bit Server VM 21.0.3+9-Ubuntu-1ubuntu1) Host: Linux 5.15.153.1-microsoft-standard-WSL2 (amd64)
2024-09-04 19:42:18 Loading libraries, please wait...
2024-09-04 19:42:18 WARN StatusConsoleListener Advanced terminal features are not available in this environment
2024-09-04 19:42:20 [19:42:20 INFO]: [ReobfServer] Remapping server...
2024-09-04 19:42:21 [19:42:21 ERROR]: [EntrypointUtil] Failed to open plugin jar plugins/ViaVersion.jar
2024-09-04 19:42:21 java.lang.RuntimeException: Failed to open plugin jar plugins/ViaVersion.jar
2024-09-04 19:42:21     at io.papermc.paper.pluginremap.PluginRemapper.remap(PluginRemapper.java:339) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
2024-09-04 19:42:21     at io.papermc.paper.pluginremap.PluginRemapper.remapPlugin(PluginRemapper.java:266) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
2024-09-04 19:42:21     at io.papermc.paper.pluginremap.PluginRemapper.rewritePluginDirectory(PluginRemapper.java:204) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
2024-09-04 19:42:21     at io.papermc.paper.plugin.provider.source.DirectoryProviderSource.prepareContext(DirectoryProviderSource.java:42) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
2024-09-04 19:42:21     at io.papermc.paper.plugin.provider.source.DirectoryProviderSource.prepareContext(DirectoryProviderSource.java:17) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
2024-09-04 19:42:21     at io.papermc.paper.plugin.util.EntrypointUtil.registerProvidersFromSource(EntrypointUtil.java:14) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
2024-09-04 19:42:21     at io.papermc.paper.plugin.PluginInitializerManager.load(PluginInitializerManager.java:109) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
2024-09-04 19:42:21     at net.minecraft.server.Main.main(Main.java:122) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
2024-09-04 19:42:21     at org.bukkit.craftbukkit.Main.main(Main.java:328) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
2024-09-04 19:42:21     at io.papermc.paperclip.Paperclip.lambda$main$0(Paperclip.java:42) ~[app:?]
2024-09-04 19:42:21     at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
2024-09-04 19:42:21 Caused by: java.util.zip.ZipException: zip END header not found
2024-09-04 19:42:21     at jdk.zipfs@21.0.3/jdk.nio.zipfs.ZipFileSystem.findEND(ZipFileSystem.java:1320) ~[jdk.zipfs:?]
2024-09-04 19:42:21     at jdk.zipfs@21.0.3/jdk.nio.zipfs.ZipFileSystem.initCEN(ZipFileSystem.java:1541) ~[jdk.zipfs:?]
2024-09-04 19:42:21     at jdk.zipfs@21.0.3/jdk.nio.zipfs.ZipFileSystem.<init>(ZipFileSystem.java:179) ~[jdk.zipfs:?]
2024-09-04 19:42:21     at jdk.zipfs@21.0.3/jdk.nio.zipfs.ZipFileSystemProvider.getZipFileSystem(ZipFileSystemProvider.java:125) ~[jdk.zipfs:?]
2024-09-04 19:42:21     at jdk.zipfs@21.0.3/jdk.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:120) ~[jdk.zipfs:?]
2024-09-04 19:42:21     at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:528) ~[?:?]
2024-09-04 19:42:21     at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:440) ~[?:?]
2024-09-04 19:42:21     at io.papermc.paper.pluginremap.PluginRemapper.remap(PluginRemapper.java:290) ~[paper-1.20.6.jar:1.20.6-149-6e71f41]
2024-09-04 19:42:21     ... 10 more
2024-09-04 19:42:27 [19:42:27 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD]
2024-09-04 19:42:27 [19:42:27 INFO]: Found new data pack file/bukkit, loading it automatically
2024-09-04 19:42:27 [19:42:27 INFO]: Found new data pack paper, loading it automatically
2024-09-04 19:42:29 [19:42:29 INFO]: No existing world data, creating new world
2024-09-04 19:42:29 [19:42:29 WARN]: Failed to parse level-type default, defaulting to minecraft:normal
2024-09-04 19:42:32 [19:42:32 INFO]: [ReobfServer] Done remapping server in 11692ms.
2024-09-04 19:42:32 [19:42:32 INFO]: [PluginRemapper] Remapping plugin 'plugins/Floodgate-Spigot.jar'...
2024-09-04 19:42:32 [19:42:32 INFO]: Loaded 1175 recipes
2024-09-04 19:42:32 [19:42:32 INFO]: Loaded 1276 advancements
2024-09-04 19:42:32 [19:42:32 INFO]: Starting minecraft server version 1.20.6
2024-09-04 19:42:32 [19:42:32 WARN]: ****************************
2024-09-04 19:42:32 [19:42:32 WARN]: YOU ARE RUNNING THIS SERVER AS AN ADMINISTRATIVE OR ROOT USER. THIS IS NOT ADVISED.
2024-09-04 19:42:32 [19:42:32 WARN]: YOU ARE OPENING YOURSELF UP TO POTENTIAL RISKS WHEN DOING THIS.
2024-09-04 19:42:32 [19:42:32 WARN]: FOR MORE INFORMATION, SEE https://madelinemiller.dev/blog/root-minecraft-server/
2024-09-04 19:42:32 [19:42:32 WARN]: ****************************
2024-09-04 19:42:32 [19:42:32 INFO]: Loading properties
2024-09-04 19:42:32 [19:42:32 INFO]: This server is running Paper version 1.20.6-149-ver/1.20.6@6e71f41 (2024-08-24T09:37:06Z) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
2024-09-04 19:42:33 [19:42:33 INFO]: Server Ping Player Sample Count: 12
2024-09-04 19:42:33 [19:42:33 INFO]: Using 4 threads for Netty based IO
2024-09-04 19:42:34 [19:42:34 WARN]: [!] The timings profiler has been enabled but has been scheduled for removal from Paper in the future.
2024-09-04 19:42:34     We recommend installing the spark profiler as a replacement: https://spark.lucko.me/
2024-09-04 19:42:34     For more information please visit: https://github.com/PaperMC/Paper/issues/8948
2024-09-04 19:42:34 [19:42:34 INFO]: [ChunkTaskScheduler] Chunk system is using 1 I/O threads, 4 worker threads, and gen parallelism of 4 threads
2024-09-04 19:42:34 [19:42:34 INFO]: Default game type: SURVIVAL
2024-09-04 19:42:34 [19:42:34 INFO]: Generating keypair
2024-09-04 19:42:35 [19:42:35 INFO]: Starting Minecraft server on *:25565
2024-09-04 19:42:35 [19:42:35 INFO]: Using epoll channel type
2024-09-04 19:42:35 [19:42:35 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.
2024-09-04 19:42:35 [19:42:35 INFO]: Paper: Using OpenSSL 3.0.x (Linux x86_64) cipher from Velocity.
2024-09-04 19:42:35 [19:42:35 INFO]: Preparing level "world"
2024-09-04 19:42:35 [19:42:35 WARN]: Failed to parse level-type default, defaulting to minecraft:normal
2024-09-04 19:42:37 [19:42:37 INFO]: [PluginRemapper] Done remapping plugin 'plugins/Floodgate-Spigot.jar' in 5405ms.
2024-09-04 19:42:38 [19:42:38 WARN]: Failed to parse level-type default, defaulting to minecraft:normal
2024-09-04 19:42:39 [19:42:39 WARN]: Failed to parse level-type default, defaulting to minecraft:normal
2024-09-04 19:42:39 [19:42:39 INFO]: Preparing start region for dimension minecraft:overworld
2024-09-04 19:42:41 [19:42:41 INFO]: Time elapsed: 1713 ms
2024-09-04 19:42:41 [19:42:41 INFO]: Preparing start region for dimension minecraft:the_nether
2024-09-04 19:42:41 [19:42:41 INFO]: Time elapsed: 638 ms
2024-09-04 19:42:41 [19:42:41 INFO]: Preparing start region for dimension minecraft:the_end
2024-09-04 19:42:41 [19:42:41 INFO]: Time elapsed: 235 ms
2024-09-04 19:42:42 [19:42:42 INFO]: Running delayed init tasks
2024-09-04 19:42:42 [19:42:42 INFO]: Done (9.334s)! For help, type "help"
2024-09-04 19:42:42 [19:42:42 INFO]: Timings Reset
TylerJohnson177 commented 2 months ago

I am having the exact same issue. I dug a little deeper and found out that the link being generated by the script is not being generated properly. For some reason the $ViaVersionVersion variable in the shell script is returning "pattern". Therefore the resulting link is something along the lines of "https://ci.viaversion.com/job/ViaVersion/lastBuild/artifact/build/libs/pattern". I ran the command itself that assigns data to the $ViaVersionVersion variable, and all I get is the string "pattern". The resulting "ViaVersion.jar" file that is downloaded is actually an HTML file that mirrors the "Not Found" page on Jenkins. I hardcoded the link to a specific version of ViaVersion, it worked fine.

I just had to comment out the code resposible for updating ViaVersion, and manually update ViaVersion when a new update releases. -Edit-

In addition to commenting out the code responsible for updating ViaVersion, you can install the AutoViaUpdater plugin at: https://www.spigotmc.org/resources/autoviaupdater.109331/ to continue to autoupdate ViaVersion, along with ViaBackwards, and ViaRewind.

RayRaytheGrape commented 2 months ago

Glad I'm not the only one experiencing this. Thanks for sharing your solution.

elysiandc commented 2 months ago

I am having the exact same issue. I dug a little deeper and found out that the link being generated by the script is not being generated properly. For some reason the $ViaVersionVersion variable in the shell script is returning "pattern". Therefore the resulting link is something along the lines of "https://ci.viaversion.com/job/ViaVersion/lastBuild/artifact/build/libs/pattern". I ran the command itself that assigns data to the $ViaVersionVersion variable, and all I get is the string "pattern". The resulting "ViaVersion.jar" file that is downloaded is actually an HTML file that mirrors the "Not Found" page on Jenkins. I hardcoded the link to a specific version of ViaVersion, it worked fine.

I just had to comment out the code resposible for updating ViaVersion, and manually update ViaVersion when a new update releases. -Edit-

In addition to commenting out the code responsible for updating ViaVersion, you can install the AutoViaUpdater plugin at: https://www.spigotmc.org/resources/autoviaupdater.109331/ to continue to autoupdate ViaVersion, along with ViaBackwards, and ViaRewind.

+1 to this issue replicated here too. Same corrupt ViaVersion.jar being downloaded, same file size (9737)

Further to the solution provided by @TylerJohnson177 (you can edit start.sh from line 173), or more easily you can disable ViaVersion by recomposing with environment variable NoViaVersion: "Y". If you do need ViaVersion, you can download the AutoViaUpdater.jar to your plugins folder and that will still auto-update ViaVersion for you even though you have NoViaVersion: "Y" env var set. Don't forget to restart your container as per the AutoViaUpdate install notes - "The first time you start the server, you will need to restart it again since it installs all the Vias the first time and actually enables them on the second restart."

morganmattr commented 2 months ago

I ran into this issue ~3 days ago and I was able to resolve this by doing the following steps (thanks everyone in this thread for the clues!):

  1. Make sure docker-compose server is down.
  2. Delete any /plugins/ViaVersion.jar files.
  3. Download AutoViaUpdater .jar file from here https://www.spigotmc.org/resources/autoviaupdater.109331/ and add this into /plugins/
  4. Inside docker-compose.yml set the following env values: NoViaVersion: 'Y' Version: 1.21.1 #To match a version from here: https://papermc.io/downloads/paper
  5. docker-compose up -d to start the server again and now bedrock and java clients can join again :)

Not sure if this is the best way to do this, but these steps got me back up and running again so I wanted to share. Thanks all!

morganmattr commented 2 months ago

Actually with my steps above, I am still facing an issue which I never had previously:

Bedrock clients (1.21.20) can connect for ~10-15 minutes and then after some time every bedrock client is disconnected at the same time. Docker logs show "[Geyser-Spigot] {username} has disconnected from the Java server because of Bedrock client timed out". (I don't see anything else inside the docker logs which indicates an issue) The bedrock clients are then unable to connect again once this happens unless I restart the server entirely. After that same issue repeats again for bedrock users. The java clients remain connected and can still connect fine the entire time, so this only impacts bedrock users. I've tested Android/PS5/iOS Bedrock users and they are all impacted the same way at the same time. Once this happens they cannot see the server online anymore unless the docker stack is restarted. This happens on local network connections and nothing to do with host machine resources or networking issues. This impacts freshly created servers, and my previously running servers.

Is anyone else facing this issue? And any idea how to troubleshoot this?

izosozi commented 2 months ago

Actually with my steps above, I am still facing an issue which I never had previously:

Bedrock clients (1.21.20) can connect for ~10-15 minutes and then after some time every bedrock client is disconnected at the same time. Docker logs show "[Geyser-Spigot] {username} has disconnected from the Java server because of Bedrock client timed out". (I don't see anything else inside the docker logs which indicates an issue)

The bedrock clients are then unable to connect again once this happens unless I restart the server entirely. After that same issue repeats again for bedrock users. The java clients remain connected and can still connect fine the entire time, so this only impacts bedrock users. I've tested Android/PS5/iOS Bedrock users and they are all impacted the same way at the same time. Once this happens they cannot see the server online anymore unless the docker stack is restarted.

This happens on local network connections and nothing to do with host machine resources or networking issues. This impacts freshly created servers, and my previously running servers.

Is anyone else facing this issue? And any idea how to troubleshoot this?

I followed the method @TylerJohnson177 did and Bedrock clients haven't been getting booted in my case. I pulled the git repo, commented out all code in start.sh dealing with ViaVersion, and built the image locally. I don't think it should make a difference with the edited start.sh but I set NoViaVersion=Y in my docker compose just in case.

I'd assume using the ViaVersion updater plugin shouldn't behave differently than downloading it manually, so you might want to check for other configuration issues especially if you try this method and have the same problem.

start.sh:165-202

.....
    # Update Geyser
    echo "Updating Geyser..."
    if [ -z "$QuietCurl" ]; then
        curl -H "Accept-Encoding: identity" -H "Accept-Language: en" -L -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4.212 Safari/537.36" -o /minecraft/plugins/Geyser-Spigot.jar "https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot"
    else
        curl --no-progress-meter -H "Accept-Encoding: identity" -H "Accept-Language: en" -L -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4.212 Safari/537.36" -o /minecraft/plugins/Geyser-Spigot.jar "https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot"
    fi

echo "ViaVersion update process has been disabled in /scripts/start.sh. Check for updates manually"

# COMMENT OR DELETE all ViaVersion lines. and don't forget to leave the fi below (I did lol)

fi

# Accept EULA
AcceptEULA=$(echo eula=true >eula.txt)

.....

docker-compose.yml


services:
  minecraft-server:
    container_name: minecraft-server
    restart: always
    build: 
      context: .
      dockerfile: ./amd64.Dockerfile
    ports:
      - "25565:25565"
      - "19132:19132"
      - "19132:19132/udp"
    volumes:
      - ./minecraft:/minecraft
    stdin_open: true # docker run -i
    tty: true # docker run -t
    entrypoint: [ "/bin/bash", "/scripts/start.sh" ]
    # Environment variables
    environment:
      Port: "25565"
      BedrockPort: "19132"
      TZ: "America/Los Angeles" # Timezone
      #BackupCount: 10 # Number of rolling backups to keep
      MaxMemory: 4096 # Maximum memory usage for Java
      Version: 1.20.6 # Use custom version
      #NoBackup: "plugins" # Optional folder to skip during backups
      NoPermCheck: "Y" # Optional flag to skip permissions check
      #NoViaVersion: "Y" # Optional flag to disable ViaVersion plugin
      #QuietCurl: "Y" # Optional flag to reduce curl log output by suppressing progress meter
izosozi commented 2 months ago

@morganmattr Also I'm using Minecraft 1.20.6 for the server, so it's possible that your issue is version specific.

morganmattr commented 2 months ago

Thank you @spktkl!! I did exactly this (set Version: 1.20.6 and those edits to start.sh) and now the server hasn't had any of these Bedrock disconnects in ~12 hours that require a server restart, so I think I am good now. Appreciate the quick help and work around advice!

Yankie commented 2 months ago

The issue is in ./start.sh line 175 It seems https://ci.viaversion.com/job/ViaVersion/lastBuild/artifact/build/libs/ become minified and curl ... gets following: <input name="pattern" type="text" ... instead of href="ViaVersion-5.0.4-SNAPSHOT.jar. Then cut ... splits it by " symbol into fields and grabs 2nd field, which is ... right: pattern!

So I made pull request #35 to fix it :)

cyberops7 commented 2 months ago

The issue is in ./start.sh line 175 It seems https://ci.viaversion.com/job/ViaVersion/lastBuild/artifact/build/libs/ become minified and curl ... gets following: <input name="pattern" type="text" ... instead of href="ViaVersion-5.0.4-SNAPSHOT.jar. Then cut ... splits it by " symbol into fields and grabs 2nd field, which is ... right: pattern!

So I made pull request #35 to fix it :)

Came here to say that I found the exact root cause of the issue. Nice synopsis. For now, I'm just setting the NoViaVersion env var to a random string value after manually downloading the latest ViaVersion.jar build. Hopefully they accept your fix soon.