Coder Social home page Coder Social logo

viaversion / viaproxy Goto Github PK

View Code? Open in Web Editor NEW
257.0 7.0 31.0 1.55 MB

Standalone proxy which allows players to join EVERY Minecraft server version (Classic, Alpha, Beta, Release, Bedrock)

License: GNU General Public License v3.0

Java 99.96% Dockerfile 0.04%
minecraft minecraft-alpha minecraft-beta minecraft-classic minecraft-protocol minecraft-proxy protocol protocol-translation protocol-translator viaversion

viaproxy's Introduction

ViaProxy

Standalone proxy which allows players to join EVERY Minecraft server version (Classic, Alpha, Beta, Release, Bedrock)

To download the latest version, go to the Releases section and download the latest version.
Using it is very simple, just run the jar file, and it will start a user interface where everything can be configured.
For a full user guide go to the Usage for Players section or the Usage for Server Owners section.

Supported Server versions

  • Release (1.0.0 - 1.21)
  • Beta (b1.0 - b1.8.1)
  • Alpha (a1.0.15 - a1.2.6)
  • Classic (c0.0.15 - c0.30 including CPE)
  • April Fools (3D Shareware, 20w14infinite)
  • Combat Snapshots (Combat Test 8c)
  • Bedrock Edition 1.21.2 (Some features are missing)

Supported Client versions

  • Release (1.7.2 - 1.21)
  • Bedrock Edition (Needs the Geyser plugin)
  • Classic, Alpha, Beta, Release 1.0 - 1.6.4 (Only passthrough)

ViaProxy supports joining to any of the listed server version from any of the listed client versions.

Special Features

  • Support for joining online mode servers
  • Support for joining on servers which have chat signing enabled from all listed client versions
  • Supports transfer and cookies for <=1.20.4 clients on 1.20.5+ servers
  • Allows joining Minecraft Realms with any supported client version
  • Supports Simple Voice Chat mod

Releases

Executable Jar File

If you want the executable jar file you can download a stable release from GitHub Releases or the latest dev version from GitHub Actions or the ViaVersion Jenkins.

Docker Image

ViaProxy docker images can be found on GitHub Packages.

To run the latest version of ViaProxy you can use the following command:

docker run -it -v /path/to/run:/app/run -p 25568:25568 ghcr.io/viaversion/viaproxy:latest

where /path/to/run is the path where the ViaProxy data should be stored and 25568 is the port ViaProxy should listen on.

Gradle/Maven

To use ViaProxy with Gradle/Maven you can use the ViaVersion maven server:

repositories {
    maven { url "https://repo.viaversion.com" }
}

dependencies {
    implementation("net.raphimc:ViaProxy:x.x.x") // Get latest version from releases
}
<repositories>
    <repository>
        <id>viaversion</id>
        <url>https://repo.viaversion.com</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>net.raphimc</groupId>
        <artifactId>ViaProxy</artifactId>
        <version>x.x.x</version> <!-- Get latest version from releases -->
    </dependency>
</dependencies>

Usage for Players (GUI)

ViaProxy GUI

  1. Download the latest version from the Releases section
  2. Put the jar file into a folder (ViaProxy will generate config files and store some data there)
  3. Run the jar file
  4. Fill in the required fields like server address and version
  5. If you want to join online mode servers, add your Minecraft account in the Accounts tab
  6. Click on "Start"
  7. Join with your Minecraft client on the displayed address
  8. Have fun!

Usage for Server owners (Config)

  1. Download the latest version from the Releases section
  2. Put the jar file into a folder (ViaProxy will generate config files and store some data there)
  3. Run the jar file (Using java -jar ViaProxy-whateverversion.jar config viaproxy.yml)
  4. ViaProxy now generates a config file called viaproxy.yml in the same folder and exits
  5. Open the config file and configure the proxy (Most important options are at the top)
  6. Start the proxy using the start command and test whether it works (Join using the server's public address and the bind port you configured)
  7. Have fun!

Usage for Server owners (CLI)

  1. Download the latest version from the Releases section
  2. Put the jar file into a folder (ViaProxy will generate config files and store some data there)
  3. Run the jar file (Using java -jar ViaProxy-whateverversion.jar cli --help)
  4. ViaProxy will print the CLI usage and exit
  5. Configure the proxy and optionally put the finished start command into a script
  6. Start the proxy using the start command and test whether it works (Join using the server's public address and the bind port you configured)
  7. Have fun!

Configuring the protocol translation

To change ViaProxy settings you can check out the viaproxy.yml config file. Most of the settings are configurable via the GUI.
To change the protocol translation settings/features you can look into the ViaLoader folder. You will find 5 config files there:

  • viaversion.yml (ViaVersion)
  • viabackwards.yml (ViaBackwards)
  • viarewind.yml (ViaRewind)
  • vialegacy.yml (ViaLegacy)
  • viabedrock.yml (ViaBedrock)

Developer Plugin API

ViaProxy has a plugin API which allows you to create plugins for ViaProxy.
Documentation and examples:

Contributing

Contributions in the form of pull requests are always welcome. Please make sure to keep your code style consistent with the rest of the project and that your code is easily maintainable. If you plan to make a large scale changes, please open an issue first or join my discord to discuss it.

Translations

If you want to help translating ViaProxy you can do so by creating a pull request with your language file. The language files are located in the language folder. You can find the guidelines for creating a language file in the en_US language file.

Contact

If you encounter any issues, please report them on the issue tracker.
If you just want to talk or need help using ViaProxy feel free to join the ViaVersion Discord.

viaproxy's People

Contributors

akemin-dayo avatar alexprogrammerde avatar dependabot[bot] avatar felix14-v2 avatar florianmichael avatar gaming32 avatar kichura avatar komugikotan avatar lenni0451 avatar liticane avatar minecraftpeayer avatar notlin4 avatar raphimc avatar sfenker avatar skyeye-fast avatar theadamyt avatar veronoicc 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

viaproxy's Issues

An error occured while connecting to the backend server: null

I'm trying to connect to a websocket 1.5.2 anarchy server (eagler) using 1.8 with Via, but it slaps me with a strange error message. "An error occured while connecting to the backend server: null" I've seen other connect to the same server. It is an offline server, and no account is specified. The ip to the websocket server is "wss://mc.gmod9.com/wssconnect" if possible, could anyone set it up for me please? you dont have to, but it would really be a help. I'm using a 25565 port, by the way.

Entrypoint for starting via code

I'm currently starting ViaProxy via the main function, for which I have to modify arguments as strings and launch it in a separate thread. Although this setup is only for testing/development, ould be nice to have an entry point when using it as a library instead of a separate proxy.

Suggestions

here are some Suggestions that would be nice to see:

  • Auto Detect Server Version and dynamically Change the ViaProxy Config
  • Add Support to run a Server Through ViaProxy and have it basically act like the server's ViaVersion
  • Support for Browser Cookie Login, EasyMC Login and TheAlterning Login
  • MCPatcher / TexturePack Generator to show newer Textures on older clients
  • Ability to Save Servers to a List
  • Client Brand Selector

Thx for taking the time to look at my suggestions

Restrict which protocols can join

As a server owner I want to select certain versions which are allowed to join the viaproxy and others that aren't. Is that possible or if not can it be added?

client 24w07a connecting to server on earlier version not working on some servers

2024-02-25_01 32 55

This happens when I try to join play.datblock.com on 24w07a using ViaProxy 3.2.0

Joining that server works fine with 23w51b on ViaProxy 3.1.0

[01:17:08] [main/INFO] (ViaProxy) Initializing ViaProxy GUI v3.2.0 (git-ViaProxy-3.2.0:71ff0cc) (Injected using Launcher Agent)...
[01:17:08] [main/INFO] (ViaProxy) Using java version: OpenJDK 64-Bit Server VM 17.0.1 (Microsoft) on Windows 10
[01:17:08] [main/INFO] (ViaProxy) Available memory (bytes): 1025507328
[01:17:08] [main/INFO] (ViaProxy) Working directory: C:\Users********\Desktop\Artifacts (3)
[01:17:11] [main/INFO] (ViaBackwards) Loading translations...
[01:17:11] [Via-Mappingloader-0/INFO] (ViaVersion) Loading block connection mappings ...
[01:17:12] [main/INFO] (ViaBackwards) Registering protocols...
[01:17:17] [main/INFO] (ViaBedrock) Started resource pack HTTP server on http://127.0.0.1:53601/
[01:17:18] [main/INFO] (ViaVersion) ViaVersion detected lowest supported version by the proxy: 1.7.2-1.7.5 (4)
[01:17:18] [main/INFO] (ViaVersion) Highest supported version by the proxy: 24w07a (766)
[01:17:26] [main/INFO] (ViaProxy) ViaProxy started successfully!
[01:18:00] [Via Async Scheduler 0/INFO] (ViaVersion) Finished mapping loading, shutting down loader executor!
[01:18:17] [Thread-3/INFO] (ViaProxy) Starting proxy server
[01:18:17] [Thread-3/INFO] (ViaProxy) Binding proxy server to 0.0.0.0:25568
[01:18:22] [Netty NIO Server Child IO #0/INFO] (ViaProxy) [CONNECT] (127.0.0.1:53604 | null) [24w07a <-> 1.20.3-1.20.4] Connecting to play.datblock.com.:25565
[01:18:24] [Netty NIO Client IO #0/INFO] (ViaProxy) [DISCONNECT] (127.0.0.1:53604 | null) Connection closed
[01:18:26] [Netty NIO Server Child IO #1/INFO] (ViaProxy) [CONNECT] (127.0.0.1:53607 | null) [24w07a <-> 1.20.3-1.20.4] Connecting to play.datblock.com.:25565
[01:18:26] [Netty NIO Server Child IO #1/INFO] (ViaProxy) [AUTH] (127.0.0.1:53607 | Plmqazoknedc) Filling player data
[01:18:26] [Netty NIO Server Child IO #1/INFO] (MinecraftAuth) Getting profile...
[01:18:27] [Netty NIO Server Child IO #1/INFO] (MinecraftAuth) Got MC Profile, name: Plmqazoknedc, uuid: 5eecf5c3-406a-4986-9fff-74cbc93e60fd
[01:18:28] [Netty NIO Client IO #1/INFO] (ViaProxy) [AUTH] (127.0.0.1:53607 | Plmqazoknedc) Trying to join online mode server
[01:18:28] [Netty NIO Client IO #1/INFO] (YggdrasilAuthenticationService) Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[01:18:28] [Netty NIO Client IO #1/INFO] (ViaProxy) [AUTH] (127.0.0.1:53607 | Plmqazoknedc) Requesting nonce signature
[01:18:29] [Netty NIO Client IO #1/INFO] (ViaProxy) [SESSION] (127.0.0.1:53607 | Plmqazoknedc) Connected successfully! Switching to CONFIGURATION state
[01:18:32] [Netty NIO Client IO #1/INFO] (ViaProxy) [SESSION] (127.0.0.1:53607 | Plmqazoknedc) Configuration finished! Switching to PLAY state
[01:18:33] [Netty NIO Client IO #1/ERROR] (ViaProxy) Caught unhandled netty exception
java.lang.IndexOutOfBoundsException: readerIndex(1) + length(1) exceeds writerIndex(1): UnpooledHeapByteBuf(ridx: 1, widx: 1, cap: 1/1)
at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1442) ~[ViaProxy-3.2.0.jar:?]
at io.netty.buffer.AbstractByteBuf.readByte(AbstractByteBuf.java:730) ~[ViaProxy-3.2.0.jar:?]
at net.raphimc.netminecraft.packet.PacketTypes.readVarInt(PacketTypes.java:52) ~[ViaProxy-3.2.0.jar:?]
at net.raphimc.netminecraft.packet.impl.configuration.S2CConfigTransfer1_20_5.read(S2CConfigTransfer1_20_5.java:40) ~[ViaProxy-3.2.0.jar:?]
at net.raphimc.viaproxy.proxy.packethandler.TransferPacketHandler.handleP2S(TransferPacketHandler.java:50) ~[ViaProxy-3.2.0.jar:?]
at net.raphimc.viaproxy.proxy.proxy2server.Proxy2ServerHandler.channelRead0(Proxy2ServerHandler.java:60) ~[ViaProxy-3.2.0.jar:?]
at net.raphimc.viaproxy.proxy.proxy2server.Proxy2ServerHandler.channelRead0(Proxy2ServerHandler.java:32) ~[ViaProxy-3.2.0.jar:?]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:202) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:164) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) [ViaProxy-3.2.0.jar:?]
at net.raphimc.vialoader.netty.ViaCodec.channelRead(ViaCodec.java:81) [ViaProxy-3.2.0.jar:?]
at net.raphimc.viaproxy.protocoltranslator.impl.ViaProxyViaCodec.channelRead(ViaProxyViaCodec.java:41) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:202) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:164) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:454) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) [ViaProxy-3.2.0.jar:?]
at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [ViaProxy-3.2.0.jar:?]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [ViaProxy-3.2.0.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [ViaProxy-3.2.0.jar:?]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [ViaProxy-3.2.0.jar:?]
at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
[01:18:33] [Netty NIO Client IO #1/ERROR] (ViaProxy) [PROXY KICK] (127.0.0.1:53607 | Plmqazoknedc) �[0m�[38;2;255;85;85mAn unhandled error occurred in your connection and it has been closed.
�[0m�[38;2;85;255;85mError details for report:�[0m�[38;2;255;255;255m
�[0m�[38;2;255;85;85mIndexOutOfBoundsException�[0m�[38;2;170;170;170m: �[0m�[38;2;255;255;255mreaderIndex(1) + length(1) exceeds writerIndex(1): UnpooledHeapByteBuf(ridx: 1, widx: 1, cap: 1/1)�[0m
[01:18:33] [Netty NIO Client IO #1/INFO] (ViaProxy) [DISCONNECT] (127.0.0.1:53607 | Plmqazoknedc) Connection closed

ViaProxy 1.8 client cannot join 1.20.4 spigot/vanilla/LAN server

image
Tested with these plugins on a spigot 1.20.4 server instead of ViaProxy, it functions as expected from a 1.8 client.

Error logs:

[15:48:29] [Netty NIO Client IO #4/WARN] (ViaVersion) ERROR IN Protocol1_20To1_20_2 IN REMAP OF CONFIGURATION 0x08->0xFFFFFFFF
[15:48:29] [Netty NIO Client IO #4/ERROR] (ViaProxy) Caught unhandled netty exception
 io.netty.handler.codec.DecoderException: com.viaversion.viaversion.exception.InformativeException: Please report this on the Via support Discord or open an issue on the relevant GitHub repository
Packet Type: null, Type: VarInt, Index: 3, Data: [{VarInt: 1}, {StringType: minecraft:vanilla}], Source 0: com.viaversion.viabackwards.protocol.protocol1_20to1_20_2.Protocol1_20To1_20_2$$Lambda$1244/1997753864, Packet ID: -1
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:499) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at net.raphimc.vialoader.netty.ViaCodec.channelRead(ViaCodec.java:81) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at net.raphimc.viaproxy.protocoltranslator.impl.ViaProxyViaCodec.channelRead(ViaProxyViaCodec.java:41) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:202) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:164) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_391]
Caused by: com.viaversion.viaversion.exception.InformativeException: Please report this on the Via support Discord or open an issue on the relevant GitHub repository
Packet Type: null, Type: VarInt, Index: 3, Data: [{VarInt: 1}, {StringType: minecraft:vanilla}], Source 0: com.viaversion.viabackwards.protocol.protocol1_20to1_20_2.Protocol1_20To1_20_2$$Lambda$1244/1997753864, Packet ID: -1
Caused by: java.lang.IndexOutOfBoundsException: readerIndex(20) + length(1) exceeds writerIndex(20): PooledUnsafeDirectByteBuf(ridx: 20, widx: 20, cap: 256)
        at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1442) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.buffer.AbstractByteBuf.readByte(AbstractByteBuf.java:730) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.api.type.types.VarIntType.readPrimitive(VarIntType.java:45) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.api.type.types.VarIntType.read(VarIntType.java:70) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.api.type.types.VarIntType.read(VarIntType.java:29) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.protocol.packet.PacketWrapperImpl.read(PacketWrapperImpl.java:142) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.rewriter.TagRewriter.handle(TagRewriter.java:199) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.rewriter.TagRewriter.lambda$getGenericHandler$2(TagRewriter.java:188) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viabackwards.protocol.protocol1_20to1_20_2.Protocol1_20To1_20_2.lambda$registerPackets$11(Protocol1_20To1_20_2.java:155) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.api.protocol.AbstractProtocol.transform(AbstractProtocol.java:427) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viabackwards.protocol.protocol1_20to1_20_2.Protocol1_20To1_20_2.transform(Protocol1_20To1_20_2.java:173) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.protocol.packet.PacketWrapperImpl.apply(PacketWrapperImpl.java:423) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.protocol.packet.PacketWrapperImpl.apply(PacketWrapperImpl.java:407) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.protocol.packet.PacketWrapperImpl.apply(PacketWrapperImpl.java:46) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.protocol.ProtocolPipelineImpl.transform(ProtocolPipelineImpl.java:116) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.connection.UserConnectionImpl.transform(UserConnectionImpl.java:330) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.connection.UserConnectionImpl.transformClientbound(UserConnectionImpl.java:308) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at com.viaversion.viaversion.api.connection.UserConnection.transformIncoming(UserConnection.java:248) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at net.raphimc.vialoader.netty.ViaCodec.decode(ViaCodec.java:57) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageCodec$1.decode(ByteToMessageCodec.java:42) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) ~[ViaProxy-3.2.0-SNAPSHOT+java8.jar:?]
        ... 42 more
[15:48:29] [Netty NIO Client IO #4/ERROR] (ViaProxy) [PROXY KICK] (127.0.0.1:9871 | ayunami2000) An unhandled error occurred in your connection and it has been closed.
Error details for report:
InformativeException: Please report this on the Via support Discord or open an issue on the relevant GitHub repository
Packet Type: null, Type: VarInt, Index: 3, Data: [{VarInt: 1}, {StringType: minecraft:vanilla}], Source 0: com.viaversion.viabackwards.protocol.protocol1_20to1_20_2.Protocol1_20To1_20_2$$Lambda$1244/1997753864, Packet ID: -1 Caused by
IndexOutOfBoundsException: readerIndex(20) + length(1) exceeds writerIndex(20): PooledUnsafeDirectByteBuf(ridx: 20, widx: 20, cap: 256)

image

Online Mode Proxying does not appear to function

I am a player trying to connect to a 20.4 server from a 20.1 client. I am a new user, but I have been looking at public documentation and I cannot find any.

Using the GUI, the tooltip on the Proxy Online Mode tickbox implies that the responsibility of auth is delegated to the connecting client because it "requires your client to have a valid minecraft account", and my client does as I can login to 20.1 compatible online servers, unproxied, with no problem.

However, when I use ViaProxy (both with GUI and with CLI args, -o included), I am unable to connect to the proxied server, and ViaProxy itself prevents me from joining with the message: [PROXY KICK] (127.0.0.1 | hibiscvs) This server is in online mode and requires a valid authentication mode.

Settings I've tried (GUI):

  • No online mode proxy, and "use selected account" with none registered, following the usage in the readme (default settings),
  • No online mode proxy, but "use no account",
  • Online mode proxy with "use selected account" with none registered,
  • Online mode proxy with "use no account".

Version: GitHub Release 3.0.23 non-Java-8: git-ViaProxy-3.0.23:9cf8708

[Bug]

The Via Proxy stopped running after a certain period of time. Nothing happens when you try to start it. Everything is fine with other jar files. what files can I send to understand what happened to me?

Add whitelist to incoming connections

I would like to be able to filter incoming connections to the proxy with a simple name based whitelist (in online mode) so only I and trusted accounts can use the proxy.

Internal Exception: ionetty.handler.codec.DecoderException

I run ViaProxy with the following command:
sudo java -jar "ViaProxy-3.0.22.jar" --bp 61095 -a 127.0.0.1 -p 61099 -v 1.20.2

The original server is running using Vanilla 1.20.2 with server-port=61099 in server.properties.

1.20.2 client is able to join the server using port 61099:
image

Any client below 1.20.2 cannot join the server using port 61095 , which will cause an error.

In 1.19.4:

Internal Exception: io.netty.handler.codec.DecoderException:
java.io.IOException: Packet 0/4 (class_2616) was larger than I expected.
found 2 bytes extra whilst reading packet 4

image

In 1.8.9:

Internal Exception: io.netty.handler.codec.DecoderException:
java.lang.IndexOutOfBoundsException: readerIndex(4) + length(2) exceeds writerindex(5):
UnpooledHeapByteBuf(ridx: 4, widx: 5, cap: 5)

image

ViaProxy log is as follows:

[00:52:16] [main/INFO] (ViaProxy) Initializing ViaProxy CLI v3.0.22 (git-ViaProxy-3.0.22:1aa0740) (Injected using Launcher Agent)...
[00:52:16] [main/INFO] (ViaProxy) Using java version: OpenJDK 64-Bit Server VM 21 (Azul Systems, Inc.) on Linux
[00:52:16] [main/INFO] (ViaProxy) Available memory (bytes): 2543845376
[00:52:17] [Via-Mappingloader-0/INFO] (ViaVersion) Loading block connection mappings ...
[00:52:17] [ViaLoader/INFO] (ViaBackwards) Loading translations...
[00:52:17] [ViaLoader/INFO] (ViaBackwards) Registering protocols...
[00:52:18] [ViaLoader/INFO] (ViaBedrock) Started resource pack HTTP server on http://127.0.0.1:38683/
[00:52:18] [ViaLoader/INFO] (ViaVersion) ViaVersion detected lowest supported version by the proxy: 1.7.2-1.7.5 (4)
[00:52:18] [ViaLoader/INFO] (ViaVersion) Highest supported version by the proxy: 23w44a (765)
[00:52:18] [main/INFO] (ViaProxy) ViaProxy started successfully!
[00:52:18] [main/INFO] (ViaProxy) Starting proxy server
[00:52:18] [main/INFO] (ViaProxy) Binding proxy server to 0.0.0.0:61095
[00:52:23] [Via Async Scheduler 0/INFO] (ViaVersion) Finished mapping loading, shutting down loader executor!
[01:05:34] [Netty Epoll Server IO #0/INFO] (ViaProxy) [CONNECT] ( xxx.xxx.xxx.xx | null) [1.19.4 <-> 1.20.2] Connecting to 127.0.0.1:61099
[01:05:34] [Netty Epoll Client IO #0/INFO] (ViaProxy) [DISCONNECT] ( xxx.xxx.xxx.xx | null) Connection closed
[01:05:52] [Netty Epoll Server IO #1/INFO] (ViaProxy) [CONNECT] ( xxx.xxx.xxx.xx | null) [1.19.4 <-> 1.20.2] Connecting to 127.0.0.1:61099
[01:05:52] [Netty Epoll Server IO #2/INFO] (ViaProxy) [CONNECT] ( xxx.xxx.xxx.xx | null) [1.19.4 <-> 1.20.2] Connecting to 127.0.0.1:61099
[01:05:52] [Netty Epoll Server IO #2/INFO] (ViaProxy) [AUTH] ( xxx.xxx.xxx.xx | SkyEye_FAST) Filling player data
[01:05:52] [Netty Epoll Client IO #2/INFO] (ViaProxy) [SESSION] ( xxx.xxx.xxx.xx | SkyEye_FAST) Connected successfully! Switching to PLAY state
[01:05:52] [Netty Epoll Client IO #1/INFO] (ViaProxy) [DISCONNECT] ( xxx.xxx.xxx.xx | null) Connection closed
[01:05:52] [Netty Epoll Client IO #2/INFO] (ViaProxy) [DISCONNECT] ( xxx.xxx.xxx.xx | SkyEye_FAST) Connection closed
[01:08:25] [Netty Epoll Server IO #3/INFO] (ViaProxy) [CONNECT] ( xxx.xxx.xxx.xx | null) [1.8.x <-> 1.20.2] Connecting to 127.0.0.1:61099
[01:08:25] [Netty Epoll Server IO #4/INFO] (ViaProxy) [CONNECT] ( xxx.xxx.xxx.xx | null) [1.8.x <-> 1.20.2] Connecting to 127.0.0.1:61099
[01:08:25] [Netty Epoll Server IO #3/INFO] (ViaProxy) [AUTH] ( xxx.xxx.xxx.xx | SkyEye_FAST) Filling player data
[01:08:25] [Netty Epoll Client IO #3/INFO] (ViaProxy) [SESSION] ( xxx.xxx.xxx.xx | SkyEye_FAST) Connected successfully! Switching to PLAY state
[01:08:25] [Netty Epoll Client IO #4/INFO] (ViaProxy) [DISCONNECT] ( xxx.xxx.xxx.xx | null) Connection closed
[01:08:25] [Netty Epoll Client IO #3/INFO] (ViaProxy) [DISCONNECT] ( xxx.xxx.xxx.xx | SkyEye_FAST) Connection closed
[01:08:34] [Netty Epoll Server IO #5/INFO] (ViaProxy) [CONNECT] ( xxx.xxx.xxx.xx | null) [1.8.x <-> 1.20.2] Connecting to 127.0.0.1:61099
[01:08:34] [Netty Epoll Server IO #5/INFO] (ViaProxy) [AUTH] ( xxx.xxx.xxx.xx | SkyEye_FAST) Filling player data
[01:08:34] [Netty Epoll Client IO #5/INFO] (ViaProxy) [SESSION] ( xxx.xxx.xxx.xx | SkyEye_FAST) Connected successfully! Switching to PLAY state
[01:08:34] [Netty Epoll Client IO #5/INFO] (ViaProxy) [DISCONNECT] ( xxx.xxx.xxx.xx | SkyEye_FAST) Connection closed
[01:15:33] [Netty Epoll Server IO #7/INFO] (ViaProxy) [CONNECT] ( xxx.xxx.xxx.xx | null) [1.8.x <-> 1.20.2] Connecting to 127.0.0.1:61099
[01:15:33] [Netty Epoll Server IO #6/INFO] (ViaProxy) [CONNECT] ( xxx.xxx.xxx.xx | null) [1.8.x <-> 1.20.2] Connecting to 127.0.0.1:61099
[01:15:33] [Netty Epoll Server IO #6/INFO] (ViaProxy) [AUTH] ( xxx.xxx.xxx.xx | SkyEye_FAST) Filling player data
[01:15:34] [Netty Epoll Client IO #7/INFO] (ViaProxy) [SESSION] ( xxx.xxx.xxx.xx | SkyEye_FAST) Connected successfully! Switching to PLAY state
[01:15:34] [Netty Epoll Client IO #6/INFO] (ViaProxy) [DISCONNECT] ( xxx.xxx.xxx.xx | null) Connection closed
[01:15:34] [Netty Epoll Client IO #7/INFO] (ViaProxy) [DISCONNECT] ( xxx.xxx.xxx.xx | SkyEye_FAST) Connection closed

Vanilla server log is as follows:

[Server] [01:05:52] [Server thread/INFO]: com.mojang.authlib.GameProfile@b803d76[id=af27d0a4-bf98-37ce-9f85-692d12f3101b,name=SkyEye_FAST,properties={}] lost connection: Disconnected
[Server] [01:08:25] [Server thread/INFO]: com.mojang.authlib.GameProfile@287135b0[id=af27d0a4-bf98-37ce-9f85-692d12f3101b,name=SkyEye_FAST,properties={}] lost connection: Disconnected
[Server] [01:08:34] [Server thread/INFO]: com.mojang.authlib.GameProfile@3c0b1d83[id=af27d0a4-bf98-37ce-9f85-692d12f3101b,name=SkyEye_FAST,properties={}] lost connection: Disconnected
[Server] [01:15:34] [Server thread/INFO]: com.mojang.authlib.GameProfile@4467e625[id=af27d0a4-bf98-37ce-9f85-692d12f3101b,name=SkyEye_FAST,properties={}] lost connection: Disconnected

Cannot parse argument '1.20(.1)' of option v/version

As in the title, "1.20" or "1.20.1" cannot be used for the -v or --version argument in the latest build (3.0.20-SNAPSHOT).

[13:36:39] [main/INFO] (ViaProxy) Initializing ViaProxy CLI v3.0.20-SNAPSHOT (Injected using Launcher Agent)...
[13:36:39] [main/INFO] (ViaProxy) Using java version: OpenJDK 64-Bit Server VM 20 (Azul Systems, Inc.) on Linux
[13:36:39] [main/INFO] (ViaProxy) Available memory (bytes): 3139436544
Exception in thread "main" [13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: joptsimple.OptionArgumentConversionException: Cannot parse argument '1.20.1' of option v/version
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: at joptsimple.AbstractOptionSpec.convertWith(AbstractOptionSpec.java:92)
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: at joptsimple.ArgumentAcceptingOptionSpec.convert(ArgumentAcceptingOptionSpec.java:277)
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: at joptsimple.OptionSet.valuesOf(OptionSet.java:223)
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: at joptsimple.OptionSet.valueOf(OptionSet.java:172)
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: at net.raphimc.viaproxy.cli.options.Options.parse(Options.java:107)
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: at net.raphimc.viaproxy.ViaProxy.injectedMain(ViaProxy.java:144)
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: at net.raphimc.viaproxy.ViaProxy.main(ViaProxy.java:82)
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: Caused by: joptsimple.ValueConversionException: Unable to find version '1.20.1'
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: at net.raphimc.viaproxy.cli.options.VersionEnumConverter.convert(VersionEnumConverter.java:31)
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: at net.raphimc.viaproxy.cli.options.VersionEnumConverter.convert(VersionEnumConverter.java:24)
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: at joptsimple.internal.Reflection.convertWith(Reflection.java:124)
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: at joptsimple.AbstractOptionSpec.convertWith(AbstractOptionSpec.java:90)
[13:36:40] [main/INFO] (LoggerPrintStream) [STDERR]: ... 6 more

Suggestion - Implement UDP Proxy from connected client to server

This would allow mods such as Simple Voice Chat to properly connect to the server, since it uses only UDP to do the voice chat.

When connecting thru ViaProxy Simple Voice Chat tries to send the voice packets to the server ViaProxy is running on instead of to the actual server.

ViaProxy 3.2.1 Incompatibility with Realms

Hi! I am using the latest release (3.2.1), and attempting to use it to connect to a realm. I am able to properly log in with a Microsoft account, and select that account, but when i switch to the Realms tab I get the message:
"Your ViaProxy is outdated and not compatible with Minecraft Realms.Please use the latest version of ViaProxy."

On a slightly unrelated note, this message gets cut off when the window is set to its default size:
Screenshot 2024-04-26 171547

Also, I am running the jar through the console (just using java -jar ViaProxy-3.2.1.jar) and there are no errors there. I am running Java 21, if that changes anything.

optimization?

image

DMV works much better in that way

UPD: ViaProxy loads my PC more than minecraft 1.19.4 lol

GUI duplicates itself when hovering over it

Hello. When using the GUI I ran into a problem of it duplicating itself multiple times whenever I hover with the cursor, which makes it rather unusable. This can happen two or three times on any of the screens, here's a screenshot of it in action.

Running this with Java 8, 17, and 20 all leads to the same issue.
I'm currently on Windows 11 with AMD driver version 23.7.1, if that is useful.

Error on startup [NoClassDefFoundError]

After launching ViaProxy using openjdk "17.0.5 2022-10-18" i get the following error:
Viaproxy issue
here is the log since the pop up is too big for my current resolution, and i think it would be useful.
latest.log
Thanks in advance!

Error When closing Chest

I was running bedrock (1.19.50) -> Geyser -> Viaproxy -> Java Vanilla server (1.19).

When I open and close any chest, an error occurs and shown in the dump below while the Error message shown on geyser was: StringIndexOutOfBoundsException: offset 1, count 3, length 1

ViaProxy Dump: https://pastebin.com/2iLXMwrg
image

Connect to online account on CLI

Hello,
I would like to use my online account when using Viaproxy. However i would like it to run on my homeserver without gui. when i copy the config file with the mc token and try to connect, it tells me i need to use an online account.

I've looked at the config, and --help and can't find an option to do that.
Could you help me please.

Suggestion - Custom MOTD

It would be cool to be able to edit the MOTD displayed by the proxy:

image

image

Or maybe I'm missing something and this should be done in another way ?

My setup is: ViaProxy -> b1.7.3 server

Thank you!

Show ViaProxy's brand info in F3

By default, ViaProxy does not reveal it's own branding info in F3 compared to VIAaaS when joining a third-party server - and since this can make certain server owners confused on how they joined the server using a older/newer vanilla client while the server itself has no viaversion plugin installed, ViaProxy should consider adding a feature to F3 that does just that.

A few examples i can make up:

A: ViaProxy (3.1.0) <- vanilla
B: ViaProxy (C: 1.20.4 S: 1.20.1) <- vanilla
C: vanilla (ViaProxy)
D: vanilla (ViaProxy 3.1.0)
E: vanilla (ViaProxy C: 1.20.4 S: 1.20.1)
F: vanilla (ViaProxy (3.1.0) C: 1.20.4 S: 1.20.1)

As for my personal preferences, i either assume that A or C work the best mostly due to aesthetic reasons.

Bungeecord/velocity

Is there a plug-in/method/alternative I could use to connect these servers to a bungeecord, waterfall, or velocity server?

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.