Skip to content

[Question]: 不兼容Floodgate的数据转发 #19

@JerryHan3

Description

@JerryHan3

你的目标

  • 支持正版、外置登录、基岩版玩家进服
  • 登录功能正常运作
  • 后端服务器能正常接收Floodgate API的数据(Floodgate配置中send-floodgate-data可设为true

当前环境

  • velocity-3.5.0-SNAPSHOT-593
    • 置于Docker容器中(镜像名:mcr.microsoft.com/openjdk/jdk:25-ubuntu
    • Geyser Build 1129
    • Floodgate Build 132
  • 登录服:leaf-1.21.11-123
    • 置于Docker容器中(镜像名:mcr.microsoft.com/openjdk/jdk:21-ubuntu
    • Viaversion + Viabackwards
    • Floodgate Build 132
  • 游戏服:purpur-1.21.1-2329
    • 置于Docker容器中(镜像名:mcdreforged/mcdreforged-temurin:latest
    • Viaversion + Viabackwards
    • Floodgate Build 132
  • 数据库:内置 SQLite
  • 启用模块:auth-floodgate auth-yggd profile-skin
  • 关键配置:
    • 已确认Velocity Modern转发配置正常
    • 已按照Floodgate官方要求复制key.pem至每个子服目录中

插件版本与下载渠道

HyperZoneLogin-26.W18.7-WEEKLY-1fc582f8-all.jar (Github Weekly Release)

服务器插件列表

代理端:

  • Alert-1.6.jar
  • floodgate-velocity.jar (build 132)
  • Geyser-Velocity.jar (build 1129)
  • HyperZoneLogin-26.W18.7-WEEKLY-1fc582f8-all.jar
  • KickRedirect-2.0.10.jar
  • LibertyBans_1.1.3-SNAPSHOT.jar
  • LuckPerms-Velocity-5.4.128.jar
  • Maintenance-Velocity-4.2.1.jar
  • minimotd-velocity-2.1.0.jar
  • ServerPermissions-1.3.3.jar
  • SignedVelocity-Proxy-1.3.0.jar
  • Sonar-Velocity.jar
  • TrChat-2.3.2.jar

登录服:

  • floodgate-spigot.jar (build 132)
  • ViaBackwards-5.9.0-SNAPSHOT.jar
  • ViaVersion-5.9.0-SNAPSHOT.jar

具体问题

一旦在 Velocity 端的 Floodgate 中启用send-floodgate-data所有玩家(包括 Java 版玩家)均无法进入服务器,Velocity 后台输出java.lang.IllegalArgumentException错误(见下)。将send-floodgate-data禁用后恢复正常。

感觉该问题与 #12 类似,可能当时没有对Floodgate数据转发做推送?

你已经看过哪些文档

所有文档(毕竟文档就是我写的awa

其他补充

报错日志片段:

[17:12:43 INFO]: [connected player] JerryHan3 (/***.***.***.***:*****) entered outpre pre-registration flow
[17:12:43 INFO] [hyperzonelogin]: [LoginProfileReplace] 替换成功: server=outpre-auth name=HZL911662 uuid=78985774-6001-3e6d-afde-611997f533da
[17:12:43 INFO]: [connected player] JerryHan3 (/***.***.***.***:*****) has disconnected: object of type icu.h2l.login.vServer.outpre.OutPreBackendBridge is not an instance of com.velocitypowered.proxy.connection.backend.VelocityServerConnection
[17:12:43 WARN] [hyperzonelogin]: OutPre initial backend bridge disconnected before verification: player=JerryHan3, reason=object of type icu.h2l.login.vServer.outpre.OutPreBackendBridge is not an instance of com.velocitypowered.proxy.connection.backend.VelocityServerConnection
[17:12:43 ERROR]: icu.h2l.login.vServer.outpre.OutPreBackendBridge@5399c607: exception encountered in icu.h2l.login.vServer.outpre.OutPreBackendBridgeSessionHandler@48421b97
java.lang.IllegalArgumentException: object of type icu.h2l.login.vServer.outpre.OutPreBackendBridge is not an instance of com.velocitypowered.proxy.connection.backend.VelocityServerConnection
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.checkReceiver(DirectMethodHandleAccessor.java:199) ~[?:?]
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:100) ~[?:?]
        at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[?:?]
        at org.geysermc.floodgate.util.ReflectionUtils.invoke(ReflectionUtils.java:597) ~[?:?]
        at org.geysermc.floodgate.util.ReflectionUtils.castedInvoke(ReflectionUtils.java:623) ~[?:?]
        at org.geysermc.floodgate.addon.data.VelocityServerDataHandler.write(VelocityServerDataHandler.java:105) ~[?:?]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:800) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:737) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.ChannelOutboundHandlerAdapter.write(ChannelOutboundHandlerAdapter.java:113) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at icu.h2l.login.inject.network.netty.replacer.ChatSessionKillerPacketReplacer.write(ChatSessionKillerPacketReplacer.kt:62) ~[?:?]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:800) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:737) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.ChannelOutboundHandlerAdapter.write(ChannelOutboundHandlerAdapter.java:113) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at icu.h2l.login.inject.network.netty.replacer.LoginProfilePacketReplacer.write(LoginProfilePacketReplacer.kt:174) ~[?:?]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:800) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:737) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1036) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.Channel.write(Channel.java:267) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at com.velocitypowered.proxy.connection.MinecraftConnection.delayedWrite(MinecraftConnection.java:251) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at icu.h2l.login.vServer.outpre.OutPreBackendBridge.startHandshake(OutPreBackendBridge.kt:206) ~[?:?]
        at icu.h2l.login.vServer.outpre.OutPreBackendBridge.connect$lambda$0(OutPreBackendBridge.kt:153) ~[?:?]
        at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:604) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:597) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:573) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:506) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:650) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:639) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:119) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.fulfillConnectPromise(AbstractEpollChannel.java:707) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.finishConnect(AbstractEpollChannel.java:745) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady(AbstractEpollChannel.java:611) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.handle(AbstractEpollChannel.java:472) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.epoll.EpollIoHandler$DefaultEpollIoRegistration.handle(EpollIoHandler.java:317) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.epoll.EpollIoHandler.processReady(EpollIoHandler.java:515) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.epoll.EpollIoHandler.run(EpollIoHandler.java:460) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.SingleThreadIoEventLoop.runIo(SingleThreadIoEventLoop.java:225) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:196) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1195) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[velocity-3.5.0-SNAPSHOT-593.jar:3.5.0-SNAPSHOT (git-f712997d-b593)]
        at java.base/java.lang.Thread.run(Thread.java:1474) [?:?]
[17:12:43 INFO]: icu.h2l.login.vServer.outpre.OutPreBackendBridge@5399c607 has connected
[17:12:43 INFO]: [connected player] JerryHan3 (/119.78.253.10:64284) has disconnected: OutPre auth backend connection failed
[17:12:43 INFO]: icu.h2l.login.vServer.outpre.OutPreBackendBridge@5399c607 has disconnected

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions