Server Log Filter
Hide noisy server console lines from the MCDR console with configurable regex rules, without touching the server's own log file.
Installation command
!!MCDR plugin install server_log_filterAuthor
Repository
Synced at
...
Last update
...
Latest version
Total downloads
44
Back to catalogue
ServerLogFilter-v1.2.2.mcdr
Version
1.2.2
Date
October 4, 2026
Size
25.14 KiB
Downloads
4
MD5
cfa1efe7562e6d9450f1f3e9d1cc42a2SHA256
0f08b54491f901bc6890b9eab78a7fc07d749e28da8372a0c548d984b72be519MCDR Plugin Dependencies
| Plugin ID | Requirement |
|---|---|
| mcdreforged | >=2.15.0 |
Python Package Requirements
| Python Package | Requirement |
|---|---|
none |
新增
插件现在有英文界面了,并新增配置项 language。
在此之前所有提示只有中文。现在每一条面向用户的文案都放进了语言文件,一门语言一个文件:
server_log_filter/lang/
├── en_us.json ← English(回落语言)
└── zh_cn.json ← 简体中文
| 取值 | 效果 |
|---|---|
auto(默认) | 跟随 MCDR 当前的 config.yml 里的 language。你把 MCDR 设成中文,插件就说中文,不需要配置任何东西 |
zh_cn | 简体中文,无论 MCDR 设成什么 |
en_us | English,无论 MCDR 设成什么 |
- 写死的值压过 MCDR 的设置。
- 大小写与
-/_都随意:zh-CN、EN_us、en都能认。 - 没有对应语言文件时回落到
en_us并提醒一次——静默换语言比报错更难查(auto下没出货的语言则静默回落,因为那是 MCDR 的设置而不是用户的输入)。 - MCDR 设成
zh_tw而暂时没有繁体文件时用zh_cn,与 MCDR 自己的回落顺序一致。 - 配置文件写坏时,这个值只能从你的文件原文里读(配置已经解析失败了),所以写在语法错误之后也照样有效,那段「配置已重置」的播报会用它选语言。
- 改完用
!!logfilter reload立即生效,不必重启服务端。
想加一门语言? 复制 en_us.json 改成 <语言代码>.json、只翻译取值、跑一次 pytest tests -k language,然后提 PR 就行——不需要改任何代码。server_log_filter/lang/README.md 是写给译者的说明(与两份根 README 一样不随包分发)。
变更
- 版本号 1.2.1 → 1.2.2
- 所有面向用户的文案改为查语言文件(此前硬编码在代码里)。行文与含义未变,中文提示与 1.2.1 逐字一致。
- 配置项
language排在配置文件的第一位,便于发现。 - 代码里的注释精简了一轮:说明性的长段落移到
docs/DEVELOPMENT.md的「实现注记」,代码里只留「改这里会踩什么坑」的一句话。__init__.py1110 → 990 行、i18n.py252 → 238 行,一行可执行代码都没动,仅此一项就让压缩后的包小了约 4 KB。 - 打包白名单新增
server_log_filter/lang/*.json与server_log_filter/i18n.py;README 依旧一律不打包。
升级说明
- 老配置会被自动补齐,
language的默认值是auto,无需手动改动任何配置。 - ⚠️ 默认跟随 MCDR:如果你的 MCDR 从来没改过语言(MCDR 出厂默认是
en_us),升级后插件提示会变成英文。想看中文,把language设成zh_cn即可;反过来,MCDR 已经是中文的用户什么都不用做。 - 若配置被写坏导致自动重置,
language会回到默认的auto。
兼容性
最低 MCDR 版本仍为 2.15.0,未引入新的 MCDR API。已在 2.15.0 / 2.15.7 / 2.16.0 上实测通过;2.13.0 / 2.14.1 仍由 MCDR 依赖检查干净拒绝。
auto 在两个方向上都用真实 MCDR 验证过:MCDR 设 en_us 且配置不写 language → 输出全英文;MCDR 设 zh_cn 且配置不写 language → 输出全中文。
测试
- 测试 175 → 208(单测 149 → 178,真机端到端 26 → 30);变异 20 → 28(28/28 全部被抓住)
- 新增的变异里有一条专盯本次踩到的坑:语言文件必须经由 importlib 的加载器读取。打包成
.mcdr之后 MCDR 是直接从压缩包里zipimport这个插件的,__file__指向压缩包内部,任何open(__file__ 旁边的文件)都会失败——而后果不是报错,是所有消息静默变成裸键名(控制台出现summary.rules_enabled这种字样)。有一条单元测试专门把打好包的产物在子进程里 import 一次来钉住这一点。 - 语言相关的结构不变式(键集一致、占位符一致、代码用到的键都存在且没有没人用的键)靠 AST 从调用点提取后双向校验,所以新增一门语言会自动纳入检查。
产物
| 文件 | 大小 | SHA256 |
|---|---|---|
ServerLogFilter-v1.2.2.mcdr | 25,739 B | 0f08b54491f901bc6890b9eab78a7fc07d749e28da8372a0c548d984b72be519 |
包内固定 7 个文件:mcdreforged.plugin.json、server_log_filter/__init__.py、server_log_filter/i18n.py、server_log_filter/lang/en_us.json、server_log_filter/lang/zh_cn.json、CHANGELOG.md、LICENSE(三个 README 都不打包)。
相比 v1.2.1 的 18,302 B 增加了约 7.4 KB,增量全部来自语言功能本身:两份语言文件约 13.8 KB、i18n.py 约 8.7 KB(均为未压缩),语言文件按语言线性增加——再加一门语言大约只多 6~7 KB。