数据交易商

数据交易商

一种类似村民的实体,可用作交易者。可通过数据包自定义。

冒险

26.1 更新移植信息 #StandWithUkraine

Data Trader

一个向游戏中添加新商人的模组。

定义交易

文件结构

商人可以接收一个用于商人报价“配方”的 ID。这是一个由单个 trader offer 组成的列表。一个示例文件可能如下所示:

1.20.1
{
  "Offers": [
    {
      "buy": {
        "tag": "forge:gems/diamond",
        "count": 3
      },
      "buyB": {
        "item": "minecraft:wooden_pickaxe"
      },
      "sell": {
        "item": "minecraft:diamond_pickaxe",
        "nbt": "{Damage:0,Enchantments:[{id:\"minecraft:efficiency\",lvl:2},{id:\"minecraft:unbreaking\", lvl:10}]}"
      },
      "rewardExp": false,
      "xp": 0
    }
  ]
}
1.21.1
{
  "Offers": [
    {
      "buy": {
        "count": 1,
        "items": {
          "item": "minecraft:wooden_pickaxe"
        }
      },
      "buyB": {
        "count": 3,
        "items": {
          "tag": "c:gems/diamond"
        }
      },
      "sell": {
        "components": {
          "minecraft:enchantments": {
            "levels": {
              "minecraft:efficiency": 2,
              "minecraft:unbreaking": 10
            }
          }
        },
        "count": 1,
        "id": "minecraft:diamond_pickaxe"
      }
    }
  ]
}

此示例仅包含一个商人报价。商人将出售 sell 中的物品。

玩家需要提供 buy 和 buyB 中的物品才能获得该物品。 maxUses 是玩家在商人需要补货之前可以使用此交易的次数。

如果 rewardExp 为 true,玩家每次交易将获得 xp 点数,数量由 xp 定义。


以下值是必需的:
  • buy
  • sell

默认值为:

名称 默认值
buyB 空气
rewardExp false
xp 0

放在哪里?

你使用数据包来提供这些文件。它们位于 <modid>/trader_offers/。一个示例可以在 这里 找到。

如何使用?

你使用 /summon 命令,或使用刷怪蛋来生成商人。之后,你使用命令 /datatrader setOffer @e <modid>:<path> 来设置配方。这也可以通过数据包完成。 对于普通商人,我建议将 NoAI 设置为 true。

你还可以使用命令 /datatrader summon ~ ~ ~ <offer_id> <NoAI> 召唤具有特定交易表的商人。

设置自定义皮肤覆盖层

只需将纹理放到 <modid>:textures/entity/trader/<offer_id path>.png。此纹理应类似于 职业覆盖层纹理,例如 minecraft:textures/entity/villager/profession/cleric.png。 你可以将此模组放入你喜欢的任何整合包中。