一个安装在服务上的移动光源 ( 给不会装模组和材质的玩家和基岩版玩家的方便 )
如果服务器是高版本并且安装了都多版本插件,会给低版本使用兼容模式,基岩版可以正常使用
这是我这辈子做过最麻烦的插件
sequenceDiagram
participant 玩家 as 玩家
participant 插件 as 插件
玩家->>+插件: 触发事件(移动/交互/切换物品)
插件->>插件: 检查物品栏(主手/副手/装备)
alt 持有光源物品
插件->>插件: 检测客户端版本
alt 老版本客户端(≤1.16.5)
插件->>插件: 计算背后坐标
插件->>玩家: sendBlockChange(火把数据)
玩家-->>玩家: 看到假火把
else 新版本客户端(≥1.17)
插件->>插件: 获取当前位置
插件->>玩家: sendBlockChange(光源数据)
玩家-->>玩家: 看到假光源
end
插件->>插件: 记录新位置
else 未持有光源物品
插件->>插件: 检查旧位置记录
alt 存在旧光源
插件->>玩家: sendBlockChange(真实方块数据)
玩家-->>玩家: 恢复真实方块显示
插件->>插件: 清除位置记录
end
end
插件-->>-玩家: 完成视觉更新