Trading station

Trading station

Mod

Item trading machine.

Client and server EconomyGame MechanicsTechnology

436 downloads
4 followers
Created10 months ago
Updated10 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

Item trading machine. Made for modpacks. It doesn't add any recipe.

Features

  • Basic station with no power requirements.
  • Powered station with RF power requirements.
  • Custom Trading recipe
  • Indestructible variant for each station.
  • Configurable consumption & progress.
  • Mechanical (Create Addon) station available with companion mod.

Trading recipe

  • ingredients (required). An array/list of 1 or 2 ingredients.
  • result (required). Single output item/block
  • processingTime (optional). Ticks required to process. Default to 1. Powered machine has a 5x speed.
  • biome (optional). Biome requirement for the recipe. Default any.
  • exclusiveTo (optional). Required station. Defaults any. Possible values: basic, powered, mechanical

Example (basic input & output)

{
  "type": "trading_station:trading",
  "ingredients": [
    {"item": "minecraft:emerald", "count": 5}
  ],
  "result": {
    "item": "minecraft:diamond",
    "count": 5
  },
  "processingTime": 500
}

Example (output item with NBT)

{
  "type": "trading_station:trading",
  "ingredients": [
    {"item": "minecraft:diamond", "count": 5}
  ],
  "result": {
    "item": "minecraft:enchanted_book",
    "nbt": "{StoredEnchantments: [{id:\"looting\",lvl:3s}]}"
  },
  "processingTime": 100
}

Example (biome requirement)

{
	"type": "trading_station:trading",
	"result": {
		"item": "minecraft:diamond_sword",
		"count": 1,
		"nbt": "{Damage:0,Enchantments:[{id:\"mending\",lvl:1s}]}"
	},
	"ingredients": [
		{
			"item": "minecraft:diamond",
			"count": 5
		}
	],
	"processingTime": 100,
	"biome": {
		"name": "minecraft:plains"
	}
}

Example (exclusiveTo)

{
	"type": "trading_station:trading",
	"result": {
		"item": "minecraft:diamond_sword",
		"count": 1,
		"nbt": "{Damage:0,Enchantments:[{id:\"sharpness\",lvl:1s}]}"
	},
	"ingredients": [
		{
			"item": "minecraft:diamond",
			"count": 5
		}
	],
	"processingTime": 100,
	"exclusiveTo": [
		"powered"
	]
}

KubeJS 6.1 Integration

ServerEvents.recipes(event => {
  /**
  *  event.recipes.tradingStationTrading(Result Item, Input Ingredients[])
  *  .processingTime(Int) [optional]
  *  .biome(Biome|BiomeTag) [optional]
  *  .exclusiveTo(String) [optional]
  *  .exclusiveTo(String[]) [optional]
  **/

    // Basic example
    event.recipes.tradingStationTrading(Item.of('minecraft:emerald', 5),[Item.of("5x minecraft:diamond")]);
    event.recipes.tradingStationTrading(Item.of('minecraft:emerald', 5),[Item.of("5x minecraft:oak_log"),Item.of("10x minecraft:birch_log")]).processingTime(100);
    event.recipes.tradingStationTrading(Item.of('minecraft:emerald', 5),[Item.of("5x minecraft:diamond")]).processingTime(100);
    event.recipes.tradingStationTrading(Item.of('minecraft:andesite',2),[Item.of("2x minecraft:cobblestone")]).processingTime(100);

    //Enchanted book result
    event.recipes.tradingStationTrading(Item.of('minecraft:enchanted_book', '{StoredEnchantments:[{id:"power",lvl:5s}]}').strongNBT(),[Item.of("minecraft:stone")]).processingTime(100)

    // With biome requirement
    event.recipes.tradingStationTrading(Item.of('minecraft:diamond_sword', '{Enchantments:[{id:"power",lvl:5s}]}').strongNBT(),[Item.of("5x minecraft:diamond")]).processingTime(100).biome('#minecraft:is_beach');
    event.recipes.tradingStationTrading(Item.of('minecraft:diamond_sword', '{Enchantments:[{id:"mending",lvl:1s}]}').strongNBT(),[Item.of("5x minecraft:diamond")]).processingTime(100).biome('minecraft:plains');

    //With exclusive to requirement
    event.recipes.tradingStationTrading(Item.of('minecraft:diamond_sword', '{Enchantments:[{id:"looting",lvl:1s}]}').strongNBT(),[Item.of("5x minecraft:diamond")]).processingTime(100).exclusiveTo('powered');
    event.recipes.tradingStationTrading(Item.of('minecraft:diamond_sword', '{Enchantments:[{id:"sharpness",lvl:1s}]}').strongNBT(),[Item.of("5x minecraft:diamond")]).processingTime(100).exclusiveTo(['powered','mechanical']);

})

Project members

oierbravo

Owner


Technical information

License
MIT
Client side
required
Server side
required
Project ID