SPIGOT-2272: Add API for virtual Merchants

By: Lukas Hennig <lukas@wirsindwir.de>
This commit is contained in:
Bukkit/Spigot
2016-11-21 15:29:10 +11:00
parent b57d05eeea
commit 229ff86864
7 changed files with 113 additions and 65 deletions

View File

@@ -1,14 +1,13 @@
package org.bukkit.entity;
import java.util.List;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.MerchantRecipe;
import org.bukkit.inventory.Merchant;
/**
* Represents a villager NPC
*/
public interface Villager extends Ageable, NPC, InventoryHolder {
public interface Villager extends Ageable, NPC, InventoryHolder, Merchant {
/**
* Gets the current profession of this villager.
@@ -24,48 +23,6 @@ public interface Villager extends Ageable, NPC, InventoryHolder {
*/
public void setProfession(Profession profession);
/**
* Get a list of trades currently available from this villager.
*
* @return an immutable list of trades
*/
List<MerchantRecipe> getRecipes();
/**
* Set the list of trades currently available from this villager.
* <br>
* This will not change the selected trades of players currently trading
* with this villager.
*
* @param recipes a list of recipes
*/
void setRecipes(List<MerchantRecipe> recipes);
/**
* Get the recipe at a certain index of this villager's trade list.
*
* @param i the index
* @return the recipe
* @throws IndexOutOfBoundsException
*/
MerchantRecipe getRecipe(int i) throws IndexOutOfBoundsException;
/**
* Set the recipe at a certain index of this villager's trade list.
*
* @param i the index
* @param recipe the recipe
* @throws IndexOutOfBoundsException
*/
void setRecipe(int i, MerchantRecipe recipe) throws IndexOutOfBoundsException;
/**
* Get the number of trades this villager currently has available.
*
* @return the recipe count
*/
int getRecipeCount();
/**
* Gets this villager's inventory.
* <br>
@@ -77,21 +34,6 @@ public interface Villager extends Ageable, NPC, InventoryHolder {
@Override
Inventory getInventory();
/**
* Gets whether this villager is currently trading.
*
* @return whether the villager is trading
*/
boolean isTrading();
/**
* Gets the player this villager is trading with, or null if it is not
* currently trading.
*
* @return the trader, or null
*/
HumanEntity getTrader();
/**
* Gets this villager's riches, the number of emeralds this villager has
* been given.