No Kebab

No Kebab

防止未知的绘画ID从世界中被抹除,并提供一种手动修复它们的方法。

装饰

⚠ 自 MC 1.21.5 起,画作物品不再能够保存无效的变体。使用 Invariable Paintings 模组时,无效的画作被破坏后将不再掉落自身。

No Kebab

概述

在原版 Minecraft 中,当画作加载的 ID 与任何现有变体都不匹配时,它会被自动替换为另一个变体。毫无商量余地。如果你折腾数据驱动的画作,数据包中的任何错误都可能导致已放置的画作在加载世界时丢失。

No-Kebab 正是为了防止这种情况而存在的。无效的画作仍会回退到另一个变体,但它们会记住其 NBT 数据中原本存在的变体 ID,并在保存游戏时保留该 ID。下次你在安装了正确变体集的情况下加载该世界时,那些画作将被恢复为原本的外观。

趣闻:在 MC 1.21 之前,无效的画作总是会被还原为 minecraft:kebab 变体,模组的名字正源于此。

环境

核心功能完全位于服务端。

仅当启用了 Missingno Display 功能时才需要客户端,此时所有客户端都将需要该模组。

Missingno Display

这会改变无效画作的外观,使它们更加醒目,并显示其 ID。

默认情况下,它在专用服务器上禁用,在集成服务器上启用(单人游戏和局域网)。 可以在配置文件 nokebab.properties 中通过名为 customTracker 的选项进行切换。这需要完全重启才能生效。

迁移

命令 /nokebab migrate 可用于批量更改现有画作的变体。它需要权限等级 3(管理员)。

这只会更改当前已加载区块中已放置画作的变体。 物品形式或未加载区块中的画作不会受到影响。

如果迁移会导致某幅画作无法再适配其所在的墙面,该画作将被跳过并显示错误消息。

用法概要

/nokebab migrate <mode> <source> <destination>

<source> 是要迁移的画作变体。<destination> 是它们将被替换为的变体。其具体内容因模式而异。

<mode> 可以是以下之一:

  • literal,将查找与源完全匹配的画作,并将它们全部更改为同一个变体。
  • regex,允许使用正则表达式,因此 <source> 可以匹配多个变体,而 <destination> 可以使用替换变量。

例如,更改多个画作命名空间的命令为:

/nokebab migrate regex "oldspace:(.*)" "newspace:$1"