配置反矿物透视
最初由 stonar96 编写和维护。
Paper 包含一个基于混淆的反矿物透视系统,有三种模式,可以针对每个世界进行配置。
如果您还不熟悉每个世界的配置,请花点时间阅读配置指南。
本指南是配置反矿物透视的逐步教程。有关参考文档,请参阅每个世界配置参考中的反矿物透视部分。
反矿物透视有三种不同的模式。engine-mode: 1 将指定的方块(hidden-blocks)替换为其他"假"方块,根据维度不同分别是 stone(在 y < 0 时为 deepslate)、netherrack 或 end_stone。相比之下,engine-mode: 2 会将 hidden-blocks 和 replacement-blocks 都替换为随机生成的 hidden-blocks。engine-mode: 3 的工作方式类似于 engine-mode: 2,但不是随机化每个方块,而是为区块的每一层随机化方块。
以下图片1展示了在主世界和下界中使用推荐配置时,对于使用矿物透视的玩家来说每种模式的效果。

特别是在客户端方面,engine-mode: 1 的计算量要小得多,而 engine-mode: 2 可能更好地防止矿物透视。使用 engine-mode: 1 时,只有完全被实心方块覆盖的矿石才会被隐藏。暴露在洞穴中的空气或湖泊中的水的矿石不会被隐藏。使用 engine-mode: 2 时,假矿石会遮挡真实方块的视线。如果将 air 添加到 hidden-blocks 中,engine-mode: 2 将有效地隐藏所有矿石,即使是暴露在空气中的矿石。engine-mode: 3 可以将加入时的网络负载减少约 2 倍,并有助于区块数据包压缩。
范围扩展:虽然单独使用反矿物透视就能防止大多数用户在您的服务器上使用矿物透视,但它绝不是完美无缺的。由于反矿物透视的实现方式(这是必须的),在默认服务器上,可以将您能看到的真实矿石的范围扩展一个不小的距离。这可以通过任何称职的反作弊插件来缓解;但是,这不包含在默认配置中。
种子反推:另一个攻击向量是 Minecraft 世界生成的确定性特性。如果客户端能够获取世界种子,它就能知道每个生成的矿石的真实位置,完全绕过反矿物透视。这可以通过使用feature-seeds 配置以及 spigot.yml 中的结构种子选项来使客户端更难反推世界种子来部分解决。请注意,这不是一个完整的解决方案,客户端仍然可能获取服务器的世界种子。为每个世界使用不同的种子也可能有帮助。
暴露在空气中的矿石:在 engine-mode: 1、engine-mode: 2 和 engine-mode: 3 中,客户端可以查看暴露在空气中的矿石。这可以在 engine-mode: 2 和 engine-mode: 3 中通过将 air 添加到 hidden-blocks 列表来缓解。但是,这样做可能会导致一些玩家出现客户端性能问题(FPS 下降)。
推荐配置
以下是 engine-mode: 1、engine-mode: 2 和 engine-mode: 3 的推荐配置:
YAML 对空格很敏感!下面的示例配置已经正确格式化。确保格式和缩进保持不变,使用每个示例右上角的"复制"按钮。特别要确保不要意外插入制表符。检查您的编辑器的选项,使用空格而不是制表符进行缩进。如果您的配置文件已经包含其他重要更改,建议在编辑之前进行备份。
engine-mode: 1
默认世界配置
用以下内容替换 paper-world-defaults.yml 中的 anticheat.anti-xray 块:
anticheat:
anti-xray:
enabled: true
engine-mode: 1
hidden-blocks:
# 没有机会隐藏地牢箱子,因为它们完全被空气包围,但埋藏的宝藏会被隐藏。
- chest
- coal_ore
- deepslate_coal_ore
- copper_ore
- deepslate_copper_ore
- raw_copper_block
- diamond_ore
- deepslate_diamond_ore
- emerald_ore
- deepslate_emerald_ore
- gold_ore
- deepslate_gold_ore
- iron_ore
- deepslate_iron_ore
- raw_iron_block
- lapis_ore
- deepslate_lapis_ore
- redstone_ore
- deepslate_redstone_ore
lava-obscures: false
# 从 1.18 开始,一些矿石生成的高度更高。
# 请根据您的具体情况调整 max-block-height 设置。
# https://minecraft.wiki/w/Ore 可能会有帮助。
max-block-height: 64
# replacement-blocks 列表在 engine-mode: 1 中不使用。更改此项不会有任何效果。
replacement-blocks: []
update-radius: 2
use-permission: false
下界配置
复制并粘贴到您的下界世界文件夹中的 paper-world.yml 中。有关更多信息,请参见配置指南。
anticheat:
anti-xray:
enabled: true
engine-mode: 1
hidden-blocks:
- ancient_debris
- nether_gold_ore
- nether_quartz_ore
lava-obscures: false
max-block-height: 128
# replacement-blocks 列表在 engine-mode: 1 中不使用。更改此项不会有任何效果。
replacement-blocks: []
update-radius: 2
use-permission: false
末地配置
复制并粘贴到您的末地世界文件夹中的 paper-world.yml 中。有关更多信息,请参见配置指南。
anticheat:
anti-xray:
enabled: false
engine-mode: 2
默认世界配置
用以下内容替换 paper-world-defaults.yml 中的 anticheat.anti-xray 块:
anticheat:
anti-xray:
enabled: true
engine-mode: 2
hidden-blocks:
# 您可以在这里添加 air,这样就会生成许多洞。
# 这对抗洞穴探测器效果很好,但可能会导致所有玩家的客户端 FPS 下降。
- air
- copper_ore
- deepslate_copper_ore
- raw_copper_block
- diamond_ore
- deepslate_diamond_ore
- gold_ore
- deepslate_gold_ore
- iron_ore
- deepslate_iron_ore
- raw_iron_block
- lapis_ore
- deepslate_lapis_ore
- redstone_ore
- deepslate_redstone_ore
lava-obscures: false
# 从 1.18 开始,一些矿石生成的高度更高。
# 请根据您的具体情况调整 max-block-height 设置。
# https://minecraft.wiki/w/Ore 可能会有帮助。
max-block-height: 64
replacement-blocks:
# chest 是一个实体方块,在 engine-mode: 2 中不能添加到 hidden-blocks。
# 但是如果增加 max-block-height,在这里添加 chest 将隐藏埋藏的宝藏。
- chest
- amethyst_block
- andesite
- budding_amethyst
- calcite
- coal_ore
- deepslate_coal_ore
- deepslate
- diorite
- dirt
- emerald_ore
- deepslate_emerald_ore
- granite
- gravel
- oak_planks
- smooth_basalt
- stone
- tuff
update-radius: 2
use-permission: false
下界配置
复制并粘贴到您的下界世界文件夹中的 paper-world.yml 中。有关更多信息,请参见配置指南。
anticheat:
anti-xray:
enabled: true
engine-mode: 2
hidden-blocks:
# 请参见上面关于 air 和可能的客户端性能问题的说明。
- air
- ancient_debris
- bone_block
- glowstone
- magma_block
- nether_bricks
- nether_gold_ore
- nether_quartz_ore
- polished_blackstone_bricks
lava-obscures: false
max-block-height: 128
replacement-blocks:
- basalt
- blackstone
- gravel
- netherrack
- soul_sand
- soul_soil
update-radius: 2
use-permission: false
末地配置
复制并粘贴到您的末地世界文件夹中的 paper-world.yml 中。有关更多信息,请参见配置指南。
anticheat:
anti-xray:
enabled: false
engine-mode: 3
默认世界配置
用以下内容替换 paper-world-defaults.yml 中的 anticheat.anti-xray 块:
anticheat:
anti-xray:
enabled: true
engine-mode: 3
hidden-blocks:
# 您可以在这里添加 air,这样就会生成许多洞。
# 这对抗洞穴探测器效果很好,但可能会导致所有玩家的客户端 FPS 下降。
- air
- copper_ore
- deepslate_copper_ore
- raw_copper_block
- diamond_ore
- deepslate_diamond_ore
- gold_ore
- deepslate_gold_ore
- iron_ore
- deepslate_iron_ore
- raw_iron_block
- lapis_ore
- deepslate_lapis_ore
- redstone_ore
- deepslate_redstone_ore
lava-obscures: false
# 从 1.18 开始,一些矿石生成的高度更高。
# 请根据您的具体情况调整 max-block-height 设置。
# https://minecraft.wiki/w/Ore 可能会有帮助。
max-block-height: 64
replacement-blocks:
# chest 是一个实体方块,在 engine-mode: 2 中不能添加到 hidden-blocks。
# 但是如果增加 max-block-height,在这里添加 chest 将隐藏埋藏的宝藏。
- chest
- amethyst_block
- andesite
- budding_amethyst
- calcite
- coal_ore
- deepslate_coal_ore
- deepslate
- diorite
- dirt
- emerald_ore
- deepslate_emerald_ore
- granite
- gravel
- oak_planks
- smooth_basalt
- stone
- tuff
update-radius: 2
use-permission: false
下界配置
复制并粘贴到您的下界世界文件夹中的 paper-world.yml 中。有关更多信息,请参见配置指南。
anticheat:
anti-xray:
enabled: true
engine-mode: 3
hidden-blocks:
# 请参见上面关于 air 和可能的客户端性能问题的说明。
- air
- ancient_debris
- bone_block
- glowstone
- magma_block
- nether_bricks
- nether_gold_ore
- nether_quartz_ore
- polished_blackstone_bricks
lava-obscures: false
max-block-height: 128
replacement-blocks:
- basalt
- blackstone
- gravel
- netherrack
- soul_sand
- soul_soil
update-radius: 2
use-permission: false
末地配置
复制并粘贴到您的末地世界文件夹中的 paper-world.yml 中。有关更多信息,请参见配置指南。
anticheat:
anti-xray:
enabled: false
常见问题、常见陷阱和支持
我仍然可以看到(一些)矿石/使用矿物透视
如上所述,即使您启用了反矿物透视,仍然可能看到(一些)矿石的几个原因:
- 矿石在配置的
max-block-height值之上。 - 反矿物透视无法隐藏暴露在空气或其他透明方块(例如在洞穴中)的矿石。原则上这也适用于
engine-mode: 2和engine-mode: 3,但是通常假矿石会遮挡真实方块的视线。要隐藏这些暴露的矿石还需要额外的插件。 use-permission选项已启用,并且您拥有反矿物透视绕过权限(paper.antixray.bypass)或您拥有管理员权限。- 方块类型在配置的方块列表中缺失。这可能是使用过时的配置文件的结果。
我添加了假方块但矿物透视没有显示它们
如果您使用 engine-mode: 2 或 engine-mode: 3 并且您已经将假方块添加到 hidden-blocks 列表中但在游戏中使用矿物透视时看不到它们,这可能有以下原因:
- 添加的方块类型是实体方块。反矿物透视可以隐藏(替换)实体方块(如箱子),前提是它们没有暴露在空气或其他透明方块中。但是,反矿物透视不能将实体方块作为假方块放置到区块中。
- 该方块在您的客户端的矿物透视模组中被禁用或您的矿物透视资源包不显示它。
在 y = 0 以下或某些其他地方不起作用。
- 您的配置文件可能已过时,在
replacement-blocks列表中缺少重要的方块,如deepslate或生物群系特定的方块,如basalt。您可能还需要检查hidden-blocks列表是否包含所有重要的矿石及其deepslate变体。 - 如果在某个 y 级别以上不起作用,请检查您的
max-block-height设置。
仍然不起作用,进一步故障排除
- 在对反矿物透视配置进行更改后,请务必重启服务器。更改不会自动应用。
- 不要使用
/reload命令。要应用反矿物透视配置更改,需要重启。 - 重启服务器后,通过使用 timings 或 spark 检查配置部分来验证配置是否正确应用。
如果仍然不起作用,我该如何寻求支持?
如果上述要点无法解决您的问题,或者您对反矿物透视有进一步的问题,请不要犹豫,在 PaperMC Discord 的 #paper-help 频道询问我们。请尽量提供关于您问题的尽可能多的细节。"它不起作用"在寻求支持时并不是很有帮助。描述您想要实现什么,您尝试了什么,您期望什么以及您观察到什么。最好包含一个 timings 或 spark 链接和一张游戏中观察到的情况的图片。
Footnotes
-
图片设计由
Oberfail完成,最初发布在 PaperMC Discord 中。 ↩