Server Log Filter

Hide noisy server console lines from the MCDR console with configurable regex rules, without touching the server's own log file.

management

Installation command

!!MCDR plugin install server_log_filter

Author

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

cfa1efe7562e6d9450f1f3e9d1cc42a2

SHA256

0f08b54491f901bc6890b9eab78a7fc07d749e28da8372a0c548d984b72be519

MCDR Plugin Dependencies

Plugin IDRequirement
mcdreforged>=2.15.0

Python Package Requirements

Python PackageRequirement

none

新增

插件现在有英文界面了,并新增配置项 language。

在此之前所有提示只有中文。现在每一条面向用户的文案都放进了语言文件,一门语言一个文件:

server_log_filter/lang/
├── en_us.json     ← English(回落语言)
└── zh_cn.json     ← 简体中文
取值效果
auto(默认)跟随 MCDR 当前的 config.yml 里的 language。你把 MCDR 设成中文,插件就说中文,不需要配置任何东西
zh_cn简体中文,无论 MCDR 设成什么
en_usEnglish,无论 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__.py 1110 → 990 行、i18n.py 252 → 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.mcdr25,739 B0f08b54491f901bc6890b9eab78a7fc07d749e28da8372a0c548d984b72be519

包内固定 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。