交易一切

交易一切

为每个村民增加一个额外的“任意交易”栏位,接受任何物品并以可配置的基于稀有度的价值交换村民收购的商品。

集成动力学

万物可易

为 地牢列车 打造 —— 随处可用。 万物可易最初是作为 地牢列车 模组的伴侣而诞生的,在那个由程序无限生成的列车上,需要一套与之匹配的经济系统。但它并不依赖地牢列车 —— 将其放入任何整合包或原版增强世界中,每个村民都会立刻变成万能商人。


功能简介

每个村民(以及流浪商人)的交易列表顶部都会多出一个交易项:一个 万物可易 栏位。

将游戏中的任何物品放入其中,村民就会为你提供一笔公平的交易,换取它真正想要的货物——煤炭、小麦、纸、铁、绿宝石,以及该村民会收购的任何东西。再也不必囤积一箱箱卖不掉的垃圾了。那堆圆石、那把半耐久的附魔镐、那堆腐肉——现在它们都有价格了。

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

  • 稀有度 设定了基准价值(常见物品 ≈ 16 个兑换 1 颗绿宝石)。
  • 合成与锻造配方 会被递归解析——一把钻石镐的价值等于其钻石和木棍的价值;一把下界合金剑的价值等于钻石剑加上升级所用的锭和模板。
  • 耐久度 很重要——一把几乎损坏的工具价值仅为全新工具的一小部分,并会平滑回升至满价值。
  • 附魔 增加实际价值——每级附魔大约使溢价翻倍,所以一本锋利 V 的书远比锋利 I 值钱得多。

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


使用方法

  1. 右键点击任意村民 以打开其交易界面。
  2. 最顶部的一行就是 万物可易 栏位——在使用前,它会显示一个标记为 “万物可易” 的箱子。
  3. 将任意物品放入左侧的支付槽位。报价会立即重写,显示村民需要该物品的准确数量以及它将支付的报酬。
  4. 像进行普通村民交易一样完成交易。

就这样。无需命令、无需配置文件、无需合成任何东西。安装模组后即可生效。

花费绿宝石块

如果你携带绿宝石块并购买以绿宝石计价的东西,该模组会自动拆解正好足够数量的绿宝石块来支付费用,并以绿宝石找回零钱——因此你成堆的货币可以在任何村民交易中无缝使用。

出售装备

村民会以略低于其售价的小额差价回收他们自己的库存,因此你可以退回那件不需要的盔甲。折扣(来自治疗僵尸村民或村庄英雄效果)永远不会使其变成漏洞——回收价格始终跟随实时价格。


能力与设计

  • 适用于村民和流浪商人(流浪商人可配置)。
  • 精确物品匹配——附魔、损坏、命名或纹饰的物品都会被精确地作为各自独立的商品进行估价和匹配。
  • 无职业经验、无补货副作用——万物可易栏位永远不会提升村民等级或干扰其正常交易。它的报价永远不会保存到村民身上,因此不会使你的世界文件膨胀。
  • 公平、防刷的的经济系统——村民不会收购绿宝石或它们已经收购的商品(那些属于它们的真实交易),并且支付率包含商人利润率,因此你无法循环交易白嫖利润。
  • 纯服务端——将其安装在专用服务器上,每个连接的 vanilla 客户端都会自动获得该功能。在单人游戏中,内置服务器也会覆盖。(标记为 客户端:不支持 / 服务端:必需——原因就在于此:客户端不需要任何东西。)
  • 多加载器——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 个该物品可购买价值一颗绿宝石的物品)。

面向模组开发者

万物可易 提供了一个小型 Java API(games.brennan.tradeeverything.api.TradeEverythingApi),使其他模组可以无需 万物可易 更新即可接入该经济系统:

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

兼容性

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

许可证

PolyForm Shield 1.0.0 —— 参见 许可证。

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