adde0109 / Ambassador

This is a Velocity plugin that makes it possible to host a modern forge server behind a Velocity proxy!
GNU Lesser General Public License v2.1
85 stars 18 forks source link

The backend server is online-mode error. #59

Open aloyen07 opened 3 months ago

aloyen07 commented 3 months ago

Hello! I have three servers: Proxy (Velocity) with Ambassador, Forge (1.16.5) and Paper (1.16.5). All servers in online-mode.

I can easily connect to the Forge server, but can't connect to Paper, i got an error: In Velocity:

[11:44:54 INFO]: [server connection] Aloyenz -> fallback has connected
[11:44:54 ERROR]: [server connection] Aloyenz -> fallback: exception encountered in org.adde0109.ambassador.velocity.backend.ForgeLoginSessionHandler@19843342
proxy-1  | java.lang.IllegalStateException: Backend server is online-mode!
proxy-1  |      at com.velocitypowered.proxy.connection.backend.LoginSessionHandler.handle(LoginSessionHandler.java:74) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at com.velocitypowered.proxy.protocol.packet.EncryptionRequestPacket.handle(EncryptionRequestPacket.java:87) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at org.adde0109.ambassador.velocity.backend.ForgeLoginSessionHandler.handleGeneric(ForgeLoginSessionHandler.java:98) ~[?:?]
proxy-1  |      at com.velocitypowered.proxy.connection.MinecraftConnection.channelRead(MinecraftConnection.java:154) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at com.velocitypowered.proxy.protocol.netty.AutoReadHolderHandler.channelRead(AutoReadHolderHandler.java:57) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at com.velocitypowered.proxy.protocol.netty.MinecraftDecoder.tryDecode(MinecraftDecoder.java:92) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at com.velocitypowered.proxy.protocol.netty.MinecraftDecoder.channelRead(MinecraftDecoder.java:61) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[server.jar:3.3.0-SNAPSHOT (git-ef861819)]
proxy-1  |      at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
[11:44:54 INFO]: [server connection] Aloyenz -> fallback has disconnected

In Paper server:

com.mojang.authlib.GameProfile@641f0d36[id=<null>,name=Aloyenz,properties={},legacy=false] (/172.18.0.2:54086) lost connection: Disconnected

172.18.0.2 - It's docker IP. From this, we can conclude that the IP-Forwarding function does not work.

In paper.yml:

velocity-support:
    enabled: true
    online-mode: true
    secret: ultrasecretkey

How to fix this problem?

adde0109 commented 3 months ago

Not an issue with Ambassador. You need to turn off online mode in server.properties on all backend servers.