mirror of
https://github.com/EpicEricEE/ShopChest.git
synced 2024-11-08 11:50:14 +01:00
Update API for better item selection handling
This commit is contained in:
parent
57b685ecb9
commit
50b69f6445
@ -1,11 +1,10 @@
|
||||
package de.epiceric.shopchest.api.event;
|
||||
|
||||
import de.epiceric.shopchest.api.shop.ShopProduct;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
/**
|
||||
* Called when a player enters the command to create a shop
|
||||
@ -20,15 +19,17 @@ public class ShopPreCreateEvent extends Event implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
private Player player;
|
||||
private ShopProduct product;
|
||||
private ItemStack itemStack;
|
||||
private int amount;
|
||||
private double buyPrice;
|
||||
private double sellPrice;
|
||||
private boolean admin;
|
||||
private boolean cancelled;
|
||||
|
||||
public ShopPreCreateEvent(Player player, ShopProduct product, double buyPrice, double sellPrice, boolean admin) {
|
||||
public ShopPreCreateEvent(Player player, ItemStack itemStack, int amount, double buyPrice, double sellPrice, boolean admin) {
|
||||
this.player = player;
|
||||
this.product = product;
|
||||
this.itemStack = itemStack;
|
||||
this.amount = amount;
|
||||
this.buyPrice = buyPrice;
|
||||
this.sellPrice = sellPrice;
|
||||
this.admin = admin;
|
||||
@ -45,13 +46,23 @@ public class ShopPreCreateEvent extends Event implements Cancellable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the product the shop will sell or buy
|
||||
* Gets the item stack the shop will sell or buy
|
||||
*
|
||||
* @return the product
|
||||
* @return the product or {@code null} if it has not been selected
|
||||
* @since 1.13
|
||||
*/
|
||||
public ShopProduct getProduct() {
|
||||
return product;
|
||||
public ItemStack getItemStack() {
|
||||
return itemStack == null ? null : itemStack.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the amount of items the shop will sell or buy
|
||||
*
|
||||
* @return the amount
|
||||
* @since 1.13
|
||||
*/
|
||||
public int getAmount() {
|
||||
return amount;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -60,8 +71,8 @@ public class ShopPreCreateEvent extends Event implements Cancellable {
|
||||
* @return whether the item has been selected
|
||||
* @since 1.13
|
||||
*/
|
||||
public boolean hasProduct() {
|
||||
return getProduct() != null;
|
||||
public boolean isItemSelected() {
|
||||
return getItemStack() != null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -4,8 +4,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import de.epiceric.shopchest.api.shop.ShopProduct;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
/**
|
||||
* Called when a player has selected an item
|
||||
@ -16,14 +15,20 @@ public class ShopSelectItemEvent extends Event implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
private Player player;
|
||||
private ShopProduct product;
|
||||
private ItemStack item;
|
||||
private int amount;
|
||||
private double buyPrice;
|
||||
private double sellPrice;
|
||||
private boolean admin;
|
||||
private boolean cancelled;
|
||||
|
||||
public ShopSelectItemEvent(Player player) {
|
||||
public ShopSelectItemEvent(Player player, ItemStack item, int amount, double buyPrice, double sellPrice, boolean admin) {
|
||||
this.player = player;
|
||||
this.item = item == null ? null : item.clone();
|
||||
this.amount = amount;
|
||||
this.buyPrice = buyPrice;
|
||||
this.sellPrice = sellPrice;
|
||||
this.admin = admin;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -42,18 +47,35 @@ public class ShopSelectItemEvent extends Event implements Cancellable {
|
||||
* @return the item
|
||||
* @since 1.13
|
||||
*/
|
||||
public ShopProduct getProduct() {
|
||||
return product;
|
||||
public ItemStack getItem() {
|
||||
return item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the item
|
||||
* <p>
|
||||
* If {@code item} is {@code null}, the event will be cancelled.
|
||||
*
|
||||
* @param product the item
|
||||
* @param item the item
|
||||
* @since 1.13
|
||||
*/
|
||||
public void setProduct(ShopProduct product) {
|
||||
this.product = product;
|
||||
public void setItem(ItemStack item) {
|
||||
if (item == null) {
|
||||
setCancelled(true);
|
||||
this.item = null;
|
||||
} else {
|
||||
this.item = item.clone();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the amount of items the player wants to sell or buy at the shop
|
||||
*
|
||||
* @return the amount
|
||||
* @since 1.13
|
||||
*/
|
||||
public int getAmount() {
|
||||
return amount;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -8,12 +8,56 @@ import de.epiceric.shopchest.api.player.ShopPlayer;
|
||||
* Represents the flag a player has after entering the create command
|
||||
*/
|
||||
public class SelectFlag implements Flag {
|
||||
private int amount;
|
||||
private double buyPrice;
|
||||
private double sellPrice;
|
||||
private boolean admin;
|
||||
private GameMode gameMode;
|
||||
|
||||
public SelectFlag(GameMode gameMode) {
|
||||
public SelectFlag(int amount, double buyPrice, double sellPrice, boolean admin, GameMode gameMode) {
|
||||
this.amount = amount;
|
||||
this.buyPrice = buyPrice;
|
||||
this.sellPrice = sellPrice;
|
||||
this.admin = admin;
|
||||
this.gameMode = gameMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the amount of items the player wants their shop to sell or buy
|
||||
*
|
||||
* @return the amount
|
||||
*/
|
||||
public int getAmount() {
|
||||
return amount;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the price the player wants others to buy the product for
|
||||
*
|
||||
* @return the buy price
|
||||
*/
|
||||
public double getBuyPrice() {
|
||||
return buyPrice;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets whether the player wants to create an admin shop
|
||||
*
|
||||
* @return whether the players wants to create an admin shop
|
||||
*/
|
||||
public boolean isAdminShop() {
|
||||
return admin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the price the player wants others to sell the product for
|
||||
*
|
||||
* @return the sell price
|
||||
*/
|
||||
public double getSellPrice() {
|
||||
return sellPrice;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the game mode the player had before entering the command
|
||||
* <p>
|
||||
|
Loading…
Reference in New Issue
Block a user