Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incompatibility with Minehut, kicked from proxy server #1122

Open
JerichoTorrent opened this issue Jan 20, 2025 · 2 comments
Open

Incompatibility with Minehut, kicked from proxy server #1122

JerichoTorrent opened this issue Jan 20, 2025 · 2 comments
Labels
bug Something isn't working

Comments

@JerichoTorrent
Copy link

Describe the bug
Seems PacketEvents has an incompatibility with Minehut. I am reporting this to Minehut as well. When players switch servers using /server they will often get kicked out of the network and back to the Minehut lobby. This only happens when players are connected to the proxy server that uses Minehut's API.
Stacktrace:

[23:26:37 INFO]: [connected player] JerichoTorrent (<ip address withheld>) has disconnected: An internal error occurred in your connection.
[23:26:37 ERROR]: [connected player] JerichoTorrent (<ip address withheld>): exception encountered in com.velocitypowered.proxy.connection.client.ClientConfigSessionHandler@7f1ce41d
io.netty.handler.codec.DecoderException: com.github.retrooper.packetevents.exception.PacketProcessException: Failed to map the Packet ID 26 to a PacketType constant. Bound: SERVER, Connection state: CONFIGURATION, Server version: 1.21
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:98) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:289) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:455) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:799) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:501) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:399) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: com.github.retrooper.packetevents.exception.PacketProcessException: Failed to map the Packet ID 26 to a PacketType constant. Bound: SERVER, Connection state: CONFIGURATION, Server version: 1.21
        at com.github.retrooper.packetevents.event.ProtocolPacketEvent.<init>(ProtocolPacketEvent.java:90) ~[?:?]
        at com.github.retrooper.packetevents.event.PacketReceiveEvent.<init>(PacketReceiveEvent.java:31) ~[?:?]
        at com.github.retrooper.packetevents.event.simple.PacketConfigReceiveEvent.<init>(PacketConfigReceiveEvent.java:34) ~[?:?]
        at com.github.retrooper.packetevents.util.EventCreationUtil.createReceiveEvent(EventCreationUtil.java:40) ~[?:?]
        at io.github.retrooper.packetevents.handlers.PacketEventsDecoder.read(PacketEventsDecoder.java:54) ~[?:?]
        at io.github.retrooper.packetevents.handlers.PacketEventsDecoder.decode(PacketEventsDecoder.java:80) ~[?:?]
        at io.github.retrooper.packetevents.handlers.PacketEventsDecoder.decode(PacketEventsDecoder.java:40) ~[?:?]
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ~[server.jar:3.4.0-SNAPSHOT (git-965db127-b454)]
        ... 33 more

Software brand
Velocity 3.4.0-SNAPSHOT (git-965db127-b454)

Plugins
connection-guard, luckperms, velocitycontrol, ezdiscordlinkvelocityv2 (custom plugin developed in-house, problem was present before this was added), litebans, mysqldriver, nuvotifier, packetevents, pl-hide-pro, redisbungee, plan, plasmovoice, spark, staffplusplus-network, tebex, vcustombrand, vivecraft_velocity_extensions, votingplugin, vulcan

How To Reproduce

  1. Join on a server connected to Minehut (see their docs https://support.minehut.com/hc/en-us/articles/33252734474899-How-to-Setup-a-Minehut-External-Hosted-Server)
  2. Switch servers using Velocity's /server
  3. Get kicked back to the Minehut lobby
  4. Rinse and repeat a few times and you can actually connect to the server you want to; takes 3 or 4 tries without getting kicked

Expected behavior
Player can connect to the server just fine and switch servers as he pleases.

Screenshots
N/A

Additional context
Add any other context about the problem here.

@JerichoTorrent JerichoTorrent added the bug Something isn't working label Jan 20, 2025
@sprytex
Copy link

sprytex commented Jan 21, 2025

use normal hosting

@JerichoTorrent
Copy link
Author

use normal hosting

Erm... what. We're not using them as a host. We use their API on a second proxy server to connect to their network. It's pretty common? They have over 2,000 servers. I am for sure not the only one on their network that uses packetevents.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants