Package org.bukkit.inventory

# Interface Merchant

All Known Subinterfaces:
  `AbstractVillager`, `Villager`, `WanderingTrader`

public interface Merchant
Represents a merchant. A merchant is a special type of inventory which can facilitate custom trades between items.

## Method Summary

Modifier and Type
Method
Description
`@NotNull MerchantRecipe`
`getRecipe(int i)`
Get the recipe at a certain index of this merchant's trade list.
`int`
`getRecipeCount()`
Get the number of trades this merchant currently has available.
`@NotNull List<MerchantRecipe>`
`getRecipes()`
Get a list of trades currently available from this merchant.
`@Nullable HumanEntity`
`getTrader()`
Gets the player this merchant is trading with, or null if it is not currently trading.
`boolean`
`isTrading()`
Gets whether this merchant is currently trading.
`void`
`setRecipe(int i, @NotNull MerchantRecipe recipe)`
Set the recipe at a certain index of this merchant's trade list.
`void`
`setRecipes(@NotNull List<MerchantRecipe> recipes)`
Set the list of trades currently available from this merchant.

## Method Details

### getRecipes

@NotNull @NotNull List<MerchantRecipe> getRecipes()
Get a list of trades currently available from this merchant.

Returns:
  an immutable list of trades

### setRecipes

void setRecipes(@NotNull @NotNull List<MerchantRecipe> recipes)
Set the list of trades currently available from this merchant.
This will not change the selected trades of players currently trading with this merchant.

Parameters:
  `recipes` - a list of recipes

### getRecipe

@NotNull @NotNull MerchantRecipe getRecipe(int i) throws IndexOutOfBoundsException
Get the recipe at a certain index of this merchant's trade list.

Parameters:
  `i` - the index
Returns:
  the recipe
Throws:
  `IndexOutOfBoundsException` - if recipe index out of bounds

### setRecipe

void setRecipe(int i, @NotNull @NotNull MerchantRecipe recipe) throws IndexOutOfBoundsException
Set the recipe at a certain index of this merchant's trade list.

Parameters:
  `i` - the index
  `recipe` - the recipe
Throws:
  `IndexOutOfBoundsException` - if recipe index out of bounds

### getRecipeCount

int getRecipeCount()
Get the number of trades this merchant currently has available.

Returns:
  the recipe count

### isTrading

boolean isTrading()
Gets whether this merchant is currently trading.

Returns:
  whether the merchant is trading

### getTrader

@Nullable @Nullable HumanEntity getTrader()
Gets the player this merchant is trading with, or null if it is not currently trading.

Returns:
  the trader, or null