Minecraft 原版服务端与 Paper 服务端的一些原版技术机制异同
Paper 是一款旨在解决游戏玩法和机制不一致问题的高性能 Spigot 分支。(High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies)
正如其介绍所说,Paper 会按照自己的理解来修改一些错误和漏洞,也提供比 Spigot 更好的性能。
同时 Paper 会谨慎引入任何优化,而不会像某些激进分支一样致宝贵的存档受损等等,因此 Paper 是一个值得信赖的 Minecraft 服务端。旦相对的,调整性/性能可能不会有其分支那么好。
但同样的,很多人可能不喜欢 Paper 的一些调整(比如禁止末地门复制重力方块),这里将列出一些主要的差异。
版本 Paper 1.19.3 #364
普通
末影珍珠滞空 Ender Pearl Stasis Chamber
在区块卸载时末影珍珠能留在空中,并在区块加载时恢复运动。
Paper 于未知版本使用未知方法修复了此漏洞。
机制解释
- Ender Pearl Stasis & Teleporters! ▫ Minecraft Survival Guide (1.18 Tutorial Lets Play) [S2E98]
https://www.youtube.com/watch?v=8-lr9DUrdEY
恢复方法
在 paper-world-defaults.yml
中修改 disable-unloaded-chunk-enderpearl-exploit
为 false
。
破坏性
重力方块复制/沙子复制 Gravity Dupe/Sand Dupe
Paper 修复了利用末地门复制下落方块的 BUG。且不可恢复。
Paper 于未知版本使用未知方法修复了此漏洞。
机制解释
- Dragon egg, anvil, and sand duplication with endportals(1.5.1)
https://www.youtube.com/watch?v=7m2G1QeV-nQ - FallingSand
https://technical-minecraft.fandom.com/wiki/FallingSand
恢复方法
安装插件 GravityControl https://forums.papermc.io/threads/gravitycontrol-sand-dupe-enabler-for-paper-servers.12/
或使用此分支 https://github.com/Nats-ji/paper-sand-dupe-unpatched
村民骨折机 Zombie Villager Curing Discount Exploit
当治愈一个僵尸村民、感染它并再次治愈它时,产生的村民会叠加折扣。
默认情况下,Paper 修复了允许玩家重复治愈僵尸村民获得奖励的漏洞。
机制解释
- Stacking discounts when curing villagers multiple times
https://bugs.mojang.com/browse/MC-181190
恢复方法
在 paper-world-defaults.yml
中修改 fix-curing-zombie-villager-discount-exploit
为 false
。
光照抑制 Light Suppression
从 Paper 1.17 #232 开始,Paper 的一个性能分支 Tuinity 已经合并到了 Paper,而其中带有 Starlight。
Starlight 完全重写了光照引擎,因此所有利用光照缓慢更新来实现的机制一般都不会起作用。
机制解释
- Light Suppression Explained | Minecraft 1.14-1.16+
https://www.youtube.com/watch?v=JtoTAkjpuHA - 【MC|熟肉】光照抑制讲解 | 1.14-1.15+【vktec】
https://www.bilibili.com/video/BV1G5411x7Ux
恢复方法
无
RNG 附魔、RNG 操纵 RNG Manipulation
RNG(Random Number Generator) 随机数生成器。
Minecraft 的附魔等是根据你在游戏中的行为产生的随机数来实现的,例如你丢了多少物品,打开了几次箱子。
因此当聪明人对游戏进行了一些逆向工程,就能达到操作 RNG 的效果,从而 100% 获得自己想要的附魔等。
Paper 于未知版本使用未知方法修复了此漏洞。
机制解释
- How to HACK the Enchanting Table in 100% Survival Minecraft! [NOT fake]
https://www.youtube.com/watch?v=E8w2DzLHc84 - 【RNG附魔教程】百分百神级附魔,教你成为附魔大法师
https://www.bilibili.com/video/BV124411K7Fr - Controlling luck in video games: an explanation of the RNG manipulation on Pokémon Colosseum and XD
https://aldelaro5.wordpress.com/2018/09/09/controlling-luck-in-video-games-an-explanation-of-the-rng-manipulation-on-pokemon-colosseum-and-xd/ - Random number generation manipulation
https://technical-minecraft.fandom.com/wiki/RNG_manipulation
恢复方法
使用插件 RandomControl:https://modrinth.com/plugin/randomcontrol
支持 Paper 1.9.4 - 1.19.3。
超堆叠物品过滤器 Overstacked Item Filter
某些物品分类器需要使用超堆叠物品过滤器,例如 https://www.youtube.com/watch?v=Gyo-dYoW09s,它利用了超堆叠 BUG,即堆叠无法堆叠的物品。
Paper 于未知版本使用 https://github.com/PaperMC/Paper/pull/5197 修复了此漏洞,并在之后添加了开关。
机制解释
- 5 Simple Storage Innovations
https://www.youtube.com/watch?v=Gyo-dYoW09s
恢复方法
在 paper-global.yml
中设置 allow-grindstone-overstacking
为 true
。
虚空交易 VOID TRADING
交易时让村民通过传送门,而交易 GUI 未关闭,此时进行交易,让村民以为没有交易过。从而无限交易。
Paper 于未知版本使用未知方法修复了此漏洞。
机制解释
- Infinite Trading Trick in Description!
- https://www.youtube.com/watch?v=-fvsPE66EjI
- 【我的世界】让村民无限加班-虚空交易所 原理讲解/步骤教学
https://www.bilibili.com/video/BV1QA411M74Z
恢复方法
无
或
使用 purpur:https://purpurmc.org/docs/Configuration/#allow-void-trading
实体跟踪范围