Repository navigation
Conversation
真实JE首批96字节按错误网易布局解码导致断线已复现。新模式复用原缺少Player的FIFO延后分支,私有表在同步登录返回后登记;原Server登记/事件/旧模式不改,closed对象不再登记。原入口前后回归、351项Synapse/20项调度检查及JE/BE登录等待和专用确认复测通过,无新增就绪状态/线程/队列或Nya算法变更。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
问题与方案
原 Synapse 在既有异步线程约10ms轮询,登录/游戏包/退出分别进入三类队列,再由主线程 Ticker 按类别消费。新模式复用原传输和解包线程,在实际入队时唤醒,将业务与控制输入按本机接纳顺序交给 Nukkit 单主线程 FIFO;关闭路径保留旧三队列处理。
旧新对比
准入不是全包立即执行
BetweenTickPackets静态检查完整包布局、附加位、库存动作及内嵌动作,主线程消费时再检查当前服务端状态。已准入包括合法移动/确认、选槽/装备回声、挥手、已审计的攻击/空中使用/释放/消耗事务、限定JE扩展等;不是每种协议/子动作一律准入。普通容器/合成/附魔/修理、未闭环的复杂姿态与移动使用组合仍是队头屏障,回到下一正常输入阶段处理。吃东西/蓄力不会补世界 tick;合法释放/切槽不能被自己的使用状态永远锁住。有效屏障也会阻止后面的其他玩家,不能动作优先或跳过FIFO来“提速”。
必须人工检查的具体交叉点
SynapseEntry的三队列与新FIFO互斥、批次/登录顺序、offer失败后的来源关闭。SynapsePlayer各版本继承链中的取消、状态重入、内嵌动作和本帧提交;Java RPC/文本/地图/NPC回调保持原顺序。生产24文件 +1618/-256;测试43文件 +5777/-9。原协议维护/统计不按输入频率推进,不改变伤害期限或原战斗数值。
验证与限制
最近一次完整Synapse回归353项通过(含四组核心/Synapse组合、Entry/Player隔离);rebase时351项与shadowJar通过。15组容器渲染及原Nukkit读取器检查、测试镜像/实际启动双键回读已通过。现场BE3.9/正版JE基础功能及用户手感反馈不替代完整混合转服、旧ACK、持续使用队头等待和UX统计。
跨仓库接入与审查边界
这是 Möbius #856「低延迟输入框架与 PvP 全链路优化」的配套审查 PR。完整架构、时序和版本矩阵由 CodeFunCore 主 PR #657 汇总。各仓库 PR 是同一兼容构建集合,不能将单个子模块任意配旧版本上线。保留服务端原验证与 FIFO,客户端 tick-end/运动/飞行 flag 均不是可信物理时钟,不构造免检窗口或调大检测容差。
测试服已经使用配套镜像,用户反馈基本游玩可用、手感明显改善;这不替代完整包序、物理安全、混合转服、PvP 技巧与画面统计验收。PR 使用 Draft 暴露待审问题,创建 PR 不代表准许合并或正式发布。
审查冻结:
masteree796af515dc664650bbae29bfdd15d598416295→codex/je-input-runtime2b543ab3969f33bfc23e7b1c3d57cc55731d160b。净差异:67 files changed, 7395 insertions(+), 265 deletions(-)。