CaaMoe / MultiLogin

外置共存
GNU General Public License v3.0
361 stars 56 forks source link

[错误报告] 安装 MultiLogin 插件后 Geyser(Floodgate) 异常。(xxx 因为 尝试以 Java 版玩家身份登录!Floodgate 设置正确吗? 与 Java 服务器断开了连接) #99

Closed wifi-left closed 1 year ago

wifi-left commented 1 year ago

BUG描述

未安装 MultiLogin 前,工作正常(基岩版玩家可以进入) 安装 MultiLogin 后,玩家无法进入,提示 xxx 因为 尝试以 Java 版玩家身份登录!Floodgate 设置正确吗? 与 Java 服务器断开了连接

MultiLogin版本

v0.6.5

系统架构

windows/amd64

服务器核心

Waterfall

配置文件

debug: false

# 向登录成功的玩家发送欢迎消息。
#
# 默认值 true
welcomeMsg: true

# 开启更新检查
#
# 插件将半天进行一次更新检查
# 默认值 true
checkUpdate: false

# 强制使用此登录
#
# 即强制使用 MultiLogin 来登录游戏。
# 默认值 true
forceUseLogin: true

# floodgate 支持
# 启用此闸门支持将会代理 floodgate 入口以让猫踢螺钉控制 floodgate 入口的玩家档案
#
# 警告:此功能将会使 floodgate 的账户连接功能失效,包括全球连接!
# 默认组 false
floodgateSupport: true

# 设置用户名正则约束。
# 若不匹配将会拒绝指令或当前玩家的登录请求。
# 如果此值留空,则不启用此功能。
#
# 默认值 ‘^[0-9a-zA-Z_]{3,16}$’
nameAllowedRegular: '^[0-9a-zA-Z_. ]{3,17}$'

# 在线档案在用户名重复时末尾是否补全数字以允许登录服务器
# 意思是名字冲突了在它的名字后面加个数字
# 比如 Steven 登录游戏后发现名字被别人占用了,那它在游戏里面的名字就为 Steven1
#
# 默认值 true
nameCorrect: true

# 插件数据设置

日志

由于日志较短,已粘贴至下方。

复现步骤

这次未提示用户名问题,但是出现其他问题:

[20:13:01 INFO] [Geyser-BungeeCord]: 玩家以 wifi left 的用户名建立了连接
[20:13:01 INFO] [Geyser-BungeeCord]: wifi left (登录为: wifi_left) 已连接到 Java 服务器
[20:13:02 WARN] [MultiLogin]: The name wifi_left is occupied, change it to wifi_left1.
[20:13:02 INFO] [MultiLogin]: wifi_left(uuid: 00000000-0000-0000-0009-01f472310934) from authentication service Bedrock(yid: 4) has been authenticated, profile redirected to wifi_left1(uuid: 00000000-0000-0000-0009-01f472310934).
[20:13:02 INFO]: [/106.91.196.83:0] <-> InitialHandler has connected
[20:13:02 INFO] [floodgate]: Floodgate 玩家 wifi_left1 已断开连接
[20:13:02 INFO] [Geyser-BungeeCord]: wifi left 因为 尝试以 Java 版玩家身份登录!Floodgate 设置正确吗? 与 Java 服务器断开了连接
[20:13:02 ERROR]: com.github.steveice10.mc.protocol.data.UnexpectedEncryptionException: Cannot reply to ClientboundHelloPacket without profile and access token.
[20:13:02 ERROR]:       at com.github.steveice10.mc.protocol.ClientListener.packetReceived(ClientListener.java:56)
[20:13:02 ERROR]:       at com.github.steveice10.packetlib.tcp.TcpSession.callPacketReceived(TcpSession.java:157)
[20:13:02 ERROR]:       at com.github.steveice10.packetlib.tcp.TcpSession.channelRead0(TcpSession.java:388)
[20:13:02 ERROR]:       at com.github.steveice10.packetlib.tcp.TcpSession.channelRead0(TcpSession.java:29)
[20:13:02 ERROR]:       at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
[20:13:02 ERROR]:       at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
[20:13:02 ERROR]:       at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
[20:13:02 ERROR]:       at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
[20:13:02 ERROR]:       at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
[20:13:02 ERROR]:       at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
[20:13:02 ERROR]:       at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
[20:13:02 ERROR]:       at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
[20:13:02 ERROR]:       at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
[20:13:02 ERROR]:       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
[20:13:02 ERROR]:       at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
[20:13:02 ERROR]:       at io.netty.channel.local.LocalChannel.readInbound(LocalChannel.java:299)
[20:13:02 ERROR]:       at io.netty.channel.local.LocalChannel.finishPeerRead0(LocalChannel.java:445)
[20:13:02 ERROR]:       at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:50)
[20:13:02 ERROR]:       at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:403)
[20:13:02 ERROR]:       at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
[20:13:02 ERROR]:       at io.netty.channel.DefaultEventLoop.run(DefaultEventLoop.java:54)
[20:13:02 ERROR]:       at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
[20:13:02 ERROR]:       at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[20:13:02 ERROR]:       at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[20:13:02 ERROR]:       at java.base/java.lang.Thread.run(Thread.java:833)

已知

未安装 MultiLogin 前,工作正常(基岩版玩家可以进入) 安装 MultiLogin 后,玩家无法进入,提示 xxx 因为 尝试以 Java 版玩家身份登录!Floodgate 设置正确吗? 与 Java 服务器断开了连接

确认一遍

wifi-left commented 1 year ago

若关闭 MultiLogin 的Floodgate支持,玩家也无法进入。 经测试:从 v5 版本开始此问题一直存在。

CaaMoe commented 1 year ago

请提供更多的信息,或是尝试使用 Velocity

wifi-left commented 1 year ago

请提供更多的信息,或是尝试使用 Velocity

日志目前是这些,安装本插件前能正常进入,安装后会失效。并且在v3版本是不存在这个问题的(我从v3升上来才遇到这个问题)

Becods commented 1 year ago

v0.6.6 velocity测试已无问题

请更换

$FK3G4CO815$774UR$K20DE

wifi-left commented 1 year ago

v0.6.6 velocity测试已无问题

请更换

$FK3G4CO815$774UR$K20DE

首先,我说的是Bungeecord系列。由于插件和子服务器模组问题,暂时无法更换为 Velocity

HansOffice commented 1 year ago

v0.6.6 Velocity测试已无问题

请更换

$FK3G4CO815$774UR$K20DE

我来反馈一下,这个版本的插件在waterfall1.20.2核心上使用依旧会有geyser玩家登录的问题,一样是安装了Floodgate并且不管配置文件是启用或是关闭均有这个问题

CaaMoe commented 1 year ago

目前对floodgate的支持仍在测试,floodgate没有一个好的api来处理这方面的需求,唯一能用的api已被弃用,请等待

HansOffice commented 1 year ago

目前对floodgate的支持仍在测试,floodgate没有一个好的api来处理这方面的需求,唯一能用的api已被弃用,请等待

那可以选择关闭floodgate的支持让这个插件仅支持正版验证和外置验证码?目前是就算在配置文件内将floodgate选项关闭依旧会出现基岩版无法登录的情况

CaaMoe commented 1 year ago

那可以选择关闭floodgate的支持让这个插件仅支持正版验证和外置验证码?目前是就算在配置文件内将floodgate选项关闭依旧会出现基岩版无法登录的情况

可以以 Standalone 模式启动 GeySer

HansOffice commented 1 year ago

那可以选择关闭floodgate的支持让这个插件仅支持正版验证和外置验证码?目前是就算在配置文件内将floodgate选项关闭依旧会出现基岩版无法登录的情况

可以以 Standalone 模式启动 GeySer

意思是使用独立版geyser吗?独立版geyser与BC插件版geyser有什么区别吗?或者说安装独立版geyser后BC安装的Floodgate还会生效吗?目前是只能等待这个插件对Floodgate的支持吗?

wifi-left commented 1 year ago

最新问题:最新版的velocity加上floodgate+multilogin会报错(不知道是不是floodgate的问题) Floodgate版本没更新

已经换velocity(BC模式)了,现在基本没啥问题。

HansOffice commented 1 year ago

那可以选择关闭floodgate的支持让这个插件仅支持正版验证和外置验证码?目前是就算在配置文件内将floodgate选项关闭依旧会出现基岩版无法登录的情况

可以以 Standalone 模式启动 GeySer

重新提交一下问题,使用独立版geyser启动依旧没有任何作用,config内关闭或开启Floodgate均报xxx 因为 尝试以 Java 版玩家身份登录!Floodgate 设置正确吗? 与 Java 服务器断开了连接