这里按时间倒序列出云岭网站和服务端模组的每一次更新,方便你回头看某个功能是什么时候上线的、某个毛病是什么时候修好的。
v1.9.90
网站
2026-11-01
v1.9.90 · 首屏换了摆法,三维再也拖得动了
- 首屏重新排版:标题独占一行,三维投影放到左边,「加入服务器」和「当前在线」两张卡排在右边。手机上自动叠成一列。
- 修好了三维场景拖不动的问题——原来有两层透明的占位块盖在画布上,把鼠标事件全拦掉了;现在只有按钮和链接接管点击,空白处都能拖。
- 首页的模型换成直接烘焙你给的黑洞投影(不再是我手搭的),玻璃板、墙、台阶按真实厚度渲染,镂空结构终于露出来了。
v1.9.89
网站
2026-11-01
v1.9.89 · 黑洞重新捏了一遍
- 首屏那座「黑洞」重做:盘面减薄成两层、漏斗加深加大、中心挖出真的洞、内沿加了一圈事件视界亮环、外面加了四条螺旋亮带 —— 现在俯角看下去是一个往里卷的漩涡,不再像一块蛋糕。
- 相机俯角从 0.62 压到 0.78,正对着洞口看,模型整体上移,标题与按钮不再被模型压住。
- 修掉首屏「穿模」:底部那条云带原来压在「服务器地址」框上,现在给它单独留了位置,滚动时不再互相穿插。
v1.9.88
网站
2026-11-01
首屏把模型摆到正中,黑洞换成手搭的一座
- 首屏改成「标题在上、模型正中、按钮在下」,原来的「当前在线」卡挪到首屏下面一条,首屏不再被它挡住。
- 「黑洞」投影有 1380 万个方块、565×565 的底盘,压进首屏只会变成一片彩色噪点;所以照着它的样子手搭了一座:同心圆环 + 深色瞳孔 + 外圈机械盘,只有 5700 个方块、33 KB。
- 手机端照旧只看静态海报(新的黑洞图,54 KB),点「进入 3D」才真正加载渲染器。
v1.9.87
网站
2026-11-01
补齐账号信息,改联系方式要先验旧的
- 纯 QQ 建的号,第一次登录要先设一个登录密码、并绑好邮箱或手机号,才能进站。
- 换邮箱、换手机号,必须先收旧地址上的验证码,验过了才会换。
- 换绑 QQ 要先输当前密码,光有登录态换不了。
- 账号在新设备上登录时,会给已验证的邮箱发一封提醒。
v1.9.86
网站
2026-10-31
换页不再白屏一下、注册页的「手机号注册」能点了
- 点站内链接时,旧页面不再先淡成一片白底 —— 之前新页面要等网络往返才到,中间那一下就是白屏。现在旧页面保持原样,换页后新页面照旧淡入、内容依次上滑。
- 注册页的「手机号注册」原来点了像是没反应:它只是把单选按钮选中,页面上的提示文案与「发验证码」的去向都没变。现在切一下就整页重渲染,提示、去向、表单都跟着变。
- 如果站点没有配置短信服务,注册页不会再把你留在「手机号注册」这个空壳上,而是自动退回邮箱注册。
v1.9.85
网站
2026-10-31
顶部只留一颗「登录」,3D 首屏把模型放回合适的尺寸
- 顶部导航去掉了 QQ 入口 —— 未登录时右上角原来并排两颗按钮(企鹅 + 登录),现在只留「登录」;QQ 只出现在登录页和注册页。
- 3D 模型的相机距离改成按模型高度计算,不再是固定距离:窗口高一点不会糊满整屏,矮一点也不会缩成一小坨。
- 方块配色收进樱花色系 —— 绯红木板、下界疣、珊瑚这些高饱和杂色统一映射到樱花木、花瓣、叶子,远看不再是一片彩色噪点(几何一个方块没动)。
v1.9.84
网站
2026-10-31
首屏变成可以拖着玩的三维场景
- 首屏整个换成一座花园的三维场景:拖一下能转、滚轮能缩放、点方块就挖掉,十秒后自己长回来。
- 手机和不支持 WebGL2 的浏览器不会硬加载三维:先给一张同角度的静态海报,想看清楚再点右下角「进入 3D」。
- 换页也顺了:点站内链接当前页先淡出,新页面淡入、内容一块块往上滑;系统开了「减少动效」就还是原来的直接跳转。
- QQ 按钮那个抢眼的蓝底方块换成了官方 16×16 最小图标,跟其它图标一个分量。
v1.9.83
网站
2026-10-31
QQ 登录按钮改成全站统一的一颗
- 登录页、注册页、顶栏、个人中心现在用的是同一颗 QQ 按钮:腾讯官方小图标 + 本站自己的描边胶囊。腾讯规范本来就允许「小图标 + 文字」这一档,图标仍是官方原图。
- 个人中心的「账号与安全」新增「QQ 绑定」:可以绑定、换绑、解绑。没设登录密码的账号不允许解绑 —— 纯 QQ 注册的账号没有密码,解绑之后就再也进不来了。
- 排版与质感:大标题更紧更重、区块留白更疏、卡片悬停时有一团跟随指针的柔光。
- 动效:首屏逐条上浮、数字滚动、顶部阅读进度、首页卡片轻微视差。系统开了「减少动效」就全部关掉,手机这类没有悬停的设备也不启用光斑。
v1.9.82
网站
2026-10-31
QQ 登录换成腾讯官方按钮,登录页、注册页、顶部导航都能找到
- 登录页和注册页原来用的是自己画的企鹅图标加「QQ 一键登录」字样。腾讯的《网站前端页面规范》要求必须使用官方提供的「QQ登录」标识、不得自行修改,所以这两处都换成了腾讯官方 230×48 长图标原图,按原尺寸显示,不拉伸也不缩放。
- 顶部导航也加了一颗:宽屏用官方 76×24 的「QQ登录」按钮,窄屏(375 像素以下)换成官方 24×24 图标,免得把头部挤出一条横向滚动条。
- 顺手修了两处细节:官方按钮在任何状态下都不会变灰 —— 没勾《服务协议》时点它,会自动滚到勾选框并标红提示,而不是把按钮禁用(一颗灰掉的按钮,看起来正像"按钮没放对")。登录页那句「本站目前用邮箱 + 密码登录」也已经过时,10 种语言里一起改成只讲注册的那半句。
v1.9.81
网站
2026-10-18
手机上的「服务器指南」,正文被自己的目录盖住了 —— 已修
- 目录那块侧栏在桌面上是钉在左上角的窄条;一塌成单列,它变成整宽、手机上高一屏还多,却仍然钉在视口顶部 —— 正文全从它底下滚过去,于是看着像文字互相压住、白方块乱飞、内容不显示。现在窄屏(900 像素以下)它跟着页面一起滚走,桌面端照旧钉住。这条毛病在之前的版本里就有,只是直到手机上才被发现。
v1.9.80
网站
2026-10-18
小工具修好了:标签栏能点了,渐变更自由,计算器给你一份照着填就能开的清单
- 十个工具原来全铺在一页,点顶部胶囊只是跳到锚点,看着像没反应。现在是真的标签栏,一次只显示一个工具;地址栏
#t-xxx 照样能直接打开某个工具,手机上标签栏可以横着滑。渐变文字从写死的两色改成 2~6 个色标:点渐变条加一个、拖着调位置、点中色标再点「删掉这个颜色」,颜色按位置逐字符插值,§ 代码 / MiniMessage / tellraw / MOTD 四种产出一起变,MOTD 太长会提醒
- 开服配置计算器从三档预算扩到九项输入。模组数量、视距、模拟距离、跑不跑红石、目标 TPS、版本都能填。输出不再只有几行数字:内存会告诉你为什么会涨,另给可直接复制的启动命令与 Aikar’s flags、server.properties 与 spigot.yml 的逐行建议、以及按玩法分的模组插件清单。每人多少内存、模组系数、红石系数这三个最常变的系数放进了后台「小工具」,改完刷新就生效
- 卡顿体检改成逐项归因,还会跟本站实时数据对比。输入多了常驻实体、区块加载器、红石线、自动农场四项;输出把 MSPT 拆成七项给占比与毫秒数,只有真的占到大头(45% 以上)才点名叫「是它在拖」,否则如实说「最大的是它但整体不高」,每一项都配可执行的改法;它还会拉本站实时数据,告诉你「你填的规模理论吃多少、本站现在还剩多少」,拿不到数据就只做本地估算、不弹错
v1.9.79
网站
2026-10-18
液态玻璃重做成苹果那样:会折射、有高光、白底上也立得住
- ① 上一版玻璃基本只剩一层白,压在白色卡片上就看不出来了。这次按 iOS 26 那套重做材质:顶部一道亮线、底部一道暗线、外圈 1px 发丝环、内圈一点柔光,再加一层很轻的投影;桌面端仍然是真折射(背景会被轻微掰弯,悬停时整块浮起 1 像素,按下再落回去)。主按钮和危险按钮以前被整条排除在玻璃之外,现在也进来了:品牌色渐变留在按钮自己身上,白字的对比度不变,玻璃层只负责高光与描边,不叠折射。同一套材质铺到了输入框、下拉框、标签、游戏/工具/玩家徽章和顶部导航。
- ② 手机不再跑折射(那是最贵的一步),自动降级成模糊加高光描边:看着还是玻璃,但几乎不花 GPU。顺手修掉一个真问题:手机分支原来直接退出、连降级都不执行,等于手机上根本没有玻璃。桌面端也做了两件事:同尺寸的玻璃只生成一张位移贴图(首页 7 块玻璃只用了 4 张),滚出屏幕的不再计算;另外每块玻璃面积超过 30 万像素、或整页超过 80 张时就不再生成,宁可少一块也不拖慢滚动。
- ③ 后台「外观」里还是那个开关,默认改成开;不支持 backdrop-filter 的浏览器(Safari、火狐)自动退回磨砂,不是坏了。这次没有动配色、没有动排版,主题仍然是云岭蓝;上一版那套苹果白底已经整站回滚(后台、论坛、相册、地图都回到原样),只留下两个真 bug 的修复:后台危险操作的确认框原本根本没有样式(43 处「确认删除」弹出来是没有遮罩的裸框),相册窄屏的标题原本只在鼠标悬停时才出现。
v1.9.78
网站
2026-10-17
整站换成苹果风:白底、发丝线、胶囊按钮,顺手修掉一批不对的数字
- 外观整站重做,走的是苹果那套:白底、近黑字,一条 1px 发丝线代替阴影,按钮和筛选标签统一成 44 高的胶囊,顶栏滚过之后从半透明变成实心。毛玻璃全部撤掉——数据卡、时间轴、状态卡里那些模糊层都没了,只剩顶栏一层很淡的半透明。中文标题不再做负字距:中文字面本来就满格,收紧会挤成一团、看着像加粗,只有数字才需要收紧。顺带把后台也重排了一遍,并修好一个真 bug:危险操作的确认框在后台根本没有样式,弹出来是一个没有遮罩、没有定位的裸框,全站 51 处「确认删除」都受影响,现在是有遮罩、标题染红的居中卡片。整套挂在「苹果」这个配色方案下(后台 → 外观里能选),选回「云岭蓝」就整体回滚,不用改代码。
- 手机端这次专门对着「用起来不够好」改的:数据页那四个大数字原来一个占一整行,现在 2×2 一屏看完;玩家搜索框和「搜索」按钮原来是叠着的(按钮压掉占位文字将近 70 像素),现在并排一行;排行榜每行原来上下两条灰线叠成一道粗杠,改成一条 1px 发丝线;时间轴「卡片套卡片」的双层边框、各种虚线框、Windows 那条深灰厚滚动条,一起收拾干净;指南页侧栏「服务器实况」的标签和取值原来粘在一起(显示成「版本1.21.1」),改成左右对齐加分隔线。
- 审计出来的数据问题修了 10 条。最要紧的两条:首页「累计在线」把秒当成小时显示(原来写 35.7M h,真值是 9907 小时,差 3600 倍);封禁列表里有 4 个人显示「已解除」其实还在生效——心跳报上来「已存在」时只把状态悄悄改回生效,既不写历史也不恢复玩家的封禁标记。其余:状态页「已装模组」三个位置分别显示 0 / 12 / 160(真值 160),操作系统显示「—」,都是同一个原因:底层查询是白名单式返回,里面没有这两个字段;排行榜上有一串 UUID 当名字霸榜,现在显示成「未知玩家 · 87274f」;可用率的天花板被写死成 99.2%(按 30 秒固定间隔算的,实测心跳 31 秒);K/D 在没有阵亡记录时算出天文数字,现在显示「—」。还有两条属于榜单政策(角色与账号两种合并口径、一个只有击杀数的影子账号),没有硬改,差异和代价写在代码注释里等站长定。
v1.9.77
网站
2026-10-11
伪造真实 IP 这条路,从 nginx 到应用层都堵死了
- ① 先量再改:线上探针实测出两件事 —— 宝塔 nginx 用 PROXY 协议,真实客户端地址本来就在 REMOTE_ADDR 里(实测是 222.212.76.94,不是 127.0.0.1);而客户端自己塞的 X-Real-IP / X-Forwarded-For / CF-Connecting-IP 会被 nginx 原样透传给 PHP,三个伪造头全部原样到达,nginx 一个都不覆盖。② 两头一起加固:nginx 注入一串只有自家代理知道的密钥(客户端就算伪造这个头也会被 nginx 覆盖掉),应用层再补一道「REMOTE_ADDR 是公网就直接采用、不再看代理头」—— 就算哪天误把 trust_proxy 打开,限流、锁定、审计里的 IP 也不会变成访客自己指定的值。
- 顺手做了三件事:把 site/config/config.php 里那句会误导人的注释(「在 CDN / 反代后面时设为 true」)换成实测结论和警告 —— 本站照做只会把可伪造的头抬成权威值;给这次改动补了自动化测试(打开 trust_proxy + 公网 REMOTE_ADDR + 伪造头 ⇒ 仍返回真实地址),测试从 81 项增到 83 项全绿;线上排查用的临时探针按约定删掉了,现在请求它是 404。
v1.9.76
网站
2026-10-11
手机滚动更顺、几个安全口子堵上、聊天记录不再丢中间一段
- 手机流畅度的四处:顶栏滚起来时那层毛玻璃、窄屏上所有卡片的毛玻璃、入场动画给每个元素常驻的合成层、阅读进度条每滚一像素就重排一次 —— 全换成等效但便宜的做法(滚动状态的顶栏本来就不透明,那层模糊纯粹是白算;动画真正开始时浏览器自己会把图层提上来)。390 宽手机视口 + 20 倍 CPU 节流实测:最大帧 364 毫秒降到 57 毫秒。整体帧数的差别落在这台机器的噪声里,量不出稳定结论 —— 所以上面每一项都只在机制上说得通才敢动。
- 安全三处(高/中危,直接修了):① 本地调试用的
_admlogin.php 在线上必须 404(它能把访问者直接设成管理员),?to= 也再不能跳到站外;② 测速工具页的 ping / dns 拿域名去探端口时能被 DNS 重绑定骗去探内网,现在只连已经校验过的那个 IP;③ 伪造 X-Real-IP / CF-Connecting-IP 曾能绕开按 IP 的限流,现在只有来源确实是本机回环时才采信这类请求头。要把 ③ 彻底关死,需要在 nginx 里注入 X-CDR-Proxy-Secret 并在 site/config/config.php 填 security.proxy_secret —— 这一步动的是服务器配置,等你点头再做。
- 聊天记录三个真 bug:① 一天的消息超过 200 条时,中间那一大段在页面上永远看不到(最忙的一天 2796 条,旧路径只能翻到 500 条,中间 2296 条谁也看不见);② 消息排序只看主键 id,跨分界线那天会把后半夜的消息挤出窗口(实测永久跳过 53 条更新的消息);③ 发言失败时界面装作已经发出去了。现在按时间取、多了一个「加载更早」按钮往前翻,失败会明确提示并让你重试。
- 顺手:访客的页面不再一律禁止缓存(回退、前进快一些),登录状态照旧一点不缓存。全站 218 个 PHP 文件语法零错误,59 个自测脚本全跑了一遍 —— 与这次改动相关的 15 个套件,结果和改动前完全一致(原有的本地环境失败项一个没多)。
v1.9.75
网站
2026-10-10
服务端模组瘦身:把「会随人数放大」的开销挪出主线程
- 模组上报里最大的一块是地图:3 张地图各 256×256,约 19.7 万个点。原来这些点是在服务端那一 tick 里现拼成 JSON 的,拼完服务端才继续跑 —— 每半小时一轮,正好对上「偶尔卡一下」的那种尖刺。现在采集的那一 tick 只把数据交出去,拼装挪到后台线程:数据本来是现成的,拼 JSON 从来不需要占着主线程。
- 顺手把几处会随在线人数放大的开销收了:TAB 里的数字(在线时长、在线人数这些)原来每个玩家每一行都要重算一遍,而这些数字 30 秒才变一次;按名字找玩家的兜底是逐行扫全表(10 个人就是 100 次查找);成就列表每 10 分钟把上千条配方条目也过一遍;每 30 秒为了数一次实体把所有世界的实体全走一遍,还在主线程读配置文件和封禁名单。现在分别改成缓存、索引、只算一次、后台读 —— 上报给网站的内容一个字节都没变,页面显示和以前完全一样。
v1.9.74
网站
2026-10-05
后台管理补齐,个人主页的隐私开关真的生效了
- 后台侧栏那个「审核」角标以前只数论坛与相册两个队列,而前台管理面板数的是五个 —— 现在四处统一到同一个函数,而且每个菜单项各挂各的角标。破坏性操作(删用户组、删导航项、清空聊天记录、清缓存、清理未绑定)以前点了就直接执行,现在一律先确认。皮肤、头像背景、消息日志三个列表以前最多只能看到 200 条和 60 条,现在能翻页。
- 「允许别人查看我的个人主页」以前关掉其实只影响团队页的名单,个人主页照样人人可见 —— 现在真的按它放行,本人除外。顺手把「修改密码」和「退出其它设备」也记进了审计日志。
v1.9.73
网站
2026-10-05
红色的「确认 / 删除」按钮不再看不见
- 聊天里点撤回弹出的确认框,确认按钮是一片空白 —— 根因是开了液态玻璃之后,玻璃规则会把按钮底色清掉、只留下白色文字,红底按钮就变成白底白字。现在红色实心按钮和蓝色主按钮一样不参与玻璃。
- 同一个毛病波及全站所有红色按钮(撤回、删除、解绑等),一并修好。
v1.9.72
网站
2026-10-05
点分页不再弹回页面最上面
- 以前在页面下方点「下一页」会一路弹回页首 —— 现在分页按钮只把它上面那份列表顶到导航栏下方;列表开头本来就在眼前时一动也不动。前进后退会回到原来的滚动位置。
- 顺手几处小改:导航「服务器」里补上「种子地图」、页内锚点不再被吸顶导航盖住、相册卡片显示作者、首页在线玩家点头像进个人主页。
v1.9.71
网站
2026-10-05
后台权限收紧,顺手修掉几处小毛病
- 设置、轮换密钥、备份恢复、系统工具现在只有服主能进 —— 服务器管理组照常管内容、举报和白名单。
- 局部换页带出来的几个小毛病一起修了:深色不再被打回、同一条表单不会被提交两次、认领倒计时不再走快、排序下拉不再整页刷新。
v1.9.70
网站
2026-10-05
选页不再整页刷新
- 分页、筛选、搜索、排序改成只换内容,地址栏照常变、后退键照常能用。
- 保存 / 审核 / 删除这些写操作保持原样跳转。
v1.9.69
网站
2026-10-05
修好玩家列表搜索框被卡片挡住
- 页面上带动画的元素都带 will-change,而 will-change 会创建层叠上下文,于是下拉框的 z-index 只在「自己的卡里」有效,压不过 DOM 顺序更靠后的统计卡
- 改成把整张搜索卡抬起来,下拉现在完整浮在最上面
v1.9.68
网站
2026-10-04
修好手机版个人主页「划不动」
- 3D 皮肤模型框原来写死 touch-action:none 并在 touchstart/touchmove 里无条件 preventDefault,手指落在它上面时整页滚不动 —— 现在改成竖向交给浏览器滚动、横向才转模型
- 页头那块「拖背景」也跟着收窄成只认鼠标(以前手指按在上面也会被吃掉滚动)
v1.9.67
网站
2026-10-04
服务器指南重写:内容厚了一倍,指令终于分得清哪些是给玩家的
- 新手指南、服务器规则、常见问题、关于云岭四页全部重写,每页都写清了「为什么这么做」和「卡住了怎么办」
- 指令页顶上新增「玩家常用指令」,按进门必用 / 走动传送 / 聊天 / 查看分组;下面那张 435 条的大表原样保留
v1.9.66
网站
2026-10-04
手机上那行滑动提示不再贴着表格
- 「↔ 手机上可左右滑动查看完整表格」以前紧贴在表格上边框上,看着像和表格叠在一起,现在拉开了间距
- 导航条滚起来之后改成完全不透明:以前是半透明的,页面上的大字会从底下透出来
v1.9.65
网站
2026-10-04
给上传的 SVG 补了一个安全漏洞
- 以前只要有人上传特制的 SVG 头像或背景,就能拿到每一个看过它的人的 IP 与浏览器信息。现在这类外链会被自动抹掉,画面本身不受影响。
- 另外补上了 HSTS 与几条保守的内容安全策略。
v1.9.64
网站
2026-10-04
审核角标不再"常亮" + 状态页不再显示内网地址
- 后台那个「审核」角标数的是 5 个队列,可点进去的「服务器管理」面板只做得了 2 个 —— 于是角标亮着、进去却没得审。现在两边口径一致了,面板顶部还多了「更多待审」一排:相册 / 皮肤 / 论坛,点一下直接跳到对应的后台页。
- 服务器状态页的「网页地图」那一行以前写着
127.0.0.1:8100(那是服务器内部地址,只有探测用),现在改成显示外网的网页地图地址。
v1.9.63
网站
2026-10-04
后台审核能直接看视频了
- 挂了动态背景视频的背景,审核卡片上现在直接放那段视频 —— 点一下播放键就能看,默认只加载开头(不费流量),右上角还会标出「含视频」。
- 以前卡片只显示玩家另外挑的封面图,跟视频内容可能完全没关系(有人传的是太空画面、封面却是动漫图)。现在不会再看错。
- 顺手修好「上传时间显示 1970-01-01」:那是我代传素材的工具写错了时间格式,数据与工具都已修正。
v1.9.62
网站
2026-10-04
登录 500 修好了 + 两处观感调整
- 修好一个 500:上一版我给「登录成功」后的审计日志写错了参数位置,导致只要真的登录成功就弹「内部错误」。现在登录会正常跳转,不再报错。
- 登录页那句「我已阅读并同意《服务协议》和《隐私政策》」挪到了表单最下面(在「登录」按钮之后),和常见登录页的样子一致;没勾仍然登不了。
- 个人主页页头的压暗改成平滑渐变,去掉了原先那条很明显的横线 —— 现在是从上往下自然淡出,不再是「一条胶带贴在页头」。
v1.9.61
网站
2026-10-04
登录要勾同意条款了
- 登录页多了一个勾选框:「我已阅读并同意《服务协议》和《隐私政策》」——不勾就登不了,QQ 一键登录与邮箱密码两个入口都拦(服务端也校验,光禁用按钮拦不住人)。
- 新写了《服务协议》与《隐私政策》两个页面,逐项写清楚本站存了你什么:QQ 给的昵称与 openid、邮箱与密码哈希、绑定的角色、游戏统计、你上传的图、登录的 IP 与时间。
- 也写清楚了会跟谁共享 —— 只有三个:QQ 互联(登录)、mc-heads.net(没自传头像时取皮肤头像)、126 邮箱(发验证码)。没有广告联盟,也不卖数据。
- 还写了保留多久、怎么要求删除或导出、未成年人怎么办。页面底部「快速链接」里也有这两个入口。
v1.9.60
网站
2026-10-04
页头文字在亮帧上读得清了
- 视频替掉照片之后,页头白字压在蓝天白云上,最差处只有 1.16:1,几乎读不出来。真因是绘制顺序:视频是真实子元素,而那条压暗渐变挂在
body.cdr-body::before(生成内容)上,生成内容永远排在真实子元素之前,于是渐变被视频整层盖住,一点作用都没起
- 改法是把压暗做成页头自己的背景 —— 一条自上而下的渐变(顶部 62%,到 350px 处收干净),只压住页头那一条,画面主体(人物、地面、水面)一个像素都不动;全程没有新增任何固定定位的图层,页面高度保持 6816px 不变
- 最亮那一帧上,页头各项对比度从 1.16~2.63:1 提到 4.85~6.91:1(白字标准 4.5:1)。顺带修掉一个只在线上出现的回归:「返回」按钮在液态玻璃下底面是半透明的,会被压暗罩一起压暗(5.19:1 掉到 2.14:1),现在按钮文字跟着转白,最差处 6.04:1
- 只有传过横幅的页面会生效,没传横幅的页面一个字节都不变;滚轮、按钮、视频播放都复测过
v1.9.59
网站
2026-10-04
动态背景:滚轮与点击失效的真因找到了
- 真因是类名撞车:
.pub-bg-video 既是视频元素的类,又被拿来当 <html> 上的开关类。于是整条「铺满屏幕的固定视频层」规则落到了根元素头上 —— 根元素被设成 position: fixed,页面高度当场塌成屏幕高,滚轮自然滚不动
- 更隐蔽的是
pointer-events: none,它是会继承的:整棵文档树都收不到鼠标,只有 <html> 接得住,「返回」按钮于是形同虚设
- 修法:状态类改名
pub-bg-on,视频元素那条规则收窄成 video.pub-bg-video,两边不再同名,将来谁再挂这个类都不会误伤整页
- 背景素材换回第一版(4.50 MB → 4.41 MB),压暗不再烧进画面,颜色恢复正常;另外修正了三个本地体检台,它们以前量「视频那一层」其实量到的是
<html>
v1.9.58
网站
2026-10-04
动态背景:修掉一处白送的高度、拖拽更好找
- 换了新视频(15.98 MB → 4.50 MB),压暗直接烧进画面,手机上看到的静图也是同一张
- 撤掉了一个多余的遮罩图层 —— 它虽然看不见,却让页面凭空多出一屏多的高度
- 鼠标移到页头上会变成「抓握」光标,按住就能拖背景;门控放宽,带触摸屏的笔记本也能用
- 滚轮的问题还在查,这一版先把上面三处修了
v1.9.57
网站
2026-10-04
个人主页能用动态背景了
- 传一段 5 秒~1 分钟的无声小视频,电脑上循环播放;手机上仍然只放静图,一点流量都不多花
- 只有「横幅」那一格能挂视频,和图片走同一条审核;上限 6 MB,超了会被明确拒掉、不会静默
- 手机看到的静图就是你那张横幅,所以记得选一张和视频气质接近的
- 这个功能默认关着,先在后台开关里打开,上传框才会出现
v1.9.56
网站
2026-10-03
「选了图、点了保存、却什么都没发生」修好了
- 有玩家上传了头像和横幅、视频都发来了,后台却一条待审都没有 —— 那张图根本没到服务器,$_FILES 里从头到尾是空的
- 真因是 iPhone 相册默认的 HEIC:浏览器解不开它,裁剪弹窗把这种情况当成「取消」,顺手把文件从表单里抹掉了。提交时表单里没有文件,服务端只能当「这次没换图」,回一句绿字就完事
- 现在解不开的图不再丢弃 —— 原图照常上传(顶多不裁剪),并且告诉你是怎么回事
- 另外补了一道服务端兜底:前端说选了图、服务端却没收到文件,就直接报错,再也不会假装成功;真的点了取消也会明确提示「已取消,没有上传」
v1.9.55
网站
2026-10-03
「未知玩家」的名字修复搬进了后台
- 命令行脚本 .tools/_backfill-names.php 现在成了后台「系统工具」里的一个按钮,不用再敲命令
- 它会读历代备份里的 usercache.json,把「名字还是 UUID」的行补回真名,并把会话记录 / 成就 / 皮肤一起搬过去
- 页面先给你看要改哪些行、改成什么,确认了再点执行;动手前自动落一份数据库快照
- 只动名字是整串 UUID 的行,真名被占用时合并,正常玩家的名字一律不碰
v1.9.54
网站
2026-10-03
排行榜:几个维度各排前十,一屏看完
- 你说的是「细分排行榜」。玩家列表的排序下拉一次只能看一个维度,想知道"谁挖得最多、谁死得最多"就得来回切。新的 /ranking 把 9 个维度各取前十放在同一屏
- 每个维度一张卡,卡里是名次、头像、名字和那个维度的数值 ——
- 数值和玩家列表逐字一致(同一份格式化出口,两处各写一份迟早会对不上)。点名字进个人主页
- 卡头右侧的「查看全部」会带着这个维度打开完整列表(?sort=),不用再去下拉里找。入口在玩家列表页标题下的「排行榜」按钮;没有数据的维度不出空卡,假人照旧不进榜
v1.9.53
网站
2026-10-03
个人主页背景现在能拖了
- 传过横幅的主页,背景照片可以按住鼠标直接拖——像看一张能推动的风景照,拖的时候页头、头像、名字都稳稳压在照片上
- 只在最上面那块(页头)能拖。下面的卡片、表格、按钮照常点,选中文字也不受影响;按按钮时不会误触发拖拽
- 松手会弹回原位,拖到边缘就停住(四周各留一点余量),不会把照片拖出屏幕露出底色
- 只在鼠标 / 触控板上生效;触屏和系统里开了「减少动态效果」的用户自动关掉,行为和以前一样
v1.9.52
网站
2026-10-03
「未知玩家」以后会自己变回真名
- 列表上有几行名字显示成「未知玩家 · 87274f」——那串其实是他的 UUID。服务端的名字缓存只保留约一个月,老会员停玩一阵子之后模组就查不到名字了,只能把 UUID 报上来
- 问题是这种行以前永远好不了:等玩家下次上线、服务端重新认识他,改名那一步会撞上「名字不能重复」的约束(真名往往已经被另一次上报新建了一行),错误被吞掉,这行继续挂着 UUID
- 现在两条路都走通:真名没人用就直接改名(并把那段时间的会话记录、成就、皮肤一起搬过去);真名已被占用就并进那一行——时长相加、进度取并集、首末时间取边界
- 不用你做任何事,他下次上线自己就修好了。日志里会记一笔「认领=N」,后台「系统工具」能查到
v1.9.51
网站
2026-10-03
头像全站生效了;登录记录分页;浅色按钮不再发灰
- 你自己传的头像,以前只有个人主页看得到 —— 全站的头像走的是另一条路,它压根不知道你传过图。现在玩家列表、评论区、导航也都会用你的头像了;没传过的人一点变化都没有
- 「最近登录记录」以前一页 30 条,太长。现在每页 10 条,底部是站里其它列表页同款的翻页器(只有一页时不显示)
- 「展开全部徽章」那颗按钮看着发灰、像被禁用 —— 是权重没压住:浅色按钮的蓝底被基础那层白盖掉了,连它自带的底色也被抹了。已修
- 个人主页左栏下面那块空白:现在左栏会长到和右栏一样高,由末尾的「服内排名」撑满,不管你徽章是展开还是收起都不会再留洞。雷达那段说明也改成点一下才展开
v1.9.50
网站
2026-10-03
液态玻璃照参考重写了:这次是真的那块玻璃
- 上一版只有「一张渐变贴图 + 位移」,怎么调都不像。逐条对照参考才发现缺的是三样东西,这一版全部补齐
- ① 折射按真实光学算:玻璃厚度、边缘倒角、折射率(1.0~3.0)和圆角曲面一起参与,边上才有「厚玻璃」那种放大感;上一版那个衰减曲线是我拍脑袋写的
- ② 加了高光层 —— 沿着一圈边缘、朝固定方向的反光。这是液态玻璃最显眼的特征,上一版完全没有,难怪一直觉得不够
- ③ 位移之后补回饱和度(折射会把颜色拉灰),再去掉一点点采样锯齿。模糊依然只能给 0.3px:它一大,「邻近像素」就没有差别,折射会整个消失
v1.9.49
网站
2026-10-03
头像可以自己裁剪了:拖一拖,框里看到的就是最终效果
- 以前只能整张图传上去,由系统自己居中等比缩放 —— 脸偏在一边就只能认了。现在选好图会先弹出一个取景框:拖动图片调整位置、滚轮或滑块缩放,框里看到的就是最终头像
- 导出是 512×512(和服务端的头像上限一致),格式 WebP。小图不会被放大 —— 放大只会更糊,所以按原尺寸裁。取景框在窄屏会自动收窄,手机上也能用
- 有两类图片故意不裁:GIF 动图(裁完只剩一帧,动效就没了)和 SVG,它们原样走老流程。裁剪过程中任何一步出问题(浏览器不支持、内存不够)都会自动放行原图 —— 绝不会让你卡在「选了图没反应」
- 横幅不裁剪 —— 它本来就是宽幅,裁成方块没意义。这个功能只在「我的 → 我的资料」里上传头像时出现。
v1.9.48
网站
2026-10-03
窄屏把毛玻璃降了一档,手机上的掉帧有救了
- 手机版个人主页卡顿的原因不是动画写错了,而是模糊本身太贵:每张卡片都挂着
blur(32px) saturate(180%),而这一页同时可见的玻璃面有七八个,滚动时每一帧都要把它们背后的像素全部重采样一遍
- 32px 和 14px 的差别肉眼几乎看不出来 —— 卡片底色本来就压着 .70~.78 的白,模糊只是让背后的照片化开;但采样成本按半径大致是平方级的。饱和度 180% 也一起降到 150%,这个页面里没有任何地方需要颜色更艳
- 只在窄屏降档:桌面端一切还宽裕,一个像素都没动。这是纯性能改动,外观上你基本察觉不到,但手机上滚动会顺很多
- 这是纯性能改动,外观上你基本察觉不到 —— 如果你在手机上滚动还是觉得卡,告诉我具体是哪一屏,我接着查。
v1.9.47
网站
2026-10-03
手机版状态页短了一大截;封禁名单不再每行都挂一句「未绑定 QQ」
- 手机版的服务状态页以前每一行服务都被挤成两三行。原因很具体:那一行是三列网格,最小宽度加起来 504 像素,而手机视口只有 492 像素 —— 刚好塞不下,于是每行都被迫折行。现在窄屏改成两列、「备注」独占一行,整页短了 500 像素以上
- 顺手把面板内边距、可用性色条、节点卡的尺寸在窄屏下调紧了一档。这些改动只写在状态页自己的一段样式里,全站其他页面一个像素都不动
- 封禁名单里,每一行玩家名下面都挂着一句一模一样的「未绑定 QQ」,看着像这张表出错了。查下来是后台那个「封禁页隐藏 QQ」的开关算出来了却从来没被用过 —— 设置一直是死的
- 现在三处都听这个开关了:列表行、头像上的 QQ 角标与悬停提示、以及展开后的明细。「封禁理由」目前仍写死中文(10 种语言下都显示中文),这个我留到后面单独处理
v1.9.46
网站
2026-10-03
背景图能动了,还能跟着鼠标轻轻让开
- 背景图现在支持 GIF 动图。以前不是"没支持",而是"支持了但一动就被压平"——所有上传图都会被统一重编码成 WebP,而解码 GIF 只拿得到第一帧,所以动图传上来就变成静图
- 修法是:识别到多帧 GIF 就原样存盘、不重编码,动效完整保留。代价是动图不会被缩到 1920×1080(重编码就等于杀掉动效),这是有意的取舍
- 背景现在会跟着鼠标动:指针移动时,背景那一层朝反方向轻轻平移最多 10 像素,看起来像照片有景深、镜头跟着你看
- 实现上每帧只改一个 CSS 变量,照片本身一次都不重绘;鼠标停下就收敛、不再排帧,静止页面的开销和以前完全一样。只对鼠标与触控板开启,系统开了"减少动态效果"时整个关闭
v1.9.45
网站
2026-10-03
「返回」键上那个「十」字:查了四轮,真因藏在注释里
- 那个「十」字没了。它是浏览器在小盒子上做毛玻璃采样时留在上边缘正中的一块亮斑 —— 这颗按钮只有 58×35,亮斑占的可见面积很可观;卡片面积大,同样的亮斑被稀释掉,所以卡片上一个都看不到
- 修法是这颗小按钮不再挂毛玻璃采样,着色从 8% 提到 14% 把通透感补回来。代价为零:开着与关掉折射,这颗按钮的像素差异是 0 / 1766688(最大单通道差 1)
- 但真正难缠的是下一层:规则写对了却不生效。我在注释里逐字引用参考 CSS 时写了
/* 6% */ —— CSS 注释不能嵌套,那个 */ 把大注释提前关掉,紧跟的 } 又把规则提前关掉,解析器一路把后面所有规则全吞了
- 这个坏注释从 1.9.42 起就一直在,等于整整三个版本里,按钮玻璃的内圈柔光和外投影都是丢的 —— 现在一并回来了。教训已写成自检:注释里绝不能写会提前终止注释的东西(同样的坑我在 PHP 里已经栽过两次)
v1.9.44
网站
2026-10-03
鼠标一动就闪的那条横线:查了八个版本,真因是悬停时卡片被抬起 2px
- 真因不是高光、也不是毛玻璃的面积,而是全站的一条悬停样式:鼠标每划过一张卡片,它就被抬起 2px,而卡片带毛玻璃 —— 一移动,浏览器就得把它背后的画面重新采样一遍,采样按小方块切开,方块接缝就是那条线
- 中间走了五个弯路(把高光从背景搬到伪元素、改成 transform、改成真实子元素、挪出玻璃、整段删掉),每一条看上去都「应该有用」,但都没碰到真因
- 现在的修法:玻璃面悬停时不再位移,改用描边 + 阴影给反馈;另外去掉了两处整幅宽的毛玻璃(导航条与钉住的名字行)—— 大面积采样是最贵的一档
- 同一批还做了两件你看得见的事:鼠标跟随高光整段删除(太晃),按钮的液态玻璃照参考重写成三层(折射与着色分开)
v1.9.43
网站
2026-10-03
后台登录按钮没了:是我上一版写出的优先级 bug
- v1.9.42 那套按钮玻璃有个优先级写错了:基础那层 8% 白的着色是「5 个类 + 2 个元素」,而主按钮的深蓝渐变只有「3 个类」—— 于是基础层永远赢,深蓝渐变根本画不出来;同一段里的
background: none 又把主按钮自己的渐变抹掉了。深蓝底 + 白字就这样变成了白底 + 白字,按钮整个消失
- 修法:实心品牌按钮(主按钮)不再参与玻璃。它本来就是深蓝底 + 白字,玻璃这套只适合浅色按钮。主按钮恢复成原来的实心样式
- 同一个 bug 还悄悄吃掉了悬停提亮(它也是「4 个类」,同样输给 5 个类)—— 所以上一版说的「放上去和没放上去不一样」其实从来没生效过。现在真的生效了
- 还有一个附带 bug:
background: none 连加载中的按钮一起抹了,而玻璃层又排除它们 ⇒ 转圈那几秒按钮整个透明。现在加载中的按钮会恢复底色
v1.9.41
网站
2026-10-02
鼠标跟随的那团光删掉了
- 删掉了什么:指针在卡片上移动时跟着走的那团冷蓝色柔光,整段移除 —— 变量、开关、那层元素、脚本,一个碎片都没留
- 为什么删:你连着报了四次「鼠标一动就闪一块 / 一条横线」,我改过四个版本(写在卡片背景里 → 搬到伪元素 → 改成真实子元素 → 挪成整页的独立层)都没治好。你最后一句是「鼠标跟随的高光删掉,太晃了」—— 那就不要了
- 顺带的好处:删掉之后,指针划过不再引起任何重绘。这正好也是那条横线的最后一块拼图 —— 带毛玻璃的元素内部只要有东西在逐帧变化,浏览器就得反复重算它背后的画面,重算又是切成小方块做的,方块接缝就是你看到的那条线
- 别的都没动:毛玻璃的透明度、第一屏的照片、钉住的名字行、按钮的液态玻璃,全部保持原样。没有鼠标的访客和触屏访客本来也看不到这团光,对他们来说这次更新等于零变化
v1.9.36
网站
2026-10-02
鼠标跨过元素时高光不再跳一下;按钮的液态玻璃加强了
- 鼠标高光不再"跳一下":以前指针从一块卡片移到另一块时,光斑是瞬移的 —— 旧的立刻消失、新的立刻出现。现在旧的那块留在原地淡出、新的在鼠标位置淡入,中心点也跟着平滑走,整段大约 180ms
- 为什么没用 CSS 过渡:
transition 是"整体替换"的属性,没有"只给某一个属性加过渡"的写法;要写就得用一个会同时盖掉卡片入场动画和悬浮动画的选择器,滚动入场会从"淡入上浮"直接变成硬切。所以改成让脚本逐帧缓动一个数字(光强),跑完就停、不常驻循环
- 按钮的液态玻璃加强了:折射位移 14 → 50、倒角带加宽,并补上真正让"看着像玻璃"的那几样 —— 上沿一道镜面亮线、左右两沿的冷暖色散描边、内圈柔光;同时把模糊从 1.5px 收到 0.8px(模糊正好会抹掉位移要吃的那点细节)
- 还是那句实话:只有 Chrome / Edge 看得到;而且折射要有东西可折射才明显 —— 按钮压在白卡片上几乎为零,压在横幅照片那种有明暗细节的地方才看得出来。开关在后台「系统设置 → 外观效果」,默认关
v1.9.35
网站
2026-10-02
第一屏先看照片,往下滚内容才升起来;按钮有了液态玻璃
- 第一屏改成「英雄区」:传过横幅的玩家主页刚进来只有页头和背景照片铺满整屏,内容区完全不显示;滚轮往下一动,整块内容淡入并升起来(仍然保持 28% 透光);滚回顶部它会缩回去,可以反复看
- 为什么动的是内容块本身、而不是给它套一层容器:祖先只要带上「不透明度小于 1」,里面那一堆
backdrop-filter 玻璃就会采到「空的」背景,磨砂效果整个坏掉。逐块淡入淡出就没有这个祖先。另外正文里唯一两处 position: fixed(背景层和钉住的名字行)都不在这个集合里,所以加位移是安全的
- 按钮的液态玻璃折射(后台「系统设置 → 外观效果」多了一个开关,默认关):按钮边缘会像一块厚玻璃那样把身后的图案掰弯一点。用的是 SVG 位移贴图 +
backdrop-filter,贴图在打开页面时用 canvas 现画一次,没有逐帧脚本
- 只有 Chrome / Edge 看得到:Safari 与火狐不支持这条 CSS 特性,表现是静默失效(不报错、也不画),会自动退回现在这套磨砂玻璃。而且折射要有东西可折射才看得见 —— 按钮压在白卡片这种纯色表面上时效果几乎为零,压在横幅照片那种有明暗细节的地方才明显
v1.9.34
网站
2026-10-02
卡片透了一点、鼠标高光收小了,钉住时会滑下来
- 改了什么:传过横幅的主页上,大卡片的透光从 5~10% 提到约 28%(照片能看出来了),统计小格和雷达卡跟着一起调淡
- 为什么统计小格那排看着是两种颜色:鼠标跟随高光原来是一块半径 320px、alpha .22 的冷蓝色斑,盖住卡片左半边时,第 1 格实测 rgb(189,193,197)、盖不到的第 4 格 rgb(245,246,247) —— 同一排差 56 级。现在光斑收到 200px、alpha 降到 .10,并且小格不再单独参与高光(亮的永远是最外层那张卡片),同一排实测差 3 级
- 「闪烁」的另一半:指针从卡片空白移到小格上时,脚本的落点在「整张卡片」和「那一小格」之间来回跳,光斑从一大片瞬间换成一小点。把小格移出高光范围之后,这条跳动没有了
- 切到钉住时加了一段滑动:名字那一行从导航下面滑下来 10px 并淡入,180ms;系统开了「减少动态效果」时这段动画和按钮的回弹一起关掉(鼠标跟随高光保留)
v1.9.33
网站
2026-10-02
往下滚的时候,名字那一行会钉在导航底下
- 改了什么:传过横幅的玩家主页,往下滚时「头像 + 名字 + 等级 + 徽章」那一行会钉在站内导航下面,卡片从它底下滑过去;签名不在这一行里、照常滚走,「返回」跟名字一起钉住
- 为什么不能用 `position: sticky`:这一行的父元素是
.cdr-container,它只有页头那么高,sticky 的活动范围就被框在里面 —— 滚过页头它照样跟着走。所以改成了 position: fixed,再用脚本在它原来的位置插一个等高占位块(fixed 会脱离文档流,不补占位的话钉住那一刻整页会往上窜 86px)
- 钉住之后字色要反过来:这一行平时是压在横幅图上的白字,钉住后底下换成了浅色玻璃,白字压白底等于看不见(实测过一版:头像和「在线中」都在,名字那一格是空的)。所以钉住态的名字、等级、徽章统一换成玻璃面上用的墨色
- 只影响传过横幅的玩家主页 —— 没传横幅的页面(比如
/players/zlc)一个字节都没碰
v1.9.32
网站
2026-10-02
鼠标高光只亮该亮的那一块了
- 真因是自定义属性会继承。脚本给鼠标压住的那张卡挂
.is-lit,--glass-spot 就顺着继承链一路传给卡里每一个 .stat-mini —— 一个开关变成了七八块亮面。站长看到的就是「我鼠标在另一个地方,怎么全亮了」。实测证据:探针黄条新增了一个 spot= 计数,它数的不是 .is-lit 有几个,而是算出来的 --glass-spot 有几个元素不是透明 —— 修之前指针停在卡片标题的空白处时是 lit=1 spot=8/27
- 修法:让每个玻璃面自己把
--glass-spot 重置成 transparent,继承链就断在这里;哪一块被指针真正压住,由脚本单独给它挂 .is-lit。改完 spot=1/27
- 顺带修的第二个坑:那条重置和
.is-lit 的规则特异性一样,而它写在后面 —— 按「后来者胜」,光写 body.cdr-body .is-lit 会被它整条盖掉,高光会彻底消失(实测 lit=1 spot=0/27)。所以 .is-lit 那条必须逐个列全四个选择器、把特异性抬上去。这一步要是漏了,就是从「亮得太多」直接变成「一点都不亮」
- 另外把坐标改成进入新元素时同步写一次,不再只等
requestAnimationFrame:否则第一帧读不到坐标,光斑会先闪现在卡片正中再跳到指针那儿。现在一个 .is-lit 就是一块亮面,指针在哪亮在哪
v1.9.31
网站
2026-10-02
液态玻璃加两处手感:鼠标跟随高光 + 按钮回弹
- 鼠标跟随高光:指针在任意一块玻璃面上移动时,会有一小团冷蓝白的柔光跟着指针走 —— 只有指针所在的那一张亮,其余保持原样。它是画在卡片背景里的一层
radial-gradient,读的是脚本实时写入的 --glass-mx / --glass-my。不加节点、不碰层叠上下文,也不干扰卡片的模糊。浅色主题用的不是白光而是冷蓝白:白卡片(rgb 229~245)上再叠白光最多只能提 6 级,肉眼等于没有
- 页头照片带加高:
.page-head 的下内边距从 30px 加到 160px(整块约 317px),下面那排白卡片跟着整体往下推,头像、名字、等级标签现在直接压在横幅图上 —— 这就是「露出背景图」。只加高、不加内容,窄屏收到 72px;没有把内容整体下移,那样顶上最暗的遮罩就白留了,转白的那几行字会看不清
- 按钮 spring 回弹:按下时压到 .955,松手时用
cubic-bezier(.34, 1.56, .64, 1) 收回来 —— 第二个控制点的 y = 1.56 大于 1,曲线会冲过终点再回调,那一下「弹」就是它。纯 CSS,不用 JS、也不用物理引擎
prefers-reduced-motion 的降级改成只降「自主运动」:按钮回弹(松手之后自己弹一下,属于自主运动)换成普通的短过渡,仍然有按下反馈;鼠标高光保留 —— 指针跟随是直接操纵,动的是指针本身,不是页面自己动。站长那份液态玻璃要求原文写的也是「去掉 displacement,只保留 blur + 高光」。这也是这台机器唯一能看见高光的办法:实测 Windows 的动画效果是关的(MinAnimate = 0 / DragFullWindows = 0 / VisualFXSetting = 2),浏览器会如实上报 reduce,高光要是一起关掉就永远看不到
- 以上全部只在传过横幅的玩家主页生效(整段仍然在
$pubBgCss !== '' 里);其余页面 —— 包括没有横幅的玩家页 —— 一个字节都没碰,自检里有四条断言专门守这件事
- 一句实话:这两个都是「手感」效果,静态截图看不出来,得真的把鼠标划过去、真的按一下按钮。另外建议顺手在系统设置里打开动画(设置 → 辅助功能 → 视觉效果 → 动画效果),否则浏览器会对所有网站说「用户要求减少动态效果」
v1.9.30
网站
2026-10-02
液态玻璃重做:卡片颜色不再跟着滚动变
- 真因不在渲染引擎:个人主页的背景图挂在
body 上、用的是 background-attachment: fixed。那句写法的意思是"图钉在视口上不动",而它不是一个独立的合成图层 —— 浏览器每一帧都要为卡片的 backdrop-filter 重新采样它,采样窗口和滚动位置不同步就"跳色";同时卡片在移动、图不动,于是每张半透明卡都会把整张照片扫一遍。两件事叠在一起才是站长看到的"有时深、有时浅、又时正常"
- 治滚动时闪:背景从
body 挪到一个 position: fixed 的独立图层(body::before,z-index: -1、pointer-events: none、will-change: transform)。独立图层可以被提升为合成层,整个滚动过程中采样源都是同一块已合成的位图,不再逐帧重采样
- 治静止时深浅不同:卡片改成"材质自己定色"。依据是实测的线性外推 —— 跨滚动差 ≈ (1−alpha)×53,要压到 4 级以内需要 alpha ≥ .925。大卡上沿 72% → 95%、下沿 60% → 90%;统计小格 80%/70% → 97%/94%;雷达卡 76%/66% → 96%/92%。照片仍有 5~10% 从卡里透出来,那是玻璃的色感来源
- 玻璃做成了多层材质:噪声层 + 竖向渐变 + 边缘掠射高光 + 内折射倒角,参数全部抽成变量(
--glass-blur --glass-sat --glass-highlight --glass-displacement --glass-noise),要调直接改一处。一句实话:真正的 SVG feDisplacementMap 折射做不出来 —— Chromium 与 Safari 的 backdrop-filter 只接受滤镜函数、不接受 url(#svgfilter),所以用一圈内折射倒角来近似那个视觉,没有假装做了
- 效果:同一个位置跨滚动只差 3~6 级(上一版 18 级,最早 100 级),整体亮度落在 229~245;深色主题只差 1~3 级。同时去掉了玻璃面上的
text-shadow 白晕 —— 卡面稳定之后它不再有用,只会吃掉 12px 小字的字干
- 顺便修「能力雷达图字不好看出来」:没动任何透明度,只把「全服」那几行副标签的字号从 .76rem 提到和主行一致的 .84rem、颜色从次要灰提到正文色、补一点字重。真因是 12px 与 13px 的中文在 Windows 下走的是不同的抗锯齿档。以上只影响传过横幅的玩家主页,没有横幅的页面一个字节都没碰
v1.9.29
网站
2026-10-02
翻页时卡片忽深忽浅,修好了
- 真因不是渲染 bug:个人主页的背景图用了
background-attachment: fixed,图片钉在视口上不动,而卡片跟着页面滚 —— 于是每张半透明的卡都会把整张照片"扫"一遍:扫到深色天空就发暗,扫到亮色建筑就发白。实测同一张卡随滚动从 rgb(99,107,125) 一路摆到 rgb(201,197,200),差了 100 级灰
- 修法是把玻璃本身加密一档 —— 能同时保住"透明"和"稳定"的杠杆只有 alpha:大卡片上沿 56% → 72%、下沿 34% → 60%;统计小格 76%/60% → 80%/70%;雷达卡 70%/52% → 76%/66%。三档的密度关系(大卡最透、小格最实)保持不变
- 效果:同一个位置跨滚动只差 14 级(原来 47 级),整体亮度落在 163~206 —— 从"中灰发暗"变成了明确的浅色磨砂。深色主题同步加密(82%/72% 那一档),跨滚动只差 4~8 级
- 只影响传过横幅背景的玩家主页。没有横幅的页面(比如
/players/zlc)根本不发这段玻璃样式,这次改动对它们一个字节都没碰
v1.9.28
网站
2026-10-02
「日均在线 86 小时」修好了
- 原来的算法是「终身累计时长 ÷ 有会话记录的活跃天数」—— 分子是十年的,分母只有 2026-09-12 之后的 11 天,两个年代相除就出了「86 小时/天」。不是分子错了,是分母缺了大半
- 分母换成终身活跃天数:聊天记录、成就解锁、进服会话三张表按天去重取并集 —— 你的号是 423 天。941 小时 ÷ 423 天 = 2 小时/天,量级终于对了
- 顺带修好两处:登录次数改用终身累计(1,655 次,以前 929 个老玩家显示 0);最长单次时长不会再出现「平均 21 分钟、最长 0 小时」这种不可能的组合
- 还顺手修好三枚成就:活跃 7 / 30 / 100 天 之前因为同一个分母永远解锁不了 —— 全站会话记录最多只有 16 天,阈值根本够不着
- 安全审计(一):修掉会被人真正利用的几处 —— 上传的 SVG 里能用转义藏外链(头像能拿去偷访客 IP)、后台能删到 uploads 之外的文件、登录有开放重定向、备份压缩包里的脚本能落地成网页后门、两个本地调试脚本在线上可访问
- 安全审计(二):接口与后台加固 —— 空名单不再能一键清空全站封禁、上报有行数上限、白名单名字有校验、聊天单条失败不再拖垮整批、数据库报错不再把细节回显给访客
v1.9.27
网站
2026-10-02
雷达那一栏的小字,看清楚了
- 「能力雷达」那一栏的小字(轴名、右侧数值、「全服」、下面那段说明)坐在 34% 的玻璃上时,最暗的地方对比度只有 3.3 : 1 —— 低于小字该有的 4.5 : 1。这就是你说的「看不清」,确实是我上一版没收干净
- 修法两处:次要文字整体压深一档;同时给「能力雷达」整张卡单独一档底色 —— 它整张卡几乎全是小字,不该和大卡片共用同一个透明度
- 大卡片没有被牵连:皮肤卡、成就卡、页脚仍然是 34%,背后的图照样透得出来;统计小格原来那档密底色也不变
- 深色主题配了同款;仍然只发生在传过横幅的页面上,没横幅的角色页一个像素都没动
v1.9.26
网站
2026-10-02
玻璃再透一档,字照样看得清
- 主页面:上沿 62% → 56%、下沿 40% → 34%。现在背后的图是真的看得见了 —— 塔灯的竖条、地平线、远景的方块轮廓都能透出来,不再是一块磨砂板
- 「能看见图」和「字看得清」本来是打架的,所以拆开处理:统计小格(「累计在线」「登录次数」那种小字密集区)单独用一组更密的底色(76% → 60%),大卡片保持很透。小的更实、大的更透,正好和苹果的层次反过来用
- 文字补了一圈极淡的同向光晕(
text-shadow)—— 底子亮时看不出来,底子暗时才显形,等于给字自带一层局部底。这样才敢把透明度压到 34%
- 深色主题配了对应的深玻璃与暗色光晕;仍然只发生在传过横幅的页面上,没横幅的角色页一个像素都没动
v1.9.25
网站
2026-10-01
玻璃再透一点,也更像苹果了
- 主页面:不再是"一层均匀的 68% 白",改成上亮下透的竖向渐变(62% → 40%),高斯模糊 22px → 32px,另加
saturate(180%) + brightness(1.12)。苹果那种玻璃会"拾取"背后的颜色并略微提亮,光加模糊只会像磨砂
- 玻璃片四周多了折射边 —— 上沿一道 1px 掠射高光,内侧再围一圈极淡的描边;阴影也拆成两层(贴地的接触阴影 + 散开的环境阴影),这样玻璃才像"浮"在图上,而不是贴着一张纸
- 顺手修了一个调透之后才冒出来的问题:「累计在线」「登录次数」这类副标签快看不见了 —— 它们用的灰在半透的白底子上只有 2.5:1。现在玻璃面内单独换深一档,压在图上的那行小字保持原样不动
- 深色主题跟着换了一整套深玻璃参数;这些仍然只发生在传过横幅的页面上,没横幅的角色页一个像素都没动
v1.9.24
网站
2026-10-01
主页变成了「液态玻璃」
- 卡片、皮肤卡、六个统计方块和整个页脚都换成了半透明玻璃(68% 白 + 22px 高斯模糊),背后的横幅被模糊之后透出来。字仍是深色,压在图上也看得清;深色主题自动换成深玻璃
- 成就徽章卡片的标题栏多了「全部收起 / 全部展开」 —— 8 个分类一次收掉,不用再滑到 98 枚勋章的最下面去按那个按钮
- 右下角的管理抽屉多了第四个页签「头像 / 背景」,待审的图直接在那儿通过或拒绝。它和后台「玩家与数据 → 头像 / 背景」是同一份数据,在哪边审都一样
- 这些只发生在传过横幅的页面上 —— 没横幅的角色页一个像素都没动(我拿改动前后的截图逐像素比对过)
- 玻璃做不出来时(老浏览器)会自动退回原来的实心卡片;但没有跟随系统的「降低透明度」偏好 —— 站长自己那台机器的 Windows 透明效果就是关的,跟随它的话他自己一个玻璃都看不到
v1.9.23
网站
2026-10-01
个人主页能铺满整屏了
- 背景 —— 传过横幅的人,角色页会用那张图铺满整个浏览器窗口,头像、昵称、等级、位置都压在图上面。没传过横幅的页面一个像素都不变
- 位置 —— 个人中心「个性化」里可以选国家(选了中国还能选到省份),选完会显示在主页「离线 / 排名 #8」那一排;不选就不显示
- 玩家列表的行首头像改成优先用你自己传的那张。以前一律去国外取官方皮肤头像,国内基本加载不出来,所以看到的永远是彩色字母方块
- 上传的头像和背景要经过审核才会出现在页面上。审核期间旧图继续用,不会出现「一半新一半旧」;想撤掉的话点「移除」是立刻生效的
- 上传上限放宽:横幅最大 3840×2160(原 1920×1080),并且开始接受 SVG —— SVG 会做安全清洗,脚本、外部引用、内嵌 HTML 全部丢掉
v1.9.22
网站
2026-10-01
弹窗换个样子 · 老封禁补回来了
- 全站 16 处弹窗统一成了站内自己的样式。原来那些是浏览器自己的框,顶上还写着「cloudridge.cn 显示」,手机端尤其出戏,样式也完全不跟着站点走。现在标题、正文、按钮都由站点控制,危险操作是红色按钮,Esc 取消、Enter 确认、关掉之后焦点自动回到刚才点的那个按钮上
- 老服关服时还封着的 8 个人 + 3 个 IP 补回了封禁名单,公示页自此是 12 人 + 7 个 IP。名字、IP、封禁时间和处理人都按当年原样抄回来,没有一处是编的。有一点要说清楚:模组只是读服务器上的封禁文件往上汇报,游戏里真正拦人仍以服务器那份名单为准 —— 名单要等服务器重新载入才生效
v1.9.21
网站
2026-10-01
那个「未知玩家」并回本人了
- 玩家列表上一直挂着一行「未知玩家 · 000000」,看着像第四个没被统计到的人。查清了:旧服的 floodgate 给基岩版玩家发的 UUID 落在
00000000-0000-0000-0009-… 这个占位域里,而模组上报时只能拿名字 —— 那一刻名字恰好就是这个 UUID。它其实是 birdzhonghuifei 用基岩版玩的那段时间,现在并回本人了
- 合并的规矩:计数类(时长、登录次数、死亡、挖掘、放置、移动距离)相加,进度取并集,首次进服取更早的那个、最后在线取更晚的那个 —— 时间是不能相加的。挂在他名下的 9 枚徽章本人早就有同款,重复的那份直接丢掉。玩家榜由此少了一行,
birdzhonghuifei 的数字也比原来更完整
v1.9.20
网站
2026-10-01
日历能直接跳年月了
- 日历弹层左上角多出「年」「月」两个下拉:先挑年份再挑月份,两步就能到任何一个月,不用再点着
‹ 一个月一个月往前翻。左右两个翻月按钮和中间的「今天」都还在,翻页时两个下拉会跟着一起走
- 顺手修掉一个排序毛病:按「首次进入」排序时,日期查不到的那几行原本会被顶到第 1–4 名,看着像整个榜单坏了 —— 「没有值」并不等于「最早」。现在这类行一律沉到榜尾,无论升序还是降序
v1.9.19
网站
2026-10-01
聊天记录又补回 229 条
TrChat 插件日志只从 2023-09-01 才开始记,2024 年下半年有几段是残缺的。这次把三个从没导过的旧服 CoreProtect 库翻了出来,里面存着 2024-07 到 2024-12 的 34,417 条聊天;去重之后净补回 229 条发言,分布在 37 天,最早的是 2024-07-11
- 去重按「同一个玩家 ±5 秒内已经说过同一句」判定 —— 同一条发言
TrChat 和 CoreProtect 各记一份,时间戳常差 1 秒、偶尔正好跨过分钟线,按分钟比会把这几十条误当成新发言重复刷进来
- 这 37 天原本也不是一片空白 ——
TrChat 当时记下了大部分对话,补回来的是被漏掉的那些零星几句。现在翻到 2024 年 7 月到 12 月的这些日子,当时聊的内容更完整了
v1.9.18
网站
2026-10-01
账号里的小号可以摊开了
- 「玩家列表」里名下不止一个角色的行,行首多了一个箭头:默认收起,点一下把每个角色摊开成单独一行,各自的累计在线、登录次数、最后在线、状态一目了然(主行是加总,子行是各自的值)。再点一下收回
- 搜小号的名字会把那一行自动展开 —— 搜
Winter 时你会直接看到它和 Fruity_oxygen 各自的数据,不用先猜它挂在谁名下。顺带修掉一个老毛病:按「玩家名」排序时表头比正文少一列,整张表会错位
v1.9.17
网站
2026-10-01
玩家榜按账号排名 · 三年的聊天记录全部找回
- 「玩家列表」现在一行 = 一个网站账号:同一个 QQ 名下的小号数据加在一起算(
Fruity_oxygen 与 Winter 合并成一行、ElfinLettuc 与 Faithe 合并成一行),没绑过网站账号的散人各占一行。名字后面那枚「N 个角色」徽章可以点开看是谁并到了谁名下 —— 原来把大号和小号拆成两行的榜单,看着像小号白玩了
- 新增账号主页(
/accounts/编号):名下每个角色单独列出来,各自的时长与登录次数一目了然,上面的汇总数字就是它们相加的结果。这个页面完全公开,不用登录也能看。顺带清掉一条脏数据:有个角色的绑定字段指向了一个根本不存在的账号编号
- 回填了三个一直被占位值糊住的字段:最后在线(原来 929 个角色全写着 2026-09-13)、首次进服(936 个同样是假的 2026-09-13)、登录次数(全站合计只有 291,928 个人显示「—」)。最后在线取自服务端存档文件的修改时间,首次进服与登录次数取自历代服务端的日志。现在
wwwsum 老老实实写着 2024-08-22、7Strawberry 写着 2024-03-07,登录次数由 291 涨到 21,766
- 聊天框把开服以来的记录全部补回来了:从 2022-12-16 的第一条,到 2026-09-25 模组实时上报接手,一共 174,457 条发言与进出服记录(发言 124,024 条、进服 25,424 次、退服 25,009 次)。以前只有装过模组的那几天有记录,现在在网页地图上随便点一天,都能看到当时的对话
- 日历原来只把最近 400 天标成可点,补回来的 729 天里有 492 天点不动 —— 等于还原了却看不到。现在有记录的每一天都能点进去。另外「注册玩家」这个数字在首页和玩家列表上原来差了 2(791 对 789),已统一成账号口径
v1.9.16
网站
2026-09-30
出站请求开始校验证书
- 网站向外的所有 HTTPS 请求(皮肤站、IP 归属地、短信接口、邮件服务器、QQ 登录、后台的探测按钮)以前都写着「不看证书」,链路上任何人都能拿一张自签证书冒充对方,把请求整个接过去。现在一律校验,并随站点带了一份根证书包(Mozilla 的,121 张根证书)。
- 其中邮件那处最要紧:不校验时,链路上的人能同时拿到邮箱的账号密码和全部邮件正文。126 邮箱的证书是正常的,发信不受影响。
- 代价是:对方证书真有问题时,请求会直接失败并报错,而不是默默连上去。后台的探测按钮会把这种情况单独提示成「证书没过校验」。根证书包万一丢了也不会退化成不校验——只会更明确地失败。
- 顺带修好一个陈年小毛病:更新日志里 v1.9.6 与模组 1.6.0 两条的标题一直显示成字面的「title」—— 它们当初只写了正文、没写标题,而页面是无条件渲染标题的,缺键时就退化成了键名。标题现在补上了
v1.9.15
网站
2026-09-30
一轮安全体检:六处已修
- 后台的门原来有一把是虚掩的:服主 / 管理 / 服务器管理这三个组的人,只要用自己的网站账号密码登录前台,就能直接打开
/admin/** —— 邮箱验证码那一步被整个绕过去了(原先只在后台登录页堵了这条路)。现在多了一张「本会话确实输过验证码」的凭证,前台登录不再等于后台登录。站内一直写着「后台只认 admins 表账号」,现在实现和说明终于对上了
- 模组读不到封禁名单时会上报一个空名单,网站看到「名单是空的」就以为封禁都被解除了 —— 于是把库里的封禁记录整表覆盖、伪造出一条解封历史,连
players.is_banned 也一起清掉。现在模组只有确实读到了才会声明「这份名单是权威的」,网站也只在拿到这个声明(或名单非空)时才做解封对账。这条要模组 1.6.6 才算完全生效,网站侧已经先兜住了
- 个人页的横幅地址是玩家自己填的,而它被直接拼进了
style="…url(地址)"。地址里塞一个 ) 就能追加任意 CSS 声明 —— 个人页是给别人看的,等于每个访客都会中招(position:fixed 做全屏覆盖式钓鱼,或者挂一张追踪图泄漏访客的 IP 和浏览器)。这里转义救不了:HTML 会把 " 还原成引号,CSS 看到的还是那个引号。现在地址要走白名单,不合格就当没有横幅
/whitelist 里那张标题写着「我的申请」的卡片,实际查的是全站最近 5 条 —— 任何登录用户都能看到别人的游戏 ID、QQ 号和审核备注。现在按归属过滤,后台和服务器管理页仍然是全站视图
- 工具页的 DNS 查询是唯一漏掉内网拦截的入口:拿
127.0.0.1 或内网域名去查都能出结果,还能顺着 SRV 记录绕(目标由别人的 DNS 说了算);host:port 的端口检查原来排在拆分冒号之前,8.8.8.8:53 这种任意端口照样能探。三处都补上了,顺带把「AAAA 指向 ::1」也纳入了拦截
- 另外堵上三处:① 登录跳转的
next= 参数填 javascript:… 能变成一句话 XSS(Url::ensure() 只要看见串里有 index.php 就原样放行,根本不看协议);② 跑过找回密码脚本之后,后台登录页会把新的明文密码显示给任何打开该页面的人 —— 密码本来就会打在服务器控制台上,页面上那份已经删掉;③ 打开 CDR_DEBUG_CSRF 调试开关时,日志里会记下登录请求的前 160 字节,那正是明文密码 —— 现在只记字段名和长度
v1.9.14
网站
2026-09-26
修好「成就个数时多时少」
- 有玩家在游戏里在线时成就是亮的,一离线就整片变灰 —— 因为模组读不到存档里的进度文件时会上报一个空列表,而网站原来把这当成「这个人没有成就」写进了库,等于把已有进度清空。现在空列表一律不写:宁可留着旧数据,也不清成 0(
adv_done 同理,只接受大于 0 的值)
- 顺带修好同一类里「一个系列被劈成两截」的排序问题:原来「已达成的排最前」,于是探索里的「跳跃 1 万次 / 10 万次」(已达成)和「跳跃 50 万次」(没达成)被拆到了整组的两头,中间夹着末地、下界那些真实进度。现在先按系列归拢(1 公里 / 10 公里 …、1 万次 / 10 万次 …),系列内部再让已达成的排前面 —— 折叠未达成的徽章仍然是就地隐藏,已达成的照样一眼可见
v1.9.13
网站
2026-09-26
名字回填的归属规则修正
- 同一个名字在回填表里可能出现多次 —— 同一个人既有旧离线 UUID(
00000000-0000-...)又有正版 UUID,两边都指向他。原来按数据文件里的先后顺序先到先得:线上 birdzhonghuifei 同时对应 106.4 小时和 1.9 小时两行,这次正好是时长长的那行排在前面才归对了,换个顺序就会把名字给错人。现在改成归给时长最长的那一行,跟顺序无关
v1.9.12
网站
2026-09-26
863 个「未知玩家」的名字全部找回
- 服务端的
usercache.json 只保留约一个月,这份从 1.21 生存服一路升到 1.21.11 的存档里,老玩家的名字早就过期了 —— 网站只能拿 UUID 当标识,显示成「未知玩家 · xxxxxx」。去备份档里翻了一遍:历代服务器的 usercache / whitelist / ops / banned-players 按时间从旧到新合并,863 个名字一个不落全部找回(排行榜上那个 395 小时的现在叫 iRXC)。升级到 v13 时自动回填一次:只补「名字还是 UUID」的行,已经有真名的一个字节都不动
- 顺手兜住了一个边界:
players.name 是唯一索引,万一要回填的名字已经被另一行占用,就跳过那一行并记一笔,不会因为唯一约束让整次升级失败 —— 宁可留一个人继续显示「未知玩家」,也不能把升级卡死
v1.9.11
网站
2026-09-26
后台玩家名显示修复 · 真名不再被覆盖
- 后台的玩家列表 / 仪表盘 / 封禁 / 白名单 / 皮肤 / 用户页原来会把查不到名字的玩家直接糊成一串 UUID —— 前台一直是「未知玩家 · xxxxxx」,后台漏了几处,现在口径统一了。线上有 863 个这样的玩家:服务端的
usercache.json 只保留约一个月,这份老存档带过来的名字早就过期了,网站只能拿完整 UUID 当唯一标识(不是显示不出来,是确实没有名字可显示)
- 顺带修好一个会丢数据的隐患:模组「这次没查到名字」时上报的是空名字,旧代码直接拿 UUID 顶替写库。一个老玩家停玩超过一个月再上报,站点里已经存着的真名就会被永久抹掉 —— 现在库里已有真名就沿用真名,只有确实没有名字时才退化成 UUID
v1.9.10
网站
2026-09-26
个人页「一天玩了 225 小时」修复
- 修好个人页「最近 30 天在线时长」里那个离谱的数字 —— 服务器崩溃或漏报离服时会留下一条永远关不掉的在线记录,收尾时又拿「最后一次看到这个人」的时间当结束时间,于是 09-13 上线的那一局被算到了 09-23,整整 225 小时全压在进服那一天。现在收尾时长有三层上界:6 小时封顶、这个人下一局的开始、以及只收紧不放宽的「最后在线」
- 已经落库的那几条脏数据不用改库也会显示正确(读取时按同一套规则钳制);「最近登录记录」「在线时长合计」「本周在线」「各服务器时长」的口径也一起对齐了 —— 这些地方原来各自按秒求和,同一个数字在页面上会互相打架
v1.9.9
网站
2026-09-26
手机版日历溢出修复 · 全年在线改成每日最高
- 修好手机版聊天里点日期时日历跑出面板边框的问题(窄屏下日历不再浮在面板上,而是作为一行铺满,宽度就是容器宽度)
- 「全年」范围的在线人数从6 天平均改成每天最高 —— 一个只有晚上热闹的服务器,日均可能只有 2 人,但那天明明有十几个人同时在过;用日均画全年,线会平得看不出任何东西。24 小时 / 7 天 / 30 天仍用均值(那里的一个点只有几十分钟,均值才说明问题)
v1.9.8
网站
2026-09-26
聊天栏:服务器开关服记入实时聊天
- 服务器开启与关闭(含时间)现在会作为一行记录出现在聊天栏里,用一条小竖线代替头像,颜色也和玩家发言区分开
- 更新日志正文现在支持
代码 与 粗体 两种标记(之前只认反引号,粗体会把星号原样显示出来)
v1.9.7
网站
2026-09-25
聊天框:按日期查看、发言权限放宽、弹窗组件
- 聊天记录改成按日期查看:日历上点哪一天就看哪天的聊天,有记录的日期会加粗标出来;切换日期不再整页刷新
- 发言权限放宽:登录之后就能发言,不再要求先绑定游戏角色。绑定了的用你的角色名显示;没绑定的用网站昵称,游戏里会标成 [网页·未绑定] 以便和游戏角色区分
- 网站昵称 15 天只能改一次(第一次设置不受限制),个人中心会显示还要等多少天;昵称不能和已有的游戏角色或管理员重名,防止有人改名冒充别人
- 举报改成正经的弹窗:带字数统计的理由输入框,替代浏览器自带的那个小框;撤回确认和后台的几处确认框也一并换掉了 —— 浏览器原生弹窗会阻塞整个页面
- 后台聊天管理会标出「未绑定」,删除、处理举报、禁言照旧
v1.9.6
网站
2026-09-25
网页聊天栏上线:公屏双向打通
- 网页地图下方新增聊天栏:游戏里的公屏发言、进出服、死亡提示、成就达成会实时出现在网页上,每条都带发送时间
- 双向打通 —— 在网页聊天框发的消息会带
[网页] 前缀出现在游戏公屏上;游戏内外看到的是同一个名字(你绑定的角色名),冒充不了别人
- 未登录看不到聊天内容(不是界面上藏起来,是服务端一个字节都不下发);登录并绑定游戏角色之后才能发言
- 聊天按「开服轮次」组织,可以切换查看历次开服时的记录,服务器重启也不会丢
- 每条消息带头像和发送时间;自己发的可以撤回,别人的可以举报
- 后台新增「聊天管理」:删除消息(网页与游戏内同时生效)、处理举报、禁言、操作留档(删除时保留原文以便追溯)
v1.9.5
网站
2026-09-25
更新日志可按类型、月份、版本号筛选
- 更新日志现在能筛了:顶部「网站 / 模组 / 服务器」三个数字变成可点的按钮,点一下只看那一类,再点一下取消
- 加了月份筛选和版本号搜索 —— 比如输「1.9」就能把 1.9.0 到 1.9.4 全带出来,两个条件还能叠加
- 筛选状态写在网址里,所以你挑好之后可以直接把链接发给别人,对方看到的是同一份结果
- 筛选后的计数仍然是全量数字(点一下数字不会变小),另外新增了「这个条件下没有更新记录」的空状态提示
v1.9.4
网站
2026-09-25
登录修复、备份安全网与接口文档补全
- 修复后台两步验证登不进去的问题。根因是一条写事务在服务器所用的 PHP 版本上「提交被静默跳过」,验证码永远写不进数据库 —— 邮件收到了、码输进去却提示「请先获取验证码」,连重发限流也一并失效(因为限流读的就是那张表)。现在事务由网站自己记账,新旧版本行为一致
- 顺带修掉另外三处同类隐患(查找玩家、心跳指标、会话记录),它们只在特定版本组合下才会发作
- 备份清理改了保留策略:升级前和恢复前的安全快照有独立配额,不再被普通备份挤掉;站长手动导出的备份永不自动删除。按线上真实清单推演,旧逻辑会删掉 8 份(含 6 份升级安全网),新逻辑一份不删
- 修复公开玩家接口的搜索参数一直无效的问题:全服超过 500 人时,时长排在 500 名之后的玩家在小工具的数据卡片里搜不到。改用子串匹配,并顺带堵掉通配符注入
- 提交内容超过服务器上限时不再白屏,改为明确的「太大」提示;另修复超大表单被误报成「请填写 XX」的误导提示
- 接口契约文档补上 5 个公开只读端点的完整说明(含参数与隐私遮罩口径),并改正之前引错的出处
- 修复后台登录页「返回账号密码」链接跳到错误步骤的问题
v1.9.3
网站
2026-09-23
成就墙折叠、图表说明与 24 小时趋势修复
- 成就系统扩充:从 28 枚加到 98 枚,按生存 / 建造 / 探索 / 红石 / 农耕 / 战斗 / 社交 / 收藏分成 8 大类,每一类都标着「已达成 / 总数」;其中 35 枚直接判定游戏里的真实成就,完成时间就是游戏里弹出成就的那一刻
- 五维雷达图每个维度都加了说明:这一维量的是什么、怎么算出来的、多少算满,不用再对着图猜;另外加了图例——实心色块是你,灰虚线是全服平均
- 修复 24 小时趋势图对不上的问题:根因是历史记录里存的是模组的原始在线数(含常驻假人),页面显示的却是过滤后的数,两边不是一套;现在心跳入库和页面展示走同一个口径,另外鼠标停在曲线上会显示「时刻 + 在线人数」
- 图表可以切时间范围了:24 小时 / 7 日 / 30 日 / 1 年,看一眼就知道服务器最近怎么样;服务器关闭的那段时间线段会断开,不再把没开服的日子画成 0 人
- 玩家页的成就徽章墙可以折叠了:已达成的徽章默认都显示(那是你的战绩),未达成的折在后面,点分类标题或底部的「展开全部」就能看全 98 枚;折叠状态会记住,刷新之后还是你上次看的样子;没有 JS 时 98 枚照常全部显示
- 修复会话记录:「在线中」以前只看会话有没有结束时间,服务器崩溃或模组漏报离服时会一直挂着「在线中」,甚至同一个人显示成同时在两个会话里在线。现在以服务器实时上报的在线名单为准,对不上的显示「异常结束」并自动收尾;离服事件重复上报也不会再开出两条会话
- 修复「游戏进度」徽章一枚都点不亮的问题:判定时用的进度标识带了一层多余前缀,跟游戏上报的进度名对不上,于是 35 枚真实成就全部一直显示成未达成(页面上只是灰着,看着像还没做到,从界面完全看不出来)。现在标识对齐,已完成的会正常点亮,并显示游戏里真正弹出的那一天
v1.9.2
网站
2026-09-22
安全与隐私加固,上传与体验完善
- QQ 互联登录已经接好:AppID、AppKey 和回调地址都配置好了,等腾讯审核通过、后台开关一打开就能用;在那之前登录页不会显示这个按钮,不会出现点了没反应的入口
- 安全加固:/storage/ 目录不再能被直接访问(数据库备份、皮肤缓存这类不该公开的文件都放在里面)
- 后台账号留在库里的明文密码已经全部清除,只保留加密后的摘要
- 认领确认接口加了失败节流:短码连续猜错会被暂时挡住,防止有人拿短码硬撞
- 玩家筛选、SVG 检查、字段校验这些入口改成白名单 + 参数绑定:只接受明确允许的值,外部传进来的内容不再直接拼进查询
- 全站 74 处 JSON 输出补上安全转义标志,页面里嵌进去的数据不会再被当成标签解析
- 隐私:个人主页的可见性开关原来还有 5 处能被绕过看到(包括那个不需要密钥的公开玩家接口),现在全部收敛 —— 关掉就是关掉,公开接口也查不到
- 上传支持 WebP:头像、横幅、图片库、论坛等 8 个入口全都能直接上传 WebP
- 修复后台设置里「允许格式」被写坏成字符串 "array" 的问题:这是上传格式列表失效的根因,保存后不会再坏
- 时长全站改成小时制(主数字是小时、天数作小字副标);排行榜改成「按什么排序就显示什么列」,不会再显示和排序无关的列
- 老浏览器兜底:活跃度热力图、成长条和上传区的淡底 / 聚焦环,在不支持 color-mix() 的浏览器上不再变成透明
- 公开玩家页的玩家名后面加了等级徽章(Lv.N),手机窄屏也不会顶宽
- 品牌图:之前被测试图片覆盖的 logo / 图标已经恢复,另外给品牌图加了离线归档和 brand-restore.php 还原工具,以后再被误覆盖可以直接还原
v1.9.0
网站
2026-09-19
玩家中心与图片上传改造
- 个人主页改版:成长进度、本周活跃、成就徽章、社区痕迹与最近活动时间线集中到一页
- 新增游戏等级:按累计在线时长换算,每 10 小时升 1 级(Lv.1 起),个人主页和公开玩家页都能看到
- 新增可见性开关:累计在线、最后在线、首次入服、在线名单四项由玩家自己决定是否公开,关掉之后在其它页面也查不到
- 头像与横幅支持直接上传图片,自动转成 WebP 存储(体积更小、加载更快);头像按中心裁成正方形,横幅等比压缩到 1920×1080 以内
- 图片格式支持 PNG / JPG / WebP / GIF;AVIF 会提示先另存为 PNG 或 WebP 再上传
- 新增图片库:后台统一管理上传过的图片,能看尺寸、体积和引用情况
- 上传安全加固:按文件真实内容判断类型(改扩展名伪装的一律拒绝)、拦截路径穿越、SVG 按白名单放行、清理没有被引用的孤儿文件
- 认领游戏角色改为「网站提交申请 → 游戏内执行 /cdr claim 短码确认」,只有该角色本人能确认
- 个人主页新增皮肤 3D 预览;种子地图与网页地图都改走 HTTPS
v1.9.1
网站
2026-09-19
权限表重做(按本服实际装的模组)
- 权限勾选表按本服实际安装的模组重做:只保留真有权限节点的项目,勾了就会生效
- 没装模组的能力(领地管理、/hat、/back、聊天颜色等)不再出现在勾选表里,改为在下方如实说明缺什么、将来该填哪个节点
- 每一项权限都写清「勾上之后游戏里到底能做什么」,例如「旁观模式」绝不会顺带放开创造模式
- 「创造模式」单独成项:只有服主和管理组勾选时免二次确认,其它组勾选会先弹出确认框;前台账号 + 服主/管理组现在也能直接登录后台
v1.8.2
网站
2026-09-18
云岭蓝与新配色,登录更稳
- 全站配色改为「云岭蓝」:色值直接从服务器 logo 里取,站点和 logo 放在一起不会两套色
- 修复线上人机验证「所有人都不通过」的问题(反向代理环境下取不到真实 IP,限流把所有访客当成了同一个人)
- 验证码已经通过、页面却没有跳转时,提交按钮不会再被卡住,8 秒后自动恢复
- 首页首屏按钮在手机上不再被挤出屏幕
v1.8.1
网站
2026-09-18
人机验证升级
- 人机验证升级到 ALTCHA 2.x,并新增图形验证码作为降级方案:浏览器算不出来时可以直接填图上的字符
- 注册、申请白名单、重发验证码这些接口也纳入人机验证,能拦住拿别人邮箱刷验证码的请求
- 首页新增「一键加 QQ 群」,电脑和手机都会直接唤起 QQ
- 站点图标补齐到各种尺寸,手机「添加到主屏幕」也有图标了
v1.8.0
网站
2026-09-18
成就、设备免登录与新外观
- 玩家详情页新增成就徽章与能力雷达,一眼就能看出这位玩家擅长什么
- 新增「记住这台设备」:勾选后 30 天内不用重复登录(改密码或者退出所有设备会立刻失效)
- 后台登录新增第二步邮箱验证码,并生成一份离线恢复密钥,邮箱收不到时也能进后台
- 白名单申请页改成按自己的状态显示不同内容:审核中、已通过,或者上次被拒的原因加上重新提交
- 全站配色换成与服务器 logo 同色的青绿和墨色,标题改用衬线字体,整体更像留白的山水
- 论坛分区图标不再用 emoji(部分系统会显示成空方框),换成本站自己的图标
v1.7.0
网站
2026-09-18
指南搜索与实时实况
- 服务器指南新增搜索,按标题或正文关键字直接找内容
- 指南侧栏新增「服务器实况」,版本、加载器、模组版本这些实时信息不用切页面就能看到
- 指南里的指令表和模组列表可以直接用地址打开,方便分享给新玩家
- 手机上指南侧栏会排到正文上方,实况块不再占掉一整屏
v1.6.0
网站
2026-09-18
皮肤站同步
- 接入皮肤站同步:在皮肤站用同名注册并上传皮肤后,网站可以自动把皮肤拉过来
- 玩家详情页第一次遇到陌生名字时会自动去皮肤站查一次,查到就直接显示
- 个人中心新增「重新同步皮肤」,在皮肤站换了皮肤点一下就能更新
- 后台可以自己填写皮肤站地址(默认 LittleSkin),以后换站不用改代码
v1.4.0
网站
2026-09-18
账号与安全
- 个人中心改版:新增「账号与安全」和「个性化」两个板块,登录记录、换绑、改密码都在这里
- 支持「退出所有设备」:改密码或者在别处退出后,其它设备上的登录会立刻失效
- 验证码加了设备锁:同一台设备一天最多发 5 条,防止有人用脚本刷短信和邮件
- 邮箱或手机号没验证完时,页面顶部会提醒一次,补全之后才能申请白名单、发帖、绑定角色
- 个人中心可以查看自己在各个服务器的足迹汇总
v1.5.0
网站
2026-09-18
重新打包发布
- 与 v1.4.0 内容完全一致,只是重新打了一次发布包,功能没有变化
v1.3.8
网站
2026-09-17
登录方式说明补全
- 账号密码登录页把三种可用账号(邮箱、手机号、已绑定游戏名)写清楚,和实际支持的保持一致
- 多语言文案同步补齐
v1.3.7
网站
2026-09-17
登录页背景图
- 登录、注册、找回密码页支持自定义背景图(后台上传),卡片改成磨砂玻璃效果
- 后台「外观」可以上传首页大图、站点 logo、浏览器图标和登录页背景图
- 登录账号除了邮箱和手机号,也支持用已经绑定的游戏名登录
v1.3.6
网站
2026-09-17
短信密钥检查重新加回
- 重新加回短信密钥检查,但只在真正会出错时提示:填成了 32 位纯十六进制(那是 MD5,不是明文 KEY)
- 提示里直接写清去哪里重新复制 KEY,不用对着「密钥错误」猜
v1.3.5
网站
2026-09-17
短信密钥提示修正
- 去掉了一条会误报的短信密钥长度提示(此前要求 32 位,但平台实际的密钥是 16 位)
- 密钥是否正确改由短信平台自己回答,不再靠长度猜
v1.3.4
网站
2026-09-17
登录修复与安全加固
- 修复邮箱和手机号密码登录一律报错打不开的问题(此前会直接 500)
- 登录失败次数过多会被临时限制,防止有人用脚本撞密码
- 导航分组里有当前页面时,分组按钮也会一起高亮,位置一眼看得出来
- 登录页把「QQ 登录」和「邮箱登录」用分隔线区分开,不再容易看混
v1.3.3
网站
2026-09-16
短信配置自检
- 后台短信设置新增「零成本自检」:不用真的发短信,就能验证用户名、密钥、模板是否正确
- 自检会明确指出是「账号和密钥不对」还是「模板还没过审」,不用再靠猜
- 计划任务会定期复查短信模板的审核状态,过审后自动提醒启用
v1.3.2
网站
2026-09-16
支持多台服务器
- 支持多台服务器:每台可以设置类型(生存、创造、小游戏),前台按类型展示不同内容
- 创造服显示建造面板说明,小游戏服显示对局说明与 PvP 排行
- 白名单、封禁等变更会逐台确认是否真正执行,不会再出现「某台服没同步」
- 后台可以指定一条变更只发给某一台服务器
v1.3.1
网站
2026-09-16
后台日志与消息中心
- 后台新增「操作日志」:谁在什么时候改了什么都能查,出问题不用再翻数据库
- 后台新增「消息中心」:邮件和短信的发送记录可查,玩家说「没收到验证码」时能直接确认
- 后台新增白名单批量工具:一次加人、踢人、清理失效名单
- 修复用户组权限判断失效的问题,分组权限设置现在真正生效
- 控制台首页新增近 14 天趋势图:新增用户、白名单申请、访问量、新增玩家
v1.3.0
网站
2026-09-16
玩家皮肤与导航分组
- 新增玩家皮肤:上传 64×64 皮肤后,个人中心和玩家详情页会用 3D 模型展示(不加载任何外部库)
- 个人中心新增「我的皮肤」区域,可以随时上传或者删除
- 页头导航改成分组下拉(服务器、社区),手机上也不再挤成两行
- 修复服务器指南里 [[mods]]、[[server-facts]] 这类实时区块在部分页面显示成方括号原文的问题
- 页脚加上备案号和公安备案图标
v1.2.3
网站
2026-09-13
短信通道与一批问题修复
- 短信验证码通道接入,手机号注册和找回密码可用了(后台填好平台参数就生效)
- 修复「后台改了设置前台没反应」的问题:邮件、短信、机器人、白名单设置现在都能正确生效
- 修复服务器状态页节点详情打不开(提示 500)的问题,未知节点改为正常提示
- 修复封禁理由显示成英文「Banned by an operator.」的问题,现在会显示中文
- 未登录点白名单申请会先引导登录,登录完自动回到申请页
v1.2.2
网站
2026-09-13
账号体系与白名单在线申请
- 新增账号体系:邮箱或手机号收验证码注册、账号密码登录、忘记密码重置
- 新增白名单在线申请:填游戏 ID 和至少一种联系方式就能提交,管理员通过后自动同步进服务器
- 填了 QQ 号、已进群而且 QQ 等级达标的申请,QQ 机器人会直接自动通过,不用等人工
- 服主和管理组在网页右下角的悬浮球里就能审批申请、增删白名单、直接改服务器配置
- 后台新增「一键发布更新动态」,以后每次更新都会自动记一条
v1.2.1
网站
2026-09-13
小工具与状态页改版
- 新增「小工具」页:渐变文字生成器、服务器状态查询、服务器地址体检、刻数换算、玩家查询
- 服务器状态页改版:新增 24 小时可用率、服务清单和机器运行状态,点开还能看节点详情
- 一个账号可以绑定多个游戏角色,并能指定主角色(游戏内 /cdr main 也能切换)
- 建筑相册改成大图浏览,看图更痛快
- 服务器指南里的指令表和模组列表自动跟着服务器实际情况走,不用再手抄
v1.2.0
网站
2026-09-13
开服至今的玩家数据
- 接入服务器存档统计:开服至今的游玩时长、死亡、击杀、挖掘、放置、移动距离全部上线
- 玩家列表支持按累计在线时长排行,点进去能看到详细数据
- 挂机假人和机器人自动识别并排除,不再占着排行榜的位置
- 封禁公示新增「封禁 IP」一栏,并显示 IP 归属地
- 修复 MSPT 显示不出来的问题,现在 TPS 与 MSPT 都有独立刻度
v1.1.1
网站
2026-09-13
头像兜底与后台改版
- 修好头像加载失败时满屏「碎图」的问题:第三方头像取不到就自动换成玩家名首字母头像
- 后台改版:顶部管理条加侧边栏菜单搜索,想改什么直接搜关键词就能找到
- 修复部分服务器上人机验证直接报错、页面打不开的问题
- 修复模组接口地址被跳转后「接口显示正常、站上却一个数据都没有」的坑,后台自检会直接提示
- 网页地图连不上时会给出明确提示,不再是一片空白
v1.1.0
网站
2026-09-13
账号体系与建筑相册
- 新增「建筑相册」:把自己建的房子截图传上来,大家可以点赞、点开看大图
- 新增玩家列表与玩家详情页:游玩时长、死亡次数、挖掘与移动距离一目了然
- 后台管理面板上线:动态、页面、相册、用户、系统设置都能在网页上维护
- 新增多语言与配色切换,前台可以自己切换深浅色
- 封禁记录公开展示处理结果,做到处理透明
v1.0.0
网站
2026-09-12
网站正式上线
- 网站正式对外开放:首页、服务器状态、玩家指南、封禁公示、动态、讨论区
- 首页实时显示在线人数、TPS 和机器占用,数据由服务端模组每 30 秒上报一次
- 支持 QQ 一键登录,登录后可以绑定游戏角色、在讨论区发帖
- 全站不依赖任何外部 CDN,人机验证也由本站自己托管,国内打开更快
- 手机和电脑都能正常浏览,窄屏会自动收起导航菜单
日期为对应版本的发布时间。发现新问题欢迎到讨论区反馈,或者直接找服主。