搜索历史
清空
暂无搜索历史
论坛热搜
1
Jenny — 有趣的模拟女友模组|珍妮模组
热
3
上古老物 冒险者传说 by WhiteSword
新
5
洛心斗罗-福利|公会据点战|武魂||抽奖|最终版
2
乌托邦探险之旅3.2
热
4
幻虚斗罗V1.5
6
水星迫降——在未知的世界中挣扎
登陆 注册 QQ登陆
快捷导航
查看: 7|回复: 0

【开发日志】接手 1.21 群组服改造:XaerosWorldMap 地图错乱...

[复制链接]

1

主题

0

回帖

36

积分

白の酱

Rank: 1

经验
36 EP
金粒
35 粒
绿宝石
0 块
爱心
0 点
发表于 昨天 23:35 | 显示全部楼层 |阅读模式 | Edg | Windows 10

因为实在挤不出大块时间,这几天的日志只能攒到同一天写了。虽然忙得焦头烂额,但我还是毅然接手了朋友的服务器并着手全面改造。
先交代一下服务器规模:这是一个典型的群组服,架构为 1 个 Paper 端(登录认证/大厅) + 1 个 Velocity 代理端 + 10 个 Fabric 子服,游戏版本全部统一在 1.21。版本低下且要求尽量少动原来的东西,难度可想而知。



6月29日
第一个改造目标:解决 XaerosWorldMap 和 XaerosMinimap 模组的问题。
这两个地图模组放在服务端会导致客户端也必须安装它们,否则直接拒绝连接。原因在于 Fabric 的服务端模组注册表极其严格,服务端有而客户端没有的模组会被判定不匹配。
更麻烦的是群组服的特性:如果只让玩家客户端装这两个地图模组,跨服时地图数据会分不清归属,直接把不同子服的地图混在一起,各种错乱。
这里用遥远地平线做演示,原理一样的。



6月30日
朋友表示这两款地图模组属于刚需,不能砍。查了一圈发现,只有 Paper 核心才有相关的修复插件,而且这个插件没办法通过任何兼容层模组(比如 BukkitFabricLoader)移植到 Fabric 端上,纯粹是架构鸿沟。



7月1日
最终还是找到了一个变通方案,但这个方案并不适合所有服务器。如果你们真的急着要解决,我再说出来。

7月2日
第二个改造:服务器安全性。
后端绝大部分都是 1.21 的 Fabric 服,说实话,原生环境基本和安全绝缘。我的策略是先易后难:

· 给负责登录认证的 Paper 服上一整套安全插件,把防线前移;
· 在 Velocity 代理端装上 LuckPerms 做全局权限管理。
  然后发现朋友其实在所有 Fabric 子服都装了 LuckPerms,但没配置,也没装让 LP 适配一些原版指令的 Vanilla Permissions模组。



7月3日
着手配置 LP 数据库的时候踩了深坑:兼容 1.21 的 LuckPerms 版本并不新,配置文件采用的还是老旧的 HOCON 格式。照着正确格式反复配置数据库都不生效,不知道是啥问题。



7月4日
数据库配置依旧无解,无奈之下只好回归原始方法——逐个子服手动分配权限。好在我们很少给玩家下发权限,勉强能接受。
接着给所有 Fabric 子服加上模组:基础的反作弊、用于指令二次确认的 CommandSafety、保证默认无 OP 的 OpLock。至此,终于完成了从“给 OP”到“给权限”的转变,杜绝了因误给 OP 导致的隐患。



7月5日
第三个改造:VPN 拦截与优化,这也是最失败的一环。
原本使用的Connection Guard插件竟然默认阻止中国玩家进入,改了配置文件也毫无作用,只好换成 FoxGate 。



优化方面,除了增加 ModernFix(现代修复) 和 CrashExploitFixer 之外,不敢再多加。尤其是“奇观服”——这个子服因为塞了大量新增方块/生物的模组,模组冲突严重,最终只能忍痛移除 C2ME 和一部分优化模组,直接废掉了一个 Fabric 端的部分优化能力,非常可惜。

7月6日
没时间,鸽了。

7月8日
前一天只做了一些模组冲突测试。今天开始第四个改造:给 AuthMe 登录插件加一个登录界面。
然而 Paper 核心太老,新版 AuthMe 的登录界面配置根本用不了,连专门的界面插件都没法用。升级 Paper 核心后发现 Paper 核心与游戏版本强绑定,还很难换回去。



最后只能给 Paper 和代理端都装上 ViaVersion 与 ViaBackwards,既解决了界面需求,还能让不同版本的玩家都能进服。有福自然有祸,这个决定给后面埋了大雷。

7月9日
测试时发现,客户端模组装多了进不去。
经排查,代理端的 ViaVersion 会向后端服务器索要数据来核对版本。玩家缺模组或多模组没事,但一旦装了新增物品/生物的模组,插件向服务器索要这些不存在的物品数据失败,直接拒绝连接。

7月10日
试图只给后端子服安装 ViaFabric 及相关模组来解决问题,没用。



因为代理端缺少 ViaVersion 就根本读不懂后端 ViaFabric 发来的数据,两边根本握不上手。折腾了两天,最终还是给代理端把 ViaVersion 装了回去,认栽。

7月11日 – 12日
全服模组大测试,各种边界情况拉了一遍。服务器算是基本改造好了,但遗留的难题依然不少:

· Distant Horizons(遥远地平线) 因为版本低,装到服务器上依然无法正确识别服务器地图;
· 前面提到的ViaVersion索要数据、C2ME模组冲突等坑也还没有完美方案。

如果你们也想交流这些偏门问题,或者有更好的思路,欢迎来群里一起探讨。
Q群号:865100202

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 手机动态码快速登录

x
楼主 昨天 23:35 回复 收起回复
小僵尸论坛感谢有你~
回复 论坛版权

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 手机动态码快速登录

本版积分规则



介绍

我的世界(Minecraft)小僵尸论坛
收录了来自各地的我的世界(MC)爱好者们的各种资源

须知: 切勿滥用举报,任何与举报相关的信息必须属实!

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

官方

新浪微博 腾讯微博 微信公众号 投稿规则 版权声明 捐助我们

官方QQ①群: 291907844 (点击加群)
官方QQ②群: 421312192
官方QQ③群: 528726532

我的世界(Minecraft)小僵尸论坛

新会员

QQ|Archiver|手机版|小黑屋|Minecraft(我的世界)小僵尸论坛 |网站地图

GMT+8, 2026-7-15 02:34 , Processed in 0.211360 second(s), 149 queries .

快速回复 返回顶部 返回列表