交易一切

交易一切

给每个村民一个额外的“交易任何物品”槽位,接受任何物品并将其兑换为村民购买的货物,按可配置的稀有度价值进行交换。

经济

Trade Everything

为 Dungeon Train 打造 — 随处可用。 Trade Everything 是作为 Dungeon Train 模组的配套模组而创建的,在那个模组中,一辆无限程序化生成的列车需要一个与之匹配的经济系统。但它不依赖 Dungeon Train —— 将它放入任何模组包或原版增强世界中,每个村民都会立即变成万能商人。


功能简介

每个村民(以及流浪商人)都会在其交易列表的顶部获得一个额外交易:一个 万物交易 槽位。

将世界中的任何物品放入其中,村民就会用它真正想要的货物——煤炭、小麦、纸张、铁、绿宝石,或是那个村民收购的任何东西——与你进行公平交换。再也不用囤积满满一箱卖不掉的垃圾了。那堆圆石、那把快坏掉的附魔镐、那堆腐肉——现在它们都有价格了。

价格并非随意设定。每件物品都按其真正的价值来估值:

  • 稀有度 设定基准(普通物品约 16 个换 1 个绿宝石)。
  • 合成与锻造配方 会被递归求解——一把钻石镐的价值等于其钻石和木棍;一把下界合金剑的价值等于钻石剑加上升级所用的锭和模板。
  • 耐久度 很重要——一把几乎损坏的工具只值完好工具的一小部分,并平滑地回升至满值。
  • 附魔 会增加真实价值——每提升一级大约使溢价翻倍,因此锋利 V 的书远比锋利 I 值钱。

高价值物品以绿宝石支付,而真正的高级物品(附魔下界合金、极品装备)则以绿宝石块支付。


使用方法

  1. 右键点击任何村民 以打开其交易界面。
  2. 顶行即是 万物交易 槽位——在你使用它之前,它会显示一个标注为 "Trade Anything" 的箱子。
  3. 将任何物品 拖入左侧的支付槽位。报价会立即重写,显示村民想要多少个该物品以及会支付什么。
  4. 完成交易,就像任何普通的村民交易一样。

就这么简单。无需命令,无需配置,无需合成任何东西。模组安装后即刻生效。

使用绿宝石块支付

如果你携带绿宝石块并购买以绿宝石计价的物品,模组会自动拆解恰好足够的绿宝石块以支付费用,并以绿宝石形式找零——因此你的块状货币可以无缝用于任何村民交易。

卖回装备

村民会以略低于其出售价的利润回购自己的库存,所以你可以退回不需要的盔甲。折扣(来自治愈僵尸村民或村庄英雄)永远不会使其变成漏洞——回购始终跟随实时价格。


功能与设计

  • 适用于村民和流浪商人(流浪商人可配置)。
  • 精确物品匹配——附魔、损坏、命名或带有纹饰的物品都会作为各自独立的商品被精确估值和匹配。
  • 无职业经验,无补货副作用——万物交易槽位永远不会使村民升级或干扰其正常交易。它的报价永远不会保存到村民身上,因此不会使你的世界文件膨胀。
  • 公平、防漏洞的经济——村民不会购买绿宝石或它们已经收购的商品(那些属于它们的真实交易),并且支付比率带有商人利润,因此你无法循环交易来免费获利。
  • 完全服务端——将其安装在专用服务器上,每个连接的 vanilla 客户端都会自动获得该功能。在单人游戏中,集成服务器会处理一切。(标记为 client: unsupported / server: required ——原因就在于此:客户端无需任何东西。)
  • 多加载器——Fabric、Forge 和 NeoForge,Minecraft 1.21.1。

配置

首次启动时会在 config/tradeeverything.json 生成配置文件。一切都是可调的:

设置 控制内容
rarity_values_sixteenths 每个稀有度层级的基础价值(以 1/16 绿宝石为单位)
item_overrides_sixteenths 逐物品价值覆盖(按物品 id)
result_multiplier 支付比率——村民的利润(默认 0.75)
max_cost_count / max_result_count 交易规模上限
derive_values_from_recipes 切换基于配方/锻造的估值
enchantment_value_per_level_sixteenths 每级附魔的价值
allow_undervalued_trades 是否仍可出售近乎无价值的物品
enable_wandering_trader 是否也给流浪商人该槽位

数值以十六分之一绿宝石为单位:16 = 一个绿宝石,1 = 十六分之一(因此 16 个该物品可购买价值一个绿宝石的东西)。

致模组开发者

Trade Everything 暴露了一个小型 Java API(games.brennan.tradeeverything.api.TradeEverythingApi),以便其他模组无需 Trade Everything 更新即可接入经济系统:

  • registerValueProvider —— 为你自己的物品提供自定义价值(Dungeon Train 用它为其叙事书籍定价)。
  • setItemOverride —— 在运行时覆盖任何物品的价值。
  • registerBuyItemSelector —— 控制给定村民支付什么。
  • getValueSixteenths / config() / reload() —— 读取和刷新当前估值。

兼容性

  • Minecraft: 1.21.1
  • 加载器: Fabric · Forge · NeoForge
  • Dungeon Train: 与之一同设计,两者同时安装时会有更深的协同效应,但完全可选。
  • 监听村民交易事件的第三方模组会看到这些合成交易——这是有意为之且无害的。

许可证

PolyForm Shield 1.0.0 —— 见许可证。

源码与问题反馈:github.com/bh679/tradeeverything-mc