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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions