
简易交易器
随身交易工具
查看大图简易交易装置
简易交易装置为Minecraft/NeoForge添加了便携式交易物品。交易装置存储一个数字交易值,接收配置好的物品或流体输入,并允许玩家消耗存储的值来购买配置好的输出。
该模组内置了原版Minecraft交易组,并支持JSON驱动的扩展。您可以:
- 向现有的内置持有者添加条目
- 创建全新的持有者
- 注册使用该持有者的新交易装置物品
主要特性
- 便携式交易装置,具有独立的存储值。
- 按物品主题分组的原版交易持有者。
- 物品和流体输入转换。
- 物品和流体输出购买。
- 耐久度感知的装备定价。
- JSON加载额外交易条目。
- JSON加载额外交易装置物品。
- 可选的自定义持有者空白额外装置。
交易机制
右键点击交易装置打开其UI。
- 中央条显示存储值。
- 左侧显示可接受的输入。
- 插入可接受的物品或流体将其转换为存储值。
- 右侧显示可购买的输出。
- 点击输出条目消耗存储值,并将结果移至输出槽。
购买倍数按键:
- 无修饰键:购买1个单位
- Shift:购买4个单位
- Ctrl:购买8个单位
- Alt:购买64个单位
物品按单个计价和交易。流体按1000 mB单位计价和交易。
配置
模组使用YAML配置文件:
config/simple_trading_device/simple_trading_device.yaml
默认值:
general:
enableTradingHolderJsonConfig: true
enableTradingDeviceJsonConfig: false
enableAdditionalTradingDevice: false
enableTradingHolderJsonConfig
从以下位置加载额外交易条目:
config/simple_trading_device/trading_holder_entries.json
默认值:true
enableTradingDeviceJsonConfig
从以下位置加载额外交易装置物品:
config/simple_trading_device/trading_devices.json
默认值:false
enableAdditionalTradingDevice
注册十个额外的空白装置:
additional_trading_device_0additional_trading_device_1additional_trading_device_2additional_trading_device_3additional_trading_device_4additional_trading_device_5additional_trading_device_6additional_trading_device_7additional_trading_device_8additional_trading_device_9
这些装置使用持有者键 additional_0 到 additional_9。
默认值:false
JSON工作流程
有两个JSON文件:
trading_holder_entries.json:定义交易内容trading_devices.json:定义额外的交易装置物品
使用以下规则:
- 如果您只想向现有的内置装置添加交易,请编辑
trading_holder_entries.json。 - 如果您想要一个全新的装置,请在
trading_holder_entries.json中创建一个新的持有者,然后在trading_devices.json中为该持有者注册一个装置。 - JSON注册的装置还需要来自资源包或生成资产的模型文件和语言条目。
交易持有者键
内置持有者键:
| 持有者键 | 装置物品 | 内容主题 |
|---|---|---|
common |
simple_trading_device:common_trading_device |
泥土、石头、沙子、沙砾、粘土、冰、黑曜石、原木、木板、木棍 |
building |
simple_trading_device:building_trading_device |
砖块、抛光石、玻璃、陶瓦、混凝土、羊毛 |
minerals |
simple_trading_device:minerals_trading_device |
煤炭、铜、铁、金、红石、青金石、石英、紫水晶、钻石、绿宝石、下界合金 |
farming |
simple_trading_device:farming_trading_device |
种子、作物、树苗、蘑菇、水果、皮革、羽毛、蜂蜜 |
food |
simple_trading_device:food_trading_device |
面包、鱼、肉、炖菜、金制食物 |
mob_drops |
simple_trading_device:mob_drops_trading_device |
腐肉、骨头、线、火药、粘液球、烈焰棒掉落物、末影珍珠、恶魂之泪 |
redstone |
simple_trading_device:redstone_trading_device |
红石粉、开关、铁轨、比较器、中继器、活塞、漏斗、TNT |
utility |
simple_trading_device:utility_trading_device |
火把、容器、工作站、桶、矿车、指南针、时钟、铁砧、附魔台、船 |
equipment |
simple_trading_device:equipment_trading_device |
工具、武器、盔甲、弓、盾牌、钓鱼竿、剪刀、三叉戟、马铠 |
nether |
simple_trading_device:nether_trading_device |
下界方块、下界木、下界疣、荧石、熔岩、烈焰棒、远古残骸 |
end |
simple_trading_device:end_trading_device |
末地石、紫珀块、紫颂果物品、末影之眼、龙息、潜影壳、鞘翅 |
treasure |
simple_trading_device:treasure_trading_device |
鞍、鹦鹉螺壳、海洋之心、潮涌核心、不死图腾、下界之星、信标、音乐唱片、锻造模板 |
additional_0 到 additional_9 |
可选的额外装置 | 为JSON内容准备的空白持有者 |
您也可以在JSON中创建一个全新的持有者键。只有某个交易装置使用该持有者键时,新持有者才会在游戏中可见。
trading_holder_entries.json
路径:
config/simple_trading_device/trading_holder_entries.json
该文件必须是一个JSON数组。
每个对象必须包含一个holder字段。之后,您可以使用:
- 同一对象上的单个直接条目
- 一个
entries数组
支持的字段
| 字段 | 必需 | 描述 |
|---|---|---|
holder |
是 | 持有者键,例如 mob_drops、nether、additional_0 或自定义键 |
entries |
否 | 条目对象数组 |
type |
每个条目必需 | 必须为 input、output 或 both |
item |
仅物品条目 | 由Minecraft编解码器解析的原版 ItemStack JSON |
fluid |
仅流体条目 | 由NeoForge编解码器解析的NeoForge FluidStack JSON |
yield |
是 | 交易值 |
baseYield |
yield的可选替代 |
与 yield 含义相同 |
tooltip |
否 | 单行工具提示 |
tooltips |
否 | 工具提示行数组 |
规则:
type仅接受input、output或bothitem或fluid中必须恰好存在一个yield必须大于0- 物品ID和流体ID应使用完整名称,例如
minecraft:diamond - 对于物品堆栈,
count是可选的,默认为原版编解码器的结果 - 对于流体堆栈,
amount是可选的,模组填入1000 - 无效条目会被记录并跳过
数量和组件说明
- JSON物品输入按
Item匹配,并按单个物品定价。item.count由编解码器解析,但不影响输入匹配或单位价值计算。 - JSON流体输入按
Fluid匹配,并按1000 mB定价。fluid.amount由编解码器解析,但输入匹配和单位价值计算仍使用流体类型和1000 mB的交易单位。 - JSON物品输出每单位购买
1个物品。因此购买修饰键购买1、4、8或64个物品。 - JSON流体输出每单位购买
1000 mB。因此购买修饰键购买1000、4000、8000或64000 mB。 - JSON输出条目保留购买资源上的物品或流体组件,但输出数量仍遵循上述固定单位规则。
- JSON输入条目不区分组件。如果您需要依赖于完整物品或流体组件的输入匹配或定价,请在Java中注册该交易并提供自定义
TradingHolder.YieldCalculator。参见TradingHolderRegistry.registerItem(...)、TradingHolderRegistry.registerFluid(...)和TradingHolder.YieldCalculator。
类型含义
input:可以转换为存储值output:可以从存储值购买both:既可作为输入也可作为输出
最小单条目示例
[
{
"holder": "mob_drops",
"type": "output",
"item": {
"id": "minecraft:creeper_spawn_egg"
},
"yield": 2048
}
]
持有者块示例
[
{
"holder": "spawn_eggs",
"entries": [
{
"type": "input",
"item": {
"id": "minecraft:rotten_flesh"
},
"yield": 8,
"tooltip": "用于刷怪蛋交易的输入货币"
},
{
"type": "input",
"item": {
"id": "minecraft:bone"
},
"yield": 12
},
{
"type": "output",
"item": {
"id": "minecraft:zombie_spawn_egg"
},
"yield": 2048
},
{
"type": "output",
"item": {
"id": "minecraft:skeleton_spawn_egg"
},
"yield": 2048
},
{
"type": "output",
"item": {
"id": "minecraft:creeper_spawn_egg"
},
"yield": 4096
}
]
}
]
流体示例
[
{
"holder": "fluid_supplies",
"entries": [
{
"type": "both",
"fluid": {
"id": "minecraft:water"
},
"yield": 16,
"tooltip": "每交易单位 1000 mB"
},
{
"type": "both",
"fluid": {
"id": "minecraft:lava"
},
"yield": 64
}
]
}
]
trading_devices.json
路径:
config/simple_trading_device/trading_devices.json
该文件仅在 enableTradingDeviceJsonConfig 为 true 时加载。
该文件必须是一个JSON数组。每个对象注册一个额外的交易装置物品。
支持的字段
| 字段 | 必需 | 描述 |
|---|---|---|
id |
是 | 仅物品ID路径,例如 spawn_egg_trading_device |
holder |
是 | 装置使用的持有者键 |
maxStorage |
是 | 最大存储交易值 |
规则:
id不得包含命名空间holder可以指向内置持有者或新的自定义持有者maxStorage必须大于0
示例:
[
{
"id": "spawn_egg_trading_device",
"holder": "spawn_eggs",
"maxStorage": 5000000
},
{
"id": "fluid_supplies_trading_device",
"holder": "fluid_supplies",
"maxStorage": 1000000
}
]
JSON装置所需的资产
JSON装置注册会创建物品并将其绑定到持有者。它不会自动为您提供最终的分布式客户端资产。
对于每个JSON装置ID,同时提供:
assets/simple_trading_device/models/item/<id>.jsonassets/simple_trading_device/lang/en_us.json- 可选
assets/simple_trading_device/lang/zh_cn.json
模型示例
如果您的装置ID是 spawn_egg_trading_device,创建:
assets/simple_trading_device/models/item/spawn_egg_trading_device.json
模型示例:
{
"parent": "simple_trading_device:item/trading_device",
"textures": {
"layer0": "simple_trading_device:item/trading_device_shell",
"layer1": "minecraft:item/zombie_spawn_egg"
}
}
共享父模型为:
assets/simple_trading_device/models/item/trading_device.json
它渲染外壳作为基础层,居中的8x8叠加层作为顶层。
语言示例
添加翻译条目:
{
"item.simple_trading_device.spawn_egg_trading_device": "Spawn Egg Trading Device"
}
没有模型或语言条目,装置仍可注册,但不会有预期的客户端展示。
完整示例:创建一个新的自定义装置
- 启用JSON装置加载:
general:
enableTradingHolderJsonConfig: true
enableTradingDeviceJsonConfig: true
- 在
trading_holder_entries.json中注册持有者及其交易内容:
[
{
"holder": "spawn_eggs",
"entries": [
{
"type": "input",
"item": {
"id": "minecraft:bone"
},
"yield": 12
},
{
"type": "output",
"item": {
"id": "minecraft:zombie_spawn_egg"
},
"yield": 2048
}
]
}
]
- 在
trading_devices.json中注册装置:
[
{
"id": "spawn_egg_trading_device",
"holder": "spawn_eggs",
"maxStorage": 5000000
}
]
- 添加模型文件:
{
"parent": "simple_trading_device:item/trading_device",
"textures": {
"layer0": "simple_trading_device:item/trading_device_shell",
"layer1": "minecraft:item/zombie_spawn_egg"
}
}
- 添加语言条目:
{
"item.simple_trading_device.spawn_egg_trading_device": "Spawn Egg Trading Device"
}
之后,该装置应出现在交易装置创造标签中,并打开您定义的持有者。
内置装置存储
| 装置 | 最大存储值 |
|---|---|
| 通用交易装置 | 100,000 |
| 建筑交易装置 | 150,000 |
| 矿物交易装置 | 2,000,000 |
| 农业交易装置 | 100,000 |
| 食物交易装置 | 100,000 |
| 生物掉落交易装置 | 250,000 |
| 红石交易装置 | 500,000 |
| 实用交易装置 | 500,000 |
| 装备交易装置 | 5,000,000 |
| 下界交易装置 | 2,000,000 |
| 末地交易装置 | 5,000,000 |
| 宝藏交易装置 | 10,000,000 |
| 额外交易装置 | 100,000,000 |
| JSON交易装置 | 由 maxStorage 定义 |
开发
源代码仓库:
- 仓库:https://github.com/wanggugu197/Simple-Trading-Device
- 问题反馈:https://github.com/wanggugu197/Simple-Trading-Device/issues
环境要求:
- Java 25
- Gradle 9.x
- Minecraft
26.1.2 - NeoForge
26.1.2.71+
许可证
GNU宽通用公共许可证v3。
正在加载版本记录…





正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。