预设

Summon 预设

Minecraft 自定义村民交易命令

自定义村民交易很复杂,因为有用的数据位于报价中。在 Copy召唤命令之前,本文将商店创意、村民身份、交易成本、已售物品、最大用途和标签保留在一处。

预设结果

一个持久的村民商店预设有两个可编辑的交易和一个用于后续Command Pack逻辑的稳定标签。

输出

村民交易召唤Output

/summon minecraft:villager ~ ~ ~ {CustomName:{text:"Relic Trader",color:"gold"},CustomNameVisible:1b,PersistenceRequired:1b,VillagerData:{profession:"minecraft:librarian",level:5,type:"minecraft:plains"},Offers:{Recipes:[{buy:{id:"minecraft:emerald",count:12},sell:{id:"minecraft:enchanted_book",count:1,components:{"minecraft:stored_enchantments":{"minecraft:mending":1}}},maxUses:999999,rewardExp:0b},{buy:{id:"minecraft:diamond",count:3},sell:{id:"minecraft:player_head",count:1,components:{"minecraft:custom_name":{text:"Relic Token",color:"aqua",italic:false}}},maxUses:64,rewardExp:0b}]},Tags:["relic_trader"]}
Too long for Minecraft chat

The longest command line is 616 characters, 360 over the 256-character chat input limit. Pasting it into chat can truncate the line and make Minecraft report a syntax error even when the generated command is valid.

  • Use a Command Block: run /give @s command_block, place it, then paste this command into the block command field.
  • Use a .mcfunction for a reusable datapack: save the line without the leading slash at saves/<world>/datapacks/<pack>/data/<ns>/function/<name>.mcfunction with a minimal pack.mcmeta, run /reload, then run /function <ns>:<name>. Do not paste .mcfunction content into chat.

预设截图

用于 Minecraft 自定义村民交易命令文章的 NBTForge workbench 状态,包括可见控件和生成的 Output。

构建预设

  1. 打开Summon并选择村民作为实体。
  2. 首先设置 VillagerData,以便职业、生物群系类型和级别与商店角色相匹配。
  3. 添加每笔交易都作为 Offers.Recipes 内的买卖对进行。
  4. 添加PersistenceRequired 和一个标签,以便以后的命令可以找到或保护商店。

贸易数据是嵌套的

村民交易命令很难调试,因为物品数据可能出现在 buy、buyB 或 sell 内部。保持一项交易简单,直到它发挥作用,然后添加更多食谱。

NBTForge 在这里很有用,因为该命令可以位于相关物品预设旁边。首先构建已售商品,然后将该商品粘贴或重新创建为销售堆栈。

  • 对永久商店使用 maxUses。
  • 当交易不应该使村民升级时,请使用 rewardExp:0b。
  • 使用标签进行清理、保护或区域逻辑。

地图经济工作流程

村民商店通常属于较大的Command Pack。将召唤命令与区域设置、标题提示或测试村民的备份清除命令配对。

保持贸易成本的可读性。如果商店需要稀有货币,请先创建货币项目作为自己的 Give 预设。

将预设应用到实际项目中

将 Minecraft 自定义村民交易命令视为测试的起点,而不仅仅是Copy 的字符串。Output工作一次后,以清晰的 Project 名称保存,记下目标 Minecraft 版本,并将预设保留在相关设置命令(例如记分板、bossbar、战利品或重置行)附近。

在将预设发布到地图、服务器或 Command Pack之前,请从Copy 的工件而不是仅从实时workbench运行它。这可以捕获丢失的依赖项、过时的选择器、错误的版本选择以及仅因本地测试状态已存在而有效的命令。

  • 使用共享命令保留选定的 Edition 和 Version。
  • 在使用伤害、杀死、清除或传送之前,针对无害命令测试选择器。
  • 将长命令移至 Project 或函数式工作流程中,而不是将其粘贴到聊天中。
  • 更改实体、项目组件、passenger或datapack资源后重新检查警告。

FAQ

我可以在村民交易中出售自定义命名的物品吗?

是的。出售的商品可以包括商品组件或 NBT,具体取决于所选的 Java 版本系列。

为什么我的自定义村民消失了?

添加PersistenceRequired 并在目标难度和区域中测试命令。还要保留一个标签,以便您以后可以找到商店实体。

该预设何时应成为Command Pack的一部分?

当Output取决于设置线、重置命令、战利品资源、记分板状态或重复测试时,将其用作Command Pack条目。仍然可以直接从 Output Copy单个安全命令。

打开这个工作流

从相关 Summon 工作台开始,然后按你的世界调整预设字段。