介绍
Data Trades
This mod adds the ability for players, serverowners or modpack creators to overwrite villager trades using datapacks.
The amount of trades per level and the actual items traded can be customized using json files.
A command for development purposes called /villagers refresh will manually trigger a re-asign of trades to all loaded villagers.
Folder Structure
Using a datapack, the trades of a specific villager profession can be overwritten by creating a JSON file following this
pattern:
data/[namespace]/villager/professions/[path].json
[namespace] and [path] should be overwritten by the specific villager professions ID.
For example, to create trades for the minecraft:fletcher profession,
a file under data/minecraft/villager/professions/fletcher.json should be created.
It’s content should follow the Profession Schema
Similar, the wandering trader can be overwritten by adding a file at
data/minecraft/villager/traders/wandering.json
following the Trader Schema
Examples
Datapacks with examples can be found here.
JSON Schema
The JSON file should contain an object with these properties:
Profession
| Property | Type | Default | Description |
|———-|———————–|———|—————————-|
| levels | map | {} | see below |
The levels object takes the form of a map with numeric keys and object values.
The keys represent the actual villagers level with 1 being Novice until 5 being Master.
Trader
| Property | Type | Default | Description |
|———-|————–|———|—————-|
| generic | TradeLevel | null | generic trades |
| rare | TradeLevel | null | rare trades |
In vanilla minecraft, each wandering trader chooses 5 generic and 1 rare trades once it spawns.
Both the trades themselves and their count can be overwritten using the same format as the one used for a villager’s level.
TradeLevel
| Property | Type | Default | Description |
|———-|—————————————————————————————|———|—————————————————————|
| take | NumberProvider | null | amount of trades added by this level |
| trades | (Trade \| string)[] | [] | list of trades from which the taken ones are randomly choosen |
Trade
| Property | Type | Default | Description |
|—————–|———————|———|——————————————–|
| disabled | boolean | false | disabled trades will be ignored |
| sells | TradeIngredient | [] | item sold to the player |
| wants | TradeIngredient[] | [] | maximum of two items the player has to pay |
| uses | int | 0 | |
| maxUses | int | 10 | |
| xp | int | 1 | |
| priceMultiplier | float | 2.0 | |
| demand | int | 0 | |
TradeIngredient
Extension of the vanilla Ingredient with a few extra properties.
They can take the form of an item or tag and specify all properties of the vanilla Ingredient JSON.
Since Villager trades are ItemStack based that does not mean that a player can pay a #minecraft:stone_tool_materials
with any stone type, but only the one that is randomly selected from the tag each time the trade is used.
| Property | Type | Default |
|———–|———————————————————————|———|
| functions | LootFunction[] | [] |
| count | int | null |
The levels object takes the form of a map with numeric keys and object values.
The keys represent the actual villagers level with 1 being Novice until 5 being Master.
Advanced Usage
Instead of a Trade object, the TradeLevel trades property can also contain string IDs referencing an external
trade.
These trades can be saved under the path below to organize & reuse them.
data/[namespace]/villager/trades/[path].json
常见问题
Data Trades 支持哪些 Minecraft 版本?
Data Trades 支持 Minecraft Java 版 1.19.2–1.21.1,共 3 个版本,可用的加载器:Fabric / Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。
Data Trades 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅服务端。
possible_triangle 的其他作品
查看全部 →Create Slice & Dice
让农夫乐事的自动化更合理
Critters and Companions
为你的世界添加几个新朋友!
Create Jetpack
升级你的背罐,利用压缩空气飞行
Tinker’s JEI
为 JEI 添加一个标签页,用于查看匠魂的材料属性
评论
登录后评论和评分