Add in ShopHandler interface

This commit is contained in:
Len
2022-07-08 10:28:33 +02:00
parent ca279dc1ed
commit 1167f60bbb
2 changed files with 149 additions and 2 deletions
@@ -0,0 +1,72 @@
package com.alttd.playershops.api;
import com.alttd.playershops.shop.AbstractShop;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.UUID;
public interface ShopHandler { // TODO finish docs
/**
* Get the shop at a given location
*
* @param location Location of the shop
* @return Shop at the given location or <b>null</b> if no shop is found there
*/
AbstractShop getShop(Location location);
/**
* Checks whether there is a shop at a given location
* @param location Location to check
* @return Whether there is a shop at the given location
*/
boolean isShop(Location location);
/**
* Get a collection of all loaded shops
*
* This collection is safe to use for looping over and removing shops.
*
* @return Read-only collection of all shops
*/
Collection<AbstractShop> getShops();
/**
* Add a player's custom shop limit
*
* @param uuid The uuid linked to this player
* @param limit The new maximum amount of shops this player can have
*/
void addPlayerLimit(UUID uuid, int limit);
/**
* Get the maximum amount of shops this player is allowed to have
*
* @param uuid The uuid linked to this player
* @return The limit of shops for this player
*/
int getShopLimit(UUID uuid);
/**
* Checks wether this block is valid to be used as a shop
*
* @param block the block to check
* @return true if this block can be a shop
*/
boolean isShopMaterial(Block block);
/**
* Get all the shops owned by a player
*
* @param uuid The uuid linked to this player
* @return List of shops this player owns
*/
List<AbstractShop> getShops(UUID uuid);
ArrayList<Material> getShopMaterials();
}