Skip to content

Server Admin

HoshinoYumeka edited this page Sep 7, 2026 · 2 revisions

服主须知

首页使用手册 | 下一页:从源码构建

服务端配置、图片占多少硬盘、数据存在哪儿。

服务端配置

在存档的 serverconfig/mcphone-server.toml 里,目前三项:

默认 说明
allowFriendTeleport true 关掉后好友那一行的传送图标不再显示,服务端也拒绝传送请求。好友关系与聊天不受影响
allowChatImages true 关掉后输入栏左边那个图片键不再显示,服务端也拒收上传的图。已经发过的图不删,仍然看得见
chatImageMaxKb 512 一张图最多多少 KB(64–768)。客户端按它压,服务端按它收。这个数直接换成硬盘,见下

图片占多少硬盘

最坏情况 = chatImageMaxKb × 20 × 好友对数。

每对会话最多留 20 张不同的图,所以每对好友封顶就是这个数的 20 倍——默认 512 KB 就是每对 10 MB,200 对常聊的好友是 2 GB 上限。

实际远小于它:Minecraft 的截图大片是天空与地形,512 长边压出来常常只有 1 KB;上限卡的是雨天、粒子那种满屏噪点的画面,以及动图(所有帧拼成一张,所以它才是最吃这个上限的)。

图片按内容存(文件名是"会话键 + 图片字节"的哈希),所以同一张表情在同一对好友之间发一百次,硬盘上仍然只有一份,也只占那 20 个名额里的一个。

嫌大就把 chatImageMaxKb 调小:调小之后客户端会自动降一档尺寸重压(图变糊),动图会先掉帧、再不行退成一张静态图——功能不会坏,只是画质让路。128 KB 大致是每对 2.5 MB。

彻底不想要就把 allowChatImages 关掉,已经发过的仍然看得见。

上限 768 KB 是硬的:再往上就顶到原版"服务端发给客户端"那 1 MB 的包上限了。

服务器启动时会扫一遍图片仓,删掉没有任何消息认领的文件(写完文件、消息还没落盘就崩了会留下这种孤儿)。

数据存在哪儿

做备份时要知道:

数据 位置 随什么走
好友关系、聊天记录 世界存档的 data/ 存档
聊天里发的图片 世界存档的 mcphone/chat-images/ 存档
笔记、已购 App、唱片仓、壁纸选择、未读标记 玩家数据(playerdata/ 存档 + 玩家
App 安装状态与主屏排列 客户端 config/mcphone/installed/<存档>.json 玩家自己的客户端
书架收藏 客户端 config/mcphone/reader/shelf.json 玩家自己的客户端,全局一份不分存档
表情包 客户端 config/mcphone/stickers/ 玩家自己的客户端,全局一份不分存档

前三行在服务器上,删存档就没了;后三行在玩家自己电脑上,服务器备份不包含它们

装了 Integrated Dynamics 的话

MCphone 会在方块注册的末尾把 Integrated Dynamics 全部方块的掉落表提前解析一次。这不改变任何掉落行为,也不给玩家多出任何功能——它是为了让别人的崩溃能被正确指认。

NeoForge 的注册阶段只要收到任何一个模组抛的异常,就会把整个注册表回滚成原版状态;而回滚过程本身会在 ID 的墙上火把那里踩到一个空指针,于是真正的错误被顶掉,崩溃报告上只剩一句 Trying to access unbound value: integrateddynamics:menril_torch_stone——看起来像是 ID 的锅,其实 ID 只是最后一个倒下的。提前解析一次就绕开了那个空指针,回滚能正常跑完,把真凶抛出来。

这不会救回服务器,起不来还是起不来,它只让崩溃报告指认对人。细节写在 compat/IntegratedDynamicsCompat.java 的类注释里。没装 ID 时这段代码一行都不会执行。


首页使用手册 | 上一页:换肤(资源包) | 下一页:从源码构建

Clone this wiki locally