
Meow Anti-Xray
Paper-style server-side anti-xray for Fabric and NeoForge. No client install, per-dimension config, inspect/reload diagnostics.
Meow Anti-Xray 1.2.2 更新日志
这是一个面向服主使用体验的补丁版本,主要修正命令诊断输出里不够直观的细节。
改进
/antixray inspect现在会稳定显示标准维度 ID,例如minecraft:overworld,不再出现难读的内部ResourceKey[...]表示。/antixray status、/antixray reload和/antixray inspect在控制台与 RCON 下会整理成更紧凑的单行输出,读取和转发都更方便。- 游戏内玩家执行这些命令时,仍然保留原本更清晰的多行显示。
验证
- 针对命令输出与诊断结果补充回归测试。
- 执行
.\gradlew.bat test :neoforge:test buildAllLoaders --console=plain通过。
Meow Anti-Xray 1.2.2 Changelog
This patch release focuses on command output polish for server owners.
Improved
/antixray inspectnow shows stable standard dimension ids such asminecraft:overworldinstead of exposing hard-to-read internalResourceKey[...]text./antixray status,/antixray reload, and/antixray inspectnow produce cleaner compact output in console and RCON, making results easier to read and forward.- In-game player output for these commands remains multi-line and easy to scan.
Verification
- Added regression coverage for command output formatting and inspect dimension normalization.
.\gradlew.bat test :neoforge:test buildAllLoaders --console=plainpassed.
Meow Anti-Xray 1.2.2 更新日志
这是一个面向服主使用体验的补丁版本,主要修正命令诊断输出里不够直观的细节。
改进
/antixray inspect现在会稳定显示标准维度 ID,例如minecraft:overworld,不再出现难读的内部ResourceKey[...]表示。/antixray status、/antixray reload和/antixray inspect在控制台与 RCON 下会整理成更紧凑的单行输出,读取和转发都更方便。- 游戏内玩家执行这些命令时,仍然保留原本更清晰的多行显示。
验证
- 针对命令输出与诊断结果补充回归测试。
- 执行
.\gradlew.bat test :neoforge:test buildAllLoaders --console=plain通过。
Meow Anti-Xray 1.2.2 Changelog
This patch release focuses on command output polish for server owners.
Improved
/antixray inspectnow shows stable standard dimension ids such asminecraft:overworldinstead of exposing hard-to-read internalResourceKey[...]text./antixray status,/antixray reload, and/antixray inspectnow produce cleaner compact output in console and RCON, making results easier to read and forward.- In-game player output for these commands remains multi-line and easy to scan.
Verification
- Added regression coverage for command output formatting and inspect dimension normalization.
.\gradlew.bat test :neoforge:test buildAllLoaders --console=plainpassed.
Meow Anti-Xray 1.2.1 更新日志
这是一个偏服主体验与诊断能力增强的维护版本,重点是让你更容易看清当前反矿透到底在用什么配置、reload 后有没有真正生效,以及某个位置为什么会或不会被伪装。
新增与改进
/antixray status现在会输出更完整的运行状态:- 全局
enabled、engine-mode、max-block-height - async
workerThreads、queueSize、capacity - 当前配置文件路径
- 每个维度的
enabled / mode / max-block-height / hidden / replacement计数
- 全局
/antixray reload现在会在重载后返回状态摘要,并给出关键配置变化 diff。- 如果本次重载没有带来实际运行时变化,会明确显示
changes: no effective runtime changes
- 如果本次重载没有带来实际运行时变化,会明确显示
- 原
/antixray debug诊断输出升级为多行 inspect 风格结果,并新增正式别名:/antixray inspect <world> <x> <y> <z>
inspect现在会显示:- real / fake 方块
- 是否属于 hidden / replacement / target
- 是否在高度范围内
- 是否 exposed、是否 shouldReveal
- 当前
mode、update-radius、权限绕过配置
- 配置兼容再补一层:
- 显式空内联列表
hidden-blocks: []/replacement-blocks: []现在会按“用户明确配置为空”处理,不再误回退到默认列表
- 显式空内联列表
验证
- 单测通过:
.\gradlew.bat test --tests com.meowantixray.antixray.FakeOreConfigTest --console=plain.\gradlew.bat test --tests com.meowantixray.antixray.FakeOreServiceTest --console=plain
- 全量测试与双 loader 构建通过:
.\gradlew.bat test :neoforge:test buildAllLoaders --console=plain
- 本地双 loader 命令冒烟通过:
- Fabric:
status/reload/inspect/stop - NeoForge:
status/reload/inspect/stop
- Fabric:
兼容性
- Mod ID 仍为
meowantixray - 配置文件仍为
config/meowantixray.yml - Fabric 与 NeoForge 仍然分别发布独立 jar
- Minecraft 兼容范围保持
26.1、26.1.1、26.1.2
Meow Anti-Xray 1.2.1 Changelog
This maintenance release focuses on server-owner visibility and diagnostics. The goal is to make it much easier to see what anti-xray settings are actually active, whether a reload changed anything, and why a specific block position is or is not being obfuscated.
Added and Improved
/antixray statusnow reports a fuller runtime view:- global
enabled,engine-mode, andmax-block-height - async
workerThreads,queueSize, andcapacity - the active config file path
- per-dimension
enabled / mode / max-block-height / hidden / replacementcounts
- global
/antixray reloadnow returns the post-reload state summary together with a diff of important runtime config changes.- If the reload produces no effective runtime change, it explicitly reports
changes: no effective runtime changes
- If the reload produces no effective runtime change, it explicitly reports
- The original
/antixray debugoutput has been upgraded into a multi-line inspect-style diagnostic result, and a formal alias was added:/antixray inspect <world> <x> <y> <z>
inspectnow shows:- real / fake block state
- whether the block is part of the hidden / replacement / target sets
- whether it falls inside the configured height range
- whether it is exposed and whether it should reveal
- current
mode,update-radius, and permission bypass settings
- Config compatibility was also tightened again:
- explicit empty inline lists such as
hidden-blocks: []andreplacement-blocks: []are now treated as intentional user config instead of silently falling back to defaults
- explicit empty inline lists such as
Verification
- Targeted tests passed:
.\gradlew.bat test --tests com.meowantixray.antixray.FakeOreConfigTest --console=plain.\gradlew.bat test --tests com.meowantixray.antixray.FakeOreServiceTest --console=plain
- Full tests and dual-loader build passed:
.\gradlew.bat test :neoforge:test buildAllLoaders --console=plain
- Local dual-loader command smoke passed:
- Fabric:
status/reload/inspect/stop - NeoForge:
status/reload/inspect/stop
- Fabric:
Compatibility
- Mod ID remains
meowantixray - Config file remains
config/meowantixray.yml - Fabric and NeoForge are still published as separate jars
- Minecraft compatibility remains
26.1,26.1.1, and26.1.2
Meow Anti-Xray 1.2.1 更新日志
这是一个偏服主体验与诊断能力增强的维护版本,重点是让你更容易看清当前反矿透到底在用什么配置、reload 后有没有真正生效,以及某个位置为什么会或不会被伪装。
新增与改进
/antixray status现在会输出更完整的运行状态:- 全局
enabled、engine-mode、max-block-height - async
workerThreads、queueSize、capacity - 当前配置文件路径
- 每个维度的
enabled / mode / max-block-height / hidden / replacement计数
- 全局
/antixray reload现在会在重载后返回状态摘要,并给出关键配置变化 diff。- 如果本次重载没有带来实际运行时变化,会明确显示
changes: no effective runtime changes
- 如果本次重载没有带来实际运行时变化,会明确显示
- 原
/antixray debug诊断输出升级为多行 inspect 风格结果,并新增正式别名:/antixray inspect <world> <x> <y> <z>
inspect现在会显示:- real / fake 方块
- 是否属于 hidden / replacement / target
- 是否在高度范围内
- 是否 exposed、是否 shouldReveal
- 当前
mode、update-radius、权限绕过配置
- 配置兼容再补一层:
- 显式空内联列表
hidden-blocks: []/replacement-blocks: []现在会按“用户明确配置为空”处理,不再误回退到默认列表
- 显式空内联列表
验证
- 单测通过:
.\gradlew.bat test --tests com.meowantixray.antixray.FakeOreConfigTest --console=plain.\gradlew.bat test --tests com.meowantixray.antixray.FakeOreServiceTest --console=plain
- 全量测试与双 loader 构建通过:
.\gradlew.bat test :neoforge:test buildAllLoaders --console=plain
- 本地双 loader 命令冒烟通过:
- Fabric:
status/reload/inspect/stop - NeoForge:
status/reload/inspect/stop
- Fabric:
兼容性
- Mod ID 仍为
meowantixray - 配置文件仍为
config/meowantixray.yml - Fabric 与 NeoForge 仍然分别发布独立 jar
- Minecraft 兼容范围保持
26.1、26.1.1、26.1.2
Meow Anti-Xray 1.2.1 Changelog
This maintenance release focuses on server-owner visibility and diagnostics. The goal is to make it much easier to see what anti-xray settings are actually active, whether a reload changed anything, and why a specific block position is or is not being obfuscated.
Added and Improved
/antixray statusnow reports a fuller runtime view:- global
enabled,engine-mode, andmax-block-height - async
workerThreads,queueSize, andcapacity - the active config file path
- per-dimension
enabled / mode / max-block-height / hidden / replacementcounts
- global
/antixray reloadnow returns the post-reload state summary together with a diff of important runtime config changes.- If the reload produces no effective runtime change, it explicitly reports
changes: no effective runtime changes
- If the reload produces no effective runtime change, it explicitly reports
- The original
/antixray debugoutput has been upgraded into a multi-line inspect-style diagnostic result, and a formal alias was added:/antixray inspect <world> <x> <y> <z>
inspectnow shows:- real / fake block state
- whether the block is part of the hidden / replacement / target sets
- whether it falls inside the configured height range
- whether it is exposed and whether it should reveal
- current
mode,update-radius, and permission bypass settings
- Config compatibility was also tightened again:
- explicit empty inline lists such as
hidden-blocks: []andreplacement-blocks: []are now treated as intentional user config instead of silently falling back to defaults
- explicit empty inline lists such as
Verification
- Targeted tests passed:
.\gradlew.bat test --tests com.meowantixray.antixray.FakeOreConfigTest --console=plain.\gradlew.bat test --tests com.meowantixray.antixray.FakeOreServiceTest --console=plain
- Full tests and dual-loader build passed:
.\gradlew.bat test :neoforge:test buildAllLoaders --console=plain
- Local dual-loader command smoke passed:
- Fabric:
status/reload/inspect/stop - NeoForge:
status/reload/inspect/stop
- Fabric:
Compatibility
- Mod ID remains
meowantixray - Config file remains
config/meowantixray.yml - Fabric and NeoForge are still published as separate jars
- Minecraft compatibility remains
26.1,26.1.1, and26.1.2
Meow Anti-Xray 1.2.0 更新日志
这是一个配置兼容与使用体验改进版本,重点让手写或旧版
config/meowantixray.yml更稳、更容易维护。改进
- 配置解析现在支持带引号的 YAML 标量值,例如
enabled: "false"、engine-mode: '3'。 - 支持带引号的方块列表项和内联列表,例如:
hidden-blocks: ["minecraft:diamond_ore", 'minecraft:deepslate_diamond_ore']。 - 支持带引号的维度别名,例如
"nether":,并继续归一化为minecraft:the_nether。 - 引号内的
#不再被当作注释截断,适合自定义权限节点等配置值。 - 新生成的配置文件顶部增加说明:旧配置会自动补齐新增但缺失的键,不会覆盖已有用户值。
- README 与 Modrinth 中英文简介新增 per-dimension 配置示例和旧配置兼容说明。
验证
- Fabric 与 NeoForge 均完成真实 dev server
/antixray status和/antixray reload冒烟测试。 - 全量测试与双 loader 构建通过:
test :neoforge:test buildAllLoaders。
兼容性
- Mod ID 仍为
meowantixray。 - 配置文件仍为
config/meowantixray.yml。 - Fabric 与 NeoForge 仍然分别发布独立 jar。
- Minecraft 兼容范围保持
26.1、26.1.1、26.1.2。
Meow Anti-Xray 1.2.0 Changelog
This release improves config compatibility and day-to-day usability, especially for hand-edited or older
config/meowantixray.ymlfiles.Improved
- Config parsing now accepts quoted YAML scalar values such as
enabled: "false"andengine-mode: '3'. - Quoted block list entries and inline lists are supported, for example:
hidden-blocks: ["minecraft:diamond_ore", 'minecraft:deepslate_diamond_ore']. - Quoted dimension aliases such as
"nether":are supported and still normalize tominecraft:the_nether. #inside quoted values is no longer treated as a comment, which helps with custom permission nodes and similar values.- Newly generated config files now explain that older configs are supplemented with missing new keys without overwriting existing user values.
- README and the Modrinth descriptions now include a compact per-dimension config example and config compatibility notes.
Verification
- Fabric and NeoForge both passed real dev-server
/antixray statusand/antixray reloadsmoke tests. - Full tests and dual-loader build passed:
test :neoforge:test buildAllLoaders.
Compatibility
- Mod ID remains
meowantixray. - Config file remains
config/meowantixray.yml. - Fabric and NeoForge are still published as separate jars.
- Minecraft compatibility remains
26.1,26.1.1, and26.1.2.
- 配置解析现在支持带引号的 YAML 标量值,例如
Meow Anti-Xray 1.2.0 更新日志
这是一个配置兼容与使用体验改进版本,重点让手写或旧版
config/meowantixray.yml更稳、更容易维护。改进
- 配置解析现在支持带引号的 YAML 标量值,例如
enabled: "false"、engine-mode: '3'。 - 支持带引号的方块列表项和内联列表,例如:
hidden-blocks: ["minecraft:diamond_ore", 'minecraft:deepslate_diamond_ore']。 - 支持带引号的维度别名,例如
"nether":,并继续归一化为minecraft:the_nether。 - 引号内的
#不再被当作注释截断,适合自定义权限节点等配置值。 - 新生成的配置文件顶部增加说明:旧配置会自动补齐新增但缺失的键,不会覆盖已有用户值。
- README 与 Modrinth 中英文简介新增 per-dimension 配置示例和旧配置兼容说明。
验证
- Fabric 与 NeoForge 均完成真实 dev server
/antixray status和/antixray reload冒烟测试。 - 全量测试与双 loader 构建通过:
test :neoforge:test buildAllLoaders。
兼容性
- Mod ID 仍为
meowantixray。 - 配置文件仍为
config/meowantixray.yml。 - Fabric 与 NeoForge 仍然分别发布独立 jar。
- Minecraft 兼容范围保持
26.1、26.1.1、26.1.2。
Meow Anti-Xray 1.2.0 Changelog
This release improves config compatibility and day-to-day usability, especially for hand-edited or older
config/meowantixray.ymlfiles.Improved
- Config parsing now accepts quoted YAML scalar values such as
enabled: "false"andengine-mode: '3'. - Quoted block list entries and inline lists are supported, for example:
hidden-blocks: ["minecraft:diamond_ore", 'minecraft:deepslate_diamond_ore']. - Quoted dimension aliases such as
"nether":are supported and still normalize tominecraft:the_nether. #inside quoted values is no longer treated as a comment, which helps with custom permission nodes and similar values.- Newly generated config files now explain that older configs are supplemented with missing new keys without overwriting existing user values.
- README and the Modrinth descriptions now include a compact per-dimension config example and config compatibility notes.
Verification
- Fabric and NeoForge both passed real dev-server
/antixray statusand/antixray reloadsmoke tests. - Full tests and dual-loader build passed:
test :neoforge:test buildAllLoaders.
Compatibility
- Mod ID remains
meowantixray. - Config file remains
config/meowantixray.yml. - Fabric and NeoForge are still published as separate jars.
- Minecraft compatibility remains
26.1,26.1.1, and26.1.2.
- 配置解析现在支持带引号的 YAML 标量值,例如
Meow Anti-Xray 1.1.1 更新日志
这是一个小修复版本,主要解决 Fabric 服务器与 Polymer 同时使用时的区块包上下文警告。
修复
- 修复 Fabric + Polymer 环境下可能出现的服务端错误:
Some mod tried to create a chunk update packet, without the packet context present! - 当检测到 Polymer 时,Meow Anti-Xray 不再提前取消原版
sendChunk并自行创建区块包,而是让原版/Polymer 先创建带上下文的区块包,再在发送前执行假矿混淆。 - 非 Polymer 环境继续保留原有发送路径,避免影响现有异步区块重写和性能表现。
验证
- 已使用 Polymer bundled
0.16.5+26.1.2进行真实客户端进服验证。 - 真实客户端进服、切换模式和加载区块后,未再出现 Polymer missing context /
IllegalStateException报错。 /antixray profile确认反矿透仍在处理真实客户端区块:chunks=2778、rewriteTasks=2778、rewrite avg2.907ms、syncFallbackRatio=6.6%。
兼容性
- Mod ID 仍为
meowantixray。 - 配置文件仍为
config/meowantixray.yml。 - Fabric 与 NeoForge 仍然分别发布独立 jar。
- Minecraft 兼容范围保持
26.1、26.1.1、26.1.2。
Meow Anti-Xray 1.1.1 Changelog
This is a small compatibility fix for Fabric servers using Polymer.
Fixed
- Fixed a Fabric + Polymer server warning/error:
Some mod tried to create a chunk update packet, without the packet context present! - When Polymer is detected, Meow Anti-Xray no longer cancels vanilla
sendChunkearly to create its own chunk packet. It now lets vanilla/Polymer create the packet with the proper context first, then applies fake-ore obfuscation before the packet is sent. - Non-Polymer environments keep the existing send path to avoid changing the current async chunk rewrite behavior and performance profile.
Verification
- Tested with Polymer bundled
0.16.5+26.1.2and a real client login. - After joining, switching game modes, and loading chunks, the Polymer missing-context warning /
IllegalStateExceptiondid not reappear. /antixray profileconfirmed that anti-xray rewriting still ran for the real client:chunks=2778,rewriteTasks=2778, rewrite avg2.907ms,syncFallbackRatio=6.6%.
Compatibility
- Mod ID remains
meowantixray. - Config file remains
config/meowantixray.yml. - Fabric and NeoForge are still published as separate jars.
- Minecraft compatibility remains
26.1,26.1.1, and26.1.2.
- 修复 Fabric + Polymer 环境下可能出现的服务端错误:
Meow Anti-Xray 1.1.1 更新日志
这是一个小修复版本,主要解决 Fabric 服务器与 Polymer 同时使用时的区块包上下文警告。
修复
- 修复 Fabric + Polymer 环境下可能出现的服务端错误:
Some mod tried to create a chunk update packet, without the packet context present! - 当检测到 Polymer 时,Meow Anti-Xray 不再提前取消原版
sendChunk并自行创建区块包,而是让原版/Polymer 先创建带上下文的区块包,再在发送前执行假矿混淆。 - 非 Polymer 环境继续保留原有发送路径,避免影响现有异步区块重写和性能表现。
验证
- 已使用 Polymer bundled
0.16.5+26.1.2进行真实客户端进服验证。 - 真实客户端进服、切换模式和加载区块后,未再出现 Polymer missing context /
IllegalStateException报错。 /antixray profile确认反矿透仍在处理真实客户端区块:chunks=2778、rewriteTasks=2778、rewrite avg2.907ms、syncFallbackRatio=6.6%。
兼容性
- Mod ID 仍为
meowantixray。 - 配置文件仍为
config/meowantixray.yml。 - Fabric 与 NeoForge 仍然分别发布独立 jar。
- Minecraft 兼容范围保持
26.1、26.1.1、26.1.2。
Meow Anti-Xray 1.1.1 Changelog
This is a small compatibility fix for Fabric servers using Polymer.
Fixed
- Fixed a Fabric + Polymer server warning/error:
Some mod tried to create a chunk update packet, without the packet context present! - When Polymer is detected, Meow Anti-Xray no longer cancels vanilla
sendChunkearly to create its own chunk packet. It now lets vanilla/Polymer create the packet with the proper context first, then applies fake-ore obfuscation before the packet is sent. - Non-Polymer environments keep the existing send path to avoid changing the current async chunk rewrite behavior and performance profile.
Verification
- Tested with Polymer bundled
0.16.5+26.1.2and a real client login. - After joining, switching game modes, and loading chunks, the Polymer missing-context warning /
IllegalStateExceptiondid not reappear. /antixray profileconfirmed that anti-xray rewriting still ran for the real client:chunks=2778,rewriteTasks=2778, rewrite avg2.907ms,syncFallbackRatio=6.6%.
Compatibility
- Mod ID remains
meowantixray. - Config file remains
config/meowantixray.yml. - Fabric and NeoForge are still published as separate jars.
- Minecraft compatibility remains
26.1,26.1.1, and26.1.2.
- 修复 Fabric + Polymer 环境下可能出现的服务端错误:
Meow Anti-Xray 1.1.0 更新日志
这是一个中版本更新,重点不是单纯改包名,而是继续把 Meow Anti-Xray 做成独立、可压测、可诊断的假矿反矿透模组。服主最关心的假矿目标、跑图压力和双 loader 稳定性,这次都做了对应验证。
反矿透效果
- 对齐 Paper anti-xray 的实际混淆目标:mode 1 只处理 hidden blocks,mode 2 / mode 3 会把 replacement blocks 纳入混淆目标。
- 修正目标判断后,关闭 replacement pass 或使用 mode 1 时不会再对 replacement blocks 做无效 reveal / blockChanged 候选检查。
- 保留本项目默认额外保护的下界矿物:
ancient_debris、nether_quartz_ore、nether_gold_ore。
性能与诊断
- 区块重写流程复用静态 pass 数组,减少每个 chunk 重写时的小对象分配。
/antixray profile新增pressure=与syncFallbackRatio=,服主可以直接看到异步队列是否被跑图压满,以及有多少区块发送回退到了同步重写。- 默认
async-queue-size=16仍然以防 OOM 为优先;如果服务器内存更充足,可以继续按实际压测把队列调到 32 或 64 换更高吞吐。
启动与压测验证
Loader 启动 8 客户端压测 /antixray profilespark Fabric meowantixray 1.1.0启动到Done,更新检查正常91s,8/8 在线,28766 chunks,316.01 chunks/s,0 errors rewrite avg 2.662ms,max 33.198ms,syncFallbackRatio 43.0% https://spark.lucko.me/A9EOkRRmFJ NeoForge meowantixray 1.1.0启动到Done,更新检查正常91s,8/8 在线,29699 chunks,326.29 chunks/s,0 errors rewrite avg 2.893ms,max 42.202ms,syncFallbackRatio 38.2% https://spark.lucko.me/emnV8jJ4yG 说明:上面的压测使用本仓库的 Minecraft 26.1.2 网络假玩家工具,通过 RCON 持续传送制造区块发送压力。
pressure=saturated在这类压测下是预期信号,表示背压机制正在限制异步任务堆积。项目身份清理
- Java 包名从
com.meowconsole迁移到com.meowantixray。 - Fabric 入口类迁移为
com.meowantixray.fabric.MeowAntiXrayFabricMod。 - NeoForge 入口类迁移为
com.meowantixray.neoforge.MeowAntiXrayNeoForgeMod。 - Mixin plugin 与 mixin 包名同步迁移到
com.meowantixray.mixin。 - 运行时日志、命令类和平台桥接中的旧 MeowConsole 命名残留已清理。
兼容性
- Mod ID 保持
meowantixray不变。 - 配置文件仍为
config/meowantixray.yml,升级不需要重新生成配置。 - 默认配置路径、命令和假矿策略保持兼容。
- Fabric 与 NeoForge 仍然分别发布独立 jar,请继续按服务器 loader 下载对应文件。
- Minecraft 兼容范围保持
26.1、26.1.1、26.1.2。
Meow Anti-Xray 1.1.0 Changelog
This minor release is not just an internal package rename. It continues the work of making Meow Anti-Xray a standalone fake-ore anti-xray mod with clear behavior, measurable performance, and verified Fabric / NeoForge stability.
Anti-Xray Behavior
- Aligned the obfuscation target lookup with Paper anti-xray behavior: mode 1 targets hidden blocks only, while mode 2 / mode 3 also include replacement blocks.
- Avoided unnecessary reveal / blockChanged candidate checks for replacement blocks when replacement passes are disabled or mode 1 is used.
- Kept this mod's additional Nether protection defaults:
ancient_debris,nether_quartz_ore, andnether_gold_ore.
Performance And Diagnostics
- Reused static rewrite pass arrays to reduce small per-chunk allocations in the hot rewrite path.
- Added
pressure=andsyncFallbackRatio=to/antixray profile, so server owners can see whether async rewriting is saturated and how often chunk sends fall back to synchronous rewriting. - Kept the default
async-queue-size=16conservative to prevent OOM under heavy travel. Servers with more memory can still raise it to 32 or 64 after their own profiling.
Startup And Profiling Verification
Loader Startup 8-client load run /antixray profilespark Fabric meowantixray 1.1.0reachedDone; update check passed91s, 8/8 online, 28766 chunks, 316.01 chunks/s, 0 errors rewrite avg 2.662ms, max 33.198ms, syncFallbackRatio 43.0% https://spark.lucko.me/A9EOkRRmFJ NeoForge meowantixray 1.1.0reachedDone; update check passed91s, 8/8 online, 29699 chunks, 326.29 chunks/s, 0 errors rewrite avg 2.893ms, max 42.202ms, syncFallbackRatio 38.2% https://spark.lucko.me/emnV8jJ4yG The load runs used this repository's Minecraft 26.1.2 network fake-player runner with RCON teleports to generate sustained chunk-send pressure. Seeing
pressure=saturatedduring this synthetic run is expected; it means the backpressure guard is actively preventing unbounded async task buildup.Project Identity Cleanup
- Migrated Java packages from
com.meowconsoletocom.meowantixray. - Migrated the Fabric entrypoint to
com.meowantixray.fabric.MeowAntiXrayFabricMod. - Migrated the NeoForge entrypoint to
com.meowantixray.neoforge.MeowAntiXrayNeoForgeMod. - Migrated the mixin plugin and mixin package to
com.meowantixray.mixin. - Cleaned up old MeowConsole naming from runtime logs, command classes, and platform bridge code.
Compatibility
- Mod ID remains
meowantixray. - Config file remains
config/meowantixray.yml; upgrading does not require regenerating your config. - Default config path, commands, and fake-ore strategy remain compatible.
- Fabric and NeoForge are still published as separate jars. Please keep downloading the file that matches your server loader.
- Minecraft compatibility remains
26.1,26.1.1, and26.1.2.
Meow Anti-Xray 1.1.0 更新日志
这是一个中版本更新,重点不是单纯改包名,而是继续把 Meow Anti-Xray 做成独立、可压测、可诊断的假矿反矿透模组。服主最关心的假矿目标、跑图压力和双 loader 稳定性,这次都做了对应验证。
反矿透效果
- 对齐 Paper anti-xray 的实际混淆目标:mode 1 只处理 hidden blocks,mode 2 / mode 3 会把 replacement blocks 纳入混淆目标。
- 修正目标判断后,关闭 replacement pass 或使用 mode 1 时不会再对 replacement blocks 做无效 reveal / blockChanged 候选检查。
- 保留本项目默认额外保护的下界矿物:
ancient_debris、nether_quartz_ore、nether_gold_ore。
性能与诊断
- 区块重写流程复用静态 pass 数组,减少每个 chunk 重写时的小对象分配。
/antixray profile新增pressure=与syncFallbackRatio=,服主可以直接看到异步队列是否被跑图压满,以及有多少区块发送回退到了同步重写。- 默认
async-queue-size=16仍然以防 OOM 为优先;如果服务器内存更充足,可以继续按实际压测把队列调到 32 或 64 换更高吞吐。
启动与压测验证
Loader 启动 8 客户端压测 /antixray profilespark Fabric meowantixray 1.1.0启动到Done,更新检查正常91s,8/8 在线,28766 chunks,316.01 chunks/s,0 errors rewrite avg 2.662ms,max 33.198ms,syncFallbackRatio 43.0% https://spark.lucko.me/A9EOkRRmFJ NeoForge meowantixray 1.1.0启动到Done,更新检查正常91s,8/8 在线,29699 chunks,326.29 chunks/s,0 errors rewrite avg 2.893ms,max 42.202ms,syncFallbackRatio 38.2% https://spark.lucko.me/emnV8jJ4yG 说明:上面的压测使用本仓库的 Minecraft 26.1.2 网络假玩家工具,通过 RCON 持续传送制造区块发送压力。
pressure=saturated在这类压测下是预期信号,表示背压机制正在限制异步任务堆积。项目身份清理
- Java 包名从
com.meowconsole迁移到com.meowantixray。 - Fabric 入口类迁移为
com.meowantixray.fabric.MeowAntiXrayFabricMod。 - NeoForge 入口类迁移为
com.meowantixray.neoforge.MeowAntiXrayNeoForgeMod。 - Mixin plugin 与 mixin 包名同步迁移到
com.meowantixray.mixin。 - 运行时日志、命令类和平台桥接中的旧 MeowConsole 命名残留已清理。
兼容性
- Mod ID 保持
meowantixray不变。 - 配置文件仍为
config/meowantixray.yml,升级不需要重新生成配置。 - 默认配置路径、命令和假矿策略保持兼容。
- Fabric 与 NeoForge 仍然分别发布独立 jar,请继续按服务器 loader 下载对应文件。
- Minecraft 兼容范围保持
26.1、26.1.1、26.1.2。
Meow Anti-Xray 1.1.0 Changelog
This minor release is not just an internal package rename. It continues the work of making Meow Anti-Xray a standalone fake-ore anti-xray mod with clear behavior, measurable performance, and verified Fabric / NeoForge stability.
Anti-Xray Behavior
- Aligned the obfuscation target lookup with Paper anti-xray behavior: mode 1 targets hidden blocks only, while mode 2 / mode 3 also include replacement blocks.
- Avoided unnecessary reveal / blockChanged candidate checks for replacement blocks when replacement passes are disabled or mode 1 is used.
- Kept this mod's additional Nether protection defaults:
ancient_debris,nether_quartz_ore, andnether_gold_ore.
Performance And Diagnostics
- Reused static rewrite pass arrays to reduce small per-chunk allocations in the hot rewrite path.
- Added
pressure=andsyncFallbackRatio=to/antixray profile, so server owners can see whether async rewriting is saturated and how often chunk sends fall back to synchronous rewriting. - Kept the default
async-queue-size=16conservative to prevent OOM under heavy travel. Servers with more memory can still raise it to 32 or 64 after their own profiling.
Startup And Profiling Verification
Loader Startup 8-client load run /antixray profilespark Fabric meowantixray 1.1.0reachedDone; update check passed91s, 8/8 online, 28766 chunks, 316.01 chunks/s, 0 errors rewrite avg 2.662ms, max 33.198ms, syncFallbackRatio 43.0% https://spark.lucko.me/A9EOkRRmFJ NeoForge meowantixray 1.1.0reachedDone; update check passed91s, 8/8 online, 29699 chunks, 326.29 chunks/s, 0 errors rewrite avg 2.893ms, max 42.202ms, syncFallbackRatio 38.2% https://spark.lucko.me/emnV8jJ4yG The load runs used this repository's Minecraft 26.1.2 network fake-player runner with RCON teleports to generate sustained chunk-send pressure. Seeing
pressure=saturatedduring this synthetic run is expected; it means the backpressure guard is actively preventing unbounded async task buildup.Project Identity Cleanup
- Migrated Java packages from
com.meowconsoletocom.meowantixray. - Migrated the Fabric entrypoint to
com.meowantixray.fabric.MeowAntiXrayFabricMod. - Migrated the NeoForge entrypoint to
com.meowantixray.neoforge.MeowAntiXrayNeoForgeMod. - Migrated the mixin plugin and mixin package to
com.meowantixray.mixin. - Cleaned up old MeowConsole naming from runtime logs, command classes, and platform bridge code.
Compatibility
- Mod ID remains
meowantixray. - Config file remains
config/meowantixray.yml; upgrading does not require regenerating your config. - Default config path, commands, and fake-ore strategy remain compatible.
- Fabric and NeoForge are still published as separate jars. Please keep downloading the file that matches your server loader.
- Minecraft compatibility remains
26.1,26.1.1, and26.1.2.
Meow Anti-Xray 1.0.2 更新日志
这是一个稳定修复版本,重点修复 Fabric 端区块包重写在真实 local palette 场景下的崩溃,并进一步对齐 Paper Anti-Xray 的 engine mode 1 行为。
修复
- 修复 Fabric 端玩家加载区块时可能出现的
MissingPaletteEntryException崩溃。 - 修正 local palette 读取逻辑:实时读取
LevelChunkSection时现在使用真实 palette 大小,而不是 4096 个区块内方块索引数量。 - 修正 engine mode 1 / HIDE 的自然替换规则:主世界按高度选择
stone/deepslate,下界使用netherrack,末地使用end_stone,更贴近 Paper 行为。
验证
- 新增 local palette 回归测试,覆盖 Fabric 崩溃路径。
- 新增 engine mode 1 自然替换 golden case 测试。
- Fabric 8 个假网络玩家 RCON spectator 跑图 91 秒通过:
15833chunks,约173.94 chunks/s,客户端错误0。 - Fabric 与 NeoForge 单元测试通过。
- Fabric 与 NeoForge 双 loader 构建通过。
Meow Anti-Xray 1.0.2 Changelog
This is a stability release focused on fixing a Fabric chunk rewrite crash in real local-palette sections and tightening Paper Anti-Xray engine mode 1 parity.
Fixes
- Fixed a Fabric crash that could happen while players were loading chunks:
MissingPaletteEntryException. - Fixed live
LevelChunkSectionlocal palette reads to use the real palette size instead of the 4096 block-index count. - Aligned engine mode 1 / HIDE natural replacements more closely with Paper: Overworld sections use
stoneordeepslateby height, Nether usesnetherrack, and End usesend_stone.
Verification
- Added a local palette regression test for the Fabric crash path.
- Added engine mode 1 natural replacement golden case tests.
- Fabric 8 fake network players completed a 91-second RCON spectator exploration run:
15833chunks, about173.94 chunks/s,0client errors. - Fabric and NeoForge unit tests passed.
- Fabric and NeoForge dual-loader build passed.
- 修复 Fabric 端玩家加载区块时可能出现的
Meow Anti-Xray 1.0.2 更新日志
这是一个稳定修复版本,重点修复 Fabric 端区块包重写在真实 local palette 场景下的崩溃,并进一步对齐 Paper Anti-Xray 的 engine mode 1 行为。
修复
- 修复 Fabric 端玩家加载区块时可能出现的
MissingPaletteEntryException崩溃。 - 修正 local palette 读取逻辑:实时读取
LevelChunkSection时现在使用真实 palette 大小,而不是 4096 个区块内方块索引数量。 - 修正 engine mode 1 / HIDE 的自然替换规则:主世界按高度选择
stone/deepslate,下界使用netherrack,末地使用end_stone,更贴近 Paper 行为。
验证
- 新增 local palette 回归测试,覆盖 Fabric 崩溃路径。
- 新增 engine mode 1 自然替换 golden case 测试。
- Fabric 8 个假网络玩家 RCON spectator 跑图 91 秒通过:
15833chunks,约173.94 chunks/s,客户端错误0。 - Fabric 与 NeoForge 单元测试通过。
- Fabric 与 NeoForge 双 loader 构建通过。
Meow Anti-Xray 1.0.2 Changelog
This is a stability release focused on fixing a Fabric chunk rewrite crash in real local-palette sections and tightening Paper Anti-Xray engine mode 1 parity.
Fixes
- Fixed a Fabric crash that could happen while players were loading chunks:
MissingPaletteEntryException. - Fixed live
LevelChunkSectionlocal palette reads to use the real palette size instead of the 4096 block-index count. - Aligned engine mode 1 / HIDE natural replacements more closely with Paper: Overworld sections use
stoneordeepslateby height, Nether usesnetherrack, and End usesend_stone.
Verification
- Added a local palette regression test for the Fabric crash path.
- Added engine mode 1 natural replacement golden case tests.
- Fabric 8 fake network players completed a 91-second RCON spectator exploration run:
15833chunks, about173.94 chunks/s,0client errors. - Fabric and NeoForge unit tests passed.
- Fabric and NeoForge dual-loader build passed.
- 修复 Fabric 端玩家加载区块时可能出现的
Meow Anti-Xray 1.0.1 Changelog
This is a maintenance release focused on clearer runtime diagnostics for server owners.
Improvements
/antixray statusnow shows the active loader, mod version, and Minecraft version./antixray profilenow reports async rewrite enablement, worker count, queue size, total capacity, in-flight count, and available permits./antixray profilenow tracks sync chunk sends and sync send rate, making async backpressure fallback easier to spot.- Local
.playwright-cli/test cache is now ignored so it does not pollute the working tree.
Verification
- Fabric and NeoForge unit tests passed.
- Fabric and NeoForge dual-loader build passed.
Meow Anti-Xray 1.0.1 更新日志
这是一个稳定维护版本,重点是让服主更容易确认当前运行环境和反矿透异步重写压力。
改进
/antixray status现在会显示当前 loader、模组版本和 Minecraft 版本。/antixray profile现在会显示异步重写是否启用、worker 数量、队列大小、总容量、当前 in-flight 数量和可用 permit 数。/antixray profile现在会统计同步 chunk send 次数和速率,便于判断是否频繁触发异步背压 fallback。- 本地开发缓存
.playwright-cli/已加入.gitignore,避免测试缓存污染工作区状态。
验证
- Fabric 与 NeoForge 单元测试通过。
- Fabric 与 NeoForge 双 loader 构建通过。
Meow Anti-Xray 1.0.1 Changelog
This is a maintenance release focused on clearer runtime diagnostics for server owners.
Improvements
/antixray statusnow shows the active loader, mod version, and Minecraft version./antixray profilenow reports async rewrite enablement, worker count, queue size, total capacity, in-flight count, and available permits./antixray profilenow tracks sync chunk sends and sync send rate, making async backpressure fallback easier to spot.- Local
.playwright-cli/test cache is now ignored so it does not pollute the working tree.
Verification
- Fabric and NeoForge unit tests passed.
- Fabric and NeoForge dual-loader build passed.
Meow Anti-Xray 1.0.1 更新日志
这是一个稳定维护版本,重点是让服主更容易确认当前运行环境和反矿透异步重写压力。
改进
/antixray status现在会显示当前 loader、模组版本和 Minecraft 版本。/antixray profile现在会显示异步重写是否启用、worker 数量、队列大小、总容量、当前 in-flight 数量和可用 permit 数。/antixray profile现在会统计同步 chunk send 次数和速率,便于判断是否频繁触发异步背压 fallback。- 本地开发缓存
.playwright-cli/已加入.gitignore,避免测试缓存污染工作区状态。
验证
- Fabric 与 NeoForge 单元测试通过。
- Fabric 与 NeoForge 双 loader 构建通过。
Meow Anti-Xray 1.0.0 更新日志
🚀 高性能独立反矿透:从 MeowConsole 拆分,后续由本项目持续维护
Meow Anti-Xray是从 MeowConsole 拆分出来的独立服务端反矿透 Mod。MeowConsole 新版本将不再继续维护内置反矿透功能,后续反矿透更新、性能优化、版本适配与问题修复都会集中在本项目进行。相比继续把反矿透塞在综合服务器工具里,本项目只保留矿物隐藏、区块包重写、权限绕过、配置热重载和性能诊断等必要能力,目标是给 Fabric / NeoForge 服务器提供一个更轻、更专注、更接近 Paper Anti-Xray 体验的方案。
本次亮点
- 🧭 进一步对齐 Paper Anti-Xray:同步 Paper 风格的默认隐藏方块、替换方块、邻近刷新逻辑和
paper.antixray.bypass权限节点。 - 🏎️ 性能优先的独立实现:移除 MeowConsole 中与反矿透无关的控制台、睡眠、玩家消息等功能,减少加载面和运行期干扰,让反矿透逻辑更容易被 profiling、调优和长期维护。
- 🪨 更安全的假矿候选:箱子、末影箱等方块实体不会再作为 mode 2 假矿候选,降低客户端显示异常和交互误导风险。
- 🔐 权限绕过更完整:新增/完善
bypass-permission配置。开启use-permission后,Fabric / NeoForge 会尽量桥接对应权限 API;没有权限 API 时仍回退到 OP/管理员判断。 - ⚡ 异步区块包重写优化:继续支持后台线程处理区块包重写,降低玩家跑图、传送、加载新区块时对主线程的压力。
- 🧯 新增异步队列背压:加入
async-queue-size,默认16。在高压跑图或多人加载新区块时限制后台任务堆积,避免大量区块快照排队造成内存暴涨或 Java heap OOM。 - 📊 真实跑图与高压压测验证:已用 spark 对真实 Fabric 单人跑图采样,TPS 稳定
20.00,MSPT 中位数3.31ms,meowantixray在 server thread mods 视图占比约3.55%。同时新增 Minecraft26.1.2网络假玩家压测工具,可模拟真实玩家登录、接收区块包、回 keepalive、回 chunk batch ack,并通过 RCON 跑图触发真实区块加载。 - 🧪 8 假玩家高压测试通过:修复前 8 个网络假玩家持续传送跑图会触发 OOM;修复后 90 秒压测稳定完成,0 客户端错误。保守默认队列下仍能完成约 3.6 万次区块接收,说明本项目更适合承接后续反矿透性能优化。
- 🔌 Fabric / NeoForge 行为保持一致:反矿透核心仍由两个 loader 共享,配置、权限、Paper 对齐逻辑和性能策略保持同步。
- 🛠️ 新增调试/压测能力:保留
/antixray profile,并加入面向开发和排障的/antixray stress,方便服主或开发者定位反矿透重写成本。
配置变化
新增配置项:
anti-xray: async-chunk-rewrite: true async-worker-threads: 1 async-queue-size: 16async-queue-size用来控制异步重写任务最多排队多少个。默认16更偏向防止内存堆积。如果你的服务器内存充足,并且希望提高多人跑图吞吐,可以尝试32或64。使用方法
- 下载与你服务器 loader 匹配的文件:
- Fabric:
meowantixray-fabric-1.0.0.jar - NeoForge:
meowantixray-neoforge-1.0.0.jar
- Fabric:
- 放入服务端
mods文件夹。 - 启动服务器,配置会生成在:
config/meowantixray.yml- 常用命令:
/antixray status查看状态和更新检查结果/antixray reload重载配置/antixray profile查看重写次数和耗时/antixray debug <world> <x> <y> <z>排查指定方块是否会被隐藏
关于预生成地图和网页地图
- 🗺️ 预生成地图、预加载区块不会绕过本 Mod。Meow Anti-Xray 在“区块发送给玩家客户端”时生效,而不是在服务端生成区块时生效。
- 🧭 Dynmap / BlueMap 等网页地图如果直接读取服务端真实区块数据,不属于玩家客户端区块包,本 Mod 不会替它们隐藏矿物。请单独配置对应地图插件/Mod 的隐藏规则。
未来规划
- 🔍 持续跟进 Paper Anti-Xray 的默认配置和行为差异。
- 📉 继续降低区块包重写时的内存分配和 GC 压力。
- 🧪 增强压测工具和 profiling 指标,让服主更容易判断配置是否适合自己的服务器。
- 🌐 继续保持 Fabric / NeoForge 双 loader 支持,并关注 Minecraft 新版本协议变化。
- 🧭 承接 MeowConsole 后续不再维护的反矿透能力,后续兼容性修复、新版本适配和性能优化都将在本项目发布。
给 MeowConsole 用户
- 🐾 如果你需要反矿透,请迁移到
Meow Anti-Xray;这是后续反矿透功能的正式维护项目。 - 🧩 MeowConsole 新版本将专注其它服务器辅助能力,不再继续内置和维护反矿透。
Meow Anti-Xray 1.0.0 Changelog
🚀 High-performance standalone anti-xray, split from MeowConsole
Meow Anti-Xrayis a standalone server-side anti-xray mod split from MeowConsole. Future MeowConsole versions will no longer maintain the built-in anti-xray feature. Anti-xray updates, performance work, Minecraft version support, and bug fixes will continue in this project.Instead of keeping anti-xray inside a general-purpose server utility mod, this project focuses only on ore hiding, chunk packet rewriting, permission bypasses, hot reloads, and diagnostics. The goal is to provide Fabric and NeoForge servers with a lighter, more focused, Paper-like anti-xray experience.
Highlights
- 🧭 Closer Paper Anti-Xray parity: Updated Paper-style hidden blocks, replacement blocks, neighbor reveal behavior, and the default
paper.antixray.bypasspermission node. - 🏎️ Performance-first standalone design: Removes unrelated MeowConsole console, sleep, player-message, and helper features so the anti-xray path is easier to profile, tune, and maintain.
- 🪨 Safer decoy selection: Block entities such as chests and ender chests are excluded from mode 2 decoys, reducing client-side display and interaction surprises.
- 🔐 Better permission bypass support: Added/improved
bypass-permission. Whenuse-permissionis enabled, Fabric and NeoForge permission APIs are bridged when available, with OP/admin fallback. - ⚡ Async chunk packet rewriting: Keeps rewrite work off the main thread where possible, reducing pressure while players explore, teleport, or load new chunks.
- 🧯 New async backpressure: Adds
async-queue-size, defaulting to16, to prevent queued rewrite snapshots from growing without bounds during heavy chunk loading. - 📊 Real exploration and stress-test verified: A real Fabric spark run with one player held
20.00TPS, with median MSPT3.31ms;meowantixrayaccounted for about3.55%in the server-thread mods view. The project also includes a Minecraft26.1.2network fake-player runner that logs in like a real client, receives chunk packets, replies to keepalive and chunk batch packets, and can use RCON teleports to load real terrain. - 🧪 8 fake-player stress test passed: Before the fix, 8 network fake players repeatedly teleporting and loading chunks could trigger Java heap OOM. After the fix, a 90-second stress run completed with 0 client errors. With the conservative default queue, the run still completed about 36k chunk receives, making this project a better home for future anti-xray performance work.
- 🔌 Fabric / NeoForge behavior alignment: The anti-xray core remains shared across both loaders, keeping config, permissions, Paper parity behavior, and performance strategy consistent.
- 🛠️ More diagnostics:
/antixray profileremains available, and/antixray stresshelps server owners and developers inspect rewrite cost during troubleshooting.
Config Changes
New config option:
anti-xray: async-chunk-rewrite: true async-worker-threads: 1 async-queue-size: 16async-queue-sizecontrols how many async rewrite tasks may wait in the queue. The default16favors memory safety. If your server has more memory and you want higher exploration throughput, try32or64.How to Use
- Download the file matching your server loader:
- Fabric:
meowantixray-fabric-1.0.0.jar - NeoForge:
meowantixray-neoforge-1.0.0.jar
- Fabric:
- Put it into the server
modsfolder. - Start the server. The config is generated at:
config/meowantixray.yml- Useful commands:
/antixray statusshows status and update-check results/antixray reloadreloads the config/antixray profileshows rewrite counts and timing metrics/antixray debug <world> <x> <y> <z>checks whether a specific block would be hidden
Pregenerated Worlds and Web Maps
- 🗺️ Pregeneration and chunk preloading do not bypass this mod. Meow Anti-Xray applies when chunk packets are sent to player clients, not when chunks are generated server-side.
- 🧭 Web map renderers such as Dynmap or BlueMap may read real server chunk data directly. Those are not player chunk packets, so configure hiding rules in the map plugin/mod separately.
Roadmap
- 🔍 Continue tracking Paper Anti-Xray defaults and behavior.
- 📉 Further reduce memory allocation and GC pressure during chunk packet rewriting.
- 🧪 Improve stress testing and profiling output so server owners can tune config more confidently.
- 🌐 Keep Fabric / NeoForge support aligned while tracking Minecraft protocol changes.
- 🧭 Carry forward the anti-xray feature that newer MeowConsole versions will no longer maintain. Compatibility fixes, version updates, and performance improvements will be released here.
For MeowConsole Users
- 🐾 If you need anti-xray protection, migrate to
Meow Anti-Xray; this is the official maintained home for that feature going forward. - 🧩 Newer MeowConsole versions will focus on other server helper features and will no longer include or maintain anti-xray.
- 🧭 进一步对齐 Paper Anti-Xray:同步 Paper 风格的默认隐藏方块、替换方块、邻近刷新逻辑和
Meow Anti-Xray 1.0.0 更新日志
🚀 高性能独立反矿透:从 MeowConsole 拆分,后续由本项目持续维护
Meow Anti-Xray是从 MeowConsole 拆分出来的独立服务端反矿透 Mod。MeowConsole 新版本将不再继续维护内置反矿透功能,后续反矿透更新、性能优化、版本适配与问题修复都会集中在本项目进行。相比继续把反矿透塞在综合服务器工具里,本项目只保留矿物隐藏、区块包重写、权限绕过、配置热重载和性能诊断等必要能力,目标是给 Fabric / NeoForge 服务器提供一个更轻、更专注、更接近 Paper Anti-Xray 体验的方案。
本次亮点
- 🧭 进一步对齐 Paper Anti-Xray:同步 Paper 风格的默认隐藏方块、替换方块、邻近刷新逻辑和
paper.antixray.bypass权限节点。 - 🏎️ 性能优先的独立实现:移除 MeowConsole 中与反矿透无关的控制台、睡眠、玩家消息等功能,减少加载面和运行期干扰,让反矿透逻辑更容易被 profiling、调优和长期维护。
- 🪨 更安全的假矿候选:箱子、末影箱等方块实体不会再作为 mode 2 假矿候选,降低客户端显示异常和交互误导风险。
- 🔐 权限绕过更完整:新增/完善
bypass-permission配置。开启use-permission后,Fabric / NeoForge 会尽量桥接对应权限 API;没有权限 API 时仍回退到 OP/管理员判断。 - ⚡ 异步区块包重写优化:继续支持后台线程处理区块包重写,降低玩家跑图、传送、加载新区块时对主线程的压力。
- 🧯 新增异步队列背压:加入
async-queue-size,默认16。在高压跑图或多人加载新区块时限制后台任务堆积,避免大量区块快照排队造成内存暴涨或 Java heap OOM。 - 📊 真实跑图与高压压测验证:已用 spark 对真实 Fabric 单人跑图采样,TPS 稳定
20.00,MSPT 中位数3.31ms,meowantixray在 server thread mods 视图占比约3.55%。同时新增 Minecraft26.1.2网络假玩家压测工具,可模拟真实玩家登录、接收区块包、回 keepalive、回 chunk batch ack,并通过 RCON 跑图触发真实区块加载。 - 🧪 8 假玩家高压测试通过:修复前 8 个网络假玩家持续传送跑图会触发 OOM;修复后 90 秒压测稳定完成,0 客户端错误。保守默认队列下仍能完成约 3.6 万次区块接收,说明本项目更适合承接后续反矿透性能优化。
- 🔌 Fabric / NeoForge 行为保持一致:反矿透核心仍由两个 loader 共享,配置、权限、Paper 对齐逻辑和性能策略保持同步。
- 🛠️ 新增调试/压测能力:保留
/antixray profile,并加入面向开发和排障的/antixray stress,方便服主或开发者定位反矿透重写成本。
配置变化
新增配置项:
anti-xray: async-chunk-rewrite: true async-worker-threads: 1 async-queue-size: 16async-queue-size用来控制异步重写任务最多排队多少个。默认16更偏向防止内存堆积。如果你的服务器内存充足,并且希望提高多人跑图吞吐,可以尝试32或64。使用方法
- 下载与你服务器 loader 匹配的文件:
- Fabric:
meowantixray-fabric-1.0.0.jar - NeoForge:
meowantixray-neoforge-1.0.0.jar
- Fabric:
- 放入服务端
mods文件夹。 - 启动服务器,配置会生成在:
config/meowantixray.yml- 常用命令:
/antixray status查看状态和更新检查结果/antixray reload重载配置/antixray profile查看重写次数和耗时/antixray debug <world> <x> <y> <z>排查指定方块是否会被隐藏
关于预生成地图和网页地图
- 🗺️ 预生成地图、预加载区块不会绕过本 Mod。Meow Anti-Xray 在“区块发送给玩家客户端”时生效,而不是在服务端生成区块时生效。
- 🧭 Dynmap / BlueMap 等网页地图如果直接读取服务端真实区块数据,不属于玩家客户端区块包,本 Mod 不会替它们隐藏矿物。请单独配置对应地图插件/Mod 的隐藏规则。
未来规划
- 🔍 持续跟进 Paper Anti-Xray 的默认配置和行为差异。
- 📉 继续降低区块包重写时的内存分配和 GC 压力。
- 🧪 增强压测工具和 profiling 指标,让服主更容易判断配置是否适合自己的服务器。
- 🌐 继续保持 Fabric / NeoForge 双 loader 支持,并关注 Minecraft 新版本协议变化。
- 🧭 承接 MeowConsole 后续不再维护的反矿透能力,后续兼容性修复、新版本适配和性能优化都将在本项目发布。
给 MeowConsole 用户
- 🐾 如果你需要反矿透,请迁移到
Meow Anti-Xray;这是后续反矿透功能的正式维护项目。 - 🧩 MeowConsole 新版本将专注其它服务器辅助能力,不再继续内置和维护反矿透。
Meow Anti-Xray 1.0.0 Changelog
🚀 High-performance standalone anti-xray, split from MeowConsole
Meow Anti-Xrayis a standalone server-side anti-xray mod split from MeowConsole. Future MeowConsole versions will no longer maintain the built-in anti-xray feature. Anti-xray updates, performance work, Minecraft version support, and bug fixes will continue in this project.Instead of keeping anti-xray inside a general-purpose server utility mod, this project focuses only on ore hiding, chunk packet rewriting, permission bypasses, hot reloads, and diagnostics. The goal is to provide Fabric and NeoForge servers with a lighter, more focused, Paper-like anti-xray experience.
Highlights
- 🧭 Closer Paper Anti-Xray parity: Updated Paper-style hidden blocks, replacement blocks, neighbor reveal behavior, and the default
paper.antixray.bypasspermission node. - 🏎️ Performance-first standalone design: Removes unrelated MeowConsole console, sleep, player-message, and helper features so the anti-xray path is easier to profile, tune, and maintain.
- 🪨 Safer decoy selection: Block entities such as chests and ender chests are excluded from mode 2 decoys, reducing client-side display and interaction surprises.
- 🔐 Better permission bypass support: Added/improved
bypass-permission. Whenuse-permissionis enabled, Fabric and NeoForge permission APIs are bridged when available, with OP/admin fallback. - ⚡ Async chunk packet rewriting: Keeps rewrite work off the main thread where possible, reducing pressure while players explore, teleport, or load new chunks.
- 🧯 New async backpressure: Adds
async-queue-size, defaulting to16, to prevent queued rewrite snapshots from growing without bounds during heavy chunk loading. - 📊 Real exploration and stress-test verified: A real Fabric spark run with one player held
20.00TPS, with median MSPT3.31ms;meowantixrayaccounted for about3.55%in the server-thread mods view. The project also includes a Minecraft26.1.2network fake-player runner that logs in like a real client, receives chunk packets, replies to keepalive and chunk batch packets, and can use RCON teleports to load real terrain. - 🧪 8 fake-player stress test passed: Before the fix, 8 network fake players repeatedly teleporting and loading chunks could trigger Java heap OOM. After the fix, a 90-second stress run completed with 0 client errors. With the conservative default queue, the run still completed about 36k chunk receives, making this project a better home for future anti-xray performance work.
- 🔌 Fabric / NeoForge behavior alignment: The anti-xray core remains shared across both loaders, keeping config, permissions, Paper parity behavior, and performance strategy consistent.
- 🛠️ More diagnostics:
/antixray profileremains available, and/antixray stresshelps server owners and developers inspect rewrite cost during troubleshooting.
Config Changes
New config option:
anti-xray: async-chunk-rewrite: true async-worker-threads: 1 async-queue-size: 16async-queue-sizecontrols how many async rewrite tasks may wait in the queue. The default16favors memory safety. If your server has more memory and you want higher exploration throughput, try32or64.How to Use
- Download the file matching your server loader:
- Fabric:
meowantixray-fabric-1.0.0.jar - NeoForge:
meowantixray-neoforge-1.0.0.jar
- Fabric:
- Put it into the server
modsfolder. - Start the server. The config is generated at:
config/meowantixray.yml- Useful commands:
/antixray statusshows status and update-check results/antixray reloadreloads the config/antixray profileshows rewrite counts and timing metrics/antixray debug <world> <x> <y> <z>checks whether a specific block would be hidden
Pregenerated Worlds and Web Maps
- 🗺️ Pregeneration and chunk preloading do not bypass this mod. Meow Anti-Xray applies when chunk packets are sent to player clients, not when chunks are generated server-side.
- 🧭 Web map renderers such as Dynmap or BlueMap may read real server chunk data directly. Those are not player chunk packets, so configure hiding rules in the map plugin/mod separately.
Roadmap
- 🔍 Continue tracking Paper Anti-Xray defaults and behavior.
- 📉 Further reduce memory allocation and GC pressure during chunk packet rewriting.
- 🧪 Improve stress testing and profiling output so server owners can tune config more confidently.
- 🌐 Keep Fabric / NeoForge support aligned while tracking Minecraft protocol changes.
- 🧭 Carry forward the anti-xray feature that newer MeowConsole versions will no longer maintain. Compatibility fixes, version updates, and performance improvements will be released here.
For MeowConsole Users
- 🐾 If you need anti-xray protection, migrate to
Meow Anti-Xray; this is the official maintained home for that feature going forward. - 🧩 Newer MeowConsole versions will focus on other server helper features and will no longer include or maintain anti-xray.
- 🧭 进一步对齐 Paper Anti-Xray:同步 Paper 风格的默认隐藏方块、替换方块、邻近刷新逻辑和

